';音频数据必须是音频数据';python中的google语音识别错误

';音频数据必须是音频数据';python中的google语音识别错误,python,windows,speech-recognition,google-speech-api,librosa,Python,Windows,Speech Recognition,Google Speech Api,Librosa,我正在尝试用python加载一个音频文件,并用google语音识别处理它 问题是,与C++不同,Python不显示数据类型、类,或者通过创建新对象和重新包装数据来访问内存以在一种数据类型和另一种数据类型之间转换。 我不明白在python中如何从一种数据类型转换为另一种数据类型 有关代码如下所示 import speech_recognition as spr import librosa audio, sr = librosa.load('sample_data/metal.mp3') #

我正在尝试用python加载一个音频文件,并用google语音识别处理它

问题是,与C++不同,Python不显示数据类型、类,或者通过创建新对象和重新包装数据

来访问内存以在一种数据类型和另一种数据类型之间转换。 我不明白在python中如何从一种数据类型转换为另一种数据类型

有关代码如下所示

import speech_recognition as spr 
import librosa

audio, sr = librosa.load('sample_data/metal.mp3')

# create a speech recognition object 
r = spr.Recognizer() 

r.recognize_google(audio)
错误是:

音频数据必须是音频数据


如何转换要在google语音识别中使用的音频对象

Librosa returns numpy array,您需要将其转换回wav。大概是这样的:

 raw_audio = np.int16(audio/np.max(np.abs(audio)) * 32767).tobytes()

您可能最好使用ffmpeg包装器加载mp3,而不使用librosa,librosa会对音频进行奇怪的处理(标准化等)。最好使用原始数据。

使用语音识别器尝试以下操作:

import speech_recognition as spr 

with spr.WavFile('sample_data/metal.mp3') as source:     
     audio = r.record(source)  

r = spr.Recognizer() 
r.recognize_google(audio)

这个答案中什么是数据,什么是音频?