如何使用谷歌语音 API 翻译直播?



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

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

我正在使用PHP。(允许其他语言建议,我会自己找)

我在 2 周内能做什么:

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

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

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

  4. 更新:执行音频持续时间小于 6 秒的流式处理 API。

我不能做的是:

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

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

更新:

我也在谷歌GitHub上问这个问题。 但是由于没有答案,我在这里问。

总结:

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

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

更新:

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

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

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

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%

您需要使用StreamingRecognizeAPI 调用。 你可以在这里找到一个在PHP中这样做的例子。

最新更新