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

Manjaro下使用Speech Recognition包出现UnknownValueError如何解决

报错属性确认

你遇到的speech_recognition.UnknownValueError并非Alsa Lib相关问题导致。Alsa作为Manjaro等Linux发行版的底层音频驱动组件,如果出现故障,错误会在sr.Microphone()初始化、r.listen()音频采集阶段提前抛出,不会在调用语音识别接口的步骤才触发该报错。

报错核心原因

该错误的触发逻辑是Google语音识别接口返回的结果中没有可解析的有效语音文本,常见触发场景包括:

  • 采集到的音频只有环境噪音,没有录入有效语音,或是有效语音音量过低、被环境噪音完全覆盖
  • 环境噪音校准时长不足:adjust_for_ambient_noise默认校准时长为1秒,如果你所处环境噪音波动较大,校准未完成就开始录音,会导致后续有效语音被误判为噪音过滤
  • 语言参数不匹配:recognize_google默认按英文识别,如果你录入的是中文等其他语言,大概率会识别失败抛出该错误
  • 网络异常:无法正常访问Google语音识别接口,或是接口返回的结果为空、结构不符合预期
修复方案
  • 给代码添加异常捕获逻辑,同时调整校准时长、指定对应识别语言,参考代码如下:
import speech_recognition as sr

r = sr.Recognizer()
mic = sr.Microphone()

with mic as source1:
    # 延长环境噪音校准时长到2-3秒,适配复杂噪音环境
    r.adjust_for_ambient_noise(source1, duration=2)
    print("请开始说话:")
    audihearing = r.listen(source1)

try:
    # 识别中文指定language为zh-CN,识别英文可省略该参数或改为en-US
    print(r.recognize_google(audihearing, language='zh-CN'))
except sr.UnknownValueError:
    print("未识别到有效语音内容,请靠近麦克风、降低环境噪音后重试")
except sr.RequestError:
    print("无法连接到Google识别服务,请检查网络或替换其他识别接口")
  • 检查系统麦克风输入配置:在Manjaro的系统设置中确认麦克风输入设备选择正确,输入音量没有被限制在过低水平,测试录音功能正常
  • 如果你无法正常访问Google服务,可以替换为其他识别接口,比如离线的recognize_sphinx、国内可访问的recognize_baidu等,不需要修改音频采集逻辑,只需要替换识别调用语句即可

内容的提问来源于stack exchange,提问作者Dheeraj-Tech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:39:02