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

如何让recognize_google正确识别Discord语音聊天录制的音频

Discord语音转文字识别失败的解决方法

核心问题:音频格式不兼容

Discord语音采用Opus编码传输,而recognize_google要求输入PCM格式的音频(16kHz采样率、单声道、16位深度)。直接读取录制文件的原始字节流是Opus数据,无法被Google识别服务解析,这是最常见的失败原因。

分步解决方案

1. 安装必要依赖

需要解码Opus音频并处理格式转换,安装以下包:

pip install py-cord SpeechRecognition pydub

注:pydub需要ffmpeg支持,Windows/macOS可直接下载ffmpeg并添加到环境变量,Linux通过包管理器安装(如apt install ffmpeg)

2. 修改回调函数,添加音频格式转换

在once_done回调中,先将Opus音频解码并转换为符合要求的PCM格式,再传入recognize_google:

import speech_recognition as sr
from pydub import AudioSegment
import io

async def once_done(sink, channel):
    recognizer = sr.Recognizer()
    for user_id, file in sink.audio_files.items():
        # 重置文件指针到起始位置
        file.fp.seek(0)
        
        # 读取Opus音频并解码
        opus_audio = AudioSegment.from_file(file.fp, format="opus")
        
        # 转换为Google识别要求的格式:16kHz、单声道、16位
        target_audio = opus_audio.set_frame_rate(16000)\
                                 .set_channels(1)\
                                 .set_sample_width(2)
        
        # 将转换后的音频导出为WAV字节流
        pcm_stream = io.BytesIO()
        target_audio.export(pcm_stream, format="wav")
        pcm_stream.seek(0)
        
        # 创建AudioData并识别
        audio_data = sr.AudioData(pcm_stream.read(), 16000, 2)
        try:
            # 可指定语言,比如zh-CN识别中文
            text = recognizer.recognize_google(audio_data, language="zh-CN")
            await channel.send(f"<@{user_id}> 说:{text}")
        except sr.UnknownValueError:
            await channel.send(f"<@{user_id}> 的语音无法识别")
        except sr.RequestError as e:
            await channel.send(f"识别服务请求失败:{str(e)}")

3. 优化识别准确率的额外措施

  • 提升音量:如果录制的语音音量过小,可在转换格式前添加增益:
    target_audio = target_audio + 15  # 增加15dB音量,根据实际情况调整
    
  • 降噪处理:用speech_recognition的降噪功能预处理音频:
    # 在创建AudioData后添加
    audio_data = recognizer.adjust_for_ambient_noise(audio_data, duration=0.5)
    
  • 权限检查:确保Bot拥有CONNECT、SPEAK、RECORD_AUDIO权限,否则无法正常录制音频。

内容的提问来源于stack exchange,提问作者Lederer Guy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:15:29