开发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
相关产品推荐
相关产品推荐

