MOSS-TTSD: 文本到口语对话生成

MOSS-TTSD 是一个口语对话语音生成模型,实现了中英双语的高表现力对话语音生成,支持零样本多说话人音色克隆,声音事件控制以及长语音生成。

语音是人类之间交互和人机之间交互的重要接口,拟人程度高,表现力强,韵律自然的语音是强人工智能的必备能力。 然而,在现实世界中,复杂的情境对于语音的特性提出了不同的要求。 通常,在不同的情境下,语音的韵律,风格等特性都会发生变化。 对话语音是现实世界中最常见的一种情境,我们所熟悉的许多声音内容都是对话的形式存在的,例如播客,访谈,体育解说,新闻报道,电商直播等。 在对话中,单一说话人语音的声学特点需要参考整个对话历史和具体的对话语境,这对于生成模型的建模能力提出了新的要求。 虽然当前的TTS模型在单句语音生成上已经取得了显著的进展,但是由于缺乏整体的对话情境,这些TTS模型仍然无法合成高质量的对话语音。

为了解决这个问题,我们构建了一个对话语音合成模型 MOSS-TTSD (Text to Spoken Dialogue),它能够根据输入的多说话人对话文本,直接生成高质量的对话语音,准确建模对话中的韵律,语调等特性。 MOSS-TTSD 基于 Qwen3-1.7B-base 模型进行继续训练,采用离散化的语音序列建模方法,在约一百万小时单说话人语音数据和四十万小时对话语音数据上进行训练,支持中英双语的语音合成。 得益于低比特率 Codec 和高效数据处理 Pipeline, MOSS-TTSD 在海量真实数据上进行了训练,声音自然程度和表现力都达到了业界领先水平,支持双说话人的音色克隆以及长语音生成。

MOSS-TTSD-V0 的模型权重,推理代码和 API 接口已经全部开源并支持商用:https://github.com/OpenMOSS/MOSS-TTSD

欢迎体验!

模型概览

1 模型结构概览:基于Qwen3-1.7B-base模型进行训练,使用八层RVQ码本进行语音离散化,使用自回归加Delay Pattern进行语音token生成,最后使用Tokenizer的解码器将语音token还原为语音。

MOSS-TTSD 使用完全离散化的方式进行语音生成。我们训练了一个8层 RVQ 的音频 Codec:XY-Tokenizer,来对原始音频进行量化。 XY-Tokenizer 能够同时编码语音的语义和声学信息,并具有较低的比特率(1kbps),这使得LLM能够有效地学习音频序列并建模细节声学特征。 在序列建模方面,受到 MusicGen 和 VOICECRAFT 的启发,我们使用自回归建模加多头 Delay 的方式进行语音 token 生成。

语音离散化: XY-Tokenizer

为了统一建模语音的语义和声学信息,并实现低比特率,我们构建了 XY-Tokenizer,它使用了双路 Whisper Encoder 进行语音编码,8层 RVQ 量化,两阶段多任务学习的方式进行训练。实现了 1kbps 的比特率和 12.5Hz 的帧率。

2 XY-Tokenizer 采用了两阶段多任务学习的方式进行训练。第一阶段(上半部分)训练ASR任务和重建任务,让编码器在编码语义信息的同时保留粗粒度的声学信息。第二阶段(下半部分)我们固定住编码器和量化层部分,只训练解码器部分。通过重建损失和 GAN 损失,利用生成式模型的能力补充细粒度声学信息。

我们扩展了Codec训练的数据量,使用了10万小时带有转录文本的语音数据进行训练。下表对比了在LibriSpeech测试集上不同 Codec 在语义和声学性能上的表现。WER为ASR探测任务中的词错误率,WER越低表示语音 token 的语义信息与文本对齐程度更好 。粗体为低比特率 Codec 组中的最优或次优性能。

Model BPS Frame Rate Semantic Acoustic
Model Semantic WER ↓ SIM ↑ STOI ↑ PESQ-NB ↑ PESQ-WB ↑
DAC-86k75No0.740.880.953.793.46
SpeechTokenizer4k50Yes0.200.840.923.052.60
Mimi-324.4k12.5Yes0.280.930.963.793.42
DAC-21.5k75No0.980.490.831.911.51
BigCodec1.04k80No0.490.840.933.262.68
Mimi-81.1k12.5Yes0.280.730.902.792.24
Baichuan1.075k12.5Yes0.100.700.882.451.93
XCodec2.00.8k50Yes0.300.820.913.032.43
XY-Tokenizer1k12.5Yes0.130.830.913.002.41
XY-Tokenizer 是在1kbps,12.5Hz的帧率下同时建模语义和声学信息性能最好的 Codec ,在语义和声学指标上都取得了最优或次优的结果。

为了更好地编码和重建复杂的对话音频,我们扩展了50万小时无转录音频数据进行增强训练,扩展 Codec 对于复杂音频和场景的处理能力。

得益于Codec的超低比特率,我们模型的训练长度最长达到了960s的音频,这使得我们的模型可以一次性地生成超长的语音,避免了拼接语音片段之间的不自然过渡。

数据工程

TTS 模型的性能与训练数据的质量和数量有着密切的关系,为了规模化高质量 TTS 数据和 TTSD 数据,我们设计了高效的数据处理流水线,可以从海量原始音频中准确筛选出单人语音和多人对话语音并进行标注。

3 数据清洗流水线概览: 我们从海量原始音频中筛选出单人语音和多人对话语音,并使用内部工具模型进行标注

对于原始音频,我们首先使用内部的说话人分离模型进行语音分段和说话人标注。 基于预训练基模,我们的说话人分离模型性能已经优于开源说话人分离模型 pyannote-speaker-diarization-3.1 及其商用版本 pyannoteAI 。

Model AISHELL-4 AliMeeting(channel 1) AMI(IHM) AMI(SDM)
DER ↓
pyannote-speaker-diarization-3.1 11.7 24.7 20.5 24.3
pyannoteAI 11.1 18.3 17.5 20.0
Ours Diarization Model 9.7 14.1 14.5 17.2
说话人分离模型在不同数据集上的 DER(Diarization Error Rate) 结果(越低越好),我们的模型在四个测试集上都取得了最优性能

我们使用 DNSMOS 分数来作为语音质量的评估标准,我们假设 DNSMOS 分数高的语音大概率不包含背景噪声。 为了保证语音的质量和较少的噪声,我们只保留 DNSMOS >=2.8的语音片段。 对于高质量的音频片段,我们直接对语音进行转录,作为 TTS 训练数据。 此外,我们设计了一套规则来将 Diarization 分离的语音片段组合成双人对话的片段用作 TTSD 训练,这样得到的对话片段我们称之为粗粒度对话片段。 虽然说话人分离模型能够较准确地分离说话人,但是我们发现它对一些较短的 Backchannel 不是特别敏感,存在漏分离的情况。 此外,当前的 ASR 模型无法准确地转录对话中重叠的语音。 因此,受 Parakeet 的启发,我们训练了中文版的 Whisper-d 模型来对中文数据进行细粒度说话人标注和文本转录。对于英文数据我们直接使用 Parakeet 的开源 Whisper-d。 最终,我们使用说话人分离模型的粗粒度标签和 Whipser-d 模型的细粒度标签来将短对话片段组成长对话片段。

TTS 预训练

Model WER ↓ CER ↓ WER(Norm) ↓ CER(Norm) ↓
Seed-TTS 2.25 1.12 N/A N/A
Cosyvoice2 2.80 1.59 2.52 0.80
SparkTTS 1.99 2.12 1.69 1.44
MOSS TTS-base 1.90 1.56 1.54 0.82
TTS 预训练模型在 Seed-tts-eval 测试集上的词错误率对比(越低越好),加粗的结果代表最优和次优的性能; WER(Norm) 表示我们针对 ASR 的同义结果做了规则修正,减少了 ASR 模型错误导致的误判; CER(Norm) 表示我们将中文文本转为拼音后再计算词错误率,即 PER 指标,我们认为这是更加合理的方式; SparkTTS 和 Cosyvoice2 的结果为我们本地使用官方推理代码重新测试的结果;

我们使用了110万小时的中英文 TTS 数据对模型进行了预训练,大规模的 TTS 预训练可以显著增强 TTSD 模型的语音韵律和表现力,并提升模型泛化能力。 我们使用了 Seed-tts-eval 评测了 TTS 预训练模型的性能,取得了和当前顶尖闭源模型 Seed-TTS 相当的性能。 经过 TTS 预训练后的模型已经有了较强的语音生成能力和零样本音色克隆能力。

TTSD 后训练

最终,我们收集了10万小时中文对话数据和27万小时英文对话数据。 此外,为了增强模型的说话人切换准确率,我们合成了4万小时中文对话数据和4万小时英文对话数据。 为了增强模型对于中文标点符号的感知能力,我们使用 Gemini 对部分数据(约7万小时)中的转录文本进行了修正。

在训练阶段,我们基于 TTS 预训练的检查点,使用 WSD Scheduler 进行训练,我们没有针对 Decay 阶段做特殊的数据规划。 此外,我们发现无法通过验证集挑选表现最好的检查点,因此我们通过人工评估的方式挑选了主观表现最好的检查点。

样例

MOSS-TTSD 具备多样的生成形式,包括支持上传一整个对话片段或单个说话人音频来进行音色克隆。 这里,我们测试了 MOSS-TTSD 的中文和英文对话生成能力。 对于中文对话生成,我们对比了开源模型 MoonCast 和闭源模型豆包播客TTS。 相比于 MoonCast ,MOSS-TTSD 具有更自然的韵律和更强的表现力,生成效果也更加稳定。 而相比于豆包播客TTS,MOSS-TTSD 在韵律和表现力相当的情况下,支持零样本音色克隆,文本可定制化程度更高。

对话生成

Topic Prompt1 Prompt2 MoonCast MOSS-TTSD-v0
情境学习讨论
游戏讨论
Asteroid TTS Talk

音频克隆

Topic Prompt1 Prompt2 MoonCast MOSS-TTSD-v0
贾玲 x 刘德华
潘长江 x 嘎子
邓紫棋 x 周杰伦
Elon x Jensen
Trump x Obama

AI 播客生成对比

我们基于近期AI领域的热点新闻,生成了一系列AI信息播客。 通过对比豆包(商业模型)的播客生成与我们的开源工作流程,可以发现两者在多个维度上表现相当。 无论是情感的丰富度、语气的自然度,还是整体的表现力,我们的开源模型都展现出与商业解决方案相媲美的性能水平。 这展现了 MOSS-TTSD 在语音合成领域的巨大潜力。

Date Doubao Podcast MOSS-TTSD-v0

2025.06.17

2025.06.18

2025.06.19

声音事件

Category Transcription MOSS-TTSD-v0

Cough

[S1]今晚你来吗?
[S2](咳)估计去不了,人有点不舒服。
[S1]啊这样啊,那你好好休息。
[S2]没事儿,你们玩开心点。

Laugh

[S1]哎你看见刚才那人的帽子没?
[S2](笑)看见了!上头居然有个螺旋桨!
[S1]我真是服了,怎么会有人戴那种帽子。

Contributors

TTSD Training: Yuqian Zhang, Donghua Yu, Zhengyuan Lin, Yiwei Zhao, Jun Zhan, Dong Zhang
TTS Pretraining: Botian Jiang, Yiwei Zhao, Jin Wang, Yucheng Yuan, Xin Zhang
Foundation Model Pretraining: Xingjian Zhao, Zhe Xu, Hanfu Chen, Yang Wang, Yaozhou Jiang, Ruiming Wang, Cheng Chang
Codec: Yitian Gong, Ruifan Deng, Luozhijie Jin, Qinghui Gao, Dong Zhang
Infrastructure: Ruixiao Li, Mingshu Chen, Cheng Chang
Data Pipeline: Ke Chen, Wenbo Zhang, Wenxuan Wang
Data Collection: Qinghui Gao, Zhengyuan Lin, Donghua Yu, Yuqian Zhang, Zhaoye Fei
Additional Contribution: Qian Tu, Chenchen Yang, Liwei Fan, Kexin Huang
Supervision: Qinyuan Cheng, Zhaoye Fei, Shimin Li, Xipeng Qiu