You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

语音识别代码运行失败,ConnectionResetError错误如何修复?

解决Speech Recognition的ConnectionResetError(WinError 10054)问题

问题复现

运行以下语音转文本代码时,在listener.recognize_google(voice)行抛出连接错误:

import speech_recognition as sr

listener = sr.Recognizer()

with sr.Microphone() as source:
            print('listening...')
            voice = listener.listen(source)
            print("working")
            command = listener.recognize_google(voice) #this is the line causing error
            print("working")
            print(command)

错误信息:ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

已知背景:代码在其他电脑可正常运行,已尝试关闭防火墙、修改服务器参数,耗时超6小时仍未解决。

排查与修复步骤

  • 检查本地代理设置
    残留或自动开启的代理配置常导致这类连接问题:

    1. 打开Windows设置→网络和Internet→代理,确认所有代理选项处于关闭状态
    2. 命令行执行netsh winhttp reset proxy重置WinHTTP代理
    3. 重启Python解释器或IDE后重新测试
  • 验证DNS解析与切换
    若DNS解析异常会导致无法正常连接Google服务:

    1. 命令行执行ping google.com,检查是否能正常解析并连通
    2. 若解析失败,切换公共DNS(如114.114.114.114或8.8.8.8):右键网络连接→属性→Internet协议版本4→手动指定DNS服务器地址,重启网络后测试
  • 调整SSL/TLS配置
    SSL握手失败可能触发远程服务器主动关闭连接,可在代码中指定SSL上下文:

    import ssl
    # 保留原有代码,修改recognize_google调用
    ssl_context = ssl.create_default_context()
    command = listener.recognize_google(voice, ssl_context=ssl_context)
    

    或强制使用TLSv1.2:

    ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
    command = listener.recognize_google(voice, ssl_context=ssl_context)
    
  • 重置Windows网络栈
    网络配置损坏可能引发此类问题,执行以下命令后重启电脑:

    netsh int ip reset
    netsh winsock reset
    
  • 排查第三方安全软件
    除系统防火墙外,杀毒软件、安全卫士可能拦截Python的网络请求:暂时完全关闭这类软件,测试代码是否正常。若恢复正常,需在安全软件中添加Python程序或Speech Recognition库的网络访问白名单。

内容的提问来源于stack exchange,提问作者Sami gul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 04:00:00