关于speech_recognition中audio2数据类型及recognize_google输入要求的咨询
关于speech_recognition库的audio对象及recognize_google输入说明
1. audio2的对象类型
r.listen(source2)返回的是speech_recognition.AudioData类的实例,这是该库封装的音频数据对象,直接打印只会显示内存地址,不会展示内部细节。
2. AudioData内部存储的数据
AudioData对象内部存储了三个核心属性:
frame_data:字节串类型(bytes),是原始的PCM音频数据(即WAV文件里的采样内容,无文件头)sample_rate:整数,音频的采样率(如16000Hz)sample_width:整数,每个采样的比特宽度(如2字节=16位)
你可以直接访问这些属性查看相关信息,示例代码:
print(audio2.sample_rate) print(audio2.sample_width) # 查看前100字节的PCM数据 print(audio2.frame_data[:100])
3. recognize_google()的输入类型
recognize_google()要求的输入就是speech_recognition.AudioData类型的对象,你当前传入audio2完全符合要求,这也是该库的标准用法——用listen()获取AudioData,再传给识别方法。
如果需要将AudioData转成标准WAV格式的字节数据,可以用get_wav_data()方法:
wav_bytes = audio2.get_wav_data() # 将wav_bytes写入文件得到标准WAV with open("output.wav", "wb") as f: f.write(wav_bytes)
内容的提问来源于stack exchange,提问作者Ariel Makovoz
相关产品推荐
相关产品推荐

