【问题标题】:Need right codec for a WAV file in Google Speech to Text APIGoogle Speech to Text API 中的 WAV 文件需要正确的编解码器
【发布时间】:2024-04-21 05:50:02
【问题描述】:

我正在尝试使用 Google Speech to Text API 转录 WAV 音频文件。 除了我经常点击的一个 WAV 文件之外,大部分文本提取工作都有效

未处理的错误 { 错误:3 INVALID_ARGUMENT:WAV 标头表示 不支持的格式。

我已推荐https://cloud.google.com/speech-to-text/docs/encoding

注意:Speech-to-Text 支持使用 LINEAR16 或 MULAW 编码的 WAV 文件 音频。

并尝试了两种编解码器,但仍然失败。

我试图通过 soxi 命令获取 wav 的详细信息

>> soxi org\ hearing.WAV
Input File     : 'org hearing.WAV'
Channels       : 1
Sample Rate    : 22050
Precision      : 13-bit
Duration       : 00:14:59.99 = 19844721 samples ~ 67499.1 CDDA sectors
File Size      : 9.99M
Bit Rate       : 88.8k
Sample Encoding: 4-bit IMA ADPCM

请问是否支持编码格式“4-bit IMA ADPCM”?或者支持格式的对应编解码器是什么? https://cloud.google.com/speech-to-text/docs/encoding#audio-encodings

如果源文件中确实不是支持的编解码器,无论如何要使用某些 GCP 功能转换为支持 FLAC/WAV 的编解码器,然后在没有用户手动转换的情况下提取文本?因为我正在与需要虚拟友好提取功能的管理员打交道。

【问题讨论】:

    标签: audio google-cloud-speech


    【解决方案1】:

    您需要使用enums.RecognitionConfig.AudioEncoding.LINEAR16 这非常适合wav 扩展。 我可以看到您的采样率是 22050,您需要将采样率设置为 16000。 当我的位深度未设置为 16 时,我也遇到了问题,因此请将您的位深度设置为 16, 通过这些更改,它将起作用。 如果您使用的是 sox,它可以很容易地完成。下面是改变采样率和位深度的 sox 命令。

    sox audio.wav -r 16000 -c 1 -b 16 audio_1.wav bandreject 200 3k
    

    我已经使用bandreject 实现了带通滤波器,如果不需要,您可以删除这部分。

    【讨论】:

      最近更新 更多