首页 > 解决方案 > python中的谷歌语音识别出现“音频数据必须是音频数据”错误

问题描述

我正在尝试在 python 中加载音频文件并使用谷歌语音识别处理它

问题在于,与 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)

错误是:

audio_data must be audio data

如何转换音频对象以用于谷歌语音识别

标签: pythonwindowsspeech-recognitiongoogle-speech-apilibrosa

解决方案


@Mich,我希望您现在已经找到了解决方案。如果没有,请尝试以下方法。

首先,使用其他方法将 .mp3 格式转换为 .wav 格式作为预处理步骤。

import speech_recognition as sr

# Create an instance of the Recognizer class
recognizer = sr.Recognizer()

# Create audio file instance from the original file
audio_ex = sr.AudioFile('sample_data/metal.wav')
type(audio_ex)

# Create audio data
with audio_ex as source:
    audiodata = recognizer.record(audio_ex)
type(audiodata)

# Extract text
text = recognizer.recognize_google(audio_data=audiodata, language='en-US')

print(text)

您可以从https://cloud.google.com/speech-to-text/docs/languages选择语音语言

此外,您可以使用以下命令设置音频响度的最小阈值。

recognizer.set_threshold = 300 # min threshold set to 300

推荐阅读