VoXtream2: 具有动态语速控制的全流文本转语音系统 VoXtream2: Full-stream TTS with dynamic speaking rate control
首个可在生成过程中实时调整语速的全流零样本TTS系统
前置知识
全流文本转语音(Full-stream TTS)
一种完全在流模式下工作的TTS架构,能够接受增量生成的文本标记作为输入,并产生小的波形块作为输出。全流系统在完整文本可用之前就开始生成语音,最小化首包延迟。这要求模型能够处理有限的前瞻上下文,通常通过时序掩码、单调对齐或流式变换器实现。关键技术挑战是在有限前瞻下保持合成质量与可懂度的平衡。
本文核心贡献就是在全流模式下实现动态语速控制,理解全流TTS的约束和要求是理解本文方法创新的前提
分类器自由引导(Classifier-Free Guidance, CFG)
最初为扩散模型提出的一种技术,通过同时训练有条件和无条件的模型,然后在推理时以加权方式结合两者的预测。具体公式为 x_hat = x_uncond + gamma * (x_cond - x_uncond),其中gamma是引导强度参数。在TTS中,CFG可以应用于文本、音频和说话人嵌入等多种条件信号,通过增强条件信号的影响来改善目标说话人的相似度。但过强的CFG可能导致信号质量下降,需要在相似度和质量间权衡。
本文将CFG扩展到TTS的多条件控制,并研究了CFG对语速控制的间接影响,是本文重要的技术手段
分布匹配(Distribution Matching)
一种通过匹配目标分布来控制生成过程的技术。在本文中,分布匹配用于语速控制:首先计算当前时长标记的边缘分布P_current,然后与目标时长分布P_target进行比较,通过权重W更新预测分布,其中权重计算涉及对目标分布和累积分布P_acc的对数差。参数beta控制匹配强度。这种方法不同于直接操控时长预测器,而是在采样层面引导生成。
这是本文实现动态语速控制的核心创新,理解分布匹配机制对于掌握本文方法至关重要
零样本语音克隆(Zero-shot Voice Cloning)
无需针对特定说话人训练即可模仿任意参考语音特征的能力。系统通过简短的音频提示(通常几秒)提取说话人特征,并在生成时应用这些特征到新文本上。关键技术挑战包括准确的说话人嵌入提取、与文本条件的解耦以及跨说话人的泛化能力。现代方法通常使用预训练的说话人编码器(如ReDimNet、ECAPA-TDNN)和强大的语音表示(如神经codec)来实现零样本克隆。
本文在保持零样本语音克隆能力的同时实现了语速控制,这是对现有TTS系统的重要扩展
语速(Speaking Rate)
通常以每秒音节数(syllables-per-second, SPS)衡量,反映说话的快慢程度。人类自然对话中的语速在2-6 SPS范围内动态变化,受认知负荷、话语结构和交际意图影响。当前TTS系统大多假设语速在utterance级别是静态的,仅允许粗粒度的全局速度控制。动态语速控制要求在句子内部实现细粒度的速度变化,模仿人类在不同语境下的语速调整,如思考时放慢、强调时延长、表达熟悉内容时加快等。
语速控制是本文的核心研究问题,理解语速的动态特性对于理解本文问题的动机和挑战很重要
研究动机
现有TTS系统存在两个紧密耦合的局限性:静态语速建模和非流式生成。大多数现代TTS系统隐含假设语速在整个话语中是静态的,仅允许粗粒度的全局速度控制,这与人类自发交流中语速固有的动态性形成鲜明对比。在自然对话中,说话人会在构思思考时放慢、插入停顿和填充词(如uhm或hmm),在表达精心准备或信息密集内容时加速,这些波动通常发生在单个句子内,反映认知负荷、话语结构和交际意图。同时,虽然实时对话代理等新兴应用迫切需要低延迟的流式TTS系统,但大多数现有TTS架构仍然是fundamentally offline,需要完整的句子文本才能开始合成,在有限的流式能力系统中,可控性特别是语速控制要么缺失,要么仅在话语级别是静态的。
本文的目标是本文的目标是开发一个兼具全流合成能力和动态语速控制的零样本TTS系统,能够在文本逐步到达时以最小延迟开始说话,同时保持可控性。具体而言,系统应支持在生成过程中动态调整语速(即mid-utterance on the fly控制),在细粒度的帧级别实现语速控制,在不同语速下保持稳定的可懂度和语音克隆质量,并尽可能减少对音频提示文本转录的依赖以提高实用性。
与已有工作不同的是,本文的独特切入角度是将分布匹配机制与分类器自由引导相结合,在全流零样本TTS架构中实现动态语速控制。与现有方法不同,大多数相关工作要么专注于静态语速控制(通过时长预测器操控),要么专注于流式合成(牺牲可控性),而本文首次在流式框架下实现了可动态调整的语速控制。此外,本文通过提示文本掩码技术减少对音频提示文本转录的依赖,这在实际应用中是一个重要的可用性改进。尽管使用更少的训练数据和更小的模型规模,本文方法仍能在零样本TTS任务上与最先进的公开系统竞争性能。
核心方法
VoXtream2基于先前VoXtream模型架构,是一个由三个主要Transformer模块组成的全流零样本TTS系统。整体思路是:音素Transformer(PT)编码增量到达的音素序列,时序Transformer(TT)预测语义和时长标记,深度Transformer(DT)基于TT输出和说话人嵌入生成声学标记。动态语速控制通过分布匹配实现:系统维护一个基于滑动窗口的累积时长分布,与目标时长分布进行比较,通过计算权重来更新当前时长标记的预测分布,从而引导生成朝向目标语速。分类器自由引导(CFG)被应用于文本、音频和说话人嵌入多个条件信号,以改善可控性和合成质量。提示文本掩码移除了对音频提示文本转录的需求,通过用特殊UNK令牌替换提示文本实现。这种方法使系统更加实用,减少了对外部音素对齐器的依赖。
本文的核心创新点是在流式TTS框架内实现了可动态调整的语速控制,通过分布匹配机制在采样层面引导生成。与传统的操控时长预测器的方法不同,本文的方法不直接修改时长预测,而是通过比较当前生成的累积时长分布与目标分布,计算权重来调整采样概率,从而在不重新训练或复杂推断的情况下实现细粒度语速控制。另一个关键创新是将分类器自由引导(CFG)不仅应用于质量改善,还研究了其对语速控制的影响。此外,提示文本掩码技术移除了对音频提示文本转录的需求,这在实际应用中是一个重要的可用性改进,使系统能够直接从音频提示中提取说话人特征,而不需要预先进行语音识别和对齐。
方法步骤详情
VoXtream2的完整工作流程分为训练和生成两个阶段。训练阶段:首先从Emilia和HiFiTTS-2数据集准备40小时的训练语料,包括提取IPA音素、使用Clap-IPA强制对齐器进行音素到音频对齐、将音频通过Mimi codec转换为声学标记。对于每个训练样本,随机选择音频提示的前3-10秒,将对应的文本令牌用UNK序列替换(提示文本掩码)。以10%概率对PT的文本前缀、TT的音频前缀和DT的说话人嵌入进行掩码(CFG训练)。PT使用6层8头Transformer编码音素序列,最大前瞻25个音素。TT使用12层16头Transformer预测语义和时长标记(6种时长令牌,从范围0到2预测shift state和每帧音素数)。DT使用4层8头Transformer预测16个codebook的声学标记。优化目标是TT和DT损失的加和。生成阶段:接收增量到达的文本流,通过PT编码音素序列(至少需要3个音素的最小前瞻)。TT在每个步骤预测语义和时长令牌,如果启用语速控制,则通过分布匹配更新时长令牌采样概率:计算当前时长分布P_current,与目标分布P_target和累积分布P_acc比较,计算权重W,更新分布P_updated。使用nucleus sampling(top-p=0.9)从P_updated采样时长令牌,使用top-k采样(k=5)采样语义令牌。DT基于TT输出、说话人嵌入和选定的语义令牌生成声学标记。通过Mimi codec解码声学标记为音频波形。整个过程在全流模式下运行,首包延迟74ms,实时系数0.256。
技术新颖性
VoXtream2的技术新颖性体现在多个方面。首先,这是首个在全流零样本TTS框架内实现动态语速控制的工作,能够在生成过程中实时调整语速,而不需要重新开始或复杂的多轮推断。其次,本文提出的分布匹配机制是一种创新的语速控制方法,不同于传统的操控时长预测器,它在采样层面通过匹配目标时长分布来引导生成,使得系统能够平滑地适应语速变化。第三,本文将分类器自由引导(CFG)系统性地应用于TTS的多个条件信号(文本、音频、说话人嵌入),并深入研究了CFG参数对语速控制的间接影响,发现gamma_temp的不同值会影响不同语速下的可懂度。第四,提示文本掩码技术移除了对音频提示文本转录的需求,这是对现有零样本TTS系统的重要改进,提高了系统的实用性和鲁棒性。最后,尽管使用更少的训练数据(40小时 vs 最多167k小时)和更小的模型规模(462M参数 vs 最多1048M),VoXtream2在零样本TTS任务上仍能达到与最先进公开系统相当的性能,这表明了方法的高效性。
实验结果
VoXtream2在多个标准零样本TTS基准和专用语速测试集上取得了竞争性的客观和主观结果。在SEED test-en测试集上,VoXtream2实现了1.32%的词错误率(WER),优于大多数基线,仅略逊于Kyutai-TTS(1.34%)和F5-TTS(1.26%)。在LibriSpeech-PC test-clean测试集上,WER为2.12%,与VoiceStar(2.14%)、Spark-TTS(2.11%)相当。说话人相似度(SPK-SIM)在SEED test-en上为0.656,在LibriSpeech-PC上为0.638,虽然不是最高,但显著优于Spark-TTS(不支持语音克隆,SPK-SIM=0.05)。在自然度主观评估中,VoXtream2获得了68.8加减2.3的MUSHRA分数,是所有测试系统中最高的,超过了CosyVoice2(66.2)、VoiceStar(60.0)和MaskGCT(57.6)。在语速控制评估中,VoXtream2展示了强大的静态语速控制能力,在2-5 SPS范围内与目标语速高度相关。动态语速控制实验显示,系统能够有效跟随渐进和突变的语速变化,在S到N到F渐进变化场景中达到0.701的Pearson相关系数,在F到N到S场景中达到0.826。在S和F交替场景中相关系数为0.619,F和S场景为0.660。慢速语音(1 SPS)时WER显著增加到16.51%,这是由于极慢时长状态在训练数据中的代表性不足以及填充词插入和词重复增加所致。在流式性能方面,VoXtream2在RTX3090 GPU上实现了74ms的首包延迟和0.256的实时系数,是所有公开全流模型中最低的。消融实验表明,数据集扩展和架构改进相比原始VoXtream在所有客观指标上都有改善;仅对文本条件应用CFG将WER从2.29%降至1.37%;引入音频CFG将SPK-SIM从0.578提高到0.661;增加说话人嵌入权重进一步改善SPK-SIM至0.679;添加声学提示增强模块达到最佳UTMOS(4.05)和WER(1.32)。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Zero-shot TTS (SEED test-en) | WER (%) | 1.32 | Kyutai-TTS: 1.34, F5-TTS: 1.26, Spark-TTS: 1.85 | 接近最优,显著优于大多数基线 |
| Zero-shot TTS (SEED test-en) | SPK-SIM | 0.656 | MaskGCT: 0.712, CosyVoice2: 0.658, VoiceStar: 0.605 | 中等水平,优于不支持语音克隆的Spark-TTS |
| Zero-shot TTS (SEED test-en) | UTMOS | 4.05 | CosyVoice2: 4.16, VoiceStar: 3.92, MaskGCT: 3.56 | 接近最优 |
| Naturalness MUSHRA | Score (0-100) | 68.8 +/- 2.3 | CosyVoice2: 66.2, VoiceStar: 60.0, MaskGCT: 57.6 | 最高分数,显著优于所有基线 |
| Full-stream latency | First Packet Latency (ms) | 74 | Kyutai-TTS: 277, VoXtream: 78 | 最低延迟 |
| Full-stream speed | Real-time Factor | 0.256 | Kyutai-TTS: 0.272, VoXtream: 0.223 | 快速生成,比实时快约4倍 |
| Dynamic speaking rate control | Pearson Correlation (gradual) | 0.701-0.826 | 无公开基线 | 首次在流式TTS中实现动态语速控制 |
局限与改进
作者承认的局限性包括:VoXtream2并未完全从音频提示的语速中解耦,如表3所示,生成的语速仍受提示语速影响。虽然提出的SRC方法(图7)部分缓解了这种效应,但在某些提示和目标语速组合中观察到WER增加,例如慢速提示在生成快语速语音时增加WER,而快速提示在慢速目标时降低质量。另一个局限性是数据预处理管道的复杂性,虽然生成时不需要外部音素对齐器,但它仍然是训练数据准备的关键组件。如第4.1节所示,大约35%的数据由于无效对齐而被丢弃。作者还注意到在极慢语速(1 SPS)时WER显著增加,主要是由于训练数据中极慢时长状态的代表性不足以及填充词插入和词重复增加。此外,动态语速控制的质量与目标语速的起始状态有关,实验显示从快语速开始比从慢语速开始获得更强的可控性,但代价是可懂度降低。我自己的观察还包括:VoXtream2在极快语速(大于6 SPS)时的可靠性下降,作者报告最大可靠语速约为5-6 SPS;在动态语速控制的快速交替场景中(S和F, F和S),相关系数相对较低(0.619-0.660),表明系统在处理突变语速变化时仍有改进空间;声学提示增强虽然改善了UTMOS和WER,但略微降低了SPK-SIM,这表明在信号质量和说话人相似度之间存在权衡。
独立分析的弱点
独立分析的弱点包括:首先,分布匹配机制依赖于准确的时长状态估计,而时长状态在极慢或极快语速时可能不可靠,导致幻觉和填充词过度插入。改进方向可以是引入自适应的beta参数,根据目标语速动态调整匹配强度,或者使用更鲁棒的时长状态估计方法。其次,提示语速与目标语速的相互影响表明,当前的语音编码器在编码音频提示时可能隐式地编码了语速信息,导致生成时延续提示的语速风格。改进方向可以是使用独立的提示编码器,在训练时显式分离语速信息和说话人信息,或者采用对比学习来增强语速解耦。第三,数据预处理中35%的数据丢弃率很高,表明强制对齐的失败率。改进方向可以是探索更鲁棒的对齐方法,如端到端学习对齐,或者使用弱监督的自监督对齐。第四,动态语速控制在快速交替场景下的性能下降,可能是因为3秒滑动窗口的累积分布对于快速变化响应不够快。改进方向可以是使用自适应窗口大小或更复杂的时序建模方法来捕获更短时长的语速变化。第五,当前方法只控制了语速而没有控制其他韵律特征如音调和能量,这在实际应用中可能不够灵活。改进方向可以是扩展分布匹配机制到其他韵律维度,实现多维度综合控制。
未来方向
作者提出的未来工作方向包括探索使用专门的提示编码器或替代训练目标来更好地解耦提示和目标语速;计划探索替代对齐方法以减少对复杂数据预处理管道的依赖。基于本文成果可延伸的未来研究方向包括:将分布匹配机制扩展到其他韵律控制维度,如音调变化、能量变化和情感表达,实现更全面的韵律控制;探索更细粒度的语速控制,如音素级或词级控制,以支持更复杂的应用场景;研究多语言动态语速控制,当前方法主要在英语上评估,扩展到其他语言需要考虑语言特定的韵律模式;结合大型语言模型(LLM)的流式生成,研究TTS系统如何适应LLM的文本生成速率变化,实现更自然的端到端对话系统;探索自适应语速控制,根据对话状态、用户反应或内容重要性自动调整语速,而无需显式控制信号;研究在嘈杂环境或低带宽条件下的鲁棒语速控制,确保在各种实际应用场景中的稳定性。
复现评估
VoXtream2的复现难度中等,作者提供了代码、预训练模型和音频示例,这些资源在https://herimor.github.io/voxtream2/上公开可用。训练使用了Emilia 47k小时英语子集和HiFiTTS-2 15k小时训练子集,总共40小时经过过滤和处理的训练数据,这些数据集都是公开可用的。模型架构基于Llama-3.2 Transformer,TT模块12层16头,PT 6层8头,DT 4层8头,总参数量462M。训练在2乘NVIDIA H200 GPU上进行28小时,批量大小64每GPU,共10个epoch。对于有H200访问权限的研究者,完整训练是可行的。对于只有消费级GPU的研究者,可以使用预训练模型进行推理和实验。作者报告在RTX3090上的推理性能(74ms FPL, 0.256 RTF),表明在消费级硬件上也能实现实时流式合成。代码使用torch.compile和CUDA Graphs优化,提高了GPU利用率。实验评估使用的三个测试集(LibriSpeech-PC test-clean, SEED-TTS test-en, Emilia speaking-rate)都是公开的或由作者在HuggingFace上发布(hf.co/datasets/herimor/voxtream2-test/)。评估指标(WER, SPK-SIM, UTMOS, MUSHRA)都是标准且可重现的。整体而言,VoXtream2的复现性较好,但需要考虑H200 GPU的可用性,如果资源有限,可以使用提供的预训练模型进行推理和实验。
论文图表
生成填充词数量与语速之间的依赖关系图。图中显示了随着语速从2 SPS增加到6 SPS,生成的填充词数量从约13个减少到约2个。图中还区分了包含填充词的提示和不包含填充词的提示,显示包含填充词的提示会进一步增加填充词的出现。VoXtream2是唯一展示这种自适应填充词插入行为的系统,符合人类语音的模式:慢速时填充词更多,快速时几乎消失。
这张图展示了VoXtream2的一个独特能力——自适应填充词插入,这是使合成语音更自然的重要特性。通过这张图,读者可以理解系统如何在不同语速下模仿人类说话行为,包括在慢速时自动插入填充词,这增加了语音的自然感和真实感。
不同TTS模型的目标语速与合成语速之间的相关性散点图。图中显示了六个模型(VoiceStar, MaskGCT, CosyVoice2-Instruct, Spark-TTS-Control, VoXtream2)在2-6 SPS范围内的表现。每个点表示一个样本,x轴是目标语速,y轴是合成语速。图中显示VoiceStar和MaskGCT能够精确匹配目标语速,但质量下降;CosyVoice2的调整范围有限;VoXtream2和Spark-TTS显示出强可控性,VoXtream2支持2-5 SPS范围内的连续控制,而Spark-TTS只支持五个离散状态。
这张图量化评估了静态语速控制的准确性,是理解VoXtream2语速控制能力的重要指标。通过这张图,读者可以比较不同模型的语速控制精度和范围,理解VoXtream2相对于其他方法的优势。