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

如何消除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ş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:30:07