Tacotron towards end-to-end speech synthesis
author:
Yuxuan Wang∗
, RJ Skerry-Ryan∗
, Daisy Stanton, Yonghui Wu, Ron J. Weissy
, Navdeep Jaitly,
Zongheng Yang, Ying Xiao∗
, Zhifeng Chen, Samy Bengioy
, Quoc Le, Yannis Agiomyrgiannakis,
Rob Clark, Rif A. Saurous∗
Google, Inc.
fyxwang,rjryan,rifg@google.com
abstrract
文本到语音合成系统通常包含多个阶段组成,例如文本分析前端,声学模型和音频合成模块。构建这些组件通常需要广泛领域专业知识,并且也许会包含脆弱设计选择。在本文中,我们提出了Tacotron,这是一种直接从字符合成语音的端到端的生成文本到语音模型。给定<文本,音频>对,可以通过随机初始化从头开始训练模型。我们提出了几种关键技术,使序列到序列框架很好地完成这项具有挑战性的任务。Tacotron对美式英语的主观平均意见得分为3.82,在自然度方面优于生成参数系统。此外,由于Tactron在帧级别生成语音,因此它比样本级别自回归方法要快得多。
1 Introduction
现代的文本转语音(TTS)流畅非常复杂(Taylor, 2009). 例如,对于统计参数化的文本转语音(TTS)系统来说,通常包括一个文本前端,用于提取各种语言学特征,一个时长模型,一个声学特征预测模型以及一个基于复杂信号处理的声码器。这些组件基于广泛的领域专业知识,并且设计起来非常费时费力。它们也是独立训练的,因此每个组件的错误可能是复合的。因此,现代TTS设计的复杂性在构建新系统时需要大量的工程努力。
因此,一个集成的端到端TTS系统具有许多优点,可以在最小程度的人工注释下对<文本,音频>对进行训练。首先,这样的系统减轻了对繁琐的特征工程的需求,特征工程可能涉及到启发式方法和易碎的设计选择。其次,它更容易实现对各种属性的丰富条件设定,例如说话人或语言,或高级特征如情感。这是因为条件设定可以发送在模型的最开始,而不仅仅是在某些组件上。类似地,对新数据的适应可能也更容易。最后,单一模型可能比多阶段模型更鲁棒,其中每个组件的错误可能会叠加。这些优势意味着端到端模型可以让我们在真实世界中使用大量丰富、富有表现力但通常带有噪声的数据上进行训练。
TTS是一个大规模的逆问题:高度压缩的源(文本)被”解压缩“成音频。由于相同的文本可以对应不同的发音或说话风格,这对于端到端模型来说是一个特别困难的学习任务:它必须应对给定输入的信号级别上的大幅度变化。此外,与端到端语音识别或机器翻译不同,TTS的输出是连续的,输出序列通常比输入序列要长得多。这些属性导致错误迅速累积。在本文中,我们提出了Tactron,这是一个基于序列到序列(Seq2Seq)和注意力机制的端到端生成式TTS模型。我们的模型以字符作为输入,并输出原始的频谱图,采用了多种技术来提高基本的Seq2Seq模型的性能。在给定<文本, 音频>对的情况下,Tactron可以完全从零开始进行训练,采用随机初始化。它不需要音素级别的对齐,因此可以轻松拓展到使用大量带有文本转录的声学数据。通过简单的波形合成技术,Tactron在US英语评估集上获得了3.82的平均意见分数(MOS分数),在自然度方面优于生成参数化系统。
2 Related Work
WaveNet是一种强大的音频生成模型。它在文本转语音(TTS)方面效果很好,但由于其样本级别的自回归性质,运行速度较慢。它还需要对来自现有TTS前端的语言特征进行条件设定,因此不是端到端的:它仅替代了声码器声学模型。另一个近期开发的神经网络模型是DeepVocie,它通过相应的神经网络替代了典型TTS流程中的每个组件。然而,每个组件都是单独训练的,并且将系统改为端到端的方式进行训练是非常困难的。
据我们所知,Wang等人的工作是最早使用seq2seq和注意力机制进行端到端TTS的相关研究。然而,这项工作需要一个预训练的隐马尔可夫模型(hidden Markov model, HMM)对齐器来帮助seq2seq模型学习对齐。很难确定seq2seq模型本身学习到了多少对齐信息。其次,为了进行模型训练,研究人员使用了一些技巧,但是作者注意到这些技巧可能会影响到韵律。第三,该模型预测声码器参数,因此需要一个声码器。此外,该模型是基于音素输入进行训练的,并且实验结果似乎相对有限。
Char2Wave是一种独立开发的端到端模型,可以基于字符进行训练。然而,Char2Wav在使用SampleRNN神经声码器之仍然会预测声码器参数,而Tacotron则直接预测原始频谱图。此外Char2Wav中的seq2seq模型和SampleRNN模型需要分别进行与训练,但我们的模型可以从头开始进行训练。最后,我们对传统的Seq2Seq范式进行了几处关键修改。正如后面所展示的,对于字符集输入,传统的Seq2Seq模型效果不佳。
Model Architecture
Tacotron的核心是一个带有注意力机制的Seq2Seq模型。图一描述了该模型的结构,包括编码器,基于注意力机制的解码器和后处理网络。在高层次上,我们的模型以字符作为输入,并生成频谱图帧,然后将其转换为波形。我们下面将描述这些组件。
3.1 CBHG MODULE
我们首先介绍了一个名为CBHG的构建模块,如图2所示。CBHG是由一个1-D卷积滤波器、高速网络(hightway networks)和双向门控循环单元(GRU)递归神经网络(RNN)组成。CBHG是一个强大的模块,用于从序列中提取表示。输入序列首先与K组1-D卷积滤波器进行卷积,其中第k组包含宽度为k的C_k个滤波器(即k=1, 2, … , K). 这些滤波器显示地对局部和上下文信息进行建模(类似于对一元组、二元组直到K元组的建模)。 卷积输出被堆叠在一起,并且沿时间维度进行最大池化,以增加局部不变性。值得注意的是,我们使用步幅为1以保留原始的时间分辨率。我们进一步将处理后的序列传递给一些固定宽度的1-D卷积层,通过残差连接将其输出与原始输入序列相加。在所有的卷积层中,我们使用了批归一化。卷积输出被送到多层高速网络(multi-layer high way),以提取高级特征。最后,我们在上面叠加了一个双向GRU RNN,从前向和后向的上下文中提取序列特征。CBHG受机器翻译领域的工作的启发,在与Lee等人的主要差异包括使用非因果卷积、批归一化、残差连接以及步幅为1的最大池化。我们发现这些修改改善了泛化性能。
3.2 Encoder
编码器的目的是提取文本的鲁棒的顺序表示。编码器的输入是一个字符序列,其中每个字符被表示为一个one-hot向量,并嵌入为一个连续向量。然后,我们对每个嵌入向量应用一组非线性变换,称为"pre-net"。在这项工作中,我们使用具有dropout的瓶颈层作为预网络,这有助于收敛并提高泛化能力。CBHG模块将预网络的输出转换为被注意力模块使用的最终编码器的表示。我们发现,基于CBHG的编码器不仅可以减少过拟合,还比标准的多层RNN编码器产生更少的发音错误(请参考音频样本页面)。
3.3 Decoder
我们使用基于内容的tanh注意力解码器,其中一个具有状态的循环层在每个解码器时间步骤生成注意力查询。我们将上下文向量和注意力循环神经网络的输出连接在一起,以构成Decoder RNN的输入。 GRU(门控循环单元),这个方法参考了Wu等人的研究。我们发现残差连接可以加快收敛速度。解码器的目标是一个重要的设计选择。虽然我们可以直接预测原始频谱图,但对于学习语音信号和文本之间的对齐(这实际上是使用序列到序列模型处理任务的动机),原始频谱图是一种高度冗余的表示方式。因为存在这种冗余性,所以我们在序列到序列解码和波形合成中使用不同的目标。序列到序列的目标可以高度压缩,只是它提供足够的可理解性和韵律信息,以供逆过程使用,这个过程可以是固定或者训练。我们使用80个频带的梅尔频谱作为目标,尽管也可以使用较少的频带或更简洁的目标,如倒谱(cepstrum)。我们使用一个post-processing网络(下面会讨论)来将从seq2seq目标生产的内容转为波形。
我们使用一个简单的全连接输出层来预测解码器的目标。我们发现的一个重要技巧是在每个解码步骤预测多个不重叠的输出帧。一次预测r个帧可以将解码器总步数除以r, 这有助于减小模型的大小,缩短训练时间和推理时间。更重要的是,我们发现这个技巧可以显著提高收敛速度,通过更快(而且更稳定)学习到的注意力对齐来衡量。这可能是因为相邻的语音帧是相关的,并且每个字符通常对应于多个帧。逐帧发出(一次只生成一个帧)会迫使模型在多个时间步骤内关注相同的输入token。发出多个帧允许在训练早期就使注意力向前移动。类似的技巧也在Zen等人的研究中使用,但主要是为了加速推理的过程。第一个解码器步骤是基于一个全零帧进行条件化的,这个全零帧代表一个帧。在推理过程中,在解码器的第t步,r个预测中的最后一个帧被作为输入送到第t+1步的解码器。值得注意的是,这里选择输送最后一个预测是一种特殊的选择,我们也可以使用所有r个预测。在训练阶段,我们始终将第r个真实帧送给解码器。输入帧会像在编码器中一样被传递给pre-net。由于我们不适用诸如计划采样(我们发现它会降低音频质量), 因此预处理网络中的dropout对模型的泛化至关重要,因为它提供了一个噪声源来解决输出分布中的多种模态。
3.4 Post-Processing Net And Waveform Synthesis
正如前面提到的,后处理网络的任务是将seq2seq的目标转换为可以合成波形的目标。由于我们使用Griffin-Lim作为合成器,后处理网络学习预测在线性频率尺度上采样的频谱幅度。后处理网络的另一个动机是它可以看到完整的解码序列。与seq2seq不同,后处理网络不仅可以从左到右运行,还可以同时具有具有前向和后向信息,以纠正每个单独帧的预测误差。在本工作中,我们使用了一个CBHG模块作为后处理网络,尽管一个更简单的架构可能同样有效。后处理网络的概念非常通用。它可以用来预测可替换目标,例如声码器参数,或者可以用作类似WaveNet的神经声码器,直接合成波形样本的方法。
我们使用Griffin-Lim算法来从预测到底频谱图来合成波形。我们发现在喂给Griffin-Lim之前将预测的幅度提高1.2power可以减少伪影,这可能是由于它的谐波增强效应导致的。我们发现Griffin-Lim算法在大约50次迭代后(实际上,大约30此迭代似乎足够),就可以收敛,这是相当快的。我们在TensorFlow中实现了Griffin-Lim算法,因此它也是模型的一部分。尽管Griffin-Lim是可微分的(它没有可训练的权重), 但我们没有对它施加任何损失。我们强调,我们选择使用Griffin-Lim算法是出于简单性的考虑;尽管它已经取得了很好的结果,但是开发一个快速且高质量的可训练频谱图到波形的反推器仍在进行中。
4 Model Details
Table1列出了超参数和网络架构。我们使用对数幅度谱图,采用Hann窗口函数,帧长50ms,帧移12.5ms,以及2048点的傅里叶变换。我们还发现预加重(0.97)是有帮助的。我们使用24kHz的采样率。在本文中,我们对MOS结果使用了r=2(输出层缩小因子),尽管较大的r值(例如r=5)也表现良好。我们使用带有学习率衰减的Adam优化器,初始学习率为0.001,在全局步数达到500k、1M和2M之后,分别减小为0.0005,0.0003, 0.0001。我们对seq2seq解码器(梅尔频谱图)和后续处理网络(线性频谱图)都使用了简单的L1损失。这两个损失具有相同的权重。
我们使用批量大小为32进行训练,其中所有序列都被填充到最大长度。使用损失掩码是训练序列模型的常见做法,它在零填充帧上掩蔽损失。然而,我们发现使用这种方式训练的模型不知道何时停止发出输出,导致末尾出现重复的声音。解决这个问题的一个简单技巧也是重建零填充帧。
5 Experiments
我们在一个语内北美英语数据集上训练了Tacotron,其中包含大约24.6小时的语音数据,由一位专业女性说话人讲述。这些短语经过文本规范化处理,例如,“16”被转换为"sixteen"。
5.1 Ablation Analysis
我们进行了一些消融研究来理解我们模型中的关键组件。与生成模型一样,使用客观指标来比较模型通常是困难的,因为这些指标通常与人类感知不太相关。我们主要依赖视觉比较。我们强烈鼓励读者听取提供的样本。
首先,我们与一个普通的seq2seq模型进行比较。编码器和解码器都使用2层的残差RNN,每一层有256个GRU单元(我们尝试过LSTM并得到了类似的结果)。没有使用预处理网络或后处理网络,解码器直接预测先行尺度的对数幅度谱图。我们发现该模型需要定时采样(采样率为0.5)来学习对齐和泛化。我们在图3中展示了学到的注意力对齐情况。图3(a)显示,普通的seq2seq模型学到了一个较差的对齐。一个问题是,注意力往往在很多帧之前停滞不前,这个导致了合成信号中的语音可理解性不佳。自然和整体持续时间因此被破坏。相反,我们的模型学习了一个干净和平滑的对齐,如图3©所示。
其次,我们与一个CBHG编码器被替换为2层残差GRU编码器的模型进行比较。模型的其余部分,包括编码器预处理网络,保持完全相同。比较图3(b)和3©,我们可以看到GRU编码器生产的对齐更加嘈杂。听合成的信号时,我们发现嘈杂的对齐往往导致发音错误。CBHG编码器减少了过拟合,并且对于长而复杂的短语具有很好的泛化能力。
图4(a)和4(b)展示了使用后处理网络的好处。我们训练了一个模型,没有使用后处理网络,但保持所有其他组件不变(除了decoder RNN预测线性尺度的频谱图)。有了更多的上下文信息,后处理网络的预测包含更好解析的谐波(例如在100和400之间的高阶谐波)和高频率的共振峰结构,从而减少了合成的伪影。
5.2 Mean Opinion Score Tests
我们进行了平均主观评分测试,要求受试者以 5 点李克特量表评分对刺激的自然程度进行评分。MOS测试是从母语说话人中众包获得的。用于测试的有100个未见过的短语,每个短语接受了8次评分。在计算MOS时,我们只考虑使用耳机进行评分。我们将我们的模型与一个基于LSTM的参数化系统和一个连接系统进行比较,这两者都在生产中使用。考虑到强大的baselines以及Griffin-Lim合成引入的伪影,这个代表了一个非常有希望的结果。
Discussions
我们提出了Tacotron,这是一个集成的端到端生成式TTS模型,它以字符序列作为输入,并输出相应的频谱图。通过一个非常简单的波形合成系统,它在US English上实现了3.82的MOS评分,在自然度方面优于生成参数的系统。Tacotron是基于帧的,因此推理速度要比样本级别的自回归方法快得多。与以前的工作不同,Tacotron不需要手工设计语言学特征或者像HMM对齐器这种复杂的组件。它可以通过随机初始化从头开始训练。我们进行了简答的文本规范化,尽管最近学习样本规范化的进展可能会使这一步在未来变得不必要。
我们尚未研究我们模型的许多方面;许多早期的设计决策并没有改变。我们的输出层、注意力模块、损失函数和基于Griffin-Lim波形合成器都有待改进。例如,众所周知,Griffin-Lim的输出可能会产生听得见的伪影。我们目前正在研究基于神经网络的快速高质量的频谱反演方法。
Griffin-Lim波形合成器都有待改进。例如,众所周知,Griffin-Lim的输出可能会产生听得见的伪影。我们目前正在研究基于神经网络的快速高质量的频谱反演方法。