如何使用google speech api翻译实时流媒体?

时间:2017-05-25 09:30:15

标签: php speech-recognition speech-to-text google-speech-api

这是谷歌演讲API文档:https://cloud.google.com/speech/docs/sync-recognize

我试用这个API 2周。但仍然无法解决我的主要目的(翻译直播)。

我正在使用PHP。 (其他languange建议是允许的,我会自己找到)

  

我在两周内可以做些什么:

  1. 同步语音识别(< = 1min)

  2. 异步语音识别(> 1分钟和<= 80分钟)。 注意:我可以将其修改为接受3小时视频。

  3. 麦克风的实时语音识别:https://www.google.com/intl/en/chrome/demos/speech.html

  4. 更新:执行流媒体API,音频持续时间少于6秒。

  5.   

    我不能做的是:

    1. 如何翻译直播。例如:无线电流(允许延迟)

    2. 如何在播放视频/音频时进行翻译。 (允许延迟)

    3. 更新:

      我也在谷歌github问这个问题。但由于没有回答,我问here

      摘要:

      我可以执行语音流,但只能使用6秒音频。这不像我的预期。我的期望是识别无限期(似乎我们不知道无线电流将何时结束)。

      感谢您的帮助。我非常感激

      #UPDATE:

      批准我不能使用超过6秒的视频。所以我写这个:

      我尝试使用此视频interview.mp4并使用此ffmpeg -i interview.mp4 -c:a flac -ar 16000 -ac 1 -sample_fmt s16 interview.flac将其与ffmpeg一起转换为interview.flac

      我使用此library使用此命令转录视频:

      php speech.php transcribe --encoding FLAC --language-code en-US --sample-rate 16000 --stream interview.flac

      结果是:

        [Google\GAX\ApiException]
        Invalid 'audio_content': too long.
      

      它不能太长,因为视频持续时间仅为48秒。这是来自ffmpeg结果的元:

      Output #0, flac, to 'interview.flac':
        Metadata:
          major_brand     : isom
          minor_version   : 512
          compatible_brands: isomiso2avc1mp41
          encoder         : Lavf57.72.101
          Stream #0:0(und): Audio: flac, 16000 Hz, mono, s16, 128 kb/s (default)
          Metadata:
            handler_name    : SoundHandler
            encoder         : Lavc57.92.100 flac
      size=     810kB time=00:00:48.01 bitrate= 138.1kbits/s speed= 108x
      video:0kB audio:801kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.019650%
      

1 个答案:

答案 0 :(得分:9)

您需要使用StreamingRecognize API call。您可以在PHP here中找到这样做的示例。