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

使用SpeechRecognition模块时r.listen(source)报错求助

问题分析

从报错信息和更新内容来看,核心问题集中在两点:

  1. Python环境依赖不匹配:错误日志显示SpeechRecognition库安装在Python38的目录下,但当前运行环境是Python3.11.4,版本错位导致麦克风资源无法正常初始化。
  2. 麦克风设备识别异常:可用麦克风列表为空,说明系统或PyAudio组件无法正确识别音频输入设备,进而引发AudioSource流初始化失败。
解决步骤

1. 修复Python环境依赖

  • 先卸载旧版本的依赖库,彻底清理残留:
    pip uninstall -y SpeechRecognition PyAudio
    
  • 切换到Python3.11.4的运行环境(如果使用虚拟环境需先激活),重新安装适配版本的库:
    pip install SpeechRecognition==3.10.0
    pip install PyAudio==0.2.13
    

    若PyAudio安装失败,可下载对应Python3.11的Windows预编译whl文件直接安装,命令示例:pip install PyAudio-0.2.13-cp311-cp311-win_amd64.whl

2. 确认麦克风权限与设备识别

  • 检查Windows11麦克风权限:
    打开「设置」→「隐私和安全性」→「麦克风」,确保「允许应用访问麦克风」已开启,且运行Python的终端/IDE(如CMD、VS Code)拥有麦克风访问权限。
  • 用代码检测可用麦克风:
    运行以下代码,确认系统能识别到音频设备:
    import speech_recognition as sr
    print("可用麦克风列表:")
    for index, name in enumerate(sr.Microphone.list_microphone_names()):
        print(f"设备索引 {index}: {name}")
    
    若输出为空,尝试:
    • 重启电脑并重新插拔麦克风设备。
    • 更新声卡驱动:打开「设备管理器」→「声音、视频和游戏控制器」,右键声卡设备选择「更新驱动程序」。

3. 修改代码指定正确麦克风索引

根据上述检测结果,找到可用麦克风的索引值,替换到代码中:

import speech_recognition as s_r
print(s_r.__version__)
r = s_r.Recognizer()
# 替换为检测到的可用麦克风索引
my_mic = s_r.Microphone(device_index=1) 
with my_mic as source:
    print("Say now!!!!")
    # 增加环境噪音校准,提升识别稳定性
    r.adjust_for_ambient_noise(source)
    audio = r.listen(source)
print(r.recognize_google(audio))

4. 排查设备占用问题

若仍出现stream为None的错误,检查麦克风是否被其他程序占用(如微信、Teams、浏览器等),关闭占用程序后重新运行代码。也可在with块内添加调试输出,确认流状态:

with my_mic as source:
    print("流初始化状态:", source.stream)
    print("Say now!!!!")
    r.adjust_for_ambient_noise(source)
    audio = r.listen(source)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:07:33