我正在尝试使用Google Speech to Text API转录WAV音频文件。
除我经常点击的一个WAV文件外,大多数文本提取工作
我已推荐https://cloud.google.com/speech-to-text/docs/encoding
并尝试了两种编解码器,但仍然失败。
我试图通过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位IMA ADPCM”吗?或对应格式的对应编解码器是什么?https://cloud.google.com/speech-to-text/docs/encoding#audio-encodings
如果确实不是源文件中受支持的编解码器,是否仍要使用某些GCP功能将其转换为FLAC / WAV支持的编解码器,然后在无需用户手动转换的情况下提取文本?因为我正在与需要虚假友好提取功能的管理人员打交道。
最佳答案
您需要使用enums.RecognitionConfig.AudioEncoding.LINEAR16
,这非常适合wav
扩展名。
我可以看到您的采样率为22050,您无法将采样率设置为16000
。
当我的位深度未设置为16时,我也遇到了问题,因此请将您的位深度设置为16,
通过这些更改,它将起作用。
如果您使用的是 socks ,则可以轻松完成。下面是sox命令,用于更改采样率和位深度。
sox audio.wav -r 16000 -c 1 -b 16 audio_1.wav bandreject 200 3k
我已经使用bandreject
实现了带通滤波器,如果不需要,可以删除此部分。关于audio - 在Google Speech to Text API中需要WAV文件的正确编解码器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62835631/