Glow-TTS 通过单调对齐搜索生成文本到语音的流程
摘要
最近,已经提出了诸如 FastSpeech 和 ParaNet 之类的文本到语音 (TTS) 模型来并行地从文本生成梅尔谱图。尽管具有优势,但如果没有自回归 TTS 模型作为外部对齐器的指导,则无法训练并行 TTS 模型。在这项工作中,我们提出了 Glow-TTS,这是一种基于流的并行 TTS 生成模型,不需要任何外部对准器。通过结合流和动态规划的特性,所提出的模型自行搜索文本和语音的潜在表示之间最可能的单调对齐。我们证明了执行硬单调对齐可以实现稳健的 TTS,它可以推广到长话语,并且采用生成流可以实现快速、多样化和可控的语音合成。 Glow-TTS 在合成时与自回归模型 Tacotron 2 相比获得了数量级的加速,并具有可比的语音质量。我们进一步表明,我们的模型可以轻松扩展到多说话人设置。
Intruduction
文本转语音 (TTS) 是一项从文本生成语音的任务,基于深度学习的 TTS 模型已成功生成自然语音。在神经 TTS 模型中,自回归模型,如 Tacotron 2 和 Transformer TTS,已经显示出最先进的性能。尽管自回归 TTS 模型的综合质量很高,但在实时服务中直接部署它们仍存在一些困难。由于模型的推理时间随输出长度呈线性增长,因此无需设计复杂的框架即可将生成长话语引起的不良延迟传播到 TTS 系统的多个管道。此外,大多数自回归模型在某些情况下缺乏稳健性。例如,当输入文本包含重复的单词时,自回归 TTS 模型有时会产生严重的注意力错误。
为了克服自回归 TTS 模型的这种局限性,已经提出了并行 TTS 模型,例如 FastSpeech。这些模型可以比自回归模型更快地合成梅尔谱图。除了快速采样之外,FastSpeech 还通过将其对齐限制为单调来减少合成失败的情况,例如发音错误、跳过或重复单词。然而,为了训练并行 TTS 模型,文本和语音之间对齐良好的注意力图是必要的。最近提出的并行模型从它们的外部对齐器中提取注意力图,预训练的自回归 TTS 模型。因此,模型的性能关键取决于外部矫正器的性能。
在这项工作中,我们消除了任何外部对准器的必要性,并简化了并行 TTS 模型的训练过程。在这里,我们提出了 Glow-TTS,这是一种基于流的并行 TTS 生成模型,可以在内部学习自己的对齐方式。 通过结合流和动态规划的特性,Glow-TTS 有效地搜索文本和语音潜在表示之间最可能的单调对齐。所提出的模型被直接训练以最大化语音与对齐的对数似然。我们证明了强制执行硬单调对齐可以实现稳健的 TTS,它可以推广到长话语,并且使用流可以实现快速、多样化和可控的语音合成。
Glow-TTS 生成梅尔谱图的速度比自回归 TTS 模型 Tacotron 2 快 15.7 倍,同时获得可比的性能。至于鲁棒性,当输入的话语很长时,所提出的模型明显优于 Tacotron 2。通过改变语音的潜在表征,我们可以合成具有各种语调模式的语音并调节语音的音调。我们进一步表明,我们的模型只需稍作修改即可扩展到多说话人设置。我们的源代码和合成音频样本是公开可用的。
相关工作
文本和语音之间的对齐估计 传统上,隐马尔可夫模型 (HMM) 已被用于估计文本和语音之间的未知对齐。在语音识别中,CTC 已被提议作为一种减轻 HMM 缺点的方法,例如通过一个判别神经网络模型后,假设样本点之间的条件独立性。上述两种方法都可以通过具有动态规划的前向后向算法有效地估计对齐。在这项工作中,我们引入了一种类似的动态规划方法来搜索文本和语音的潜在表示之间最可能的对齐方式,我们的建模与 CTC 的不同之处在于它是生成式的,而与 HMMs 的不同之处在于它可以并行采样序列,而没有假设样本点之间的条件独立性。
文本到语音模型 TTS 模型是一系列从文本合成语音的生成模型。 TTS 模型,例如 Tacotron 2、Deep Voice 3 和 Transformer TTS,从文本生成梅尔谱图,可与人类语音相媲美。近期也有些研究致力于增强 TTS 模型的表达能力。辅助嵌入方法被提出,通过控制语调和节奏等因素来生成不同的语音,并且一些工作旨在在各种说话者的声音中合成语音。最近,一些工作提出了并行生成梅尔谱图帧的方法。 FastSpeech 和 ParaNet 显着加快了自回归 TTS 模型的梅尔谱图生成,同时保持合成语音的质量。然而,两种并行 TTS 模型都需要从预训练的自回归 TTS 模型中提取对齐,以缓解文本和语音之间的长度不匹配问题。我们的 Glow-TTS 是一个独立的并行 TTS 模型,它通过利用流和动态规划的特性在内部学习对齐文本和语音。
基于流的生成模型 基于流的生成模型因其优点而受到了很多关注。他们可以通过应用可逆变换来估计数据的确切可能性。生成流被简单地训练以最大化可能性。除了有效的密度估计之外,提出的转换保证了快速有效的采样。普雷格等人 [18] 和 Kim 等人 [10] 为语音合成引入了这些转换,以克服自回归声码器 WaveNet [29] 采样速度慢的问题。他们提出的模型都比 WaveNet 更快地合成原始音频。通过应用这些转换,Glow-TTS 可以并行合成给定文本的梅尔谱图。
并行于我们的工作,已经提出了 AlignTTS [34]、Flowtron [28] 和 Flow-TTS [15]。 AlignTTS 和 Flow-TTS 是不需要外部对齐器的并行 TTS 模型,Flowtron 是基于流的模型,展示了风格转移和语音变化可控性的能力。 但是,AlignTTS 不是基于流的模型而是前馈网络,Flowtron 和 Flow-TTS 使用软注意力模块。 通过同时采用硬单调对齐和生成流,我们的模型在稳健性、多样性和可控性方面结合了两全其美。
Glow-TTS
![glowtts-fig1](/images/glowtts-fig1.png)
glowtts-fig1
受人类按顺序读出文本而不跳过任何单词这一事实的启发,我们设计了 Glow-TTS 以生成基于文本和语音表示之间单调和非跳过对齐的梅尔谱图。 在第 3.1 节中,我们制定了所提出模型的训练和推理过程,如图 1 所示。我们在第 3.2 节中介绍了我们的对齐搜索算法,该算法从训练中消除了外部对齐器的必要性,以及所有组件的架构 Glow-TTS(即文本编码器、持续时间预测器和基于流的解码器)在第 3.3 节中介绍。
3.1 训练和推理过程
Glow-TTS 通过基于流的解码器 \(f_{dec}: z \rightarrow x\) 转换条件先验分布 \(P_Z (z|c)\) 来模拟梅尔谱图 \(P_X(x|c)\) 的条件分布:\(z → x\),其中 \(x\) 和 \(c\) 分别表示输入梅尔谱图和文本序列。 通过使用变量的变化,我们可以计算数据的准确对数似然如下:
![glowtts-al1](/images/glowtts-al1.png)
glowtts-al1
我们使用网络参数 \(θ\) 和对齐函数 \(A\) 参数化数据和先验分布。先验分布 \(P_Z\) 是各向同性多元高斯分布,先验分布 \(μ\) 和 \(σ\) 的所有统计数据都由文本编码器 \(f_{enc}\) 获得。 文本编码器将文本条件 \(c = c_{1:T_{text}}\) 映射到统计信息 \(μ = μ_{1:T_{text}}\) 和 \(σ = σ_{1:T_{text}}\) 中,其中 \(T_{text}\) 表示文本输入的长度。 在我们的公式中,对齐函数 \(A\) 代表从语音的潜在表示的索引到来自 \(f_{enc}\) 的统计的索引的映射:\(A(j) = i \text{ if } z_j ∼ N(z_j;μ_i,σ_i)\). 我们假设对齐函数是单调和投影,以确保 Glow-TTS 不会跳过或重复文本输入。 那么,先验分布可以表示如下:
![glowtts-al2](/images/glowtts-al2.png)
glowtts-al2
其中 \(T_{mel}\) 表示输入梅尔谱图的长度。
我们的目标是找到使数据的对数似然最大化的参数 \(θ\) 和对齐 \(A\),如公式 3 中所示。 然而,在计算上很难找到全局解。为了解决棘手问题,我们通过将目标分解为两个后续问题来减少参数和对齐的搜索空间:(i)针对当前参数 \(θ\) 搜索最可能的单调对齐 \(A^*\),如等式 4 所示,以及(ii) 更新参数 \(θ\) 以最大化对数似然 \(\text{log } p_X (x|c; θ, A^∗)\)。在实践中,我们使用迭代方法处理这两个问题。在每个训练步骤,我们首先找到 \(A^∗\),然后使用梯度下降更新 \(θ\)。迭代过程实际上是广泛使用的维特比训练的一个例子,它最大化最可能隐藏对齐的对数似然。修改后的目标不保证方程 3 的全局解,但它仍然提供了一个很好的全局解的下界。
![glowtts-al34](/images/glowtts-al34.png)
glowtts-al34
为了解决对齐搜索问题 (i),我们引入了一种对齐搜索算法,即单调对齐搜索 (MAS),我们在 3.2 节中对其进行了描述。
为了在推理时估计最可能的单调对齐 \(A^*\),我们还训练持续时间预测器 \(f_{dur}\) 以匹配从对齐 \(A^*\)计算出的持续时间标签,如公式 5 所示。遵循 FastSpeech 的架构,我们附加了持续时间预测器 在文本编码器之上,并在对数域中使用均方误差损失 (MSE) 对其进行训练。 我们还将停止梯度算子 \(sg[·]\),它去除了反向传播中输入的梯度,用于持续时间预测器的输入,以避免影响最大似然目标。 持续时间预测器的损失在公式 6 中描述。
![glowtts-al56](/images/glowtts-al56.png)
glowtts-al56
在推理过程中,如图 1b 所示,先验分布和对齐的统计数据由文本编码器和持续时间预测器预测。 然后,从先验分布中采样潜在变量,并通过基于流的解码器转换潜在变量来并行合成梅尔谱图。
3.2 单调对齐搜索
![glowtts-fig2](/images/glowtts-fig2.png)
glowtts-fig2
如第 3.1 节所述,MAS 搜索潜在变量和先验分布的统计数据之间最可能的单调对齐,这些统计数据分别来自输入语音和文本。 图 2a 显示了可能的单调对齐的一个示例。
我们在算法 1 中展示了我们的对齐搜索算法。我们首先推导出部分对齐的递归解决方案,然后找到整个对齐。
设 \(Q_{i,j}\) 是最大对数似然,其中先验分布和潜在变量的统计量分别部分地分配给第 \(i\) 个和第 \(j\) 个元素。 然后,\(Q_{i,j}\) 可以用 \(Q_{i−1,j−1}\) 和 \(Q_{i,j−1}\) 递归公式化,如公式 7 所示,因为如果部分序列的最后元素 \(z_j\) 和 \({μ_i, σ_i}\) 对齐,则 先前的潜在变量 \(z_{j−1}\) 应该与 \(\{μ_{i−1}, σ_{i−1}\}\) 或 \(\{μ_i, σ_i\}\) 对齐以满足单调性和投影。
![glowtts-al7](/images/glowtts-al7.png)
glowtts-al7
该过程如图 2b 所示。 我们迭代计算 \(Q\) 的所有值,直到 \(Q_{T_{text} ,T_{mel}}\) 。
类似地,最可能的对齐 \(A^*\) 可以通过确定递推关系中哪个 \(Q\) 值更大来获得,如公式 7。因此,可以通过缓存所有 \(Q\) 值使用动态规划有效地找到 \(A^*\); \(A^∗\) 的所有值都从对齐的末尾回溯,\(A^∗(T_{mel}) = T_{text}\),如图 2c 所示。
该算法的时间复杂度为 \(O(T_{text} × T_{mel})\)。 尽管该算法难以并行化,但它可以在 CPU 上高效运行,无需 GPU 执行。 在我们的实验中,每次迭代花费的时间不到 20 毫秒,这不到总训练时间的 2%。 此外,我们在推理过程中不需要 MAS,因为持续时间预测器用于估计对齐。
![glowtts-al](/images/glowtts-al.png)
glowtts-al
3.3 模型架构
本节简要介绍 Glow-TTS 的每个组件,整体模型架构和模型配置见附录 A。
解码器 Glow-TTS 的核心部分是基于流的解码器。在训练期间,我们需要有效地将梅尔谱图转换为latent representation 以用于最大似然估计和我们内部对齐搜索。在推理过程中,需要将先验分布有效地转换为梅尔谱分布以进行并行解码。因此,我们的解码器由一系列可以并行执行正向和逆向变换的流组成。具体来说,我们的解码器是多个块的堆栈,每个块由一个激活归一化层、可逆 1x1 卷积层和仿射耦合层组成。我们遵循 WaveGlow 的仿射耦合层架构,除了我们不使用局部条件。为了计算效率,我们将 80 通道梅尔频谱图帧沿时间维度分成两半,并在流操作之前将它们分组为一个 160 通道特征图。我们还修改了 1x1 卷积以减少计算雅可比行列式的耗时。在每一次 1x1 卷积之前,我们将特征图沿通道维度分成 40 组,并分别对它们进行 1x1 卷积。为了允许每组中的通道混合,分别从耦合层分隔的特征图的一半和另一半中提取相同数量的通道。详细说明可在附录 A.1 中找到。
编码器和持续时间预测器 我们遵循 Transformer TTS 的编码器结构,并稍作修改。我们移除位置编码并将相对位置表示添加到自注意力模块中。我们还向编码器预网络添加了一个残差连接。为了估计先验分布的统计数据,我们在编码器的末尾附加了一个线性投影层。持续时间预测器由两个带有 ReLU 激活、层归一化和 dropout 的卷积层组成,后跟一个投影层。持续时间预测器的架构和配置与 FastSpeech的架构和配置相同。
结论
在本文中,我们提出了一种新型的并行 TTS 模型 Glow-TTS。 Glow-TTS 是一种基于流的生成模型,直接用最大似然估计训练。 由于所提出的模型自己找到了文本和语音潜在表示之间最可能的单调对齐方式,因此整个训练过程得以简化,无需外部对齐器。 除了简单的训练程序外,我们还表明 Glow-TTS 合成梅尔谱图的速度比自回归基线 Tacotron 2 快 15.7 倍,同时表现出相当的性能。 我们还展示了 Glow-TTS 的其他优势,例如控制合成语音的语速或音调、鲁棒性和多说话人设置的可扩展性的能力。 由于这些优势,我们相信所提出的模型可以应用于各种 TTS 任务,例如韵律转换或风格建模。
更广泛的影响
在本文中,研究人员介绍了 Glow-TTS,这是一种多样化、强大且快速的文本到语音 (TTS) 合成模型。包括 Glow-TTS 在内的神经 TTS 模型可应用于许多需要自然合成语音的应用。其中一些应用是人工智能语音助手服务、有声读物服务、广告、汽车导航系统和自动应答服务。因此,通过利用合成自然发声语音的模型,此类应用程序的提供者可以提高用户满意度。此外,所提出模型的快速合成速度可能有利于一些提供实时语音合成服务的服务提供商。然而,由于能够合成自然语音,TTS 模型也可能被假新闻或网络钓鱼等网络犯罪所滥用。这意味着 TTS 模型可用于模仿名人的声音来操纵人们的行为,或模仿某人的朋友或家人的声音以达到欺诈目的。随着语音合成技术的发展,从合成语音中检测真人语音的研究越来越多。神经 TTS 模型有时会合成带有泥浆或错误发音的不良语音。因此,在新闻广播等即使是单个发音错误也很严重的领域,应谨慎使用。另一个问题是关于训练数据。许多用于语音合成的语料库都包含由少数说话者发出的语音数据。如果没有对 TTS 模型的使用范围进行详细的考虑和限制,说话人的声音可能会超出他们的预期。