系列文章导航
第一篇:语音合成技术发展简史 | 第二篇:主流 TTS 架构对比 | 第三篇:语音克隆是怎么实现的
第四篇:TTS 推理速度为什么这么慢 | 第五篇:本地部署 TTS 方案横向对比 | 第六篇:VoxFlash-TTS 部署实践

相关技术专题
语音克隆模型架构对比:F5-TTS、Supertonic TTS 与 VoxFlash-TTS
语音克隆模型的难点之一:音素对齐及交叉注意力早期失效问题——F5-TTS、SupertonicTTS、VoxFlash-TTS 对比
扩散模型语音克隆:参考音频注入的五种方式
掩码扩散语音克隆:参考音频为什么会被噪声"污染"?
扩散模型的"训练-推理鸿沟":Exposure Bias 全景分析
Flow Matching 训练的输入分布问题:从 VAE Latent 统计性质到归一化工程实践

本篇:TTS 中的音素对齐(技术专题)

全文沿"显式时长建模 → 隐式对齐学习 → 弱显式对齐(Alignment Prior)"主线展开,附加一节专题分析注意力机制本身的对齐矛盾。


摘要

音素对齐(phoneme alignment,又称文本-语音对齐,speech-text alignment)是 TTS 系统的核心问题之一:模型必须知道"哪个音素对应哪些帧",才能将文本内容准确地映射到语音信号上。本文沿着**显式时长建模 → 隐式对齐学习 → 弱显式对齐(Alignment Prior)**这条主线,系统梳理音素对齐的完整演进脉络:显式时长建模阶段,区分强制对齐(MFA)与 MAS 两种训练监督手段的本质——两者均只在训练时提供时长标注,推理时由模型内部独立的 Duration Predictor 自主预测,FastSpeech2、Grad-TTS、Matcha-TTS、P-Flow、Voicebox、NaturalSpeech 3 均属此类;隐式对齐学习阶段,E2-TTS、F5-TTS、SupertonicTTS 完全摆脱显式时长,但实现机制并不相同——E2-TTS、 F5-TTS将音素序列与噪声序列在通道维度 concat 后通过自注意力学习对齐,SupertonicTTS 则保留音素序列独立、通过交叉注意力直接对齐,两条子路线都带来自然度的大幅提升,但鲁棒性随之下降;弱显式对齐阶段,MegaTTS 3 的稀疏锚点与 VoxFlash-TTS 的粗粒度下采样正是针对这一鲁棒性问题提出的改进,提供"方向提示"而非"精确答案",在隐式学习的基础上加回粗粒度位置信息。在三段主线之后,文章单独以一节分析扩散模型中交叉注意力在早期时间步因 Query 为噪声而失效的结构性矛盾,以及 Concat 自注意力、LARoPE 归一化位置编码、预计算显式对齐三种规避思路。每种方案均深入分析其数学原理、工程实现与优缺点。


一、为什么对齐是 TTS 的核心问题

在语音合成任务中,输入是一段文本序列(字符或音素),输出是一段 mel-spectrogram(或波形)。设文本序列长度为 M M M,输出 mel 帧数为 T T T,则两者之间存在天然的长度不匹配:

M ≪ T M \ll T M≪T

例如一个包含 20 个音素的句子,对应的 mel 帧数可能有 300~500 帧(100Hz 帧率下约 3~5 秒语音)。

音素对齐要解决的问题,就是建立从音素序列到语音帧序列的映射函数 A : [ 1 , T ] → [ 1 , M ] A: [1, T] \to [1, M] A:[1,T]→[1,M],满足:

  • 单调性:语音帧必须按照文本顺序对应音素(不能乱序)
  • 满射性:每个音素至少对应一帧(不能跳字漏音)
  • 可变性:不同语境、不同说话人、不同情绪下,同一音素对应的帧数可以不同

这个映射的质量,直接决定了合成语音的清晰度(音素是否被正确发出)和自然度(节奏、停顿、韵律是否自然)。

历史上,TTS 领域在对齐问题上走过了几条截然不同的技术路线,本文将逐一展开。


二、FastSpeech 系列:显式时长建模范式的确立

在深入各种对齐方案之前,有必要先介绍 FastSpeech 系列——它是显式时长建模这一范式在深度学习 TTS 中的奠基者,Duration Predictor + Length Regulator 这套核心组件正是由此确立,并被后续几乎所有非自回归 TTS 模型(包括 Grad-TTS、Matcha-TTS、P-Flow)直接继承。

2.1 FastSpeech(2019):从教师注意力中提取时长

FastSpeech(Microsoft,Interspeech 2019)的核心动机是解决自回归 TTS(如 Tacotron 2)推理速度慢、对齐不稳定的问题。它提出了非自回归生成范式:一次性将音素序列转换为完整的 mel-spectrogram,无需逐帧自回归解码。

整体结构如下:

音素序列
  → Encoder(FFT Block × N)        # 多头自注意力 + 1D 卷积
  → Duration Predictor(2层 CNN)   # 预测每个音素的帧数
  → Length Regulator                # 按时长展开为帧级序列
  → Decoder(FFT Block × N)
  → Linear → mel-spectrogram        # 直接回归,MSE 损失
  → Vocoder(WaveGlow 等)→ 波形

对齐来源:教师模型注意力蒸馏

FastSpeech 的时长标注通过一种特殊方式获得:先训练一个自回归 Transformer TTS 作为教师模型,从其 encoder-decoder cross-attention 矩阵中提取每个音素对应的帧数。具体地,对第 i i i 个音素,其时长 d i d_i di​ 定义为 decoder 各层注意力矩阵中对该音素关注度最高的帧数之和:

d i = ∑ j = 1 T 1 [ arg ⁡ max ⁡ k α j , k = i ] d_i = \sum_{j=1}^T \mathbf{1}\left[\arg\max_k \alpha_{j,k} = i\right] di​=j=1∑T​1[argkmax​αj,k​=i]

其中 α j , k \alpha_{j,k} αj,k​ 为第 j j j 个解码帧对第 k k k 个音素的注意力权重。

这种方式有明显的缺陷:教师模型的注意力权重并不总是单调的,对齐质量参差不齐,尤其在长句和特殊发音上容易出错。这直接推动了 FastSpeech2 的改进。

生成范式:一次性回归,无扩散步骤

FastSpeech(及整个 FastSpeech 系列)是纯判别式回归模型:给定音素序列,直接通过前向传播一次性输出 mel-spectrogram,无任何迭代去噪或 ODE 积分。训练目标为 mel 重建的 MSE 损失:

L = ∥ x ^ − x ∥ 2 \mathcal{L} = \|\hat{x} - x\|^2 L=∥x^−x∥2

这带来了极快的推理速度,但也引入了著名的过度平滑问题(over-smoothing):MSE 损失驱使模型预测所有可能输出的条件均值,导致 mel 频谱在高频区域模糊,合成语音缺乏细节和表现力。过度平滑问题正是后来扩散模型与流匹配模型兴起的核心动机——用生成式建模替代判别式回归,从根本上解决这一问题。

2.2 FastSpeech2(2021):强制对齐替换注意力蒸馏

FastSpeech2(Microsoft,ICLR 2021)在 FastSpeech 基础上做了两项重要改进。

改进一:用 MFA 强制对齐替换教师注意力蒸馏

FastSpeech2 使用 Montreal Forced Aligner(MFA) 提取音素级时长作为训练时的监督信号,彻底放弃了不稳定的教师注意力蒸馏。MFA 给出每个音素的精确起止帧,用于训练 Duration Predictor;推理时 MFA 不再参与,完全由 Duration Predictor 自主预测每个音素的时长,再经 Length Regulator 展开为帧级序列。训练数据的对齐质量得到显著提升,同时推理阶段对外部工具零依赖。

改进二:引入 Variance Adaptor

FastSpeech2 在 Length Regulator 之前插入了 Variance Adaptor,额外预测三个声学属性:

Variance Adaptor = Duration Predictor + Pitch Predictor + Energy Predictor \text{Variance Adaptor} = \text{Duration Predictor} + \text{Pitch Predictor} + \text{Energy Predictor} Variance Adaptor=Duration Predictor+Pitch Predictor+Energy Predictor

  • Pitch Predictor:预测帧级基频(F0),通过连续小波变换(CWT)提取训练标签,捕获语调变化
  • Energy Predictor:预测帧级能量(mel 幅度均值),控制发音响度

这三个属性在推理时既可以由预测器自动生成,也可以由用户手动指定,赋予了 FastSpeech2 一定的可控性。

FastSpeech 系列的历史地位

FastSpeech 系列是非自回归 TTS 的里程碑,但它本质上是一个确定性回归模型,与后续的生成式 TTS 存在范式差异:

维度FastSpeech2Grad-TTS / F5-TTS 等
生成范式判别式回归(直接预测 mel)生成式建模(学习数据分布)
推理步数1 步,极快多步 ODE/SDE 积分
输出多样性❌ 确定性,同输入必然同输出✅ 随机采样,每次略有不同
高频细节❌ 过度平滑✅ 生成式建模避免均值回归
对齐方式MFA 作为训练监督,推理时由 Duration Predictor 自主预测各异(MAS / 隐式 / 稀疏)

Duration Predictor + Length Regulator 这套架构虽然起源于 FastSpeech,但其显式时长建模的思想被生成式 TTS 完整继承:Grad-TTS、Matcha-TTS、P-Flow 均保留了这一组件,只是将下游的 MSE 回归替换为扩散或流匹配生成。可以说,FastSpeech2 确立的对齐范式,深刻影响了此后整整一代 TTS 模型的架构设计。


三、显式时长建模:强制对齐与 MAS 作为训练监督

FastSpeech 系列确立了"Duration Predictor + Length Regulator"的显式时长建模范式:模型内部有一个独立的时长预测模块,训练时需要某种时长标注来监督这个模块,推理时则完全由模块自主预测,不再依赖任何外部信息。

不同模型在训练时获取时长标注的方式分为两条路线:强制对齐(借助外部工具)和 MAS(模型内部动态规划),但两者的本质完全相同——仅仅是训练阶段获取监督信号的手段,推理时都不再参与。

3.1 强制对齐:借助外部工具

强制对齐(Forced Alignment)借助外部语音识别工具,从已有的音频-文本对中自动提取每个音素的时间边界。典型工具包括 Montreal Forced Aligner(MFA)、Kaldi 对齐工具等。

其核心思路是:给定音频 x x x 和对应文本转录 y y y,用一个预训练的 ASR 声学模型(通常是 HMM-GMM 或 HMM-DNN)计算最优对齐路径:

A ∗ = arg ⁡ max ⁡ A P ( x ∣ y , A ) A^* = \arg\max_A P(x | y, A) A∗=argAmax​P(x∣y,A)

输出的结果是每个音素的起止时间戳,例如:

/h/  0.00s - 0.08s
/ɛ/  0.08s - 0.15s
/l/  0.15s - 0.22s
/oʊ/ 0.22s - 0.35s

这些时间戳被转换为每个音素的帧数标注 l 1 , l 2 , … , l M l_1, l_2, \ldots, l_M l1​,l2​,…,lM​,用于监督模型内部的 Duration Predictor 训练。

3.2 MAS:模型内部的动态规划

强制对齐需要外部工具,且对 in-the-wild 数据的处理效果不稳定。单调对齐搜索(Monotonic Alignment Search,MAS)提供了一种不依赖外部工具、在训练过程中由模型自己学习对齐的方案,最早由 Glow-TTS 提出,后被 Grad-TTS、Matcha-TTS 等广泛沿用。

MAS 将对齐问题建模为一个最优路径搜索问题。给定文本编码器输出 μ ~ 1 : M \tilde{\mu}_{1:M} μ~​1:M​ 和目标 mel x 1 : T x_{1:T} x1:T​,定义对齐得分矩阵:

Q [ i ] [ j ] = log ⁡ p ( x j ∣ μ ~ i ) Q[i][j] = \log p(x_j | \tilde{\mu}_i) Q[i][j]=logp(xj​∣μ~​i​)

其中 p ( x j ∣ μ ~ i ) p(x_j | \tilde{\mu}_i) p(xj​∣μ~​i​) 是在假设第 j j j 帧由第 i i i 个音素生成的情况下的对数似然。

最优对齐路径 A ∗ A^* A∗ 定义为使累积对数似然最大的单调满射映射:

A ∗ = arg ⁡ max ⁡ A ∈ A ∑ j = 1 T log ⁡ p ( x j ∣ μ ~ A ( j ) ) A^* = \arg\max_{A \in \mathcal{A}} \sum_{j=1}^T \log p(x_j | \tilde{\mu}_{A(j)}) A∗=argA∈Amax​j=1∑T​logp(xj​∣μ~​A(j)​)

其中 A \mathcal{A} A 为所有合法的单调满射映射集合。这个问题可以用动态规划高效求解,时间复杂度为 O ( M T ) O(MT) O(MT),在 TTS 的典型序列长度下完全可行。

递推公式为:

V [ i ] [ j ] = Q [ i ] [ j ] + max ⁡ ( V [ i − 1 ] [ j − 1 ] ,   V [ i ] [ j − 1 ] ) V[i][j] = Q[i][j] + \max(V[i-1][j-1],\ V[i][j-1]) V[i][j]=Q[i][j]+max(V[i−1][j−1], V[i][j−1])

回溯 V [ M ] [ T ] V[M][T] V[M][T] 即得最优路径。

Prior Loss:让编码器输出接近目标 mel

MAS 的关键是 Q [ i ] [ j ] Q[i][j] Q[i][j] 的计算需要知道 p ( x j ∣ μ ~ i ) p(x_j | \tilde{\mu}_i) p(xj​∣μ~​i​),即文本编码器的输出 μ ~ i \tilde{\mu}_i μ~​i​ 需要在语义上接近目标 mel 帧 x j x_j xj​。

Grad-TTS 通过引入 Prior Loss 来实现这一点:

L enc = − ∑ j = 1 T log ⁡ φ ( x j ;   μ ~ A ( j ) , I ) \mathcal{L}_\text{enc} = -\sum_{j=1}^T \log \varphi(x_j;\, \tilde{\mu}_{A(j)}, I) Lenc​=−j=1∑T​logφ(xj​;μ~​A(j)​,I)

等价地,即最小化帧级展开后的文本特征 μ \mu μ 与目标 mel 之间的 MSE:

L enc = MSE ( μ , x ) \mathcal{L}_\text{enc} = \text{MSE}(\mu, x) Lenc​=MSE(μ,x)

这使得文本编码器的输出 μ \mu μ 成为目标 mel 的粗粒度近似,让 MAS 的对齐得分矩阵有了有效的监督信号。Matcha-TTS 完全沿用了这一设计,将 MAS 与 Prior Loss 作为标准配置迁移到 flow matching 框架中。

MAS 在每个训练 step 动态计算当前最优对齐,从而得到每个音素的时长 l i = ∑ j 1 [ A ( j ) = i ] l_i = \sum_j \mathbf{1}[A(j) = i] li​=∑j​1[A(j)=i],用于训练独立的时长预测器(通常是 2 层 CNN),损失为 log 域的 MSE:

L dur = MSE ( log ⁡ l ^ , log ⁡ l ) \mathcal{L}_\text{dur} = \text{MSE}(\log \hat{l}, \log l) Ldur​=MSE(logl^,logl)

推理时,MAS 不再运行,由训练好的时长预测器直接预测时长,再通过 Length Regulator 展开为帧级序列。

3.3 两条路线殊途同归

无论是强制对齐还是 MAS,最终都汇聚到同一个落点:训练一个独立的 Duration Predictor,推理时完全自主预测时长,不再依赖任何外部对齐工具或动态规划计算。

强制对齐路线:MFA(外部工具)→ 时长标注 → 监督 Duration Predictor
MAS 路线:     模型内部动态规划 → 时长标注 → 监督 Duration Predictor
                                                  │
                                          推理时统一由 Duration Predictor 自主预测
                                          → Length Regulator 展开

FastSpeech2、Grad-TTS、Matcha-TTS、P-Flow 均属于这一范式:训练阶段获取时长标注,监督模型内部的时长模块;推理阶段完全自主,不再触及任何外部信息。

Voicebox 和 NaturalSpeech 3 同样属于这一范式,只是时长模块的具体形式更复杂:

  • Voicebox(Meta,NeurIPS 2023)由时长模型和声学模型两部分组成,均为 Transformer 架构。训练时用强制对齐工具获取音素与目标 mel 的对齐,用于训练一个独立的时长模型(可以是简单回归模型,也可以是 flow matching 模型);推理时由该时长模型自主预测时长,再展开为帧级序列拼接进声学模型的输入。

  • NaturalSpeech 3(Microsoft,ICML 2024)用内部对齐工具获取音素级时长,这个时长标注用于训练一个独立的时长扩散模型;推理时由该扩散模型生成时长,再驱动后续的韵律/内容/声学细节扩散模型。

两者与 FastSpeech2、Grad-TTS 的本质相同——训练时用对齐标注监督一个独立时长模型,推理时完全自主——区别仅在于时长模型的复杂度(简单回归 / flow matching / 扩散模型)。

3.4 优缺点分析

优势:

  • 鲁棒性极强,模型几乎不会跳字漏音
  • 清晰度(WER)表现优异
  • 简化了生成模型的学习难度,训练收敛更快
  • 推理时不依赖任何外部工具,部署简单

劣势:

  • 对齐路径在推理时由 Duration Predictor 完全锁死,限制了模型的韵律搜索空间
  • 整体自然度高度依赖训练阶段对齐标注的准确性
  • Duration Predictor 的预测误差会直接影响后续生成质量,且无法在生成过程中自我修正

四、显式时长建模的系统性局限

无论是强制对齐还是 MAS,它们的本质都是显式时长建模:先确定每个音素"说多长",再基于这个长度展开、生成语音。这个两阶段范式带来了一个系统性的局限。

4.1 韵律搜索空间被压缩

人类说话时,音素的时长受到大量上下文因素的影响:语速、情感、强调、句末拖长、协同发音……这些因素共同决定了一个音素在具体语境中的发音时长,且往往无法从文本中直接预测。

显式时长建模将这一高度随机的过程压缩为一个确定性回归问题,模型只能预测"平均时长",无法建模时长的分布。即便使用扩散模型来预测时长(如 NaturalSpeech 3 的时长扩散模型),时长的不确定性也被独立建模,与后续声学模型的联合分布被割裂了。

4.2 误差累积效应

在多阶段串联系统中(时长预测 → Length Regulator → 声学生成),前一阶段的误差会直接传播到后一阶段。一旦时长预测偏差超过阈值(例如,某个停顿被忽略,或某个元音被压缩过短),后续的声学模型无论质量多高,都无法弥补。

4.3 P-Flow 的尝试

P-Flow(NeurIPS 2023)在这个方向上做了一个有趣的改进:将说话人的音色信息通过 Speech-Prompted Text Encoder 融入文本表示 h h h,并要求 h ≈ x h \approx x h≈x(通过 L enc = MSE ( h , x ) \mathcal{L}_\text{enc} = \text{MSE}(h, x) Lenc​=MSE(h,x))。这使得 flow matching 解码器可以从一个"已经接近目标 mel、且包含说话人音色"的有色噪声 N ( h , I ) \mathcal{N}(h, I) N(h,I) 出发(继承自 Grad-TTS),而不是从零均值白噪声出发,大幅缩短了生成路径。

然而,P-Flow 同样保留了 MAS 对齐和 Length Regulator,属于显式时长建模范畴,韵律自然度的天花板仍然受限。

4.4 走向隐式学习

显式时长建模的根本矛盾在于:时长信息一旦确定,就成为后续生成过程不可更改的硬约束,模型无法根据语境自主调整节奏。一个自然的改进思路是——既然硬约束限制了自然度,能否彻底放弃显式时长,让注意力机制自己学习对齐?

下一节介绍的 E2-TTS、F5-TTS 正是沿着这个方向走出的第一步,也是最彻底的一步:完全去掉时长预测器,把对齐的决定权完全交给模型本身。


五、隐式对齐:无对齐模型的崛起

5.1 核心思路

2024 年,E2-TTS 和 F5-TTS 提出了一种截然不同的对齐范式:完全去掉时长预测器和 Length Regulator,让模型通过注意力机制自行学习文本与语音之间的对齐路径。

这类方法的灵感来源于 Voicebox 的 infilling 范式:将参考音频和待生成区域作为同一序列,模型通过双向上下文自然地学会"填空"。区别在于,E2-TTS 和 F5-TTS 不需要帧级音素标注,而是将未展开的音素序列与 noisy mel 序列一起输入模型。

5.2 E2-TTS:极简化的对齐学习

E2-TTS(Microsoft,2024)的输入构造极为简单:

  1. 将输入文本的音素序列 p 1 : M p_{1:M} p1:M​ 用可学习的 filler token ⟨ F ⟩ \langle F \rangle ⟨F⟩ 填充至目标长度 T T T( T T T 由语速估计或用户指定)
  2. 将填充后的序列与 noisy mel x t x_t xt​ 在通道维度上拼接:

input i = [ x t i ⊕ c i ] , c i ∈ { p 1 , … , p M , ⟨ F ⟩ } \text{input}_i = [x_t^i \oplus c_i], \quad c_i \in \{p_1, \ldots, p_M, \langle F \rangle\} inputi​=[xti​⊕ci​],ci​∈{p1​,…,pM​,⟨F⟩}

  1. 输入 DiT,预测向量场 v θ v_\theta vθ​

模型通过注意力机制自行决定哪些位置对应哪些音素,实现了真正的端到端对齐学习。

5.3 F5-TTS:ConvNeXtV2 文本编码器与 Sway Sampling

F5-TTS 在 E2-TTS 基础上做了两项关键改进:

ConvNeXtV2 文本编码器:将原始音素 embedding 替换为 ConvNeXtV2 编码的字符级特征,提供了更丰富的上下文语义,有助于模型建立更准确的隐式对齐。

Sway Sampling:一种非均匀时间步采样策略,对 ODE 积分中信息密度更高的时间段分配更多步数,在不增加 NFE 总数的前提下提升生成质量。

F5-TTS 的推理输入将 masked mel(参考音频区域保留原始特征,目标区域填零)与 noisy mel 在通道维度 concat 后输入 DiT:

input = [ x t ⊕ x masked ] \text{input} = [x_t \oplus x_\text{masked}] input=[xt​⊕xmasked​]

其中 x masked i = x i x_\text{masked}^i = x^i xmaskedi​=xi 若该帧属于参考区域,否则为 0 \mathbf{0} 0。

5.4 隐式对齐的优缺点

优势:

  • 对齐由模型自主学习,韵律更加自然流畅
  • 不需要外部对齐工具,数据处理更简单
  • 说话人风格(包括语速、停顿习惯)可以通过参考音频隐式传递

劣势:

  • 鲁棒性差:在困难句(长句、数字串、生僻词、跨语言 prompt)下容易出现跳字、重复、插入错误
  • 目标长度 T T T 难以确定:通常需要启发式估算,估计偏差会直接导致语速异常
  • 无法细粒度控制:无法精确控制某个音素的发音时长
  • 在跨语言声音克隆场景下,隐式对齐的鲁棒性问题被进一步放大

六、弱显式对齐:Alignment Prior

上一节介绍的隐式对齐学习(E2-TTS、F5-TTS)走向了另一个极端——完全不提供任何位置提示,对齐完全交由注意力机制自主学习。这带来了自然度的提升,但代价是鲁棒性下降:在困难句、长句、跨语言场景下容易跳字漏音。

MegaTTS 3 和 VoxFlash-TTS 正是针对这一问题提出的改进:既不回到显式时长建模的硬约束,也不完全放任注意力机制自由发挥,而是提供粗粒度的位置提示,把细化对齐路径的自由度交还给生成模型本身:

显式时长建模:  每一帧精确绑定音素,搜索空间为零
隐式对齐学习:  不提供任何位置提示,完全由注意力机制自主决定(上一节)
弱显式对齐:    在隐式学习的基础上加回粗粒度位置提示,兼顾鲁棒性与自然度

可以把这类方案理解为"给模型一个方向提示,而非直接给出答案"——MegaTTS 3 和 VoxFlash-TTS 是这条路线的两个代表,分别用稀疏锚点和下采样压缩两种不同方式实现了这一设计目标。

6.1~6.4:MegaTTS 3 的稀疏对齐方案

6.1 问题的本质

回顾两种范式的核心矛盾:

显式对齐(强制/MAS)隐式对齐(E2/F5)
鲁棒性✅ 强❌ 弱
自然度❌ 受限✅ 高
对齐搜索空间完全锁死完全自由
细粒度控制✅ 支持❌ 困难

MegaTTS 3(浙江大学 + ByteDance,2025)提出了一个优雅的折中方案:稀疏对齐(Sparse Alignment)——只提供粗粒度的对齐锚点,将细粒度对齐路径的决定权交还给模型。

6.2 稀疏对齐的数学构造

设潜变量序列 z = [ z 1 , z 2 , … , z n ] z = [z_1, z_2, \ldots, z_n] z=[z1​,z2​,…,zn​],音素序列 p = [ p 1 , p 2 , … , p m ] p = [p_1, p_2, \ldots, p_m] p=[p1​,p2​,…,pm​],时长序列 d = [ d 1 , d 2 , … , d m ] d = [d_1, d_2, \ldots, d_m] d=[d1​,d2​,…,dm​]。

完整强制对齐路径(传统方法):

a = [ p 1 , … , p 1 ⏟ d 1 , p 2 , … , p 2 ⏟ d 2 , … , p m , … , p m ⏟ d m ] a = [\underbrace{p_1, \ldots, p_1}_{d_1}, \underbrace{p_2, \ldots, p_2}_{d_2}, \ldots, \underbrace{p_m, \ldots, p_m}_{d_m}] a=[d1​ p1​,…,p1​​​,d2​ p2​,…,p2​​​,…,dm​ pm​,…,pm​​​]

每一帧都被精确绑定到对应音素,搜索空间为零。

稀疏对齐路径(MegaTTS 3):

对每个音素,在其对应区域内随机保留一个锚点,其余位置用 mask token [M] \texttt{[M]} [M] 填充:

a ~ = [ [M] , … , p i , … , [M] ⏟ d i  个位置 ] i = 1 m \tilde{a} = [\underbrace{\texttt{[M]}, \ldots, p_i, \ldots, \texttt{[M]}}_{d_i \text{ 个位置}}]_{i=1}^m a~=[di​ 个位置 [M],…,pi​,…,[M]​​]i=1m​

以 d = [ 2 , 2 , 3 ] d = [2, 2, 3] d=[2,2,3] 为例:

强制对齐:[p₁, p₁, p₂, p₂, p₃, p₃, p₃]
稀疏对齐:[M,  p₁, p₂, M,  M,  M,  p₃]  (锚点位置随机)
隐式对齐:[p₁, F,  p₂, F,  p₃, F,  F ]  (filler 填充)

将 a ~ \tilde{a} a~ 经过卷积下采样后与潜变量序列 z z z 在通道维度 concat,输入 DiT:

input = [ z ⊕ downsample ( a ~ ) ] \text{input} = [z \oplus \text{downsample}(\tilde{a})] input=[z⊕downsample(a~)]

6.3 稀疏对齐为什么有效

稀疏锚点的关键性质是:

提供粗粒度边界:模型知道"音素 p i p_i pi​ 大致在哪个时间区间内",大幅降低了对齐学习的难度。

保留细化空间: [M] \texttt{[M]} [M] 区域内,Transformer 的自注意力机制可以自由地构建细粒度对齐路径,模型仍有决定节奏和韵律的能力。

对时长误差鲁棒:锚点位置只需"大致对",即便时长预测有小偏差,Transformer 也可以通过注意力自我修正——这是与强制对齐的本质区别。

MegaTTS 3 的实验表明,相较于强制对齐方法(如 NaturalSpeech 3),稀疏对齐在 WER(清晰度)上与之持平,但 CMOS(自然度)显著提升;相较于纯隐式对齐(如 F5-TTS),在困难句上的鲁棒性明显更好。

6.4 MegaTTS 3 的整体架构

MegaTTS 3 基于 Rectified Flow 进行潜变量生成:

d Z t = v ( Z t , t )   d t , t ∈ [ 0 , 1 ] dZ_t = v(Z_t, t)\, dt, \quad t \in [0, 1] dZt​=v(Zt​,t)dt,t∈[0,1]

训练目标为:

min ⁡ v ∫ 0 1 E [ ∥ ( Z 1 − Z 0 ) − v θ ( Z t , t ) ∥ 2 ] d t \min_v \int_0^1 \mathbb{E}\left[\|(Z_1 - Z_0) - v_\theta(Z_t, t)\|^2\right] dt vmin​∫01​E[∥(Z1​−Z0​)−vθ​(Zt​,t)∥2]dt

语音先经过 WaveVAE 压缩为 25 帧/秒的潜变量(相比 mel 的 100 帧/秒压缩了 4 倍),降低了序列长度和计算负担。

解码器为 LLaMA 风格的 Transformer,使用 RoPE 位置编码,结合 masked speech modeling 进行训练:将完整潜变量序列随机分割为 prompt 区域 z prompt z_\text{prompt} zprompt​ 和目标区域 z target z_\text{target} ztarget​,在稀疏对齐锚点和音素嵌入的双重条件下预测 z target z_\text{target} ztarget​。

推理加速方面,MegaTTS 3 采用 PeRFlow(Piecewise Rectified Flow)蒸馏,将推理步数从 25 步压缩到 8 步,几乎无质量损失。


6.5~6.10:VoxFlash-TTS 的粗粒度显式对齐方案

6.5 设计背景

前面介绍的对齐方案——无论是强制对齐、MAS、隐式对齐还是稀疏对齐——都在较高时间分辨率的特征空间上操作(通常为 80~100Hz,每帧约 10ms)。VoxFlash-TTS 采用了一条不同的路径:在超压缩潜变量空间上进行生成,时间分辨率仅为 9Hz(每帧约 111ms),对齐问题因此呈现出与上述模型截然不同的特征。

6.6 展开 + 下采样的粗粒度效应

VoxFlash-TTS 对齐序列的构造分两步:先将音素序列按 MFA 标注的时长展开到中间高分辨率序列(长度天然为 T latent × k T_\text{latent} \times k Tlatent​×k),再卷积下采样到潜变量长度。这个下采样过程本身就是"粗粒度化"的来源。

每 k k k 个连续的中间帧被合并为 1 个潜变量帧,音素边界的精度天然降低。当一个音素跨越两个潜变量帧的边界时,下采样后该潜变量帧会同时包含相邻两个音素的混合特征——这正是"粗粒度"而非"精确"对齐的物理含义,与 MegaTTS 3 通过随机遮掩构造稀疏锚点所达到的效果异曲同工。

6.7 VoxFlash-TTS 的对齐方案

VoxFlash-TTS 的对齐流程如下:

训练阶段:
  原始音频
    → MFA 强制对齐 → 音素级时长 d_1, d_2, ..., d_M
      (时长以中间高分辨率帧为单位标注,展开后长度天然为 T_latent × k)
    → ConvNeXtV2 音素编码器 → 音素特征序列(M, d_model)
    → Length Regulator 展开 → 中间高分辨率序列(T_latent × k, d_model)
    → 卷积下采样(步长 k)→ 潜变量对齐序列(T_latent, d_model)
    → 与 noisy 潜变量 z_t 在通道维度 concat
    → 流匹配解码器(Euler solver,NFE=16)→ 潜变量序列
    → ONNX 声码器 → 24kHz 波形

推理阶段:
  同上,MFA 替换为时长预测模块

6.8 与其他对齐方案的本质差异

与 FastSpeech2 强制对齐的区别:
FastSpeech2 同样先展开到高分辨率帧级序列,但展开后直接送入 MSE 回归解码器——对齐路径完全锁死,每一帧都被绑定到唯一的音素。VoxFlash-TTS 在展开后还经历了卷积下采样(步长 k k k),多个中间帧被合并为一个潜变量帧,相邻音素的边界在下采样过程中自然模糊——这正是"粗粒度"的来源。

与 MegaTTS 3 稀疏对齐的区别:
两者的注入方式非常相似,都是将对齐序列卷积下采样后与潜变量在通道维度 concat。区别在于:MegaTTS 3 在展开前就引入了随机遮掩(只保留稀疏锚点),主动制造稀疏性以保留模型的自由搜索空间;VoxFlash-TTS 则做完整展开,粗粒度效果完全来自下采样的信息压缩——每 k k k 个连续中间帧被合并为 1 个潜变量帧,边界精度天然降低。

与 F5-TTS 隐式对齐的区别:
F5-TTS 不提供任何对齐约束,依赖注意力机制自学习。VoxFlash-TTS 通过 MFA + ConvNeXtV2 展开 + 通道 concat 提供了明确的音素边界信息,每一个潜变量帧都知道"大致对应哪个音素区域",在跨语言零样本克隆场景下具有更强的鲁棒性。

6.9 ConvNeXtV2 音素编码器的作用

ConvNeXtV2 在此处并非仅做特征提取,其多尺度卷积结构还承担了音素上下文建模的功能:相邻音素之间的协同发音(coarticulation)效应可以在卷积感受野内自然捕获,而不需要额外的 Transformer 层。这与 F5-TTS 使用 ConvNeXtV2 作为字符级编码器的设计思路一脉相承,但 VoxFlash-TTS 将其与显式时长展开结合,在保留上下文建模能力的同时维持了对齐的可控性。

6.10 对齐谱系中的定位

VoxFlash-TTS 的对齐方案可以定位为强制对齐在超压缩潜空间中经下采样自然退化为粗粒度对齐:

精细粒度 ←─────────────────────────────────────────→ 粗粒度

FastSpeech2      Grad-TTS       VoxFlash-TTS      MegaTTS 3      F5-TTS
(100Hz MFA      (100Hz MAS     (MFA完整展开      (MFA锚点        (完全
  精确展开)       精确展开)      → ×1/k下采样)      稀疏遮掩)       隐式)
                                      ↑
                               下采样压缩
                               天然模糊边界

注入方式上,VoxFlash-TTS(MFA 展开 → 卷积下采样 → 通道 concat)与 MegaTTS 3(稀疏锚点 → 卷积下采样 → 通道 concat)高度相似,差别仅在于对齐序列的稀疏程度:MegaTTS 3 主动遮掩大部分位置,VoxFlash-TTS 依靠下采样的信息损失被动实现粗粒度。

这个设计同时带来了推理侧的工程优势:对齐序列与潜变量之间固定的整数倍比例使下采样操作无需任何动态调整,序列长度短(同样 5 秒语音,潜变量仅 45 帧),是 VoxFlash-TTS 能够在 ONNX CPU 环境下实现高效推理的核心原因之一。


七、扩散模型中音素对齐的动力学矛盾

前面各节讨论的对齐方案,有一个共同特点:对齐信息在进入生成模型之前就已经确定——无论是 MFA 提取的音素时长、MAS 动态规划得到的对齐路径、还是 filler token 填充构造的隐式位置关系,都是在生成开始前就固定下来的。

但还有一条完全不同的路线:通过交叉注意力在生成过程中动态学习对齐——音频帧作为 Query,音素序列作为 Key 和 Value,模型在去噪过程中自行决定每一帧应该关注哪个音素,不需要任何预先的对齐处理。

这条路线在扩散模型框架下面临一个特有的结构性矛盾。

📖 本节内容的详细展开另见专题文章:语音克隆模型的难点之一:音素对齐及交叉注意力早期失效问题——F5-TTS、SupertonicTTS、VoxFlash-TTS 对比

7.1 扩散早期时间步的 Query 噪声问题

扩散模型的前向加噪过程为:

z t = α ˉ t ⋅ z 0 + 1 − α ˉ t ⋅ ε z_t = \sqrt{\bar{\alpha}_t} \cdot z_0 + \sqrt{1 - \bar{\alpha}_t} \cdot \varepsilon zt​=αˉt​ ​⋅z0​+1−αˉt​ ​⋅ε

其中 z 0 z_0 z0​ 是干净的语音潜向量, ε \varepsilon ε 是高斯噪声, α ˉ t \bar{\alpha}_t αˉt​ 随时间步 t t t 单调递减。

在早期时间步( t t t 接近 T T T, α ˉ t ≈ 0 \bar{\alpha}_t \approx 0 αˉt​≈0):

z t ≈ ε (基本是纯噪声) z_t \approx \varepsilon \quad \text{(基本是纯噪声)} zt​≈ε(基本是纯噪声)

在晚期时间步( t t t 接近 0 0 0, α ˉ t ≈ 1 \bar{\alpha}_t \approx 1 αˉt​≈1):

z t ≈ z 0 (逐渐恢复语音结构) z_t \approx z_0 \quad \text{(逐渐恢复语音结构)} zt​≈z0​(逐渐恢复语音结构)

如果用交叉注意力实现音素对齐,音频帧作为 Query,文本音素作为 Key 和 Value:

Attention ( Q , K , V ) = softmax ( Q K ⊤ d ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d}}\right) V Attention(Q,K,V)=softmax(d ​QK⊤​)V

在早期时间步, Q Q Q 来自接近纯噪声的 z t z_t zt​,不含任何语音语义信息。此时:

  • Q Q Q 是随机噪声向量,与 K K K(音素嵌入)的点积分布混乱
  • Attention weight 趋向均匀分布,无法形成有意义的单调对齐
  • 模型在早期时间步实际上无法"知道"当前音频帧应该对应哪个音素

这是扩散模型 + 交叉注意力对齐方案的核心矛盾:对齐依赖有意义的 Query,但扩散早期的 Query 是噪声。

7.2 三种规避思路

不同系统针对这一矛盾采取了三种截然不同的策略,本质上都是"用某种先验弥补早期时间步语义信号的缺失"。

F5-TTS:构造性位置先验(彻底绕开交叉注意力)

F5-TTS 不使用交叉注意力,而是将音素序列用 filler token 填充至与音频序列等长后,在通道维度上直接 concat,送入 DiT 的自注意力模块:

音素序列(填充后):[ph_1, ph_2, filler, filler, ...]   shape: (T, d_text)
                          ↕ concat on channel dim
noisy 音频序列:    [z_t_1, z_t_2, z_t_3,    ...]       shape: (T, d_audio)
                          ↓
合并序列:                                               shape: (T, d_text + d_audio)
→ DiT 自注意力 + RoPE

concat 的构造方式决定了音素 token 和音频帧在序列中的相对位置已经预先对齐,自注意力配合 RoPE 直接利用位置关系建立关联,不需要在噪声 Query 上做交叉注意力。早期时间步 Query 是噪声这件事,对这个设计完全没有影响。

SupertonicTTS:归一化位置先验(LARoPE)

SupertonicTTS 保留了交叉注意力,但引入 LARoPE(Length-Aware RoPE) 解决早期时间步的对齐失效问题。

标准 RoPE 将位置编码为绝对整数索引,文本序列和音频序列长度不同,位置索引尺度不一致,交叉注意力无法利用位置信息推断对齐关系。LARoPE 将两个序列的位置归一化到同一尺度:

文本序列:位置  i → i T text ∈ [ 0 , 1 ] \text{文本序列:位置 } i \to \frac{i}{T_\text{text}} \in [0, 1] 文本序列:位置 i→Ttext​i​∈[0,1]
音频序列:位置  j → j T audio ∈ [ 0 , 1 ] \text{音频序列:位置 } j \to \frac{j}{T_\text{audio}} \in [0, 1] 音频序列:位置 j→Taudio​j​∈[0,1]

归一化后,位置 0.3 0.3 0.3 的音频帧在注意力计算中会与位置 0.3 0.3 0.3 附近的文本音素产生更高的相似度,形成隐式的单调对齐倾向。

在不同时间步下,LARoPE 的行为呈现出一个优雅的渐进机制:

早期时间步(Q ≈ 噪声):
  Attention weight ≈ f(位置相似度)   ← 语义信号近零,位置主导
  → LARoPE 位置编码"兜底",形成近似单调对齐

晚期时间步(Q 逐渐恢复语音结构):
  Attention weight ≈ f(语义 + 位置)  ← 两者共同驱动
  → 语义信号逐渐主导,对齐精度提升

位置编码在早期时间步充当对齐锚点,在晚期时间步退为辅助信号,两个阶段平滑过渡,不需要额外的对齐模块。

VoxFlash-TTS:外部知识先验(预计算显式对齐)

VoxFlash-TTS 用 MFA 在扩散模型之外预先确定每个音素的时长,经 ConvNeXtV2 编码和 Length Regulator 展开后,扩散模型接收的是已经对齐好的条件序列,不涉及任何动态对齐学习。早期时间步 Query 是噪声这件事,对这个设计完全没有影响。

7.3 三种先验的强度对比

三种策略本质上是三种强度递增的先验:

方案先验类型强度对齐灵活性额外依赖
F5-TTS(Concat + 自注意力)构造性位置先验弱(隐式约束)✅ 高无
SupertonicTTS(LARoPE)归一化位置先验中(软约束)✅ 高LARoPE(轻量)
VoxFlash-TTS(显式对齐)外部知识先验强(硬约束)❌ 低外部对齐工具

强约束带来稳定性,代价是灵活性的损失。三种设计哲学各有侧重,没有绝对的优劣,取决于对鲁棒性与自然度的权衡。


八、三大类对齐范式的系统对比

大类范式代表模型对齐来源生成空间分辨率搜索空间鲁棒性自然度
显式时长建模注意力蒸馏FastSpeech教师 cross-attention高分辨率推理时锁死⭐⭐⭐⭐⭐
显式时长建模MFA/MAS 训练监督FastSpeech2、Grad-TTS、Matcha-TTS、P-Flow、Voicebox、NaturalSpeech 3MFA/MAS(训练监督)→ 独立 Duration Predictor高分辨率推理时锁死⭐⭐⭐⭐⭐⭐⭐
弱显式对齐(Prior)稀疏锚点MegaTTS 3MFA + 随机锚点中分辨率(25Hz)部分约束⭐⭐⭐⭐⭐⭐⭐⭐⭐
弱显式对齐(Prior)粗粒度展开VoxFlash-TTSMFA + 下采样低分辨率(9Hz)粗粒度锁定⭐⭐⭐⭐⭐⭐⭐⭐
隐式对齐学习Concat 自注意力F5-TTS、E2-TTS自注意力位置关系高分辨率完全自由⭐⭐⭐⭐⭐⭐⭐
隐式对齐学习交叉注意力 + LARoPESupertonicTTS交叉注意力 + 归一化位置高分辨率完全自由⭐⭐⭐⭐⭐⭐⭐⭐

可以看到,三大类在"搜索空间"这一维度上呈现出清晰的梯度:显式建模完全锁死,隐式学习完全自由,弱显式对齐居于两者之间。但这并非简单的技术演进顺序——正文的实际脉络是显式建模最早出现,隐式学习是对其局限的彻底反叛,而弱显式对齐则是在隐式学习暴露出鲁棒性问题后,对其做出的回调与折中。鲁棒性与自然度的此消彼长,正是音素对齐技术演进的核心张力所在。


九、演进脉络总结

【显式时长建模】═══════════════════════════════════════
2019
FastSpeech ── 注意力蒸馏对齐 + Length Regulator
              非自回归,1步生成,MSE 回归
              Duration Predictor 范式确立
                  │
2021              ▼
FastSpeech2 ─ MFA 作训练监督,替换注意力蒸馏
              推理时由 Duration Predictor 自主预测时长
              Variance Adaptor(Duration/Pitch/Energy)
                  │
              Grad-TTS ─ MAS 对齐 + Prior Loss(μ ≈ 目标声学特征)
                         扩散模型,编码器输出作为生成起点
                  │
2023-2024         ▼
Matcha-TTS ── MAS 对齐 + OT-CFM(直线路径)
              1D U-Net + Transformer 解码器
                  │
              P-Flow ── Speech-Prompted Encoder
                        零样本克隆,保留 MAS 对齐
                  │
Voicebox ──── MFA 作训练监督,独立时长模型(回归/FM)
              OT-CFM Infilling 范式
NaturalSpeech 3 ─ 内部对齐工具作训练监督,独立时长扩散模型
                  属性分解扩散

【隐式对齐学习】═══════════════════════════════════════
2024
E2-TTS ────── 完全隐式(filler token + Concat + 自注意力)
F5-TTS ────── 隐式 + ConvNeXtV2 + Sway Sampling
              构造性位置先验,绕开交叉注意力失效问题
                  │
2025              ▼
SupertonicTTS ── 交叉注意力 + LARoPE(归一化位置编码)
                 归一化位置先验,正面解决早期时间步对齐失效

【弱显式对齐(Alignment Prior)】══════════════════════
2025
MegaTTS 3 ─── 稀疏对齐(随机锚点 + 注意力细化)
              针对隐式对齐鲁棒性不足提出的改进
              Rectified Flow + PeRFlow 蒸馏

VoxFlash-TTS ─ MFA + ConvNeXtV2 + 整数倍展开 + 卷积下采样
               粗粒度显式对齐,外部知识先验
               零样本中英克隆 + 跨语言支持,ONNX 高效部署

三大类呈现出"显式 → 隐式 → 对隐式的回调"这一逻辑链:显式时长建模最早确立,2024 年 E2-TTS、F5-TTS 等隐式对齐学习作为对显式硬约束的彻底反叛而出现,随后 2025 年前后,MegaTTS 3、VoxFlash-TTS 等弱显式对齐方案针对隐式学习暴露出的鲁棒性问题,重新引入粗粒度位置提示作为折中。


十、展望:对齐问题的未来方向

10.1 从"结构约束"到"概率约束"

当前的稀疏对齐仍然依赖外部对齐工具来确定锚点的大致位置区间。一个更进一步的方向是:将对齐信息建模为概率分布,而非硬约束——即不规定音素"必须在哪个区间",而是给出"最可能在哪个区间"的软概率先验,让模型在这个先验的引导下自由搜索最优对齐路径。

10.2 跨语言场景下的对齐挑战

跨语言声音克隆(用法语参考音频合成英语语音)对对齐提出了更高要求:语言之间的音素体系、节奏模式、停顿习惯都存在显著差异。隐式对齐在此场景下表现尤为脆弱。PFluxTTS 的跨语言实验表明,显式对齐的先验(即便只是 DG 路径的前 20 步)对跨语言鲁棒性有显著帮助。

10.3 多粒度对齐

未来的对齐方案可能不局限于音素级,而是在多个粒度上同时提供约束:词级边界(粗粒度,更稳定)+ 音素级锚点(中粒度)+ 帧级注意力(细粒度)。不同粒度的约束互相配合,在不同层次上引导模型的生成行为。


参考文献

  1. Ren et al., FastSpeech: Fast, Robust and Controllable Text to Speech, NeurIPS 2019
  2. Ren et al., FastSpeech 2: Fast and High-Quality End-to-End Text to Speech, ICLR 2021
  3. Popov et al., Grad-TTS: A Diffusion Probabilistic Model for Text-to-Speech, ICML 2021
  4. Mehta et al., Matcha-TTS: A Fast TTS Architecture with Conditional Flow Matching, ICASSP 2024
  5. Kim et al., P-Flow: A Fast and Data-Efficient Zero-Shot TTS through Speech Prompting, NeurIPS 2023
  6. Le et al., Voicebox: Text-Guided Multilingual Universal Speech Generation at Scale, NeurIPS 2023
  7. Ju et al., NaturalSpeech 3: Zero-Shot Speech Synthesis with Factorized Codec and Diffusion Models, ICML 2024
  8. Eskimez et al., E2 TTS: Embarrassingly Easy Fully Non-Autoregressive Zero-Shot TTS, SLT 2024
  9. Chen et al., F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching, ACL 2025
  10. Kim et al., LARoPE: Length-Aware Rotary Position Embedding for Cross-Attention in Speech Synthesis, arXiv:2509.11084, 2025
  11. Supertone Inc., SupertonicTTS, arXiv:2503.23108, 2025
  12. Jiang et al., MegaTTS 3: Sparse Alignment Enhanced Latent Diffusion Transformer for Zero-Shot Speech Synthesis, arXiv:2502.18924, 2025
  13. VoxFlash-TTS, GitHub: github.com/VoxFlash/VoxFlashTTS,Demo: voxflash.github.io
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐