Mac上使用speech_recognition模块无语音识别结果的问题求助
Mac下SpeechRecognition模块无语音识别结果问题解决
问题情况
在Mac系统运行Python的speech-recognition模块,程序无报错,但说话后无法生成对应文本。调整audio_data = init_rec.record(source, duration=5)中的duration参数为1或10秒,问题仍未解决。
运行代码
import speech_recognition as sr import pyaudio init_rec = sr.Recognizer() print("Let's speak!!") with sr.Microphone() as source: audio_data = init_rec.record(source, duration=5) print("Recognizing your text.............") text = init_rec.recognize_google(audio_data) print(text)
终端输出
% python3 voicerto.py Let's speak!! Recognizing your text.............
排查与解决步骤
检查麦克风权限
打开Mac系统偏好设置→安全性与隐私→隐私→麦克风,确认运行Python的终端(Terminal/iTerm等)已被授权访问麦克风。添加环境噪音处理
录制前先监听环境噪音,让识别器自动调整阈值,修改代码如下:import speech_recognition as sr import pyaudio init_rec = sr.Recognizer() with sr.Microphone() as source: init_rec.adjust_for_ambient_noise(source, duration=1) # 监听1秒环境噪音 print("Let's speak!!") audio_data = init_rec.record(source, duration=5) print("Recognizing your text.............") text = init_rec.recognize_google(audio_data) print(text)确认麦克风设备正确
如果有多个麦克风设备,先列出所有设备,再指定正确的索引初始化麦克风:# 先执行这段代码查看设备列表 import speech_recognition as sr for index, name in enumerate(sr.Microphone.list_microphone_names()): print(f"麦克风设备:{name},索引:{index}")找到目标设备索引后,修改
sr.Microphone(device_index=目标索引)即可。检查网络连接
recognize_google依赖谷歌在线语音识别API,确保网络连接正常。若网络受限,可尝试离线识别引擎(如recognize_sphinx,需额外安装依赖包)。测试麦克风硬件
使用Mac自带的「语音备忘录」录制音频,确认麦克风能正常收音,排除硬件故障。
内容的提问来源于stack exchange,提问作者Saud Alzahri
相关产品推荐
相关产品推荐

