Spark-TTS 论文解读:音色与内容”分头行动”,想克隆谁就克隆谁
论文:Spark-TTS: An Efficient LLM-Based Text-to-Speech Model with Single-Stream Decoupled Speech Tokens(arXiv<2503>2503>.01710) 作者/机构:科大讯飞(iFlytek,SparkAudio 团队,联合港科大、西工大、上交等高校;Xinsheng Wang、Lei Xie、Wei Xue 等)
到 2025 年,零样本 TTS 已经不算新鲜事了,大家的差距开始体现在两个地方:一是效率,二是可控性。Spark-TTS 把这两件事一起解决了。它用自家设计的 BiCodec 编解码器,把语音干净利落地拆成两股 token——一股管”说的内容”,一股管”谁在说”——然后用一个小而美的 Qwen2.5-0.5B 语言模型去生成。拆开的红利是巨大的:想要音色,直接调”音色 token”就行,根本不需要参考语音;在 Seed-TTS-eval 中文评测集上,字符错误率(CER)低到 1.20。同时它开源了带详尽属性标注的 VoxBox 数据集(约 10 万小时),等于连”弹药”都替社区备好了。
一、BiCodec:把语音”解耦”成一语义一音色
传统 TTS 的编解码器(比如 RVQ 那类)把语音压成多码本的 token,内容是内容、音色是音色,全都混在几层码本里,模型要靠猜才能把它们分开。Spark-TTS 的 BiCodec 直接釜底抽薪,用**单流(single-stream)**设计把语音解耦成两种 token:
- 低码率语义 token(low-bitrate semantic tokens):专门承载语言内容,你说了哪些字、什么句调,它管;
- 固定长度的全局 token(global tokens):专门承载说话人属性——性别、音色、说话习惯,一句话对应一个定长向量。
这个解耦设计是整套系统的地基。因为”内容”和”音色”在 token 层面就分家了,模型生成的时候不需要再学”怎么把音色从内容里分离”,省下了一大笔学习成本,效率和可控性都跟着上来。这也是论文标题里 “Single-Stream Decoupled”(单流解耦)的含义。
二、Qwen2.5 当家 + CoT:LLM 思路一条路走到底
生成侧,Spark-TTS 没有自研大模型,而是直接拿现成的开源 Qwen2.5-0.5B 做骨干——0.5B 的体量,在动辄几十亿参数的 TTS 大模型里算是轻量级选手,好处是训练和推理都便宜。
更有意思的是它引入了思维链(chain-of-thought,CoT)生成。传统 TTS 是”文本 → 直接吐语音 token”,一步到位;Spark-TTS 让模型先生成”语音计划”再生成”语音 token”——就像写作文先列提纲。这个中间步骤让模型把”这句话怎么读、什么节奏、什么风格”先想清楚,再落笔出声,对稳定性和可控性都有帮助。
值得一提的还有它的”属性即条件”设计:性别、说话风格这些粗粒度属性可以直接作为条件喂给模型。这意味着你可以在没有参考音频的情况下,直接指定”一个中年男声,播音腔”来生成——这是纯参考克隆做不到的,也正是论文所说的”超越参考合成限制(beyond reference-based synthesis)“。
三、可控性:从”像谁”到”说什么风格”
解耦 + CoT + 属性条件,三样合起来,Spark-TTS 的控制粒度就变得很细:
- 粗粒度控制:性别、说话风格(播音腔、口语化等),写几个字就能指定;
- 细粒度控制:精确的音高值、语速,可以逐句微调;
- 参考音色克隆:给一段参考语音,照样能零样本克隆——传统招式也没丢。
这比”只能复制参考音频”的上一代模型前进了一大步。对 ToB 场景(有声书、虚拟主播、语音助手)来说,“无参考指定音色 + 克隆”二合一,可玩性高得多。
四、VoxBox 数据和成绩
Spark-TTS 还顺手开源了 VoxBox:一个约 10 万小时、带全面属性标注的语音数据集。属性标注是关键词——每段音频标注了性别、风格、音高等,这正是”属性即条件”训练所需的弹药。数据本身也给了整个社区做可控 TTS 研究一个统一底座。
成绩上,论文称 Spark-TTS 在零样本音色克隆上达到当时最优(SOTA)水准,同时支持高度自定义的音色生成。用户最常引用的一个数字是:在 Seed-TTS-eval 的 test-zh(中文测试集)上,字符错误率(CER,Character Error Rate)1.20——也就是说合成的中文内容,跟文本对得相当准。评测集是 Seed-TTS-eval、语种是中文,这两个前提都得挂在数字边上,跨评测集横比没有意义。
收尾:我的一点看法
Spark-TTS 是”把 LLM 思路走到底 + 把工程做轻”的典范。别人卷参数量,它用 0.5B 的 Qwen2.5 打天下;别人卷结构创新,它把功夫下在”怎么把语音拆得干净”上——BiCodec 的解耦设计比任何花哨的生成架构都值钱,因为它从源头降低了模型的负担。这跟我在看 F5-TTS 时的感受一致:好系统的共性,是先想清楚”哪块复杂度是多余的”,再动手删。
CoT 和属性条件的组合也让我眼前一亮。TTS 过去是”表演者”,现在开始往”导演”的方向走——你给它台词和人物设定,它自己安排语气和节奏。这是走向”语音 Agent”的必经之路。
当然,冷板凳也得坐。CER 1.20 是在 Seed-TTS-eval 单一中文评测集上的成绩,跟 VALL-E 2 的 WER 1.6%(LibriSpeech)不是一回事,别拿不同评测集互相比较。0.5B 的轻量模型在长句、情感、多语种的极限场景下,跟大模型的差距是客观存在的。另外 VoxBox 的 10 万小时数据,采集和授权情况也需要关注。但整体而言,Spark-TTS 证明了一件事:中文开源 TTS 不需要盲目堆参数,把解耦和工程做透,轻量模型一样能登顶。
附:核心数据速查
基本盘
| 项目 | 数值 |
|---|---|
| arXiv / 时间 | 2503.01710 / 2025.03 |
| 机构 | 科大讯飞(SparkAudio 团队,联合高校) |
| 编解码器 | BiCodec(单流解耦) |
| 生成骨干 | Qwen2.5-0.5B + CoT 生成 |
| 训练数据 | VoxBox 约 10 万小时(带全面属性标注) |
| 开源情况 | 源码、预训练模型、数据集全部开源 |
核心创新
| 创新 | 要点 |
|---|---|
| BiCodec 单流解耦 | 语义 token 管内容、全局 token 管音色,token 层分家 |
| 免参考音色指定 | 性别/风格等属性直接当条件,无需参考音频 |
| CoT 生成 | 先列”语音计划”再生成 token,提升稳定与可控 |
| VoxBox 数据集 | 10 万小时属性标注语音,可复现研究底座 |
关键成绩
- 中文 CER 1.20(Seed-TTS-eval test-zh,⚠️ 注意评测集)
- 零样本音色克隆达当时 SOTA
- 支持粗粒度(性别/风格)与细粒度(音高/语速)控制
- 支持超越参考音频限制的自定义音色生成
关键概念清单
- BiCodec = 双流/单流解耦编解码器(语义 + 音色分离)
- semantic token = 语义 token(承载语言内容)
- global token = 全局 token(承载说话人属性,定长)
- CER = Character Error Rate,字符错误率
- CoT = Chain-of-Thought,思维链(先生成语音计划)
- Qwen2.5 = 阿里开源 LLM(此处用 0.5B 版做骨干)
- VoxBox = 讯飞开源的可控 TTS 数据集(约 10 万小时)
- reference-based synthesis = 基于参考音频的合成
- controllable TTS = 可控 TTS(音色/风格/语速可调)
- Seed-TTS-eval = 语音合成评测基准(含 test-zh 中文测试集)
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时





