SwanVoice:面向独白和对话的表现力强、长篇幅、零样本语音合成 SwanVoice: Expressive Long-Form Zero-Shot Speech Synthesis for Both Monologue and Dialogue
支持1-4说话者的零样本长篇TTS,对话表现力优于开源基线
前置知识
零样本文本转语音(Zero-Shot TTS)
零样本TTS是指模型在推理时能够根据任意参考语音和目标文本生成新语音,而无需针对特定说话者进行微调。它通过学习从参考语音中提取说话者身份和风格信息,然后将这些信息与文本条件结合来生成目标语音。现代零样本TTS通常使用语音编码器提取说话者嵌入,再用扩散模型或流匹配等生成方法合成语音。
本文的核心就是零样本TTS,理解这个概念才能明白SwanVoice如何在推理时根据参考语音生成新说话者的语音,而不需要针对每个说话者训练特定模型。
流匹配(Flow Matching)
流匹配是一种新的生成建模方法,可以看作是扩散模型的连续时间版本。它学习从噪声分布到目标分布的概率路径,通过预测速度场来采样。与扩散模型不同,流匹配的训练目标是预测从噪声到数据的向量场,推理时通过求解常微分方程(ODE)生成样本。它在语音合成中比扩散模型更高效,同时保持了高质量的生成效果。
SwanVoice的核心生成器就是基于流匹配的Transformer,理解流匹配才能明白模型如何从噪声逐步生成语音潜变量,以及为什么它比传统的扩散模型更适合长篇语音生成。
变分自编码器(VAE)
变分自编码器是一种生成模型,包含编码器和解码器两部分。编码器将输入数据映射到潜在空间的概率分布,解码器从潜变量重建原始数据。训练时通过最大化证据下界(ELBO)来学习,包含重构损失和KL散度正则项。在语音合成中,VAE通常用于降压缩语音序列长度,降低后续生成模型的计算成本。
SwanVoice使用25Hz VAE将语音波形压缩到潜空间,理解VAE的工作原理有助于明白模型如何降低计算成本并保持语音质量。
课程学习(Curriculum Learning)
课程学习是一种训练策略,模型从简单任务开始,逐步过渡到复杂任务。这种方法可以避免模型在早期面对过难任务时陷入局部最优或产生不稳定的输出。在语音合成中,可以先在独白数据上训练,然后逐步加入对话数据,让模型先掌握基本的语音合成能力,再学习说话者切换和对话连贯性。
SwanVoice采用了三阶段课程学习策略,从独白到混合对话再到真实对话,理解课程学习有助于明白为什么这种渐进式训练能够提高模型的稳定性和表现力。
研究动机
现有的零样本TTS系统虽然在单说话者合成方面取得了显著进展,但在表现力强的长篇多说话者对话场景下仍然面临重大挑战。常见的解决方案是逐回合合成语音然后拼接波形,这种方法不仅增加了推理成本,还经常破坏声学一致性、对话连贯性和情感连续性。例如,相邻回合可能在房间响应、背景氛围、说话强度或停顿时机上不匹配,导致最终输出听起来像拼凑的而不是真实场景录音。尽管最近的对话TTS系统开始支持端到端双说话者生成和可控说话者切换,但长篇对话暴露了短篇生成中不明显的失败模式:声学环境应该保持稳定、相似声音的说话者回合仍然可区分、情感连续性应该跨越回合传递。同时,对话训练不应该降低独白合成质量。这些问题与数据构建紧密相关,因为回合边界、停顿和表现力标签塑造了回合控制。
本文的目标是本文的目标是构建一个既能处理长篇独白又能处理多说话者对话的零样本TTS系统,该系统能够保持声学一致性、对话连贯性和情感连续性。具体来说,系统需要支持1-4个说话者,在推理时根据参考语音生成目标文本的语音,同时保持说话者身份和风格。系统应该在表现力方面优于现有开源模型,包括句子级的表现力丰富度和段落级的表现力层次感,同时在独白和对话两种设置下都保持高质量输出。
与已有工作不同的是,本文的独特切入角度是将长篇对话作为一个完整的上下文生成问题来处理,而不是一系列孤立的回合。这种全上下文方法允许模型建模完整的对话场景,包括声学环境一致性、说话者切换和情感连续性。此外,本文构建了一个大规模的数据处理流水线SwanData-Speech,从野外语音中构建独白和对话语料库,使用感知停顿的词级对齐和发音困难的合成案例。这与现有工作不同,现有工作通常使用简单的拼接策略或缺乏对对话上下文的全局建模。本文还提出了一个三阶段的课程学习策略和基于DiffusionNFT的后训练方法,这些在现有对话TTS系统中很少见。
核心方法
SwanVoice的整体思路是将长篇语音生成分解为三个关键组件:数据构建、语音压缩和生成建模。首先,SwanData-Speech流水线将野外音频处理成高质量的独白和对话训练数据,包括语音增强、说话者分离、ASR转录、停顿感知对齐和质量过滤。然后,VAE将语音波形压缩到25Hz的潜空间,降低序列长度和计算成本。接着,基于流匹配的DiT(Diffusion Transformer)在文本和说话者轮次条件下生成语音潜变量。最后,VAE解码器将潜变量转换为波形。训练采用三阶段课程学习:先在独白数据上预训练,然后在混合对话数据上训练,最后在真实对话数据上监督微调。后训练阶段使用DiffusionNFT优化发音准确性和说话者相似性。这种分层设计使得模型能够逐步学习从基础语音合成到高级对话连贯性的所有必要能力。
SwanVoice的核心创新点在于将长篇对话作为一个完整的生成问题来建模,而不是拼接独立的回合。这体现在三个方面:第一,数据构建阶段使用停顿感知的强制对齐器,将对话中的停顿模式映射到文本标点,使得模型能够学习自然的停顿行为。第二,模型架构中使用说话者轮次条件化,将每个文本token映射到对应的说话者ID,允许模型学习说话者切换和对话连贯性。第三,训练阶段使用渐进式课程学习,从独白到混合对话再到真实对话,逐步增加任务难度,避免模型在复杂对话数据上训练失败。这些设计与现有方法有本质区别,现有方法通常忽略对话上下文或使用简单的拼接策略。
方法步骤详情
SwanVoice的方法分为四个主要步骤。第一步是数据构建:SwanData-Speech流水线接收野外音频,首先应用语音增强分离人声,然后使用3D-Speaker工具包进行VAD、说话者嵌入提取、聚类和说话者分离,根据说话者顺序将片段分割成独白池和对话池。接着使用SenseVoice-Small进行ASR转录,用Swan Forced Aligner进行停顿感知的词级对齐,根据停顿长度修正标点符号。最后使用DNSMOS、PESQ、STOI和emotion2vec+进行质量和情感过滤。第二步是VAE训练:VAE编码器将语音波形下采样25倍到潜空间,解码器基于HiFi-GAN重建波形,训练目标包括重构损失、KL散度正则项和对抗损失(使用MPD、MSD、MRD判别器)。第三步是DiT训练:基于流匹配的DiT接收文本token(通过BPE分词,包含停顿符号<|sp|>和拼音替代)、说话者轮次嵌入和参考语音潜变量作为条件,预测从噪声到目标潜变量的速度场。训练采用三阶段课程:先在200万小时独白数据上预训练50万步(64个A100 GPU),然后在混合对话数据上训练60万步(32个A100 GPU),最后在真实对话数据上监督微调30万步(32个A100 GPU)。第四步是后训练:使用DiffusionNFT优化3K真实对话样本,奖励函数包括音素一致性奖励和说话者相似性奖励,训练50个epoch(8个A100 GPU)。推理时,模型使用楼梯式分类器自由引导策略,分离文本引导和参考引导,并使用sway采样提高早期生成阶段的轮廓质量。
技术新颖性
SwanVoice的技术新颖性体现在多个方面。在数据构建方面,SwanData-Speech是第一个专门为长篇对话TTS设计的大规模数据处理流水线,它引入了停顿感知的强制对齐器和发音困难的合成案例,这在现有工作中很少见。在模型架构方面,SwanVoice将25Hz VAE、原始文本条件化(包含停顿符号和拼音替代)和基于流匹配的DiT结合在一起,这种组合在对话TTS系统中是首次出现。特别是楼梯式分类器自由引导策略,允许独立控制文本内容和参考语音信息,提高了推理时的灵活性。在训练策略方面,三阶段课程学习和基于DiffusionNFT的后训练是新颖的,课程学习确保模型从简单任务逐步过渡到复杂任务,后训练直接优化发音准确性和说话者相似性,而不需要通过ASR模型进行反向传播。这些技术贡献使得SwanVoice在长篇对话TTS任务上取得了优于所有开源基线的表现。
实验结果
SwanVoice在SwanBench-Speech的Expressive Challenge子集上进行了全面评估,涵盖了声学、语义和表现力三个维度。对于独白生成,SwanVoice在表现力方面表现突出,丰富度得分为3.81,层次性得分为3.62,均高于所有评估的开源基线。与最强的基线VibeVoice相比,增益分别为0.39和0.56分。在声学方面,SwanVoice保持了0.93的说话者一致性、3.60的声音保真度和3.56的韵律连贯性,所有指标都达到或高于开源平均水平。在语义方面,内容错误率为0.172,虽然不是表格中最好的,但仍然可以接受。对于对话生成,SwanVoice在丰富度和层次性上分别达到3.62和3.71,比最强的基线高出0.53和0.56分。声学指标包括0.92的说话者一致性、3.77的声音保真度和3.70的韵律连贯性,内容错误率为0.145,低于基线平均水平但不是最优。这些结果表明,将长篇对话作为完整上下文生成问题的方法在表现力方面确实优于拼接策略,特别是在说话者切换、情感连续性和声学环境一致性方面。实验还验证了三阶段课程学习和后训练的有效性,直接从对话数据训练会导致无法理解的语音输出,而渐进式训练则能够保持独白质量的同时学习对话连贯性。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 长篇独白TTS(SwanBench-Speech Expressive Challenge) | 表现力丰富度(1-5分) | 3.81 | VibeVoice 3.42(最佳开源) | +0.39分 |
| 长篇独白TTS(SwanBench-Speech Expressive Challenge) | 表现力层次性(1-5分) | 3.62 | VibeVoice 3.06(最佳开源) | +0.56分 |
| 长篇对话TTS(SwanBench-Speech) | 表现力丰富度(1-5分) | 3.62 | SoulX-Podcast 3.15(最佳开源) | +0.47分 |
| 长篇对话TTS(SwanBench-Speech) | 表现力层次性(1-5分) | 3.71 | ZipVoice-Dialog 2.93(最佳开源) | +0.78分 |
| 长篇独白TTS | 说话者一致性(余弦相似度,越高越好) | 0.93 | GLM-TTS 0.94(最佳开源) | -0.01(基本持平) |
| 长篇独白TTS | 内容错误率(CER/WER,越低越好) | 0.172 | FishSpeech 0.066(最佳开源) | -0.106(低于最佳基线) |
局限与改进
作者在论文中明确指出了几个局限性。首先,内容准确性仍然是主要限制,在几个设置中弱于最佳基线。这表现在独白内容错误率为0.172,而最佳基线FishSpeech为0.066;对话内容错误率为0.145,也低于基线平均值。其次,当说话者声学相似或提示短暂时,说话者切换仍然可能失败。这意味着模型在区分相似声音方面还有改进空间。此外,论文没有提供关于计算开销和推理延迟的详细分析,这对于实际部署很重要。我自己的观察是,SwanVoice需要大规模的数据和计算资源进行训练(259万小时原始音频、20亿参数、多个A100 GPU集群),这使得复现和部署具有挑战性。另外,模型主要针对中文和英文,对其他语言的支持可能有限。最后,虽然表现力评分很高,但这些评分是基于MLLM-as-a-judge协议,可能存在偏见或与人类感知不完全一致。
独立分析的弱点
SwanVoice的主要弱点是内容准确性不足。在独白和对话任务中,内容错误率分别为0.172和0.145,明显高于最佳基线FishSpeech的0.066和0.101。这个问题可能在以下场景中更加严重:专业术语、多音字、语码切换、方言口音和长篇复杂句子。改进方向包括:增强文本条件化,例如使用更强的语言模型或音素化前端;改进训练数据,增加更多发音困难的案例;优化后训练奖励函数,将内容准确性作为更重要的优化目标;引入实时ASR反馈,在生成过程中进行自校正。另一个弱点是相似声音的说话者切换失败。这在广播剧、双人访谈和有声小说等场景中常见,这些场景可能有相似音色的说话者。改进方向包括:增强说话者条件化,使用更鲁棒的说话者嵌入;改进训练数据,增加相似声音的对话样本;引入额外的说话者区分约束,例如韵律或口音特征。第三个弱点是计算资源需求高,训练需要数百个A100 GPU和数百万小时的数据,这对于学术研究和小团队来说不可行。改进方向包括:模型压缩,例如知识蒸馏或参数量化;更高效的训练策略,例如低秩适应或分阶段训练;开源更小的模型变体,降低部署门槛。
未来方向
作者在论文中提出了三个主要改进方向:发音控制、对齐和停顿建模、更鲁棒的说话者轮次条件化。发音控制包括改进多音字消歧、语码切换和方言处理,这可能需要更强大的语言模型或音素化前端。对齐和停顿建模包括改进语音-文本对齐和自然停顿生成,这可能需要更精细的对齐算法或停顿预测模型。更鲁棒的说话者轮次条件化包括改进相似声音的区分和长对话中的说话者一致性,这可能需要更强的说话者嵌入或上下文建模。基于SwanVoice的成果,未来工作还可以延伸到其他方向:更多语言支持,除了中英文外扩展到其他语言;更多说话者支持,从1-4个说话者扩展到更多说话者;实时生成,降低推理延迟用于实时对话;个性化控制,允许用户更精细地调整说话者风格和情感;多模态扩展,结合视觉信息指导语音生成。此外,SwanData-Speech流水线可以进一步改进,例如更好的语音分离、更准确的说话者分离、更鲁棒的ASR和更细粒度的情感标注。最后,评估方法也可以改进,例如引入更多人类主观评价,减少对MLLM-as-a-judge的依赖。
复现评估
SwanVoice的复现难度较高。作者在论文中提供了相对详细的实现细节,包括模型架构、训练超参数和评估指标。然而,论文没有提供代码、模型权重或数据集的开源链接,这意味着其他研究者无法直接复现或验证结果。数据方面,SwanData-Speech使用了约259万小时的原始音频,其中224万小时中文和35万小时英文,这些数据主要来自内部资源,不可公开获取。虽然作者提到使用了一些开源数据集,但没有列出具体的数据集名称和获取方式。计算方面,训练需要大量计算资源:单话者预训练使用64个A100 GPU训练50万步,混合对话训练使用32个A100 GPU训练60万步,监督微调使用32个A100 GPU训练30万步,后训练使用8个A100 GPU训练50个epoch。这种规模的计算需求对于大多数学术研究团队来说难以满足。模型方面,SwanVoice有20亿参数,推理时需要VAE编码器、DiT生成器和VAE解码器,计算开销较大。作者没有提供推理延迟的详细分析,但基于流匹配的采样过程可能需要数十次迭代,不适合实时应用。评估方面,作者使用了SwanBench-Speech评估协议,包括声学、语义和表现力三个维度,但评估代码和数据集没有开源。特别是表现力评估使用了Gemini-3-Pro作为MLLM-as-a-judge,这种评估方法可能存在偏见和不可靠性。总体而言,SwanVoice的复现难度很高,需要大规模数据、计算资源和专有工具,这对于开源社区的验证和改进构成了障碍。
论文图表