python - 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
如何转换音频对象以用于谷歌语音识别
解决方案
@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
推荐阅读
- docker - nginx入口速率限制
- javascript - Javscript - 显示没有绝对位置的中音文本以处理文本选择
- amazon-web-services - AWS - 序列化临时凭证并通过请求链传递它们
- web - 如何在打开多个选项卡的浏览器中镜像单击?
- terraform - 如何处理 terraform 中的可选动态块
- html - 如何在滚动窗口滚动条上显示隐藏元素以及动画?
- c# - 使用asp.net mvc在excel文件中导出/下载15000行
- google-chrome-extension - Chrome 扩展和访问 Google Drive
- c# - WPF 弹出窗口和 WindowsFormsHost 问题(在弹出窗口外单击时无响应或未关闭)
- javascript - 将秒转换为时间戳,并比较值、Firebase、React