Python 谷歌语音到文本API,无效辩论:400必须使用单通道(mono)

Python 谷歌语音到文本API,无效辩论:400必须使用单通道(mono),python,google-cloud-speech,Python,Google Cloud Speech,我在google Speech to text中不断遇到这个错误InvalidArgument:400,问题似乎是我使用的是双声道音频(立体声),API正在等待wav输入(单声道) 如果我在音频编辑器中转换文件,它可能会工作,但我不能使用音频编辑器转换一批文件。有没有办法在Python或Google云中更改音频类型 注意:我已经尝试过使用“wave模块”,但我一直收到一个错误#7,因为无法识别文件类型(我无法从Python中读取带有模块wave的wav文件) -错误-InvalidArgumen

我在google Speech to text中不断遇到这个错误
InvalidArgument:400
,问题似乎是我使用的是双声道音频(立体声),API正在等待wav输入(单声道)

如果我在音频编辑器中转换文件,它可能会工作,但我不能使用音频编辑器转换一批文件。有没有办法在Python或Google云中更改音频类型

注意:我已经尝试过使用“wave模块”,但我一直收到一个错误#7,因为无法识别文件类型(我无法从Python中读取带有模块wave的wav文件)

-错误-InvalidArgument:400必须使用单声道(mono)音频,但WAV标头指示2个声道


假设您使用的是
googlecloudspeech
库,您可以在中使用
audio\u channel\u count
属性,并指定输入音频数据中的通道数(默认为一个通道(mono))。你可以这样做:

from google.cloud import speech
client = speech.SpeechClient()
results = client.recognize(
    audio=speech.types.RecognitionAudio(
        uri='gs://your-bucket/recording.wav',
    ),
    config=speech.types.RecognitionConfig(
        encoding='LINEAR16',
        language_code='en-US',
        sample_rate_hertz=44100,
        audio_channel_count=2,
    ),
)

有关更多信息,请参阅。

您应该使用以下功能动态返回音频通道和帧速率 它获取音频文件路径并返回帧速率和香奈儿数

def帧速率频道(音频文件名):
打印(音频文件名)
使用wave.open(音频文件名,“rb”)作为wave\u文件:
frame\u rate=wave\u file.getframerate()
channels=wave_file.getnchannels()

返回帧速率,频道

我已经尝试过了,我得到了这个错误。“InvalidArgument:400无效识别'config':通道计数错误。”config=speech.types.RecognitionConfig(encoding=speech.enums.RecognitionConfig.AudioEncoding.MULAW,采样率\u赫兹=8000,语言代码=第一语言,可选语言代码=[第二语言],启用\扬声器\时间\偏移=真,音频\通道\计数=2,音频\扬声器\计数=2,启用\单独\识别\每个\通道\真,启用\字\时间\偏移=真,最大\备选方案=2)