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

为什么VSCode中基于sr库的语音识别代码无法接收指令

问题排查方案
  • 检查依赖完整性
    特别注意:SpeechRecognition库的Microphone类强依赖PyAudio库,80%以上的麦克风调用失败问题都是因为该依赖未正确安装

    • Windows系统:先执行pip install pipwin,再执行pipwin install pyaudio,不要直接用pip install pyaudio安装,大概率会出现编译报错
    • macOS系统:先执行brew install portaudio安装底层依赖,再执行pip install pyaudio
    • Linux系统:先执行sudo apt install portaudio19-dev python3-pyaudio安装系统依赖,再执行pip install pyaudio
  • 检查麦克风权限
    确认VSCode及对应的代码运行终端已获得麦克风访问权限:

    • Windows:进入「设置-隐私和安全性-麦克风」,打开「允许桌面应用访问麦克风」开关
    • macOS:进入「系统设置-隐私与安全性-麦克风」,勾选VSCode/对应终端的权限选项
    • Linux:执行arecord -l命令,确认麦克风设备被系统正常识别,当前用户有音频设备访问权限
  • 修复代码逻辑缺陷
    你当前的代码缺少环境噪音校准步骤,会导致识别器把背景噪音判定为持续语音,一直无法结束监听,修改后的参考代码如下:

import speech_recognition as sr

r = sr.Recognizer()
with sr.Microphone() as source:
    # 新增环境噪音校准,duration为校准时长,单位秒
    r.adjust_for_ambient_noise(source, duration=0.5)
    print("Listening...")
    # 可根据自身说话习惯调整停顿阈值,单位秒,停顿超过该值则判定语音结束
    r.pause_threshold = 1.5
    audio = r.listen(source)

# 新增异常捕获,方便定位具体问题
try:
    print("Recognizing...")
    # 若要识别英文,把language参数改成'en-us'即可
    query = r.recognize_google(audio, language='zh-cn')
    print(f"识别结果: {query}\n")
except sr.UnknownValueError:
    print("无法识别语音内容,请重新说话")
except sr.RequestError as e:
    print(f"识别服务请求失败,请检查网络连接: {e}")
except Exception as e:
    print(f"未知错误: {e}")
  • 其他排查方向
    • 检查麦克风是否被其他应用占用,关闭所有占用麦克风的软件后重试
    • 确认系统默认录音设备是你正在使用的麦克风,可在系统声音设置中调整默认输入设备

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:12:02