我正在使用Cloud Functions从存储桶中的getUserMedia()转换audio/mp4
使用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等。
将文件放在存储设备上后,如何在GCP实例上触发工作流程?
任何想法都将受到欢迎!
答案 0 :(得分:1)
我建议您使用Cloud Function作为Cloud Storage触发器。 这样,您将能够获取特定存储桶中上传的文件的名称。 您可以查看this documentation有关Google Cloud Storage触发器的信息,以查看一些示例。
如果使用Python,则可以使用以下命令查看文件名:
print('File: {}'.format(data['name']))
获得文件名后,就可以向GAE提出请求,以转换音频。
我还发现this post解释了如何调用Google App Engine中托管的URL,我认为这可能对您有用。
希望这会有所帮助!