Python语音识别冗余转录信息输出问题解决咨询
解决speech_recognition库语音识别冗余输出问题
你遇到的冗余输出(result2:及后续字典内容)是speech_recognition库内部的调试信息,并非你代码中的print语句导致,以下是两种解决方法:
方法1:调整日志级别抑制库内部输出
speech_recognition依赖logging模块输出调试内容,只需将日志级别调高至WARNING及以上,即可屏蔽这类冗余信息:
import logging # 设置日志级别为WARNING,仅输出警告及错误信息 logging.basicConfig(level=logging.WARNING) import speech_recognition as sr def listen(): r = sr.Recognizer() with sr.Microphone() as source: print("Listening..") r.pause_threshold = 1 audio = r.listen(source,0,5) try: print("Recognizing..") query = r.recognize_google(audio, language='en-in', show_all=False) print(f'You said: {query}') except: return "" query = str(query) return query.lower()
方法2:临时重定向标准输出屏蔽冗余内容
如果调整日志级别无效,可在调用识别函数时临时将标准输出定向到空设备,执行完成后恢复:
import sys import speech_recognition as sr def listen(): r = sr.Recognizer() with sr.Microphone() as source: print("Listening..") r.pause_threshold = 1 audio = r.listen(source,0,5) try: print("Recognizing..") # 保存原标准输出对象 original_stdout = sys.stdout # Linux/macOS用'/dev/null',Windows替换为'NUL' with open('/dev/null', 'w') as dev_null: sys.stdout = dev_null # 在此期间库的调试输出会被屏蔽 query = r.recognize_google(audio, language='en-in', show_all=False) # 恢复标准输出 sys.stdout = original_stdout print(f'You said: {query}') except: # 异常场景也要确保恢复标准输出 sys.stdout = original_stdout return "" query = str(query) return query.lower()
内容的提问来源于stack exchange,提问作者Yajur Sharma
相关产品推荐
相关产品推荐

