问题描述
我的问题
我使用 python speech recognition library by Uberi 将 .wav 音频文件转录为纯文本。但是,当我运行我的代码时 - 使用 Google 语音识别 - 我收到一个 RequestError。
对于这个(特定的)错误,我在语音识别 GitHub 上发现了一个 Opened Issue,但没有任何答案。
我该如何解决这个问题?我知道我可以尝试使用不同的引擎而不是 Google;但是看起来它们都需要一个密钥,我希望在没有密钥的情况下转录我的文件。
我的代码
import speech_recognition as sr
clip = "MyFile.wav"
#Initialize recognizer class (for recognizing the speech)
r = sr.Recognizer()
# Reading Audio file as source
# listening the audio file and store in audio_text variable
with sr.AudioFile(clip) as source:
audio_text = r.record(source)
text = r.recognize_google(audio_text)
print(text)
错误
speech_recognition.RequestError: recognition request Failed: Bad Request
一个想法
一个可能的原因可能是我的 .wav (~ 1 GB) 的大小。稍后我将尝试使用一个小的 .wav 来运行我的代码以进行检查。
解决方法
错误请求响应状态代码
超文本传输协议 (HTTP) 400 错误请求响应状态代码表示服务器无法或不会处理请求,因为某些被认为是客户端错误(例如,格式错误的请求语法、无效的请求消息帧、或欺骗性请求路由)。
所以这实质上意味着这不是 Google 的错,也不是您的 Uberi 库的错。它在你的尽头。你说你的 .wav 文件太大了,这正是我的想法。这些系统本质上是获取音频文件并将其分解为文本。作为客户,您发送的文件太大。这些系统也可能在某个时间点超时,导致错误 400,因为这是通过 Internet 完成的,而不是离线处理。您拥有的程序编写得非常完美,应该可以使用稍微小一些的文件来实现。