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

Python语音识别程序显示Listening但麦克风无法拾音问题求助

问题排查与解决方案

核心错误原因

  1. 识别方法传参错误:takeCommand函数中调用recognize_google时第一个参数传入了Recognizer实例r,实际应该传入录音得到的audio对象,这是导致代码无法正常识别语音的直接原因。
  2. 缺少环境噪音校准:代码直接调用listen方法接收语音,未提前校准环境噪音,会导致识别器将背景音判定为无效输入,长时间等待不会进入识别环节。

修复后的可运行代码

import pyttsx3 
import speech_recognition as sr 
import datetime

engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)


def speak(audio):
    engine.say(audio)
    engine.runAndWait()
 

def wishMe():
    hour = int(datetime.datetime.now().hour)
    if hour>=0 and hour<12:
        speak("Good Morning!")
    elif hour>=12 and hour<18:
        speak("Good Afternoon!")   
    else:
        speak("Good Evening!")
    speak("Hey Sir.")

def takeCommand():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        # 新增环境噪音校准
        r.adjust_for_ambient_noise(source, duration=0.5)
        print("Listening...")
        r.pause_threshold = 1
        audio = r.listen(source)

    try:
        print("Recognizing...")
        # 修正传参错误,第一个参数改为audio
        query = r.recognize_google(audio, language='en-in')
        print(f"User said: {query}\n")
    except Exception as e:
        print("Say that again please...")
        return "None"
    return query

if __name__ == "__main__":
    wishMe()
    takeCommand()

其他潜在问题排查

  • 依赖缺失检查:需要同时安装SpeechRecognition和PyAudio两个依赖,Windows下如果直接pip install pyaudio安装失败,可以先执行pip install pipwin,再执行pipwin install pyaudio完成安装。
  • 系统权限检查:确认当前运行代码的终端/IDE拥有麦克风访问权限,可在系统隐私设置中查看修改。
  • 网络检查:recognize_google依赖谷歌识别接口,需要网络可以正常访问谷歌服务,否则会识别失败,可替换为国内可用的语音识别接口适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:36:00