【问题标题】:Moving Google STT from Cloud Functions to dedicated GAE将 Google STT 从 Cloud Functions 迁移到专用 GAE
【发布时间】: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


    【解决方案1】:

    我建议您使用 Cloud Function 作为 Cloud Storage 触发器。 通过这种方式,您将能够获取上传到特定存储桶中的文件的名称。 您可以查看this documentation 关于 Google Cloud Storage Triggers 的信息,以查看一些示例。

    如果您使用 Python,您可以使用以下命令查看文件名:

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

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

    我还找到了this post,它解释了如何调用托管在 Google App Engine 中的 URL,我认为它可能对您有用。

    希望这会有所帮助!

    【讨论】:

    • 谢谢,我还发现 Pub/Sub 也可以用作云函数、云工具和实例之间的通信。
    猜你喜欢
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    相关资源
    最近更新 更多