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

制作带语音识别的Python聊天机器人时遇ModuleNotFoundError求助

问题解决步骤

1. 安装缺失的依赖模块

报错ModuleNotFoundError: No module named 'speech_recognition'是因为未安装speech_recognition库,同时代码用到的pyttsx3也需要安装,执行以下命令:

  • 打开命令提示符/终端,运行:
    pip install SpeechRecognition pyttsx3 requests
    
    若系统同时存在Python2和Python3,改用pip3:
    pip3 install SpeechRecognition pyttsx3 requests
    

2. 代码中的其他潜在问题修复

除模块缺失外,代码还有几处需调整才能正常运行:

  • API密钥错误:天气接口中使用了OpenAI的密钥,这不是OpenWeatherMap的合法密钥。需去OpenWeatherMap官网注册获取免费API密钥,替换该值。
  • 温度单位优化:接口返回的温度为开尔文,可转换为用户更习惯的摄氏度:temperature_celsius = round(temperature - 273.15, 1),再播报该值。
  • 异常处理补充:请求天气接口时可能出现网络错误或地点不存在的情况,需补充捕获相关异常,避免程序崩溃。修改后的天气功能代码示例:
    if "weather" in user_input:
        speak("I can check the weather for you. Please provide the location.")
        location = listen_to_audio()
        # 替换为你的OpenWeatherMap API密钥
        api_key = "你的OpenWeatherMap密钥"
        weather_url = f"https://api.openweathermap.org/data/2.5/weather?q={location}&appid={api_key}"
        try:
            response = requests.get(weather_url)
            response.raise_for_status()
            data = response.json()
            temperature = data["main"]["temp"]
            temperature_celsius = round(temperature - 273.15, 1)
            weather_description = data["weather"][0]["description"]
            speak(f"The temperature in {location} is {temperature_celsius} degrees Celsius with {weather_description} weather.")
        except requests.exceptions.RequestException:
            speak("Sorry, I couldn't fetch the weather data. Please try again later.")
        except KeyError:
            speak("Sorry, I couldn't find that location. Please try another one.")
    

内容的提问来源于stack exchange,提问作者ShadowDBoss Pranav Sathya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:57:17