Windows10下Python3的SpeechRecognition无法检测音频信号求助
我之前在Windows 10上用SpeechRecognition时也碰到过一模一样的问题,给你几个实用的排查和解决方向:
检查麦克风权限:打开Windows设置→隐私和安全性→麦克风,确保「允许应用访问你的麦克风」是开启状态,还要确认你用来运行脚本的终端(CMD/PowerShell)或者IDE在列表里有访问权限——很多时候默认没给终端麦克风权限,这是最容易忽略的点。
确认默认麦克风设备:右键任务栏的音量图标→声音设置→输入,先确认默认选中的麦克风是你正在使用的那个(比如内置麦或者耳机麦)。对着麦克风说话,观察「测试麦克风」的音量条有没有跳动,先确保系统层面能正常捕获声音。
手动调整能量阈值:你看到的
969.067这个能量阈值可能太高了,导致正常说话的声音被判定为背景噪音过滤掉。可以用下面的脚本手动调整阈值并测试:
import speech_recognition as sr # 初始化识别器 r = sr.Recognizer() # 使用默认麦克风作为输入源 with sr.Microphone() as source: # 延长环境噪音检测时长,让识别器更准确判断背景噪音 r.adjust_for_ambient_noise(source, duration=2) print(f"调整后的能量阈值: {r.energy_threshold}") print("现在可以说话了!") # 监听麦克风输入 audio = r.listen(source) # 尝试识别语音 try: print(f"识别结果: {r.recognize_google(audio)}") except sr.UnknownValueError: print("抱歉,没听清你说的内容") except sr.RequestError as e: print(f"调用Google语音识别服务出错了: {e}")
运行这个脚本,看看能不能捕获到你的声音。如果还是不行,可以手动设置更低的阈值,比如r.energy_threshold = 300,再测试。
检查PyAudio依赖:SpeechRecognition依赖PyAudio来访问麦克风,先确认它有没有正确安装。打开终端运行
pip list,看看输出里有没有PyAudio。如果没有,运行pip install pyaudio安装;如果安装失败(Windows上常见编译错误),可以下载对应Python版本的预编译whl文件,再用pip install 文件名.whl安装。排除系统/硬件问题:试试Windows自带的「语音识别」工具(搜索栏搜“语音识别”),如果它也无法检测到声音,那大概率是麦克风硬件或者系统音频设置的问题,需要先排查这部分。
内容的提问来源于stack exchange,提问作者Paul Kremershof

