将 Google STT 从 Cloud Functions 迁移到专用 GAE



我正在使用云函数将audio/mp4从放置在存储桶
的 getUserMedia(( 转换为ffmpegaudio/x-flac格式,以便能够使用 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 或本机,Python 或 Node 等.
将文件放入存储后,如何在 GCP 实例上触发工作流?
任何想法或想法将非常受欢迎!

我建议您使用云功能作为云存储触发器。 这样,您将能够获取上传到特定存储桶中的文件的名称。 您可以查看有关 Google Cloud Storage 触发器的文档,以查看一些示例。

如果使用 Python,则可以使用以下方法查看文件名:

print('File: {}'.format(data['name']))

获得文件名后,您可以向 GAE 发出请求以转换音频。

我还发现了这篇文章,它解释了如何调用托管在Google App Engine中的URL,我认为它可能对您有用。

希望这有帮助!

相关内容

最新更新