如何消除Python SpeechRecognition库录音时的自动输出内容
解决Python SpeechRecognition自动输出识别结果的问题
常见原因及修复方案
1. 关闭CMU Sphinx引擎的调试日志
如果你使用recognize_sphinx进行离线识别,该引擎默认会输出调试级别的日志信息,表现为自动打印识别相关内容。通过调整日志级别可以关闭:
import logging # 将speech_recognition库的日志级别设为WARNING,屏蔽调试输出 logging.getLogger("speech_recognition").setLevel(logging.WARNING)
2. 自定义后台监听的回调函数
若使用listen_in_background实现后台语音监听,默认的回调逻辑会自动打印识别结果。你需要替换为自定义回调,去掉打印操作:
import speech_recognition as sr def custom_callback(recognizer, audio_data): # 仅执行识别逻辑,不输出结果 try: recognized_text = recognizer.recognize_google(audio_data) # 此处不要添加print(recognized_text)语句 except sr.UnknownValueError: # 处理无法识别的情况,无需打印 pass except sr.RequestError as e: # 处理请求错误,无需打印 pass # 初始化识别器和麦克风 r = sr.Recognizer() mic = sr.Microphone() # 传入自定义回调启动后台监听 stop_listening = r.listen_in_background(mic, custom_callback)
3. 排查代码中的打印语句
检查你自己的代码或引用的封装函数,是否存在直接打印识别结果的print()语句,找到后删除或注释即可。
4. 全局屏蔽库的非必要日志
如果上述方法无效,直接将speech_recognition库的日志级别设为ERROR,彻底屏蔽所有非错误类输出:
import logging logging.basicConfig() logging.getLogger("speech_recognition").setLevel(logging.ERROR)
内容的提问来源于stack exchange,提问作者İsmail Can Karataş
相关产品推荐
相关产品推荐

