如何使用Google Speech API翻译直播?

这是Google Speech API文档:https://cloud.google.com/speech/docs/sync-recognize

这个接口我试了2周,还是不能解决我的主要目的(翻译直播)。

我使用的是PHP。(允许其他语言建议,我自己找)

我在2周内可以做的事情:

  1. 同步语音识别(<;=1分钟)

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

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

  4. 更新:执行音频时长小于6秒的流媒体接口

我不能做的是:

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

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

更新:

我也在Google GitHub上问过这个问题。但由于没有回答,我问了here。

摘要:

我可以执行语音流,但只能使用6秒的音频。这和我预想的不一样。我的期望是认识到无限制的持续时间(似乎我们不知道无线电流媒体何时结束)。

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

更新:

批准我使用视频的时间不能超过6秒。所以我写下:

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

我使用这个library通过以下命令转录视频:

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

结果为:

  [GoogleGAXApiException]
  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%

解决方案

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

相关文章