全双工系列前三篇拆了三个系统:Moshi 用 17 条并行流改架构,LSLM 用双通道融合做机制研究,OmniFlatten 用分块摊平改数据。三家路数各异,却共用一个地基:把语音离散成 token、塞进 LLM 的词表。这篇拆的两个新系统,都开始拆这块地基——
- SALMONN-omni(清华 + 字节跳动 + 剑桥,2025 年 5 月,arXiv:2505.17060):第一个词表里完全没有音频 codec 的独立全双工语音 LLM;
- Covo-Audio(腾讯,2026 年 2 月,arXiv:2602.09823):7B 端到端工业级系统,输入侧回归连续特征、输出侧保留离散 token 的混合双流,并把全双工直接做进预训练。
一个是学术界的彻底派,一个是工业界的折中派,但两家在关键处殊途同归。合在一篇里拆,比分开更能看清这条新趋势。
一、旧地基的裂缝:智能税
先算 codec 路线欠下的账。把语音 token 塞进词表后,模型必须用同一套参数同时精通两种「语言」,代价有三:
- 知识退化。 Moshi 从 Helium 的 MMLU 54.3 掉到 49.7——这还是靠一半训练步穿插纯文本才守住的;OmniFlatten 的 0.5B 版本对话评分距同款纯文本模型差了两分多。SALMONN-omni 论文里补了一刀:在口语问答上,Moshi 的成绩(Llama Questions 60.8%)远低于同期靠文本智能吃饭的半双工模型。
- 数据饥渴。 弥合模态鸿沟要海量配对数据——Moshi 用了 700 万小时,某些半双工系统(如 Kimi-Audio)报到 1300 万小时。
- 对齐枷锁。 Moshi 的内心独白需要 Whisper 词级时间戳把文字铺上时间轴,Covo-Audio 点名批评了这类「词级细对齐」的脆弱:强制对齐一错,数据就脏。
裂缝的根源在于一个不对称:LLM 的智能长在文本表示上,语音 token 是外来户。两篇新工作给出的修法方向一致——离 LLM 的文本世界越近越好,能不离散就不离散。
二、SALMONN-omni:把 codec 彻底请出去
2.1 三件套:编码器、LLM、合成器,全靠嵌入连接
SALMONN-omni 的架构宣言写在标题里:standalone(单模型独立完成全双工,不像 VITA、Freeze-Omni 那样跑两个 LLM 进程轮班)、without codec injection(词表零音频 token)。三个部件用隐藏嵌入直连:
- 流式编码器:32 层 Mamba(2048 维),从 Whisper-large-v3 蒸馏而来——老师是非流式的,学生用 L1 损失贴近老师的表示,天生流式(Mamba 的状态空间结构不需要回看)。输出 25 Hz 的连续嵌入。
- LLM 主干:Llama-3-8B-Instruct,只加 LoRA(秩 32),主干冻结——文本智能被物理性地保护起来。
- 流式合成器:CosyVoice2-0.5B 改造。原版吃文字,这里改成直接吃 LLM 的输出嵌入(过几层线性变换对齐),继承其「N 个文字 token 配 M 个语音 token」的交错生成。
听和说都不过量化关:输入是编码器嵌入,输出是给合成器的嵌入。LSLM 曾在听觉一侧用过连续特征,SALMONN-omni 把这个选择推广到了两侧。
2.2 时间感:80 毫秒一个块
没有 codec 的帧率作节拍器,时间感需要显式构造。SALMONN-omni 把对话切成 80ms 的时间块:每块先灌入环境流与助手流的语音嵌入,再让 LLM 生成一个文字 token。凑满 4 个文字 token,合成器一次产出 12 个语音 token——480ms 的声音。从决定开口到声音出来,延迟约 320ms。
注意「助手流」这个细节:模型把自己刚说过的话(含回声信息)也作为输入流灌回来。消融显示这一手非常关键——只有环境流时轮换成功率约 70%,加上助手流跳到约 90%。模型需要「听见自己」,才能判断自己说到哪了、该不该停。这与 Moshi 的多流建模思路一脉相承,只是从离散 token 换成了连续嵌入。
2.3 think 策略:状态切换就是下一个 token
全双工的灵魂问题——什么时候开口、什么时候闭嘴——SALMONN-omni 不设任何外挂预测器,而是让 LLM 用生成来回答。论文口号:your LLM is secretly a full-duplex predictor(你的 LLM 偷偷就是个全双工预测器)。具体试了两种:
- 隐式 think:每个时间块基于语音嵌入预测一个状态 token(听 / 说),但状态 token 不回喂输入;
- 显式 think:把
<think>和<shift>混进输入序列——听的时候每块生成一个<think>(模拟人「边听边琢磨什么时候接话」的过程),状态切换(双向)都用<shift>标记,生成完文字等语音追上时也用<think>占位。
显式完胜。AlpacaEval 上 GPT 评分 4.48 vs 3.73——差距不在架构,在于让状态决策成为自回归序列的一部分,与 LLM 的生成本能对齐;隐式方案的状态预测游离在序列外,少了从输出回到输入的反馈闭环。这和 LSLM 的 IRQ token、Moshi 的静音坍缩是同一哲学的第三次胜利:双工行为不是模块,是词表里的公民。
2.4 用 RL 调教「被打断的分寸」
三阶段训练的前两步中规中矩(先接编码器练理解,再接合成器端到端练对话),第三步是首创:用 DPO 调全双工行为。SFT 之后的模型有个毛病——太容易被打断,精确率低,说明它对「这句插话是不是真的冲我来的」理解不深。DPO 训练过程还有个有趣的动态:模型先矫枉过正变得极度保守(几乎不让打断),随后逐渐回弹,最终超过 SFT 水平。
上下文相关打断(context-dependent barge-in)是这套评测里最有区分度的场景:插话内容与当前话题相关才算真打断,无关问题和第三人闲聊都该无视。再叠加回声干扰:让模型听到 1 倍音量的自己,SALMONN-omni 的打断判别 F1 保持 0.88,Moshi 0.80,而依赖外挂 VAD 的 Freeze-Omni 从 0.68 崩到 0.17——VAD 分不清回声和人声,独立建模的全双工可以。这是「standalone」价值最硬的一条证据。
2.5 成绩:既要智能,也要双工
自主轮换(predicted turn-taking,模型自己决定何时开口)下,SALMONN-omni 全面刷新开源全双工的纪录:Llama Questions 79.3%、TriviaQA 63.6%,对 Moshi、Freeze-Omni 平均相对提升 35.9%。更狠的是 oracle 设定下和半双工大模型同台:总分压过 GLM-4-Voice、Qwen2.5-Omni、Kimi-Audio——后者训练数据多达 1300 万小时,而 SALMONN-omni 的训练量不过 ASR 48 万条 + 问答 73 万条 + 对话 8 万条的量级。冻结主干 + 连续嵌入,让它用零头的数据保住了文本智能。轮换时机预测同样领先:短促快问的 TriviaQA 上成功率 92.8%,Moshi 只有 37.1%。
三、Covo-Audio:工业版的折中与野心
Covo-Audio 是腾讯的 7B 端到端音频语言模型(LALM)技术报告,野心覆盖语音理解、音频推理、共情对话、全双工的全家桶。这里聚焦与本系列相关的主线:它怎么处理离散与连续之争,以及全双工怎么落地。
3.1 混合双流:连续进,离散出
Covo-Audio 没有 SALMONN-omni 那么决绝,选了不对称方案:
- 输入侧连续:Whisper-large-v3 编码(50 Hz)后,过一个三级降采样 adapter 压到 6.25 Hz——每秒才 6 个多向量,极其紧凑,却保留了完整的声学细节。论文说这是「更高效、更无损地感知用户表达与意图」的通路。
- 输出侧离散:自研 tokenizer(WavLM-large + 单层 VQ,16384 码本、25 Hz),训练目标是 ASR 损失 + TTS 重建损失 + 音高损失三合一——语义声学一肩挑,韵律显式保底。解码走流匹配 + BigVGAN 两级还原 24 kHz 波形。
为什么不对称?听的一侧,离散化是纯损失(信息丢了还要多训一个「翻译层」);说的一侧,离散 token 是自回归生成的自然接口,配上文字交错(下述)就能稳住语义。耳朵要保真,嘴巴要好训——这个分工日后很可能成为常识。
3.2 三模态分层交错:预训练就把账算清
Covo-Audio 的底座是 Qwen2.5-7B-Base,预训练两阶段共 2T token(音频池 800 万小时、文本池 3T token)。配方里两个设计值得说:
- 三模态交错。序列里同时出现连续特征 a_c、离散 token a_d、文字 t 三种元素,组合成 a_c→t→a_d(链式)和 a_c→t|a_d(文字与离散 token 耦合)等模式——连续、离散、文字三个表示空间在预训练里就互相校准,而不是留到微调再补。
- 分层交错。GLM-4-Voice、Moshi 式的词级交错对强制对齐的错误极其敏感;Covo-Audio 改在短语级 + 句级两个粒度交错,保住长句的语义完整性和韵律连贯,也顺便甩掉了词级时间戳的依赖。
同样重要的是「智能保卫战」的配比:纯文本任务占了预训练的 800B token,后训练里还引入 KL 在线蒸馏——用更强的文本 LLM 的 top-20 logits 当软目标,把文本智能钉死在原地。Moshi 用「一半文本批次」交的税,Covo-Audio 用蒸馏交,手段升级但问题意识相同。
3.3 原生全双工:不改多阶段课程,直接进预训练
全双工版 Covo-Audio-Chat-FD 的构建方式是对 OmniFlatten 的一次正面翻案。OmniFlatten 用四阶段课程渐进逼近全双工;Covo-Audio 反其道:把全双工数据(5B token)直接放进预训练,微调时半双工、全双工数据一锅端、一步训成——论文明说「比多阶段渐进方案效果更好」。全双工从「后天补课」变成「先天能力」,前提是预训练阶段就见过双流交错的世界。
排布上它是 OmniFlatten 的直系后代:用户流与模型流分块交错,块比 1:4(输入特征 6.25 Hz、输出 token 25 Hz,每块 0.16 秒);模型块内先出 1 个文字 token 再出 4 个语音 token——文字打头稳语义,块级内心独白。状态控制则和 SALMONN-omni 神同步:听的时候持续输出 THINK,用户说完立刻 SHIFT 进入说话态,边说边听,检测到打断(或说完)就吐 BREAK 回到听——状态机的三个态,三个词表里的 token。
3.4 生产细节:智能与音色解耦
技术报告里最「工业」的一笔:intelligence-speaker decoupling。痛点是换音色的成本——端到端模型里音色和对话能力纠缠在同一批合成对话数据里,想上新声线就得重造几千小时对话语料。Covo-Audio 的解法分两步:训练时用数千个随机说话人把「说什么」与「谁在说」解耦;想用某个高质量 TTS 音色时,把现成的 TTS 录音改造成伪对话格式(配上下文),且文本响应部分不算损失——声学上学到新音色,语义上不被 TTS 语料的非对话文本带偏。效果:换音色版(Covo-Audio-Chat-TTS)在 URO-Bench 上几乎无损。
对话能力本身也过硬:URO-Bench 中文赛道的四项推理、两项口语对话全部第一(压过 Qwen3-Omni 与 Fun-Audio-Chat),VCB-Bench 的指令遵循与全部三项鲁棒性(变声、噪声、内容扰动)登顶——7B 参数做到这个覆盖面,预训练配方功不可没。
3.5 全双工成绩:停顿处理成了新战场
全双工行为四项成功率:轮换 99.7%、停顿处理 97.6%、打断 96.81%、附和 93.89%。最扎眼的是第二项的对比:Moshi 53.2%、Freeze-Omni 51.2%——都在「用户话说一半停顿喘口气」时抢答,唯独 Covo-Audio-Chat-FD 能沉住气。
这个指标值得单独抬进系列的评价框架。轮换快不快(OmniFlatten 那篇的战场)之后,「该不该等」正在取代「等多久」成为区分度所在:抢答的模型响应时延再低也是负体验。Covo 自己也没满分——报告承认在含长停顿的测试集(GaokaoEval)上仍有早抢话导致的掉分,全双工版对话分数比半双工版略低的主要来源就是它。停顿是语义问题,不是声学问题:「嗯……让我想想」和「说完了」的区别,只有懂内容的模型才判得动——这恰是全双工模型相对外挂 VAD 的根本优势所在。
四、合流:五个共同选择
把两家放一起,对照出的共性比差异更有信息量:
| 维度 | SALMONN-omni | Covo-Audio-Chat-FD |
|---|---|---|
| 输入表示 | 连续嵌入(Mamba 编码器) | 连续特征(Whisper + adapter,6.25 Hz) |
| 输出表示 | 连续嵌入 → 合成器 | 离散 token(25 Hz)→ 流匹配解码 |
| 状态控制 | <think> / <shift> | THINK / SHIFT / BREAK |
| 节拍 | 80ms 时间块,每块 1 文字 token | 0.16s 块,1 文字 + 4 语音 token |
| 智能保卫 | 冻结主干 + LoRA | 800B 纯文本 + KL 蒸馏 |
| 全双工习得 | SFT + DPO 行为调优 | 预训练原生 + 一步微调 |
| 规模路线 | 8B、小数据(百万条级) | 7B、大数据(800 万小时) |
五个共同选择——输入不离散化、状态即 token、文字打头稳语义、显式保卫文本智能、RL 进场(SALMONN-omni 用 DPO 调双工分寸,Covo 用 GRPO 调音频推理)——勾勒出 codec 全盛期之后的新共识。放回综述的地图:双工决策依然在 token 流内部(L2 没有变),变的是流里装什么——离散 token 的垄断被打破了,钟摆从「一切皆 token」摆向「智能留在文本域,声学各回各家」。
而两家的分歧——输出侧要不要离散——本质是「合成器信不信得过嵌入」之争。SALMONN-omni 证明了嵌入直驱合成器可行;Covo-Audio 的离散输出则换来了与预训练语料(a_d 序列)的统一和生成接口的简洁。这个分歧大概率不会很快收敛,但输入侧的连续化,看起来已经赢了。
系列至此,五篇拼出了一条完整的弧线:Moshi 证明全双工能造出来(改架构),LSLM 讲清它为什么能行(拆机制),OmniFlatten 证明不改架构也行(改数据),SALMONN-omni 和 Covo-Audio 则开始回答下一个问题——怎么造得既会说话,又不变笨。
参考资料
- SALMONN-omni: A Standalone Speech LLM without Codec Injection for Full-duplex Conversation(arXiv:2505.17060,Yu, Wang et al., 清华 & 字节跳动 & 剑桥,2025)
- Covo-Audio Technical Report(arXiv:2602.09823,腾讯,2026)
- 开源与演示:bytedance/SALMONN、Tencent/Covo-Audio
- 相关论文:Freeze-Omni(外挂 VAD 路线的对照)、CosyVoice2(两家共同的合成器血统)、Mamba
- 站内相关:深入拆解 Moshi、深入拆解 LSLM、深入拆解 OmniFlatten、全双工语音对话系统三张地图