我将一个.opus音频文件传递给谷歌的语音到文本api进行转录。我使用以下配置:
- 编码=枚举。识别配置音频编码.OGG_OPUS
- language_code=";en-US">
- sample_rate_hertz=16000
我得到以下错误:
google.api_core.exceptions.GoogleAPICallError: None Unable to recognize speech, possible error in encoding or channel config. Please correct the config and retry the request.
我尝试过其他编码,比如FLAC和LINEAR16,并得到None作为输出。
opus音频文件是否需要额外的配置字段?配置文件应该是什么样子?
在浏览了谷歌提供的文档并尝试了几次之后,我找到了解决错误的方法。OGG_OPUS编码需要audio_channel_count的显式配置定义。在我的情况下,音频通道是2,我需要明确定义它。此外,在多通道的情况下,需要将enable_separate_egnition_per_channel设置为True。
对我有效的配置是:
encoding = enums.RecognitionConfig.AudioEncoding.OGG_OPUS
config = {
"audio_channel_count": audio_channel_count,
"enable_separate_recognition_per_channel": enable_separate_recognition_per_channel,
"language_code": language_code,
"sample_rate_hertz": sample_rate_hertz,
"encoding": encoding
}
对于配置文件中的每个参数,我们都要使用正确的值,这一点非常重要。