📄 dots.tts Technical Report
#语音合成 #流匹配 #自回归模型 #多语言 #低资源 #数据增强 #模型压缩
9/10 | 创新 1.5/2 | 严谨 1.2/1.5 | 实验 1/1.5 | 清晰 1/1 | 影响 1.2/1.5 | 开源 1.5/1.5 | 复现 0.5/0.5 | 工程 1.1/1.5
🔥 9/10 | 前25% | #语音合成 | #数据增强 | #流匹配 #自回归模型 | arxiv
👥 作者与机构
作者:Shi Lian, Changtao Li, Bohan Li, Hankun Wang, Da Zheng, Junfeng Tian, Yufeng Ma, Colin Zhang, Kai Yu。 机构:dots团队,小红书公司(Xiaohongshu Inc.),上海交通大学X-LANCE实验室。
💡 毒舌点评
这篇技术报告展示了一个扎实的工程实现,在多个主流基准上取得了当前开源系统中的最佳成绩,开源也足够慷慨。但它本质上是一份“技术说明书”,而非一篇完整的、具有深厚理论或算法创新的研究论文。创新点更多是对现有模块(如DiTAR的分解思路、SOAR的后训练)的整合与工程化调优,缺乏如“为何三模块解耦能从根本上解决误差累积”这类的理论支撑。实验报告全面,但关键的消融实验(如去掉SOAR、去掉语义编码器)完全缺席,这让“三个互补设计”的贡献声明显得空洞。在“句法复杂性”上表现突出却在“情感”上退步,揭示了模型在“忠实”与“表现力”间的权衡并未解决。总的来说,这是一项优秀的系统工程工作,但距离一篇顶级会议论文在技术深度和论证完备性上还有明显差距。
📌 核心摘要
dots.tts是一个参数量为20亿的端到端连续自回归TTS基础模型。它旨在解决连续表示下长程误差累积的核心问题。其关键创新包含三个互补部分:1)训练一个具备语义结构且易于预测的语义AudioVAE,通过添加WavLM对齐和多任务监督使连续潜在空间更适合AR建模;2)采用全历史条件化的自回归流匹配(AR-FM)头,通过块因果注意力掩码实现并行训练并保持长程一致性;3)应用一种无奖励的自纠正对齐(SOAR)后训练方法,让声学DiT从自身的推理误差中恢复。系统在1.5M小时数据上训练后,在Seed-TTS-Eval基准上取得了最佳的平均WER和SIM。通过CFG感知的MeanFlow蒸馏,模型实现了低延迟语音生成(首包延迟54/85毫秒)。所有代码和模型检查点已在Apache 2.0许可下开源。
🔗 开源详情
- 代码:https://github.com/rednote-hilab/dots.tts (提供完整的训练与推理代码)
- 模型权重:https://huggingface.co/collections/rednote-hilab/dotstts (提供预训练、SOAR后训练、MeanFlow蒸馏三个阶段的完整模型检查点)
- 数据集:论文中未提供统一的数据集获取链接。论文明确提及了使用的大规模多语言语料库包含以下开源数据集:Emilia, LibriTTS-R, HiFi-TTS, HiFi-TTS-2, WenetSpeech4TTS, AISHELL-3, Magicdata, MLS, MSR-86K, IndicVoices-R, EuroSpeech, WaxalNLP-TTS, FLEURS,以及 AutoACD 等。这些数据集可从其原始来源获取。
- Demo:https://rednote-hilab.github.io/dots.tts-demo
- 复现材料:论文中提供了完整的训练配方(包括预训练、自校正对齐和 MeanFlow 蒸馏三个阶段)以及预训练、自校正对齐后和 MeanFlow 蒸馏后的模型检查点。所有材料均在 Apache 2.0 许可证下发布。
- 论文中引用的开源项目:
- Qwen2.5-1.5B Base:论文用作 LLM 骨干的初始化。
- WavLM:用于 AudioVAE 第二阶段训练的帧级对齐损失。
- CAM++:用于提取说话人 x-vector 的编码器。
- BigVGAN / BigVGAN-v2:AudioVAE 解码器的架构基础。
- Flow-matching / Rectified-flow:训练流匹配头的框架。
- Diffusion Transformer (DiT):作为流匹配头的速度场预测器。
- vllm-omni:用于推理效率评估的推理引擎。
- Whisper-Large-v3:用于英文及多语言 ASR 的工具。
- Paraformer:用于中文 ASR 的工具。
🏗️ 方法概述和架构
dots.tts采用三模块解耦架构:语义编码器、LLM骨干、自回归流匹配(AR-FM)头。核心思想是将语义推理与声学渲染分离,以减少长程误差累积。
音频变分自编码器(AudioVAE):
- 功能与目标:将48kHz单声道语音编码为128维、25Hz的连续潜在表示,并解码回波形。训练后冻结,作为骨干网络的固定编码目标和输入表示。
- 架构与训练:遵循HoliTok的训练配方,采用因果卷积编码器和BigVGAN-v2因果变体解码器。训练分两阶段:
- 阶段一(重建质量):优化多周期加子带CQT对抗损失、多尺度梅尔频谱重建损失、特征匹配损失,并结合KL + flow正则化,以获得高保真重建。
- 阶段二(可学习性):在保留阶段一损失的基础上,新增两个监督信号:1)与冻结的WavLM第23层隐藏表示的帧级余弦对齐损失;2)一个由下游编码器和LLM头组成的多任务块,联合优化ASR、情感和说话人分类目标。下游LLM头之后被丢弃,其编码器被保留作为骨干网络中的语义前端。此阶段旨在使潜在空间在保持重建质量的同时,具备语义结构并适合下游LLM建模。
- 数据流:语音输入 -> AudioVAE编码器 -> 25Hz,128维潜在序列 -> [冻结,用于后续]。解码器输入潜在序列,重建语音波形。
语义编码器(Semantic Encoder):
- 功能:将AudioVAE生成的每个25Hz潜在帧块(4帧)压缩为一个6.25Hz的语义嵌入,供LLM在下一步使用。其作用是剥离高方差的声学细节,仅向LLM提供紧凑的历史语义摘要。
- 架构:复用自AudioVAE训练第二阶段的预训练权重。结构包括一个跨步因果卷积投影器(将帧率减半),后接一个24层因果Transformer(隐藏维度1024,FFN维度4096)。输出在时间上两两分组并线性投影至LLM嵌入维度,实现从25Hz到6.25Hz的4倍下采样。
- 数据流:新的25Hz VAE潜在帧块 -> 语义编码器 -> 单个6.25Hz音频语义嵌入 -> 输入LLM下一步。
LLM骨干:
- 功能:处理文本输入,并基于文本和历史音频语义嵌入序列,生成每个音频步骤的隐藏状态,作为AR-FM头的条件。
- 架构与输入:初始化自预训练的Qwen2.5-1.5B Base模型。输入为BPE文本token和6.25Hz音频语义嵌入流,两者共享单一LLM流。支持两种序列布局:
- 普通模式:完整文本作为前缀放在音频序列之前,用于标准TTS。
- 1T1A交错模式:单个BPE文本token与一个6.25Hz音频位置交替出现,直至文本结束标记
<eot>,之后音频继续单独生成。此模式旨在实现低延迟流式对话。
- 数据流:BPE文本token + 历史6.25Hz音频语义嵌入 -> LLM -> 每个音频位置的一个隐藏状态(\(H_n\))-> 作为条件输入AR-FM头。LLM通过AR-FM头反向传播的流匹配损失进行端到端优化。
自回归流匹配头(AR-FM):
- 功能:在LLM隐藏状态(\(H_n\))的条件下,生成下一个四帧(25Hz)的VAE潜在块(\(P_n\))。
- 架构:基于扩散Transformer(DiT),具有18层,隐藏维度1024,FFN维度4096,使用RoPE、RMSNorm with QK-norm,并通过adaLN-zero由扩散时间步和说话人嵌入进行调制。
- 训练与推理机制:
- 块因果训练注意力:为并行训练所有N个音频块,同时精确复现每个块在推理时看到的自回归上下文,构建了一个块因果注意力掩码。训练序列由两个等长部分拼接:原因部分C(干净LLM条件历史)和生成部分Z(正在去噪的潜在块)。Z部分的位置ID重置,使其与C部分中对应块的位置ID对齐。注意力掩码确保:C到C是标准因果;C到Z全屏蔽;Z到C是前缀因果,即\(Z_n\)可看到所有\(H_{\leq n}\)和\(P_{
- 每步推理:从\([H_0, Z_0]\)开始,积分得到\(P_0\);将\(P_0\)替换\(Z_0\)加入历史,接着处理\([H_1, Z_1]\),以此类推。每个新生成的\(P_n\)也通过语义编码器更新LLM下一步的音频语义输入。
- 分类器引导(CFG):在训练时,LLM隐藏流和说话人流各以0.5概率独立丢弃,以启用CFG。推理时,CFG联合应用于两个条件:条件分支保留两者,无条件分支丢弃两者,速度场取标准线性外推。
- 块因果训练注意力:为并行训练所有N个音频块,同时精确复现每个块在推理时看到的自回归上下文,构建了一个块因果注意力掩码。训练序列由两个等长部分拼接:原因部分C(干净LLM条件历史)和生成部分Z(正在去噪的潜在块)。Z部分的位置ID重置,使其与C部分中对应块的位置ID对齐。注意力掩码确保:C到C是标准因果;C到Z全屏蔽;Z到C是前缀因果,即\(Z_n\)可看到所有\(H_{\leq n}\)和\(P_{
- 数据流:条件(\(H_n\),历史\(P_{
后训练阶段:
- 自纠正对齐(SOAR):
- 目标:仅更新AR-FM头中的DiT,使其学会从自身的推理误差中恢复。
- 流程:对于每个样本,首先进行标准的流匹配回归损失(\(\ell_{\text{on}}\))。同时,使用当前带CFG引导的预测器执行一个单步(步长为\(h_{\text{soar}}\))的离线Euler rollout,生成一个偏离轨迹的状态\(\hat{x}_{\tau_+}\)。然后,将该状态向原始噪声端点重加噪,生成多个辅助样本。最后,让DiT学习将这些辅助样本预测到指向干净端点的平均速度(\(u_{\text{aux}}\)),从而学会纠正偏差。整个过程无需奖励模型。
- CFG感知MeanFlow蒸馏:
- 目标:将冻结的、经SOAR校正后的DiT作为教师,训练一个学生DiT以更少的函数评估(NFE)生成语音,同时融合CFG。
- 流程:学生DiT使用与教师相同的骨干,但增加了用于区间时长\(\Delta t\)的嵌入器。训练时,采样一个时间区间\([t_a, t_b]\),用教师模型(带CFG)生成从\(x_{t_a}\)到\(x_{t_b}\)的轨迹,计算平均速度\(\bar{v}_{t_a \rightarrow t_b}^{\text{T,cfg}}\)作为目标。学生模型学习直接预测这个条件化的区间平均速度。推理时,学生每步只需一次条件前向传播即可更新状态\(x_{t_b} = x_{t_a} + \Delta t \cdot v_{\phi}(x_{t_a}, t_a, \Delta t, c)\),无需额外的无条件计算。
- 自纠正对齐(SOAR):


💡 核心创新点
- 针对连续AR误差累积的三重互补设计:系统性地提出了从表示空间(语义AudioVAE)、模型架构(三模块解耦)到后训练策略(SOAR)的组合方案,以缓解连续潜在表示下无量化缓冲导致的误差累积问题。
- 语义AudioVAE的可学习性训练:在VAE重建目标之外,引入帧级WavLM对齐和多任务下游监督,使连续潜在空间不仅保真,而且在语义上结构化并易于被LLM建模。
- 奖励免费的自纠正对齐(SOAR)后训练:将SOAR思想适配并应用于AR流匹配头,通过让模型在训练时暴露于自身单步推理误差并学习恢复,直接解决预训练与推理之间的多步ODE不匹配问题。
- CFG感知MeanFlow蒸馏:将分类器引导融合到MeanFlow蒸馏的目标中,使学生模型在推理时只需单次前向��播即可获得引导效果,实现了低延迟与高质量的结合。
- 1T1A交错流式推理:设计了文本与音频1:1交错的序列布局,使TTS骨干能作为流式对话LLM的直接音频输出端,实现了54ms的极低首包延迟。
📊 实验结果
论文在四个主要基准上进行了评估:
- Seed-TTS-Eval(主要基准)
| 模型 | 参数 | test-en WER(%)↓ | test-en SIM↑ | test-zh WER↓ | test-zh SIM↑ | test-zh-hard WER↓ | test-zh-hard SIM↑ | Average WER↓ | Average SIM↑ |
|---|---|---|---|---|---|---|---|---|---|
| CosyVoice 3 | 1.5B | 2.22 | 72.0 | 1.12 | 78.1 | 5.83 | 75.8 | 3.06 | 75.3 |
| F5-TTS | 0.3B | 2.00 | 67.0 | 1.53 | 76.0 | 8.67 | 71.3 | 4.10 | 71.4 |
| FireRedTTS 2 | 1.5B | 1.95 | 66.5 | 1.14 | 73.6 | 8.98 | 70.3 | 4.02 | 70.1 |
| IndexTTS 2 | 1.5B | 2.23 | 70.6 | 1.03 | 76.5 | 7.12 | 75.5 | 3.46 | 74.2 |
| MegaTTS 3 | 0.5B | 2.79 | 77.1 | 1.52 | 79.0 | — | — | — | — |
| MiniMax-Speech | — | 1.65 | 69.2 | 0.83 | 78.3 | — | — | — | — |
| Qwen3-TTS | 1.7B | 1.23 | 71.7 | 1.22 | 77.0 | 6.76 | 74.8 | 3.07 | 74.5 |
| Seed-TTS | — | 2.25 | 76.2 | 1.12 | 79.6 | 7.59 | 77.6 | 3.65 | 77.8 |
| DiTAR | 0.6B | 1.69 | 73.5 | 1.02 | 75.3 | — | — | — | — |
| VibeVoice | 1.5B | 3.04 | 68.9 | 1.16 | 74.4 | — | — | — | — |
| VoxCPM 2 | 2B | 1.84 | 75.3 | 0.97 | 79.5 | 8.13 | 75.3 | 3.65 | 76.7 |
| dots.tts (Pretrain) | 2B | 1.34 | 76.8 | 0.96 | 80.5 | 6.46 | 79.2 | 2.92 | 78.8 |
| dots.tts (SOAR) | 2B | 1.30 | 77.1 | 0.94 | 81.0 | 6.60 | 79.5 | 2.95 | 79.2 |
| – dots.tts (MF, NFE=4) | 2B | 1.29 | 76.2 | 0.94 | 80.0 | 6.60 | 78.5 | 2.94 | 78.2 |
| – dots.tts (MF, NFE=3) | 2B | 1.41 | 75.9 | 1.02 | 79.9 | 7.19 | 78.6 | 3.21 | 78.1 |
| – dots.tts (MF, NFE=2) | 2B | 1.51 | 75.2 | 1.04 | 79.1 | 7.74 | 76.7 | 3.43 | 77.0 |
结果说明:dots.tts (SOAR)在平均WER和SIM上均取得最佳。SOAR后训练带来了从Pretrain版本的显著提升。MeanFlow蒸馏在NFE=4时性能与SOAR接近。
- MiniMax-Speech多语言测试集(24种语言)
| 语言 | MiniMax WER(%) / SIM | dots.tts (Pre.) WER / SIM | dots.tts (SOAR) WER / SIM | dots.tts (MF4) WER / SIM |
|---|---|---|---|---|
| Arabic | 1.67 / 73.6 | 37.91 / 77.5 | 36.19 / 79.1 | 39.65 / 77.6 |
| Cantonese* | 34.11 / 77.8 | 37.91 / 84.7 | 42.32 / 85.0 | 37.82 / 84.0 |
| Chinese | 2.25 / 78.0 | 1.08 / 82.3 | 0.77 / 82.5 | 1.01 / 81.8 |
| … (其他语言数据) | … | … | … | … |
| Average | 2.8 / 76.6 | 6.6 / 83.5 | 6.8 / 83.9 | 6.8 / 83.5 |
结果说明:dots.tts (SOAR)平均SIM(83.9)领先。WER在部分低资源语言(如Arabic, Hindi)上较高,作者归因于BPE文本输入的覆盖限制。
- CV3-Eval
| 模型 | Monolingual W(%)↓ en | zh | hard-zh | hard-en | en→zh W↓ S↑ | zh→en W↓ S↑ |
|---|---|---|---|---|---|---|
| CosyVoice 2 | 4.08 | 6.32 | 12.58 | 11.96 | 13.50 / 63.3 | 6.47 / 64.3 |
| CosyVoice 3 (1.5B) | 3.91 | 4.99 | 9.77 | 10.55 | 8.01 / 66.9 | 4.32 / 66.4 |
| Fish-Audio S2 | 2.65 | 2.43 | 9.10 | 4.40 | — | — |
| VoxCPM 2 | 3.65 | 5.00 | 8.55 | 8.48 | — | — |
| dots.tts (Pretrain) | 3.51 | 5.24 | 9.69 | 5.99 | 10.88 / 74.6 | 4.97 / 71.9 |
| dots.tts (SOAR) | 3.71 | 4.50 | 9.22 | 4.49 | 10.75 / 75.0 | 5.66 / 72.8 |
| dots.tts (MF, NFE=4) | 3.95 | 4.05 | 9.10 | 4.37 | 10.73 / 73.8 | 5.24 / 70.9 |
结果说明:dots.tts在跨语言声音克隆子集的SIM上显著领先(en→zh: 75.0 vs 66.9; zh→en: 72.8 vs 66.4)。
- EmergentTTS-Eval
| 模型 | Voice | WER(%)↓ | Overall↑ | Emo.↑ | Paraling.↑ | Foreign↑ | C. Pron.↑ | Quest.↑ | Syntax↑ |
|---|---|---|---|---|---|---|---|---|---|
| Gemini-2.5-Flash-TTS* | Zephyr | 10.39 | 70.7% | 95.9% | 91.3% | 58.5% | 55.7% | 63.0% | 57.9% |
| … (其他闭源系统) | … | … | … | … | … | … | … | … | … |
| gpt-4o-mini-tts (基准) | Alloy | 10.61 | 50.0% | — | — | — | — | — | — |
| dots.tts (Pretrain) | basic_ref_en | 10.86 | 49.2% | 72.7% | 54.7% | 39.5% | 18.0% | 48.4% | 58.4% |
| dots.tts (MF4) | basic_ref_en | 11.75 | 47.9% | 59.8% | 55.2% | 36.3% | 16.7% | 50.5% | 64.8% |
| dots.tts (SOAR) | basic_ref_en | 10.45 | 47.6% | 63.9% | 52.7% | 39.4% | 16.4% | 47.0% | 65.7% |
| … (其他开源系统) | … | … | … | … | … | … | … | … | … |
结果说明:dots.tts (SOAR)在“句法复杂性(Syntax)”上取得全场最佳(65.7%)。在“情感(Emotions)”上,Pretrain版本是开源最佳(72.7%),但SOAR版本在该场景上有所下降,表明存在忠实性与表现力的权衡。
- 推理效率 在Seed-TTS-Eval测试集上,使用单卡NVIDIA H800 GPU和MeanFlow蒸馏模型(NFE=4)测量:
- 普通模式:RTF = 0.231,首包延迟(TTFP)= 85.4 ms。
- 1T1A交错流模式:RTF = 0.245,首包延迟(TTFP)= 54.4 ms。 结果表明模型达到了实时生成要求。
⚖️ 评分理由
- 创新性 (1.5/2):论文提出了针对连续AR误差累积的系统性解决方案,将语义VAE、架构解耦和自纠正后训练三个环节有机结合,是一个完整且合理的工程创新。但核心思想(如架构分解、自纠正训练)借鉴自已有工作(ARDiT, SOAR),原创性在于特定领域的适配与组合,而非基础算法提出。
- 技术严谨性 (1.2/1.5):方法描述清晰,训练细节(如损失函数、注意力掩码、蒸馏目标)完备,实验设置明确。主要扣分点在于:1) 缺乏对“为何连续表示误差累积更严重”的理论分析或实证研究;2) 关键组件(如语义编码器的必要性、SOAR的具体贡献)未提供消融实验验证,使得“互补设计”的论证不充分。
- 实验充分性 (1.0/1.5):在多个主流基准上进行了全面评估,复现了SOTA结果,并报告了详细的消融数据(Pretrain vs SOAR vs MF)。但严重缺陷是:1) 完全缺失系统性的消融实验(如移除语义编码器、更换不同LLM、对比不同后训练策略);2) 未提供主观音频质量评估(如MOS),所有结论均依赖客观指标。
- 清晰度 (1.2/1.5):作为技术报告,结构清晰,图表说明得当。但部分内容(如SOAR的数学推导)较为复杂,可进一步提升可读性。部分术语(如“full-history conditioning”)的精确定义可更突出。
- 影响力 (1.2/1.5):对TTS领域,特别是连续自回归范式的发展有积极影响,提供了可复现的强基线和工程实践参考。开源贡献巨大。但作为技术报告,其影响力略弱于正式的会议论文。研究范围局限于语音合成,对更广泛的音频生成领域影响有限。
- 开源 (1.5/1.5):完美。提供了完整的训练代码、推理代码以及三个阶段(预训练、SOAR、MeanFlow)的模型权重,并配有演示页面,许可协议友好(Apache 2.0)。
- 可复现性 (1.3/1.5):提供了详细的训练配方、超参数和完整的模型检查点,可复现性很高。轻微扣分原因:1) 未提供代码仓库的特定commit hash;2) 训练数据(特别是内部数据)无法公开获取,完全复现需要类似规模的私有数据。
- 工程/实践价值 (1.1/1.5):极高的工程价值。展示了如何从头训练一个2B参数的端到端TTS系统,包含了从数据清洗、多阶段训练到高效推理部署的全流程。实际部署的低延迟性能(54ms TTFP)证明了其应用潜力。对于产业界构建此类系统具有重要参考意义。
🚨 局限与问题
- 理论深度不足:论文声称解决“长程误差累积”问题,但未提供该问题的理论模型或定量分析。为什么连续表示比离散表示误差累积更严重?误差如何传播和放大?这些根本性问题缺乏探讨,使得解决方案的提出显得经验化。
- 消融实验缺失:这是最大的缺陷。文中声称三个设计是“互补的”,但未通过消融实验证明:
- 语义AudioVAE第二阶段的可学习性训练(WavLM对齐+多任务监督)相比仅第一阶段训练,对下游TTS性能的提升有多大?
- 三模块解耦架构(特别是语义编码器)相比端到端架构(如直接让LLM处理VAE潜在表示)的优势是什么?
- SOAR后训练具体带来了多少收益?去掉SOAR中的辅助损失(\(\lambda_{\text{aux}}=0\))会怎样? 没有这些实验,论文的核心贡献声明缺乏实证支撑。
- 评估局限性:
- 缺乏主观评估:所有实验结论完全依赖客观指标(WER, SIM),未进行任何人类评估(如MOS, CMOS)。对于语音合成,主观听感至关重要,特别是在“表达力”和“自然度”方面。EmergentTTS-Eval的“情感”分数在SOAR后下降,暗示模型可能变得更“机械”,但缺乏直接的人类听感验证。
- 零样本场景局限:评估仅限于零样本语音克隆。论文未探索风格控制、情感指令跟随、或更复杂的对话场景,限制了对模型能力的全面理解。
- 权衡未解决:实验揭示了SOAR在提升“句法复杂性”分数的同时,降低了“情感”分数。这表明模型在“文本忠实度”与“语音表现力”之间存在未被充分研究的权衡。论文未对此现象进行深入分析或提出解决方案。
- 数据与成本:训练数据规模巨大(1.5M小时),但未报告训练计算成本(如GPU-days)。这使得复现工作的门槛变得模糊,也影响了对方法效率的评估。
- 结论强度:论文在摘要和结论中多次使用“state-of-the-art”等表述。虽然在特定基准上成立,但考虑到缺乏消融实验和主观评估,这种表述可能过于绝对。更严谨的说法应是“在Seed-TTS-Eval等基准上取得了当前报告的最佳客观分数”。