如何使用谷歌语音API翻译实时流媒体?

plo*_*uzz 11 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秒.

我不能做的是:

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

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

更新:

我也在谷歌github问这个问题.但既然没有答案,我问这里.

摘要:

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

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

#UPDATE:

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

我尝试这个视频interview.mp4并使用它将其转换为ffmpeg到interview.flacffmpeg -i interview.mp4 -c:a flac -ar 16000 -ac 1 -sample_fmt s16 interview.flac.

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

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

结果是:

  [Google\GAX\ApiException]
  Invalid 'audio_content': too long.
Run Code Online (Sandbox Code Playgroud)

它不能太长,因为视频持续时间只有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%
Run Code Online (Sandbox Code Playgroud)

bla*_*ert 9

您需要使用StreamingRecognizeAPI调用.您可以在此处找到在PHP中执行此操作的示例.