深度研究|dots.tts:2B 全连续自回归 TTS,把”离散 token”踢出流水线
研究日期:2026-08-25 | 来源:github.com/studio-dots-ai/dots.tts | 团队:studio-dots-ai(Kai Yu 等 9 人)
论文:dots.tts Technical Report (arXiv 2606.07080) | dots.tts.edit (arXiv 2608.02673)
写法:依「去 AI 味」之诀——长短句交错、口语落地、不堆套话,间以文白。数据均引自仓库 README 与两篇技术报告,数字逐字核对。
一句话定性
dots.tts 是 studio-dots-ai 开源的 2B 参数「全连续、端到端自回归」语音合成模型——整条链路从音频编码到声学生成,全程连续潜变量,没有一个离散 token。它目前在 Seed-TTS-Eval、MiniMax 24 语言、CV3-Eval、EmergentTTS-Eval 多个基准上拿开源 SOTA,且把训练、推理、微调、蒸馏代码和权重一股脑 Apache-2.0 放出。
说白了:别人做 TTS 多半把声音”剁成”离散 token(乐高积木),用 LLM 一块块拼;dots.tts 让声音像水流一样连续生成,从源头上绕开了量化丢信息、码本坍塌那一套老毛病。
来路考:六月开源,实则厚积
- 仓库生日:2026-06-04 创建,30 commits,27 个 open issues,体积 786 KB(Python 为主)。
- 两篇技术报告:dots.tts Technical Report(arXiv 2606.07080,22 页,v1 2026-06-05 / v2 2026-08-10 修订);dots.tts.edit(arXiv 2608.02673,v1 2026-08-02 / v2 2026-08-11)。
- 作者班底:Shi Lian、Changtao Li、Bohan Li、Hankun Wang、Da Zheng、Junfeng Tian、Yufeng Ma、Colin Zhang、Kai Yu 等 9 人——典型的语音研究实验室配置。
- 基座借力:LLM 部分直接初始化自
Qwen2.5-1.5B-Base,站在大模型肩膀上。
行情速记:开源仅两月余,星标破千、fork 过百,在「开源 TTS 军备竞赛」里属第一梯队新锐。权重放开但训练语料未公开,复现门槛在数据与算力,不在代码。
它到底在解决什么:离散 token 的”断点”之痛
传统神经 TTS(VALL-E、CosyVoice、F5-TTS 等)的通用套路:把语音用声码器离散化成 token(如 EnCodec / SSC 码本),用 LLM 预测 token 序列,再解码回波形。这条路的硬伤有三:
- 量化必有损——码本有限,语音细节在”剁碎”那一刻就丢了;
- 码本坍塌——训练不充分时大量码字闲置,表达力打折;
- 解耦式不稳定——LLM 预测 token 与最终声学细节被切开,长句易漂移、跑调。
dots.tts 的答案是全连续:把音频编码成 48 kHz 的连续潜变量,LLM 直接逐 patch(帧块)预测这个连续潜变量,再由 flow-matching 头去噪还原。整条流水线里,token 这个角色被彻底删去。
架构一览:三根柱子 + 一个声纹锚
冻结的 AudioVAE 把 48 kHz 单声道波形编码为连续潜变量,再用 BigVGAN 式因果解码器还原。自回归骨干逐 patch 预测该潜变量,由三件套构成:
| 组件 | 角色 | 要点 |
|---|---|---|
| Semantic encoder | 语义编码器 | 把刚生成的 VAE patch 再编码成紧凑 embedding 喂给 LLM,剥掉高方差声学细节,让 LLM 专注语义。 |
| LLM | 主干语言模型 | 由 Qwen2.5-1.5B-Base 初始化,直接吃 BPE 文本(无音素),每音频步吐一个隐状态。 |
| AR flow-matching head | 声学去噪头 | 一个 DiT,条件于 LLM 隐状态 + AR 前缀,去噪下一 VAE patch;冻结的 CAM++ 说话人 x-vector 作旁输入(声纹锚)。 |
两种序列布局:plain mode(文本作前缀,标准 TTS)与 double-streaming interleaved mode(调用方边推 BPE token 边在线出声,适配 LLM 增量输出)。
三大技术创新(论文自述)
- 多目标训练的 AudioVAE——构建一个”语义结构化、利于预测”的连续语音空间,而非单纯重建误差最小化。
- flow-matching 头用 full-history conditioning——保留长程一致性、抑制生成漂移(长句不跑偏的关键)。
- reward-free self-corrective post-training——无奖励模型的自纠错后训练,进一步提升鲁棒性与音质,且成本低、可复现。
检查点家族:七张脸,各司其职
七个检查点共用同一骨干,按任务与入口分用:
| 检查点(HF) | 入口 | 用途 | 关键设置 |
|---|---|---|---|
dots.tts-base | dots.tts / DotsTtsRuntime | 预训练基线;微调底座 | NFE 10–32(默认 10);CFG 1.2 |
dots.tts-soar | dots.tts / DotsTtsRuntime | 最高说话人相似度;高质量克隆;微调 | NFE 10–32(默认 10);CFG 1.2 |
dots.tts-mf | dots.tts / DotsTtsRuntime | 延迟/并发敏感场景 | NFE 4 推荐;CFG 已融合 |
dots.tts-mf-2steps | dots.tts / DotsTtsRuntime | 低延迟 TTS | 固定 NFE 2 sCM |
dots.tts-mf-1step | dots.tts / DotsTtsRuntime | 极低延迟 TTS | 固定 NFE 1 |
dots.tts-mf-2steps-stts | DotsTtsRuntimeDoubleStreaming | LLM 交互 / 双工对话 | 双流固定两步 sCM |
dots.tts.edit | dots.tts.edit / DotsTtsEditRuntime | 指令控制语音编辑 | NFE 10–32(默认 10);CFG 1.2 |
简记:base 打底、soar 求像、mf 系列求快、stts 求对话、edit 求改。固定步数(1/2-step)产物会拒绝不兼容的采样覆盖,保证训练—推理严格对齐。
性能战报:开源 SOTA 四连
① Seed-TTS-Eval(头条,零样本 ~3s 参考)
| 模型 | 参数 | en WER↓/SIM↑ | zh WER↓/SIM↑ | zh-hard WER↓/SIM↑ | Avg WER↓/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 |
| 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 |
| 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 |
② MiniMax 24 语言多语基准
100 句 × 2 参考说话人 / 语言。dots.tts (SOAR) 平均 SIM 83.9 为全场最高,且在 24 语言中有 19 项单项 SIM 夺魁、2 项打平。高资源/西欧语种内容保真与最强系统持平;长尾低资源语种 SIM 仍守住,但 WER 偏高(如阿拉伯语 WER 36+)。
③ CV3-Eval(硬核中英 + 跨语言克隆)
SOAR 拿下 hard-en 全场最优(MF₄ 4.37),并在两项跨语言 SIM 子集领先(SOAR 75.0 / 72.8)。
④ EmergentTTS-Eval(表现力,对打 gpt-4o-mini-tts)
由 Gemini-2.5-Pro 六场景盲评:SOAR 句法复杂度 65.7% 超过所有闭源系统;Pretrain 情感得分 72.7% 居开源之首。表现力维度是它的差异化强项。
效率与部署:能打也能扛
开启 --optimize(torch.compile)后的流式稳态表现(单 H800,bf16,SOAR num_steps=10 / MF num_steps=4):
| 配置 | 音频均值(s) | 首包 p50/p90(ms) | RTF 均值/p50/p90 | 峰值显存(GB) |
|---|---|---|---|---|
| SOAR / voice_cloning | 7.57 | 225/404 | 0.21/0.20/0.26 | 7.86 |
| SOAR / text_only | 7.78 | 69/79 | 0.18/0.18/0.20 | 7.85 |
| MF / voice_cloning | 7.46 | 204/381 | 0.16/0.15/0.21 | 5.74 |
| MF / text_only | 7.65 | 68/78 | 0.13/0.13/0.15 | 5.73 |
- 论文报告首包延迟 85/54 ms(输出流式 / 双流模式,technical report 口径)。
- SGLang Omni 高并发(1×H100):并发 16 → 4.76 req/s、19.86 audio_s/s、RTF 0.81;并发 32 → 4.99 req/s,零失败请求,WER≈1.3%。提供 OpenAI 兼容
/v1/audio/speech。 - 冷启动代价:
--optimize首次编译约 3 分钟(H800),之后请求均跑稳态 RTF。
两个杀手锏:双流推理 & 语音编辑
双流推理(double-streaming)
DotsTtsRuntimeDoubleStreaming + push_text_token() 专为 LLM 增量出字、双工对话设计(对应 dots.tts-mf-2steps-stts)。类比:LLM 边想边说,不再等整句想完才出声——对话体 TTS 的刚需。
指令控制语音编辑(dots.tts.edit)
用 XML 式结构化指令精确圈定”改什么、改哪段”:
<del> 删除 <ins> 插入 <sub> 替换 <emo> 情感
四大控制轴:文本 / 情感 / 韵律(音高·语速)/ 停顿
无需时间戳对齐——语义时间线可审计、可组合
配套 doteBench 双语评测,衡量”指令遵循、局部保留、音质”三件事。跨 Seed-TTS-Eval 三个分片,编辑后模型与基座在零样本 WER/SIM 上差异可忽略——编辑不伤底子。
生态与社区
- 社区端口:audio.cpp(C++)、dots-tts-mlx / mlx-swift-dots-tts(Apple Silicon)、Dots-TTS-ComfyUI(节点化)。
- 服务化:SGLang Omni 提供 OpenAI 兼容接口;自带 Gradio Web Demo 与 Edit Playground(React 前端 + 测试覆盖)。
- 在线体验:HF Spaces Playground、Edit Playground;Demo 页 studio-dots-ai.github.io/dots.tts-demo。
- 致谢基座:Qwen2.5、DiTAR、ARDiT、HoliTok、BigVGAN、CAM++。
风险与局限
- 长尾语言短板:MiniMax 表可见阿拉伯、越南等低资源语种 WER 高、SIM 靠后, multilingual 长尾仍弱。
- 克隆依赖参考音频:零样本克隆需 ~10s 参考且文本需对齐,参考不佳则克隆走样。
- 声纹滥用风险:高保真克隆天然带 deepfake / 声纹伪造隐患,README 单列 Risks and Limitations。
- 硬集仍有空间:中文硬集 WER 仍 6.6%(SOAR),长难句识别/生成待补。
- 部署门槛:建议 PyTorch 2.8 + CUDA 12.8、SGLang Omni 等,2B 推理需 H 卡;
--optimize冷启动 3 分钟。
竞品定位:一图速览(以 Seed-TTS-Eval 平均 SIM 为轴)
| 模型 | 参数 | 路线 | Avg SIM↑ | 备注 |
|---|---|---|---|---|
| dots.tts SOAR | 2B | 全连续 AR | 79.2 | 开源 SOTA 之 SIM 冠 |
| dots.tts Pretrain | 2B | 全连续 AR | 78.8 | 微调底座 |
| Seed-TTS | — | (闭源参考) | 77.8 | 行业金线 |
| VoxCPM 2 | 2B | 连续 | 76.7 | 同参数量级对手 |
| Qwen3-TTS | 1.7B | — | 74.5 | 大厂出品 |
| CosyVoice 3 | 1.5B | 离散 token | 75.3 | 主流 token 路线代表 |
| F5-TTS | 0.3B | Flow 非 AR | 71.4 | 轻量代表 |
研判与建议(给步子哥的产品/面试视角)
dots.tts 的”全连续 + flow-matching + 无奖励自纠错后训练”组合,有几个值得记取的工程卖点:
- full-history conditioning 抗漂移——长文本不跑调,是落地可靠性的关键;
- reward-free 自纠错降后训练成本——不必养奖励模型,复现门槛低一截;
- 双流适配对话——把 TTS 塞进 LLM 双工链路的水龙头已经拧开,对话 Agent 语音化直接受益;
- 编辑能力结构化——
<del>/<ins>/<sub>/<emo>把”改声音”变成可审计的语义契约,比自然语言指令稳; - 高并发已验证——SGLang Omni 单卡 5 req/s、零失败,工程部署链路是通的。
需清醒:权重放开≠可白嫖复现,训练语料与算力仍是大山;2B 模型推理依赖 H 卡,端侧落地要靠 mf-1step / mlx 端口续命。总体而言,它是当前开源 TTS 里”连续路线”最完整、性能最硬、部署最像样的选手之一。
资料来源:GitHub 仓库 README(2026-08-17)、dots.tts Technical Report (arXiv:2606.07080 v2)、dots.tts.edit (arXiv:2608.02673 v2)、SGLang Omni Cookbook。性能数字均引自官方基准表,未作二次加工。| 本报告由 WorkBuddy 依「深度研究」场景生成,仅供研判参考。

SOAR —— 质量/相似度之王
– 它是叠在
dots.tts-base之上的后训练检查点(论文所谓「reward-free self-corrective post-training」,无奖励模型的自纠错后训练)。– 核心卖点:说话人相似度最高(Seed-TTS-Eval 平均 SIM 79.2 全场居首)、克隆音质最佳,故作高质量克隆与微调底座。
– 取名 SOAR,仓库与论文皆未逐字拆解其字母含义,当作品牌代号即可;理解成「base 再精修一版」最贴切。
MF —— 意思是 MeanFlow(均值流)
– 它是从 SOAR 经 CFG-aware MeanFlow 蒸馏得到的低延迟学生模型(student)。
– 蒸馏把多步去噪压成少步:衍生出
mf(NFE=4 推荐)、mf-2steps(固定 2 步 sCM)、mf-1step(固定 1 步)、mf-2steps-stts(双流对话版)。– 代价是 SIM 略逊 SOAR,但 RTF 骤降——流式 RTF p50 仅 0.13–0.15,首包延迟压到 68ms 级,专为高并发/对话场景而生。
一句话对比轴:
| 维度 | SOAR | MF |
|—|—|—|
| 全称 | 后训练精修检查点(未解字母) | MeanFlow 蒸馏 |
| 强项 | 音质、说话人相似度 | 低延迟、高吞吐 |
| 用法 | 追求「像」 | 追求「快」 |
| 典型 RTF(p50) | 0.18–0.20 | 0.13–0.15 |
故文中但凡说「SOAR 居首」「MF 求快」,便是这条 质量 vs 速度 的取舍脉络。