跳转至

语音语言模型

语音语言模型把语音感知、语言推理与语音生成连接起来。当前系统主要有三级联、语音条件语言模型和端到端语音到语音三种路线。它们的核心差异不是「是否使用大模型」,而是信息在模块之间以文本、连续表示还是音频 token 传递。

快速开始

先实现 ASR -> 文本 LLM -> TTS 的级联基线,并记录每段延迟、转写、LLM 回复和合成文本。级联基线便于观测与替换组件,是判断端到端模型是否真的改善体验的参照。

随后再测试语音原生路线,并对齐以下条件:相同任务、相同输入音频、相同输出语言、相同硬件和相同安全策略。至少比较任务成功率、首包延迟、端到端延迟、打断响应、情感保留和错误可追踪性。

级联系统

级联系统的数据流为:

\[ \text{speech}\;\to\;\text{ASR text}\;\to\;\text{LLM text}\;\to\;\text{TTS speech} \]

优点是组件成熟、文本中间态可审核、知识与工具调用复用容易;缺点是 ASR 错误会传递给 LLM,文本会丢失语气、犹豫、笑声等副语言信息,多段串行处理还会增加延迟。

工程上可以用流式 ASR 的稳定前缀提前启动 LLM,再把 LLM 的稳定句段送给流式 TTS。这样仍是级联系统,但不必等待整轮结束。难点是回滚:ASR 或 LLM 前缀改变后,已经播放的音频无法撤回。

语音条件语言模型

语音条件语言模型使用音频 Encoder 把帧表示投影到文本 LLM 的 embedding 空间,再生成文本或工具调用。设音频表示 \(H_a\in\mathbb{R}^{B\times T_a\times D_a}\),适配器输出 \(P(H_a)\in\mathbb{R}^{B\times T'\times D_{\text{LM}}}\),与文本 embedding 拼接后由 LLM 建模。

这条路线保留文本输出接口,适合语音问答、理解和多模态指令,但如果最终仍由独立 TTS 发声,声学信息能否传到输出取决于中间条件设计。AudioPaLM 展示了把文本模型与语音 token 结合以支持识别、翻译和语音生成的统一思路;SeamlessM4T 则统一多语言语音与文本翻译任务。

端到端语音到语音

端到端模型直接建模输入语音 token 与输出语音 token:

\[ \mathcal{L}_{\text{audio}} =-\sum_{t=1}^{T}\sum_{q=1}^{Q} M_{t,q}\log p(c_{t,q}\mid c_{<t,*},c_{t,<q},x) \]

目标 codec token 为 \(C\in\mathbb{N}^{B\times T\times Q}\),logits 可表示为每个码本各自的 \([B,T,K_q]\)。多流模型还会并行建模用户输入、助手输出和内部文本,以处理重叠说话和边听边说。Moshi 使用多流音频 token 与时间对齐的内部文本来实现实时全双工对话,是这一路线的代表。

端到端模型能保留更多语气和交互线索,但更难审计:错误可能来自 codec、语义建模、轮次管理或生成采样。必须保存可解释的中间文本或事件日志,不能只保留最终音频。

实时交互

语音交互延迟至少包含:

\[ L_{\text{total}} =L_{\text{capture}}+L_{\text{encode}}+L_{\text{reason}} +L_{\text{generate}}+L_{\text{playback}} \]

首包延迟只测第一段可播放音频,不能代表整轮完成时间。全双工还需要处理:

  • 用户打断时立即停止或衰减助手音频。
  • 用户与助手重叠说话时保持两个独立状态流。
  • VAD 边界不明确时避免频繁抢话。
  • 工具调用期间提供可中断的状态反馈,但不伪造已经完成的结果。

路线选择

需求 更合适的起点 原因
企业客服、强审计 级联 文本可检查,组件和知识库易替换
语音内容理解与工具调用 语音 Encoder + 文本 LLM 复用文本生态,输出结构稳定
多语言语音翻译 统一语音/文本模型 减少多个独立模型的误差传递
低延迟自然对话 流式语音到语音 能建模韵律、重叠和打断
资源受限设备 小型 ASR + LLM 服务 + 本地 TTS 便于按算力拆分部署

安全与评测

除了文本安全,还要评估背景声触发、隐藏语音指令、音色冒用、录音隐私和合成内容标识。端到端语音输出不能绕过文本模型已有的工具权限和确认流程。

一个完整测试集应包含安静语音、噪声、口音、代码切换、重叠说话、用户打断、长停顿和恶意音频。最终报告要把模型能力、VAD/流式策略、网络延迟和音频播放策略分开,否则无法定位体验变化来自哪一层。