Python SpeechRecognition模块报Internal Server Error问题求助
问题:speech_recognition调用Google语音识别抛出Internal Server Error
用户使用Python的speech_recognition模块进行语音转文本时,遇到HTTP Error 500: Internal Server Error,更新模块后问题仍存在,此前正常运行的代码也无法工作。
重现代码
import speech_recognition as s sr=s.Recognizer() print("i am your script and listening you...........................") with s.Microphone() as m: audio=sr.listen(m) query=sr.recognize_google(audio,language='eng-in') print(query)
错误日志
i am your script and listening you........................... Traceback (most recent call last): File "C:\Users\Believe Itsreal\AppData\Local\Programs\Python\Python310\lib\site-packages\speech_recognition\__init__.py", line 894, in recognize_google response = urlopen(request, timeout=self.operation_timeout) File "C:\Users\Believe Itsreal\AppData\Local\Programs\Python\Python310\lib\urllib\request.py", line 216, in urlopen return opener.open(url, data, timeout) File "C:\Users\Believe Itsreal\AppData\Local\Programs\Python\Python310\lib\urllib\request.py", line 525, in open response = meth(req, response) File "C:\Users\Believe Itsreal\AppData\Local\Programs\Python\Python310\lib\urllib\request.py", line 634, in http_response response = self.parent.error( File "C:\Users\Believe Itsreal\AppData\Local\Programs\Python\Python310\lib\urllib\request.py", line 563, in error return self._call_chain(*args) File "C:\Users\Believe Itsreal\AppData\Local\Programs\Python\Python310\lib\urllib\request.py", line 496, in _call_chain result = func(*args) File "C:\Users\Believe Itsreal\AppData\Local\Programs\Python\Python310\lib\urllib\request.py", line 643, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 500: Internal Server Error During handling of the above exception, another exception occurred: Traceback (most recent call last): File "d:\coding\python_in_hole\python code\api.py", line 6, in query=sr.recognize_google(audio,language='eng-in') File "C:\Users\Believe Itsreal\AppData\Local\Programs\Python\Python310\lib\site-packages\speech_recognition\__init__.py", line 896, in recognize_google raise RequestError("recognition request failed: {}".format(e.reason)) speech_recognition.RequestError: recognition request failed: Internal Server Error
解决方法
- 排查网络连接:确认当前网络可正常访问Google服务,尝试切换网络环境(如手机热点)后重试。
- 使用认证API密钥:未授权的请求容易触发限制或服务器错误,申请Google Cloud Speech-to-Text API密钥后传入调用:
注:需在Google Cloud控制台启用对应服务并配置计费(提供免费额度)。query = sr.recognize_google(audio, language='eng-in', key='你的API密钥') - 优化音频输入:添加降噪处理并设置合理的输入时长,避免无效音频导致服务器处理失败:
with s.Microphone() as m: sr.adjust_for_ambient_noise(m) print("请说话...") audio = sr.listen(m, timeout=5, phrase_time_limit=10) query = sr.recognize_google(audio, language='eng-in') print(query) - 切换离线识别引擎:若Google服务持续异常,改用CMU Sphinx离线识别:
# 先安装依赖:pip install pocketsphinx query = sr.recognize_sphinx(audio, language='en-in') - 等待服务器恢复:部分500错误为Google服务器临时故障,间隔一段时间后重新运行代码。
内容的提问来源于stack exchange,提问作者believe itsreal
相关产品推荐
相关产品推荐

