语音能力

音频媒体管道

编解码、重采样、RNNoise 降噪、路由与事件总线。

MCP API

media 包提供音频处理的底层能力,用于在 ASR/TTS 和传输层之间做格式转换和质量增强。

处理能力

模块说明
codecG.711 (PCMU/PCMA)、G.722、Opus、PCM 编解码
resampler采样率转换(如 8kHz ↔ 16kHz)
rnnoiseRNNoise AI 降噪(CGO,可选编译)
lowpass低通滤波
router多路音频路由
eventbus音频事件总线
encoder流式编码器池(Opus、G.711 等)

管道组装

import "github.com/LingByte/lingllm/media"

pipeline := media.NewPipeline(
    media.CodecNode(),      // 编解码
    media.ResampleNode(),   // 重采样 8k→16k
    media.DenoiseNode(),    // RNNoise 降噪
    media.LowPassNode(),    // 低通滤波
    media.RouteNode(),      // 路由分发
)

pipeline.Process(ctx, audioFrame)

编解码器

media/encoder 提供多种编码格式的注册表和对象池:

编码说明
pcm原始 PCM
pcmu / pcmaG.711 μ-law / A-law
g722G.722 宽带语音
opusOpus(WebRTC 常用)
enc := encoder.Get("opus")
encoded, _ := enc.Encode(pcmFrame)

在语音会话中的角色

100%
  • 上行:传输层音频 → 解码 → 重采样到 16kHz → 降噪 → VAD → ASR
  • 下行:TTS PCM → 编码为目标格式 → 传输层发送

RNNoise 降噪

RNNoise 通过 CGO 编译,构建时需启用 CGO:

CGO_ENABLED=1 go build ./...

未启用 CGO 时自动降级为 stub 实现(透传音频)。

相关地址

此页面对您有帮助吗?

本页内容