Speech Recognition库listen()函数卡死无输出问题求助
Speech Recognition库listen()函数卡死的解决方法
检查麦克风权限
Windows系统中,打开「设置」→「隐私和安全性」→「麦克风」,确保允许应用访问麦克风,并且你的Python虚拟环境(或Python主程序)已被授予麦克风访问权限。指定正确的麦克风设备
系统可能默认选择了错误的麦克风设备,先运行以下代码列出所有可用麦克风:import speech_recognition as sr for index, name in enumerate(sr.Microphone.list_microphone_names()): print(f"麦克风设备 {index}: {name}")找到你正在使用的麦克风对应的索引,修改原代码指定设备:
import speech_recognition as sr r = sr.Recognizer() # 替换为目标麦克风的索引 target_mic_index = 0 with sr.Microphone(device_index=target_mic_index) as source: r.pause_threshold = 1 print('say') audio = r.listen(source) text = r.recognize_google(audio, language='en-in') print(f'user said:{text}')为listen()添加超时参数
避免函数无限等待语音输入,给listen()添加timeout(等待语音的最长时间)和phrase_time_limit(录音的最长时长)参数:audio = r.listen(source, timeout=5, phrase_time_limit=10)上述代码表示最多等待5秒开始录音,录音时长不超过10秒。
增加环境噪音校准
如果环境噪音较大,listen()可能会一直等待静音信号,先添加噪音校准步骤:with sr.Microphone(device_index=target_mic_index) as source: r.adjust_for_ambient_noise(source, duration=1) # 用1秒时间校准环境噪音 r.pause_threshold = 1 print('say') audio = r.listen(source) text = r.recognize_google(audio, language='en-in') print(f'user said:{text}')
内容的提问来源于stack exchange,提问作者Om Ghosal
相关产品推荐
相关产品推荐

