ZONOS2 开源 TTS MoE:语音克隆链路、语言分层与许可边界
ZONOS2 是 Zyphra 开源的 MoE TTS / voice cloning 模型。官方模型卡确认其使用超过 600 万小时多语言语音训练数据,并以 nemo TN normalized UTF-8 bytes、ECAPA-TDNN speaker embedding、DAC tokens 与 MoE backbone 组成推理链路。架构、公式、语言分层和许可信息共同说明其技术取舍。

技术解析 / Zyphra ZONOS2
零样本语音克隆(Zero-shot Voice Cloning)和流式文本转语音(TTS)已经不再只是“像不像某个人”的单点问题。更能决定一个模型能否进入生产工具链的,是音色还原、自然度、语言覆盖、低延迟、许可边界和工程可运行性之间的平衡。ZONOS2 的价值正落在这个交叉点上:Zyphra 将它描述为一个面向高保真、自然语音克隆的开源 MoE TTS 模型,并公开模型权重、推理代码和多语言支持分层。
官方模型卡给出的关键信息很清晰:ZONOS2 使用超过 600 万小时的多语言语音训练数据;推理时以 nemo TN 规范化后的 UTF-8 bytes 作为文本前端,结合 ECAPA-TDNN 说话人嵌入,通过 MoE backbone 生成 DAC 音频 tokens;默认输出链路指向 44.1 kHz、单声道、float32 PCM,并可转换为 WAV。传统 TTS 常见“文本转梅尔谱再接声码器”,ZONOS2 改用语言模型式 token 预测、离散音频 codec 和稀疏专家网络。
ZONOS2 的技术脉络可以沿着四个层面拆开:MoE 路由如何兼顾模型容量与推理效率,UTF-8 bytes 前端为什么对中文、日文和 code-switching 有意义,DAC codebooks 如何把语音波形改写成可预测的离散序列,以及 ECAPA-TDNN embedding 为什么会直接影响 voice cloning 的“像、稳、自然”。
1. 从 Zonos-v0.1 到 ZONOS2:一次同时发生在数据、架构和条件信号上的换代
ZONOS2 不是把 Zonos-v0.1 的参数简单放大。上一代约 1.6B 参数,训练语音约 200,000 小时,文本前端依赖音素化和语言标签,说话人条件也来自带宽更窄的嵌入模型。它已经能做零样本克隆,却同时暴露出开放 TTS 常见的三组矛盾:模型容量增加会拖慢实时生成,音素字典扩大后仍难覆盖混合语言与低资源语言,参考音频里稍微复杂的音色和空间细节又容易在说话人向量里被压掉。
Zyphra 在 ZONOS2 里同时移动了这三条边界。训练集从约 200,000 小时扩大到超过 600 万小时,规模增加约 30 倍;模型总参数从 1.6B 增长到 8B,稀疏 MoE 每次只激活约 900M 参数;官方发布页称,相比前代实时吞吐提高 4 倍。扩大的总容量用来容纳更多语言、口音、韵律和录音条件,稀疏路由则控制每一步实际执行的计算量。
说话人条件也换了一套表示。新的 ECAPA-TDNN embedding 被官方描述为拥有前代 20× 的带宽,目标是保留更多共振峰、气声、口腔细节、录音空间和说话习惯。这里的“带宽”指嵌入承载说话人信息的能力,不是输出 WAV 的采样率。它解释了为什么 ZONOS2 会在发布材料里反复讨论“忠实克隆”和“干净播报”的冲突:参考片段里的噪声、混响或特殊发声,既可能是需要保留的身份线索,也可能是用户希望模型修掉的瑕疵。
文本前端从显式 phonemizer 和语言标签转向规范化后的 UTF-8 bytes。中文、日文、韩文、数字、符号和一句话中的 code-switching 不必先挤进一套固定音素字典,模型可以直接从大规模多语言训练中学习 byte 序列与发音的对应关系。这个变化不会自动消除多音字或断句错误,却减少了语言标签填错、音素词典缺项和跨语言切换时前端失配的机会。
六百万小时数据也不是一次性全部等权喂给模型。官方资料描述了三阶段训练:预训练阶段使用全部数据跑 8 个 epoch,暂不加入说话人克隆条件,只做最低限度的转写过滤;mid-training 逐步提高转写一致性和子数据集质量,压低幻觉、误读与重复;最后的 annealing 阶段才加入 speaker embedding、语速和音质条件,并采用更严格的过滤。规模负责覆盖,后两阶段负责把覆盖收束成可控的发音与克隆行为。
2. 核心架构:稀疏 MoE 如何服务实时 TTS
Dense TTS 模型的直觉很简单:参数越多,语气、情绪、口音、音色和环境细节的容量越大;但参数越多,每次推理需要跑过的计算也越重。MoE(Mixture of Experts)的取舍则不同。它让模型拥有更大的总容量,同时在单次前向传播中只激活一部分专家层,把“模型知道很多”与“每次不用全部计算”拆开。对 TTS 来说,这一点尤其关键,因为语音合成不是离线写作任务,用户往往会感知首包延迟、流式连续性和长文本稳定性。
官方资料没有把 ZONOS2 的每一层参数逐行展开,但模型卡明确写到推理使用 MoE backbone。结合其官方推理示意,可以把链路理解为:文本先经过规范化和 byte tokenization,参考音频生成 speaker embedding,随后二者进入 MoE 主干网络,输出 DAC 离散音频 tokens,再由 codec 还原为 44.1 kHz 音频。这个设计让 ZONOS2 更像一个“音频语言模型”,而不是传统意义上的端到端声码器脚本。
2.1 路由分流的数学直觉
在 MoE 块中,传统 feed-forward 层可以被替换为一组并行专家。路由器根据当前隐藏状态 x 判断哪些专家更适合处理这段文本与声学上下文。一个常见的路由抽象可以写成:
这个公式用于解释 MoE 的数学直觉,并非 ZONOS2 源码的逐行等式。W_i 和 W_g 是可学习的路由参数,SiLU 提供非线性选择能力,TopK 把计算限制在少量专家上。对语音来说,某些专家可能更擅长长元音、情绪起伏、跨语言片段或特定音色纹理;稀疏路由避免每个 token 都动用全部容量。
3. 文本前端:从音素依赖转向 UTF-8 bytes
TTS 前端经常被低估。许多传统系统会先把文本转换成音素(phonemes),再把音素交给声学模型。这条路线在英文里成熟,但遇到中文、日文、混合语言和复杂符号时,分词、断句、多音字、数字读法和标点语气都会变成工程负担。ZONOS2 官方模型卡写到,它在推理时使用 nemo TN normalized UTF-8 bytes:先做文本规范化,再把输入作为 UTF-8 byte 序列送入模型。
这并不等于“彻底消灭多音字错误”,也不代表所有语言表现相同。更准确的理解是:模型减少了对外部 phonemizer 的强依赖,让更多发音和语气规律在大规模多语言训练中由模型内部学习。官方语言分层也说明了边界:Tier 1 是 English、Mandarin Chinese、Japanese;Tier 2 覆盖 Korean、Russian、Italian、Portuguese、French、Spanish、Vietnamese、German、Hebrew、Dutch;Tier 3 继续扩展到 Swedish、Hindi、Tamil、Telugu、Thai、Norwegian、Bengali、Tagalog、Arabic、Danish、Indonesian、Polish、Ukrainian、Romanian、Finnish、Hungarian、Lithuanian、Estonian、Slovak、Croatian、Latvian。
这个分层很重要。它提醒使用者:支持列表不是均质承诺。中文、英文、日文被放在 Tier 1,说明官方对这三类语言的定位更靠前;其他语言仍可生成,但口音、韵律、停顿、长文本稳定性和参考音频质量会更明显地影响结果。
4. 离散声学表征:DAC tokens 与 44.1 kHz 输出
ZONOS2 的另一个关键点是 DAC。传统 TTS 常见做法是生成梅尔频谱,再接 HiFi-GAN 等 vocoder 猜测波形;ZONOS2 的官方模型卡则写明它生成 DAC tokens。可以把 DAC 理解成一种高保真神经音频 codec:真实音频被压缩为多层离散 codebooks,模型预测这些 codebook 上的 token 序列,再由 codec 解码回波形。
如果把整段语音的离散 codebook 记为 C,文本条件为 X_text,说话人和参考音频条件为 X_cond,一个多 codebook 音频语言模型的条件概率可以抽象为:
其中 t 表示时间步,q 表示第几个量化 codebook,c_t,q 是对应位置的离散声学代码点。当前帧的发音细节与前文韵律都进入条件概率;模型在多个 codebook 层级上预测离散语音结构,而非只预测一张低维频谱。
输出采样率也不该写成模糊的“44kHz”。官方 README 的接口示例和响应说明写的是 44100Hz,也就是 44.1 kHz。这个采样率给气声、齿音、口腔细节、房间尾音和高频空气感留下了更完整的表达空间,但最终听感仍取决于参考音频质量、文本长度、采样参数和模型在对应语言上的训练覆盖。
5. 语音克隆:ECAPA-TDNN 负责抓住“是谁在说”
Voice cloning 要保留参考说话人的身份、共振峰、发声习惯、语速、咬字和录音空间感,单纯把音频做得干净并不足够。ZONOS2 官方模型卡明确写到推理中使用 ECAPA-TDNN embedding。ECAPA-TDNN 是说话人识别领域常用的嵌入模型路线,擅长把一段参考音频压缩成说话人向量,让 TTS 主干在生成时拥有明确的 voice condition。
更稳妥的数学写法是把参考音频 y_ref 映射为说话人条件向量:
“20× 带宽”要放回说话人嵌入链路理解。参考音频越接近单人近讲、混响和背景音乐越少,模型越容易稳定克隆;如果片段带有房间混响、麦克风失真或环境噪声,模型可能把这些特征也一起带入输出。角色音、播客旁白和历史录音复刻有时会利用这种保留能力,干净播报则要主动规避它。
6. 基准与官方评测:声音质量不能只看单一指标
Zyphra 在模型卡和发布资料中强调 ZONOS2 训练于超过 600 万小时的多语言语音,并称其在 expressiveness、quality、low latency 与 voice cloning 上达到或超过主流 TTS providers 的水平。这个表述可以写进新闻,但不能被改写成“所有场景绝对最强”。TTS 评估很容易被单一指标误导:WER 更低不一定代表克隆更像,音频更干净也不一定代表更真实,情绪更强也不一定适合严肃播报。
| 维度 | 官方可确认事实 | 技术含义 |
|---|---|---|
| 训练数据 | 超过 600 万小时多语言语音 | 数据规模很大,但不同语言、口音和录音条件仍会影响输出稳定性。 |
| 模型路线 | MoE backbone | 稀疏专家网络用于平衡容量和推理效率;ZONOS2 的官方口径是 MoE backbone。 |
| 文本前端 | nemo TN normalized UTF-8 bytes | 减少对外部音素器的依赖,尤其适合多语言和混合文本,但不是所有发音问题的保证。 |
| 说话人条件 | ECAPA-TDNN embedding | 负责从参考音频中提取说话人特征;参考音频质量直接影响克隆效果。 |
| 音频输出 | DAC tokens,接口示例为 44100Hz float32 PCM mono | 可输出高采样率语音,再转换为 WAV;最终听感取决于参数、文本和参考音频。 |
| 许可 | 模型卡为 Apache-2.0,GitHub runtime 为 MIT,第三方组件另有 NOTICE | 权重与代码许可要分开写,不能简单概括成“所有内容统一 Apache-2.0”。 |
7. 与常见 TTS 路线的差异
ZONOS2 更适合放在三类路线中比较:闭源商业 TTS API、传统开源 TTS、自回归/非自回归混合的音频 token 模型。闭源 API 往往体验成熟、延迟低、声音商品化程度高,但权重和数据路径不可控;传统开源 TTS 可控性强,但声音自然度、多语言稳定性和工程体验常常需要大量调参;ZONOS2 的路线则把开放权重、高保真 voice cloning、MoE 稀疏推理和 DAC 音频 tokens 组合到一起。
| 路线 | 优势 | 典型边界 | ZONOS2 的位置 |
|---|---|---|---|
| 闭源商业 TTS API | 产品体验成熟,声音库和延迟优化通常很强。 | 权重不可控,成本、地域、隐私和授权边界依赖厂商。 | ZONOS2 提供开放权重路线,但真实体验仍要结合硬件和任务队列。 |
| 传统开源 TTS | 可自部署、可微调、研究透明度较高。 | 声音质量、跨语言稳定性、前端处理和部署体验差异很大。 | ZONOS2 把大规模多语言数据、speaker embedding 和 codec token 模型结合起来。 |
| 音频 token 大模型 | 能把语音看作序列建模任务,适合语气、节奏和长程上下文。 | 推理效率、重复、长文本稳定性和采样策略都需要工程处理。 | ZONOS2 通过 MoE backbone 与 DAC tokens 提供一条更稀疏的 TTS 生成路线。 |
8. 许可与使用说明
语音克隆的边界必须写清楚。ZONOS2 的技术重点是 high-fidelity 和 naturalistic voice cloning,但这不意味着可以克隆任何人的声音。参考音频应来自用户有权使用的说话人,不应用于冒充真实人物、绕过授权、伪造身份、诈骗、误导公众或生成未标注的仿冒内容。
优先选择单人、近讲、少混响、少背景音乐的人声片段。带噪参考音频可能把噪声和空间感一起带入输出。
English、Mandarin Chinese、Japanese 是官方 Tier 1;其他语言支持需要结合实际听感,不应按同一质量预期处理。
长文本更考验停顿、韵律和重复控制。实际使用中应通过分段、标点和参数来控制节奏。
只克隆有授权的声音,并在需要披露的场景中标注 AI 生成语音,避免把生成结果包装成真人原声。
结语:把稀疏 MoE 放回完整语音链路
ZONOS2 把开放权重、MoE 稀疏推理、UTF-8 bytes 文本前端、ECAPA-TDNN 说话人条件、DAC 离散音频 tokens 和 44.1 kHz 输出接到同一套系统里。8B 总容量负责表达范围,约 900M 激活参数控制单步计算,形成了面向实时工具的明确取舍。
创作者和开发者拿到的是一套可以审视、集成和比较的开源语音克隆系统。评价它时应沿完整链路检查:文本怎样进入模型,参考音频怎样编码,专家网络怎样选择计算路径,离散音频 token 怎样还原成声音,以及生成语音怎样合规使用。