谷歌语音文本WAV文件上给出

时间:2020-07-25 16:56:29

标签: ffmpeg wav speech-to-text google-speech-api google-speech-to-text-api

我正在使用Google Speech to Text API将WAV文件转换为文本。当我播放WAV文件时,它工作正常,但是当我运行Google Speech To Text API时,出现此错误:

WAV header indicates an unsupported format.

当我尝试使用ffmpeg工具分析文件时,出现以下错误:

Output #0, wav, to '/home/shubham/workspace/intent-service/scripts/audio2.tmp.wav':
Metadata:
  ISFT            : Lavf57.83.100
  Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, mono, s16, 128 kb/s
  Metadata:
    encoder         : Lavc57.107.100 pcm_s16le
[gsm_ms @ 0x55d4c255cd20] Packet is too small
Error while decoding stream #0:0: Invalid data found when processing input size=7924kB time=00:08:27.16 bitrate= 128.0kbits/s speed=3.72e+03x    
video:0kB audio:7924kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000961%

我想念什么?

2 个答案:

答案 0 :(得分:1)

问题在于文件编码不是受支持的类型之一。我们使用ffmpeg将编码更改为mu-law,现在可以正常工作了。

答案 1 :(得分:0)

是的,对于 .wav 文件,您应该添加一个标志,通过键入以下内容将其编码指定为 Linear16:--encoding=linear16。

与 Google STT API 兼容的唯一其他格式是 .flac,并且由于您有 ffmpeg,您可以将其转换为该格式并在您的命令中添加一个标志 --encoding=flac