论文相关信息
FastSpeech: Fast, Robust and Controllable Text to Speech;浙江大学,2019
【0摘要】
- 神经网络为基础的端到端文本转语音(TTS)系统已经显著提高了合成语音的质量。
- 著名的方法(如Tacotron 2)通常首先从文本生成梅尔频谱图,然后使用WaveNet等声码器从梅尔频谱图合成语音。
- 与传统的拼接法和统计参数法相比,基于神经网络的端到端模型在推理速度较慢,并且合成语音通常不够鲁棒(即某些单词被跳过或重复),缺乏可控性(语速或音调控制)。
- 在本工作中,我们提出了一种新颖的前馈网络,基于Transformer并行生成梅尔频谱图以进行TTS。
- 具体而言:
- 具体而言,我们从基于编码器-解码器的教师模型中提取注意力对齐,长度调节器使用该注意力对齐来扩展源音素序列,以匹配目标梅尔频谱图序列的长度,从而进行并行的梅尔频谱图生成
- 在LJSpeech数据集上的实验表明,我们并行的模型在语音质量方面与自回归模型相匹配,几乎消除了在特别困难的情况下出现单词跳过和重复的问题,并且能够平稳地调整语速。
- 最重要的是,与传统的自回归Transformer TTS相比,我们的模型将梅尔频谱图生成的速度加快了270倍,端到端的语音合成速度加快了38倍。
- 因此,我们称我们的模型为FastSpeech。
【1引言】
- 近年来,文本转语音(TTS)因其深度学习的进步而备受关注。基于深度神经网络的系统越来越受TTS的欢迎,例如:
- Tacotron [27]、Tacotron 2 [22]、Deep Voice 3 [19]和完全端到端的ClariNet [18]。
- 这些模型通常首先从文本输入自回归地生成梅尔频谱图,
- 然后使用Griffin-Lim [6]、WaveNet [24]、Parallel WaveNet [16]或WaveGlow [20]等声码器从梅尔频谱图合成语音。
- 基于神经网络的TTS在语音质量方面超越了传统的拼接法和统计参数法[9, 28]。
- 在当前的基于神经网络的TTS系统中,梅尔频谱图是自回归生成的。
- 由于梅尔频谱图的长时间序列和自回归性质,这些系统面临几个挑战:
- 梅尔频谱图生成的推理速度较慢。
- 尽管基于CNN和Transformer的TTS [14, 19]可以加速训练超过基于RNN的模型 [22],
- 但所有模型都是在先前生成的梅尔频谱图的条件下生成梅尔频谱图,并且由于梅尔频谱图序列通常具有数百或数千的长度,因此面临着推理速度较慢的问题。
- 合成语音通常不够鲁棒。
- 由于误差传播 [3] 和在自回归生成中文本和语音之间的错误注意力对齐,
- 生成的梅尔频谱图通常存在单词跳过和重复的问题 [19]。
- 合成语音缺乏可控性。
- 先前的自回归模型逐个自动生成梅尔频谱图,而没有明确利用文本和语音之间的对齐。
- 因此,通常很难直接控制自回归生成中的语速和音高。
- 梅尔频谱图生成的推理速度较慢。
- Tacotron [27]、Tacotron 2 [22]、Deep Voice 3 [19]和完全端到端的ClariNet [18]。
- 考虑到文本和语音之间的单调对齐,为了加快梅尔频谱图的生成,我们提出了一种新的模型FastSpeech:
- 它以文本(音素)序列作为输入,并非线性地生成梅尔频谱图(输出)。
- 它采用了基于Transformer中的自注意力和一维卷积的前馈网络[25]。
- 由于梅尔频谱图序列比其对应的音素序列要长得多,为了解决这两个序列之间的长度不匹配问题:
- FastSpeech采用了长度调节器来根据音素持续时间(即每个音素对应的梅尔频谱图数量)对音素序列进行上采样,以匹配梅尔频谱图序列的长度。
- 该调节器建立在音素持续时间预测器的基础上,该预测器预测每个音素的持续时间(每个音素对应多少帧)。
(所以是先有音素持续时间预测器,然后再有长度调节器对音素序列上采用是吗???)
- 我们提出的FastSpeech可以解决上述三个挑战,具体如下:
- 通过【并行生成梅尔频谱图】,FastSpeech大大加快了合成过程。
- 【音素持续时间预测器】确保音素与其梅尔频谱图之间的硬对齐:
- 这与自回归模型中的软自动注意力对齐有很大的不同。
- 因此,FastSpeech避免了误差传播和错误注意力对齐的问题,从而减少了跳过的单词和重复的单词的比例。
- 【长度调节器】可以通过延长或缩短音素持续时间来轻松调整语速:
- 以确定生成的梅尔频谱图的长度,
- 并且还可以通过在相邻音素之间添加间隙来控制部分的韵律。
- 我们对LJSpeech数据集进行了实验,以测试FastSpeech。
- 结果表明,在语音质量方面,FastSpeech几乎与自回归Transformer模型匹配。
- 此外,与自回归Transformer TTS模型相比,FastSpeech在梅尔频谱图生成方面实现了270倍的速度提升,在最终语音合成方面实现了38倍的速度提升
- 几乎消除了单词跳过和重复的问题,并且可以平稳地调整语速。
- 我们在附件中附加了我们的方法生成的一些音频文件。
【2背景】
- 在本节中,我们简要概述了这项工作的背景,包括文本到语音、序列到序列学习和非自回归序列生成。
- 文本到语音:
- TTS [1, 18, 21, 22, 27]旨在根据给定的文本合成自然和可理解的语音,长期以来一直是人工智能领域的热门研究课题。
- 对TTS的研究已经从早期的拼接合成[9]、统计参数合成[13, 28]转向基于神经网络的参数合成[1]和端到端模型[14, 18, 22, 27],并且端到端模型合成的语音质量接近于人声。
- 基于神经网络的端到端TTS模型通常首先将文本转换为声学特征(例如,梅尔频谱图),然后将梅尔频谱图转换为音频样本。(2stage)
- 然而,大多数神经网络TTS系统都是自回归地生成梅尔频谱图,这导致了缓慢的推理速度,合成的语音通常缺乏鲁棒性(单词跳过和重复)和可控性(语速或音高控制)。
- 在本工作中,我们提出了FastSpeech来非自回归地生成梅尔频谱图,充分解决了上述问题。
- 序列到序列学习:
- 序列到序列学习 [2, 4, 25] 通常建立在编码器-解码器框架上:
- 编码器将源序列作为输入并生成一组表示形式。
- 之后,解码器估计每个目标元素在给定源表示及其前面元素的条件下的条件概率。
- 注意力机制 [2] 进一步引入编码器和解码器之间,以找到在预测当前元素时应关注哪些源表示,是序列到序列学习的重要组件。
- 在本工作中,我们不使用传统的编码器-注意力-解码器框架进行序列到序列学习,而是提出一种前馈网络来并行生成序列。
- 序列到序列学习 [2, 4, 25] 通常建立在编码器-解码器框架上:
- 非自回归序列生成:
- 与自回归序列生成不同,非自回归模型并行生成序列,不显式地依赖于先前的元素,这可以大大加速推理过程。
- 在神经机器翻译 [7, 8, 26] 和音频合成 [16, 18, 20] 等一些序列生成任务中已经研究了非自回归生成。
- 我们的FastSpeech在以上工作两方面有所不同:
- 1) 以前的工作主要将非自回归生成应用于神经机器翻译或音频合成以加快推理速度,而FastSpeech则专注于加快推理速度并改善TTS合成语音的鲁棒性和可控性。
- 2) 对于TTS,尽管Parallel WaveNet [16]、ClariNet [18] 和 WaveGlow [20] 并行生成音频,但它们仍以梅尔频谱图为条件进行,而这些梅尔频谱图仍然是自回归生成的。
- 因此,它们没有解决本工作中考虑的挑战。
- 有一篇同时工作的论文 [17] 也并行生成梅尔频谱图:
- 1) 但它仍然采用带有注意力机制的编码器-解码器框架,相比教师模型需要2∼3倍的模型参数,因此实现的推理速度提升比FastSpeech慢;
- 2) 不能完全解决单词跳过和重复的问题,而FastSpeech几乎消除了这些问题。
【3 FastSpeech】
在本节中,我们介绍了FastSpeech的架构设计。
- 为了并行生成目标梅尔频谱图序列,我们设计了一种新颖的前馈结构,而不是使用大多数基于序列到序列的自回归 [14, 22, 25] 和非自回归 [7, 8, 26] 生成所采用的基于编码器-注意力-解码器的架构。
- FastSpeech的总体模型架构如图1所示。我们将在以下小节中详细描述各个组件。
【3.1 Feed-Forward Transformer 】

- FastSpeech的架构是基于Transformer中的自注意力和一维卷积 [25] 的前馈结构,我们称之为前馈Transformer (FFT),如图1a所示。
- 前馈Transformer通过堆叠多个FFT块来实现音素到梅尔频谱图的转换:
- 音素侧有N个FFT块,梅尔频谱图侧也有N个FFT块,它们之间使用长度调节器(将在下一节中介绍)来填补音素和梅尔频谱图序列之间的长度差异。
- 每个FFT块由一个自注意力和一维卷积网络组成,如图1b所示。
- 自注意力网络采用多头注意力来提取交叉位置信息。
- 与Transformer中的两层密集网络不同,我们使用具有ReLU激活函数的两层一维卷积网络。
- 这样做的原因是在语音任务中,字符/音素和梅尔频谱图中相邻的隐藏状态更密切相关。
- 我们将在实验部分评估一维卷积网络的效果。
- 按照Transformer [25] 的方法,在自注意力网络和一维卷积网络之后分别添加了残差连接、层归一化和dropout。
- 前馈Transformer通过堆叠多个FFT块来实现音素到梅尔频谱图的转换:
【3.2 Length Regulator】
说的就是dur矩阵和mel2ph矩阵

- 长度调节器(图1c)用于解决前馈Transformer中音素和频谱图序列之间的长度不匹配问题,以及控制语速和语调的部分。
- 音素序列的长度通常小于其梅尔频谱图序列的长度,每个音素对应于几个梅尔频谱图。
- 我们把一个音素对应的梅尔频谱图的长度(帧数),称之为音素持续时间(我们将在下一个小节中描述如何预测音素持续时间)。
- 基于音素持续时间 d,长度调节器将音素序列的隐藏状态扩展了 d 次,然后隐藏状态的总长度等于梅尔频谱图的长度。
- 我们也可以通过调整句子中空格字符的持续时间来控制单词之间的间隔,从而调整合成语音的部分韵律。
【3.3 Duration Predictor 】
- 音素持续时间预测对于长度调节器是重要的。如图1d所示:
- 持续时间预测器由具有ReLU激活的2层一维卷积网络组成,
- 每个卷积网络后面跟着层归一化和dropout层,
- 还有一个额外的线性层输出一个标量,这正是预测的音素持续时间。
- 请注意,该模块堆叠在音素侧的FFT块的顶部,并与FastSpeech模型一起训练以使用均方误差(MSE)损失预测每个音素的梅尔频谱图的长度。
- 我们预测的长度在对数域上(也就是对数mel谱),这使得它们更接近高斯分布并且更容易训练。
- 请注意,训练后的持续时间预测器仅用于TTS推理阶段,因为在训练中,我们可以直接使用从自回归教师模型中提取的音素持续时间(见后续讨论)问号脸??。
- 为了训练持续时间预测器,我们从自回归教师TTS模型中提取音素持续时间的真实值,如图1d所示。我们将详细说明以下步骤:
- 1)我们首先遵循 [14] 训练一个自回归编码器-注意力机制解码器为基础的Transformer TTS模型(真实麻烦,还得事先训练一个Teacher模型)。
- 2)对于每个训练序列对,我们从训练好的教师模型中提取解码器到编码器的注意对齐。
- 由于多头自注意力的存在,有多个注意对齐,并不是所有的注意力头都表现出对角线性质(音素和梅尔频谱图序列单调地对齐)。
- 我们提出一个关注率 F 来衡量一个注意力头是否接近对角线
- 我们计算每个注意力头的焦点率,选择具有最大 F 值的注意力头作为注意对齐:

- 3)也就是说,音素的持续时间是按照在上述步骤中选择的注意力头所注意的梅尔频谱图的数量。
【4 Experimental Setup 】
【4.1 Datasets 】
- 我们对LJSpeech数据集进行了实验,该数据集包含13,100个英语音频片段和相应的文本记录,总音频长度约为24小时。
- 我们随机将数据集分成三组:12,500个样本用于训练,300个样本用于验证,300个样本用于测试。
- 为了缓解发音问题,我们使用内部的文字音素转换工具[23] ,按照[1, 22, 27]的指导方针将文本序列转换为音素序列。
- 对于语音数据,我们按照[22]的指导方针将原始波形转换为梅尔频谱图。
- 我们的帧大小和跳跃大小分别设置为1024和256。为了评估所提出的FastSpeech的鲁棒性,
- 我们还选择了50个句子,这些句子对TTS系统来说特别困难,遵循了[19]的实践。
【4.2 Model Configuration 】
- FastSpeech模型
- 我们的FastSpeech模型在音素侧和梅尔频谱图侧都包含6个FFT块。
- 音素词汇表的大小为51,包括标点符号。
- 音素嵌入的维度、自注意力的隐藏大小和FFT块中的一维卷积的深度都被设置为384。
- 注意力头的数量设置为2。
- 两层卷积网络中一维卷积的卷积核大小都被设置为3,第一层的输入/输出大小为384/1536,第二层的输入/输出大小为1536/384。
- 输出线性层将384维的隐藏向量转换为80维的梅尔频谱图。
- 在我们的持续时间预测器中,一维卷积的卷积核大小被设置为3,两个层的输入/输出大小均为384/384。
- 自回归Transformer TTS模型
- 该模型在我们的工作中服务于两个目的:
- 1) 提取音素持续时间作为训练持续时间预测器的目标;
- 2) 在序列级知识蒸馏中生成梅尔频谱图(这将在下一小节中介绍)。
- 我们参考[14]来配置此模型,它由6层编码器和6层解码器组成,不同之处在于我们使用一维卷积网络代替逐点FFN。
- 这个教师模型的参数数量与我们的FastSpeech模型相似。
- 该模型在我们的工作中服务于两个目的:
【4.3 Training and Inference】
- 我们首先使用4个NVIDIA V100 GPU,在每个GPU上以16句话为一批大小来【训练自回归Transformer TTS模型】。
- 我们使用Adam优化器,其中β1 = 0.9,β2 = 0.98,ε = 10^-9,并遵循[25]中相同的学习率调度。训练需要8万步才能收敛。
- 我们将训练集中的文本和语音对再次输入模型,以获得编码器-解码器注意力对齐,用于训练持续时间预测器。
- 此外,我们还利用序列级知识蒸馏 [12],
- 该技术在非自回归机器翻译 [7, 8, 26] 中表现出色,将教师模型的知识转移到学生模型中。
- 对于每个源文本序列,我们使用自回归Transformer TTS模型生成梅尔频谱图,并将源文本和生成的梅尔频谱图作为FastSpeech模型训练的配对数据。
- 我们使用持续时间预测器一起【训练FastSpeech模型】
- FastSpeech的优化器和其他超参数与自回归Transformer TTS模型相同。
- 在4个NVIDIA V100 GPU上,FastSpeech模型的训练需要大约8万步。
- 在推理过程中,我们使用预训练的WaveGlow [20]将FastSpeech模型输出的梅尔频谱图转换为音频样本。
【5 Results】
- 在本节中,我们基于音频质量、推理加速、鲁棒性和可控性等方面来评估FastSpeech的性能表现。
- 音频质量
- 我们使用MOS(平均意见得分)方法在测试集上进行评估,以衡量音频的质量。
- 我们保持不同模型之间的文本内容一致,以便排除其他干扰因素,只考虑音频质量。
- 每个音频至少由20名母语为英语的测试者进行听取。
- 我们将我们的FastSpeech模型生成的音频样本与其他系统进行比较,这些系统包括:(基线系统的模型从哪里来?还是直接用基线生成的样本去比较?)
- 1)GT(Ground Truth音频),即真实音频;
- 2)GT(Mel+WaveGlow),即先将真实音频转换为梅尔频谱图,然后再使用WaveGlow将梅尔频谱图转换回音频;
- 3)Tacotron 2 [22](Mel+WaveGlow);
- 4)Transformer TTS [14](Mel+WaveGlow);
- 5)Merlin [28](WORLD),一个流行的参数TTS系统,其中WORLD [15]用作声码器。
- 结果显示在表1中。可以看出,我们的FastSpeech几乎能够匹配Transformer TTS模型和Tacotron 2模型的质量。

- 推理加速
- 我们针对FastSpeech的推理延迟与具有相似模型参数数量的自回归Transformer TTS模型进行评估。
- 首先,我们在表2中展示了梅尔频谱图生成的推理加速。可以看到,与Transformer TTS模型相比,FastSpeech将梅尔频谱图生成的速度提高了269.40倍。
- 然后,我们展示了使用WaveGlow作为声码器时的端到端加速。可以看到,FastSpeech仍然可以实现38.30倍的音频生成加速。
- 我们还可视化了推理延迟和测试集中预测的梅尔频谱图序列长度之间的关系。
- 图2显示,对于FastSpeech而言,推理延迟几乎不会随着预测梅尔频谱图长度的增加而增加,而Transformer TTS则会增加很多。
- 这表明由于并行生成,我们的方法的推理速度对生成音频的长度不敏感。


其他实验结论不一一介绍,直接看论文
【6 Conclusions】
- 在本工作中,我们提出了一种快速的、鲁棒的和可控的神经TTS系统FastSpeech。
- FastSpeech采用了一种新的前馈神经网络来并行生成梅尔频谱图,该系统包括几个关键组成部分,
- 包括前馈Transformer块
- 长度调节器
- 持续时间预测器。
- 在LJSpeech数据集上的实验表明:
- 我们提出的FastSpeech几乎可以匹配自回归Transformer TTS模型在语音质量方面的表现,
- 将梅尔频谱图生成速度提高了270倍,将端到端语音合成速度提高了38倍,
- 几乎消除了单词跳过和重复的问题,并且能够平稳地调节语速(0.5x-1.5x)。
- 未来的工作是:
- 我们将继续提高合成语音的质量,
- 并将FastSpeech应用于多说话人和低资源设置中。
- 我们还将训练FastSpeech与并行神经声码器一起,使其完全实现端到端和并行。
本文提出FastSpeech,一种基于Transformer的并行生成模型,显著提高TTS的推理速度,减少单词跳过和重复,实现平稳的语速控制。实验表明FastSpeech在保持高质量语音的同时,速度提升明显。

2万+

被折叠的 条评论
为什么被折叠?



