【发布时间】:2019-10-15 23:04:00
【问题描述】:
我正在使用 Cloud Functions 将 audio/mp4 从放置在存储桶中的 getUserMedia() 转换audio/x-flac 格式使用 ffmpeg 以便能够使用 Google STT 转录它
bucket
.file(file.name)
.download({ destination })
.then(() =>
ffmpeg(destination)
.setFfmpegPath(ffmpeg_static.path)
.audioChannels(1)
.audioFrequency(16000)
.format('flac')
.on('error', console.log)
.on('end', () =>
bucket
.upload(targetTempFilePath, { destination: targetStorageFilePath })
.then(() => {
fs.unlinkSync(destination);
fs.unlinkSync(targetTempFilePath);
});
)
.save(targetTempFilePath);
)
);
工作流程:客户端 MP4 => 存储桶触发器 => STT => Firestore
它工作得很好,我得到了干净的 FLAC 文件,而 STT 在这个组合中完美地工作!
但只有如果
每个输入文件不超过 1-2 Mb(通常我会同时输入一系列 5-10 个文件)。
我知道 10 Mb 的限制,现在我想让 Cloud Functions 只处理图像处理并将所有音频内容移动到某个专用的 GAE 或 GCE 实例。
什么更好用:在这种情况下是 GAE 或 GCP,dockerized 或 native,Python 或 Node 等。
将文件放入 Storage 后,如何在 GCP 实例上触发工作流?
非常欢迎任何想法或想法!
【问题讨论】:
标签: javascript google-app-engine google-cloud-functions google-speech-api