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

开发AI虚拟助手运行语音识别代码时出现两类报错求助

解决语音识别代码的两个报错问题

1. 处理ModuleNotFoundError: No module named 'distutils'

  • 原因:Python 3.12及以上版本默认不再内置distutils模块,而speech_recognition库在加载pyaudio时依赖该模块。
  • 解决方法:安装包含distutils的setuptools包,执行命令:
    pip install setuptools
    
  • 额外提示:若后续出现pyaudio相关报错,需确保该包已正确安装,可执行pip install pyaudio;Windows用户若直接安装失败,可下载对应Python版本的whl文件手动安装。

2. 处理TypeError: catching classes that do not inherit from BaseException is not allowed

  • 原因:捕获异常时错误地给异常类添加了括号(),导致Python将其当成实例而非类,无法正常捕获异常。
  • 解决方法:移除异常类后的括号:
    原错误代码:
    except speech_recognition.UnknownValueError():
    
    修改后:
    except speech_recognition.UnknownValueError:
    

修改后的完整测试代码

import speech_recognition
import pyttsx3

recognizer = speech_recognition.Recognizer()

while True:
    try:
        with speech_recognition.Microphone() as mic:
            recognizer.adjust_for_ambient_noise(mic, duration=0.2)
            audio = recognizer.listen(mic)

            text = recognizer.recognize_sphinx(audio)
            text = text.lower()

            print(f"Recognized {text}")

    except speech_recognition.UnknownValueError:
        recognizer = speech_recognition.Recognizer()
        continue

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:33:22