“语音预训练模型”不是一个单一类别。wav2vec 2.0 学的是可迁移连续表示,EnCodec 学的是可重建的离散码流,AudioLM 学的是音频 Token 分布,Kimi-Audio、Qwen-Omni 一类系统则把感知、语言推理和语音生成接成完整产品。它们位于不同层,不能用同一个榜单替代架构判断。
一、连续表征:先让大量无标注波形变得可迁移
早期语音系统依赖大量人工转写。自监督 encoder 改变了数据接口:先在无标注波形上学习上下文表示,再用少量标注适配 ASR、说话人、情感或分离任务。输出是每帧一个连续向量,不是可以直接播放的音频。
| 模型 | 预训练目标 | 工程取舍 |
|---|---|---|
| wav2vec 2.0 | 从负样本中识别被遮帧的量化目标 | 少标注 ASR 强,但对比负样本与学习码本较复杂 |
| HuBERT | 预测离线聚类产生的隐藏单元 | 目标稳定;聚类—训练迭代成本高 |
| WavLM | 隐藏单元预测 + 混合语音去噪 | 同时强化内容、说话人与真实噪声场景 |
| BEST-RQ / USM | 预测冻结随机投影码本标签 | 目标简单易扩展;最终能力仍依赖监督与文本数据 |
这一层解决的是“如何听懂”,不是“如何说话”。连续向量保留丰富细节,也适合通过注意力软选择信息;但它没有有限词表,不能直接套用成熟的 next-token 生成接口。
二、Audio Tokenizer:给 Transformer 一个可生成的音频词表
SoundStream 与 EnCodec 将 encoder 输出送入 RVQ,多层码本把每帧压成若干整数索引,decoder 再从这些索引重建波形。离散化使音频第一次像文本一样拥有有限词表,也让码率成为可计算的系统参数。
bitrate = frame_rate × codebooks × log₂(codebook_size)但重建友好的 Token 不一定易于语言建模。一个高保真 codec 可能每秒产生数百个声学 Token,内容、音色和噪声纠缠在一起。SpeechTokenizer 和 Mimi 因此把 SSL 教师的语义蒸馏到首码本,让第一层更适合长程语言建模,后续残差码本补音色与细节。
它只定义波形与符号之间的接口。即使 Token 能重建清晰语音,也不表示它知道事实、能遵循指令或会对话;这些能力来自后续 LM 训练。
三、Speech LM:学习“下一个声音符号是什么”
有了离散 Token,生成模型可以学习音频序列分布。真正困难的是序列宽度:假设 50 Hz、8 个码本,每秒就是 400 个 Token 位置;30 秒音频涉及 12,000 个码本符号,逐个自回归会很慢。
tokens_per_second = frame_rate × codebooks
50 × 8 = 400 codebook tokens/s| 路线 | 代表模型 | 如何控制复杂度 |
|---|---|---|
| 层次化自回归 | AudioLM | 先生成低速语义 Token,再生成粗/细声学 Token |
| 文本条件 codec LM | VALL-E | 把 TTS 视为条件 codec language modeling |
| 掩码并行生成 | SoundStorm | 按层、按迭代并行填充大量声学 Token |
| 时间 × 码本两级模型 | Moshi | Temporal Transformer 管跨时间语义,Depth Transformer 补帧内码本 |
Speech LM 让声音续写、零样本 TTS 和实时对话成为可能,但“能生成自然语音”仍不等于“能进行可靠推理”。早期系统通常需要文本 LM 或语义 Token 模型提供内容,再由声学模型实现声音。
四、原生语音 LLM:把感知、推理、发声和时间控制连起来
原生语音 LLM 的变化不是简单增加一个 TTS 头,而是让音频输入和输出参与统一训练,使模型能利用语气、环境声和说话人信息,并在回答时控制自己的语音。实际架构仍通常保留模块边界。
| 系统 | 输入接口 | 语义骨干 | 输出接口 | 关键设计 |
|---|---|---|---|---|
| GLM-4-Voice | 12.5 Hz 单码本语音 Token | GLM-4-Voice-9B | 语音 Token + flow decoder | 文本/语音交错的 Streaming Thoughts |
| Kimi-Audio | 连续音频 encoder | 7B decoder-only LM | 离散 audio tokenizer | 理解与生成联合,audio RL |
| Qwen3-Omni | 多模态 encoder | Thinker MoE | Talker 多码本 codec | Thinker-Talker 解耦实时生成 |
| Moshi / PersonaPlex | 用户 Mimi 多码本流 | Temporal LM | 助手 Mimi 多码本流 | 用户/助手并发时间线 |
| StepAudio 2.5 | 统一 audio-language 表示 | 共享 backbone | 任务化解码 | ASR/TTS/Realtime 分别后训练 |
到了这一层,主要瓶颈从单句音质转为系统行为:首包延迟、何时开口、可否打断、长对话声音稳定、回声与重叠、工具等待,以及声音克隆的安全边界。
五、为什么连续表征没有被 Audio Token 淘汰
离散 Token 便于生成和压缩,但量化必然丢信息;连续表示保留细粒度声学特征,更适合输入理解。文本 Token 又是事实知识、指令数据和长程推理最成熟的载体。三种接口各有优势,因此现代系统常采用非对称结构:
音频输入 → 连续 encoder hidden states ┐
文本输入 → 文本 token / embeddings ├→ 语言模型 / Thinker
└→ 文本 token + 离散语音 token → decoder → 波形
| 表示 | 最擅长 | 主要代价 |
|---|---|---|
| 连续声学表示 | 高保真感知、软对齐、下游理解 | 没有紧凑词表,不便直接生成 |
| 文本 Token / hidden state | 知识、指令、可解释语义规划 | 丢失音色、情绪和非语音声音 |
| 离散音频 Token | 压缩、生成、流式传输 | 量化损失、长序列、多码本计算 |
因此真正的演进不是“连续 → 离散 → 端到端”的线性替代,而是接口逐层增加:连续 encoder 打开无标注感知,Tokenizer 打开可生成音频,Speech LM 学会声音分布,原生语音 LLM 再把知识、交互和真实时间约束接进来。
输入是连续还是离散?输出是文本还是可播放语音?语言知识在哪个表示空间里?用户和助手的时间线是轮次式还是并发流?这四个答案比“是否端到端”的标签更有信息量。
主要一手资料
- wav2vec 2.0 · HuBERT · WavLM · USM
- SoundStream · EnCodec · SpeechTokenizer
- AudioLM · VALL-E · SoundStorm
- Moshi · GLM-4-Voice · Kimi-Audio · Qwen3-Omni
评论加载中...