You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:06:18