paper-FastSpeech2

论文信息

  • FastSpeech 2: Fast and High-Quality End-to-End Text-to-Speech;浙江大学;2020
  • 考虑到对FastSpeech的熟悉程度,本次直接开始对FastSpeech2的方法介绍
  • 由于实验部分非常详细,数据集以及网络模型配置请见原论文,本文只列出最终的结论的简要的原因。

【0摘要】

【1 Introduction 】

2 Method

  • 在本节中,我们首先描述了FastSpeech2设计的动机,
  • 然后介绍了FastSpeech2的架构,旨在改进FastSpeech,
    • 以更好地处理一对多映射问题的,
    • 具有更简单的训练管道和更高的语音质量。

【2.1 Motivation】

  • TTS是一个典型的一对多映射问题(one-to-many mapping problem
    • 因为由于语音音频的不同变化,例如音高、持续时间、音量和韵律多个可能的语音序列可以对应于文本序列
    • 在自回归TTS中:
      • 解码器可以根据文本序列和先前的梅尔频谱图来预测下一个梅尔频谱图,
      • 其中先前的梅尔频谱图可以提供一些变化信息,从而在一定程度上缓解这个问题。
    • 而在非自回归TTS中:
      • 仅有的输入信息是文本,这并不足以充分预测语音的变化。
      • 在这种情况下,模型很容易在训练集中的目标语音的变化上出现过拟合,导致泛化能力较差。
  • FastSpeech设计了两种方式来缓解一对多映射问题:
    • 1) 通过目标端的蒸馏来减少数据方差,从而通过简化目标来缓解一对多映射问题。
    • 2) 引入持续时间信息(从教师模型的注意力图中提取),以扩展文本序列以匹配梅尔频谱序列的长度,从而通过提供更多的输入信息来缓解一对多映射问题。
    • 虽然知识蒸馏和从教师模型中提取的持续时间信息可以改进FastSpeech的训练,但它们也带来了一些问题:
      • 1) 两阶段教师-学生训练流程使训练过程复杂化。
      • 2) 从教师模型中提炼的目标梅尔频谱与真实梅尔频谱相比会存在一些信息损失,因为从生成的梅尔频谱合成的音频质量通常比真实梅尔频谱合成的音频质量更差,如1所示。
        • (FastSpeech的声学训练数据对是teacher模型给的梅尔谱(预测的)和真实文本
      • 3) 从教师模型注意力图中提取的持续时间不准确,如4a所示。
  • 在FastSpeech 2中,我们通过以下方式解决了这些问题:
    • 1) 移除了教师-学生蒸馏以简化训练流程;
    • 2) 使用真实语音作为训练目标以避免信息损失
    • 3) 提高了持续时间的准确度并引入更多的变化信息,以缓解预测真实语音时一对多映射问题。
  • 在接下来的小节中,我们将介绍FastSpeech 2的详细设计。

 

【2.2 Model Overview】

  • FastSpeech 2整体模型架构如图1a所示。
    • 编码器将音素序列转换为隐藏序列,
    • 然后变分适配器不同的变化信息(如持续时间、音高和能量)添加到隐藏序列中,
    • 最后梅尔频谱图解码器调整后的隐藏序列并行转换为梅尔频谱序列
  • 我们使用前馈Transformer块作为编码器和梅尔频谱解码器的基本结构,与FastSpeech [20]中使用的自注意力[24]层和1D卷积堆叠相同。
  • 与依赖于教师-学生蒸馏管道和来自教师模型的音素持续时间的FastSpeech不同,FastSpeech 2进行了多项改进。
    • 首先,我们移除了教师-学生蒸馏管道,并直接使用真实梅尔频谱作为模型训练的目标,从而避免了在蒸馏梅尔频谱中的信息损失,并提高了语音质量的上限。
    • 其次,我们的变分适配器不仅包括长度调节器,还包括音高和能量预测器。其中:
      • 1)长度调节器使用强制对齐[13]获得的音素持续时间,比从自回归教师模型的注意力图提取的更准确;
      • 2)额外的音高和能量预测器可以提供更多的变化信息,这对于缓解TTS中的一对多映射问题是重要的。
    • 第三,为了进一步减少训练流程并推进到完全端到端的系统,我们提出了FastSpeech 2s,它可以直接从文本生成波形,而无需级联的梅尔频谱生成(声学模型)和波形生成(声码器)。
  • 在接下来的小节中,我们将描述我们在方法中变分适配器直接波形生成的详细设计。

 

【2.3 Variance Adaptor 】

  • Variance adaptor旨在向音素隐藏序列添加变化信息(例如,持续时间、音高、能量等),以提供足够的信息来预测变体语音,解决TTS中的一对多映射问题。
  • 如图1b所示,变分适配器由以下部分组成:
    • 1)持续时间预测器(即长度调节器,与FastSpeech中使用的相同)。
    • 2)音高预测器。
    • 3)能量预测器。
  • 可以在变分适配器中添加更多的变化信息,这在以下段落中进行了讨论。
  • 在训练过程中:
    • 们将从真实录音中提取的持续时间、音高和能量的真实值作为输入添加到隐藏序列中,以预测目标语音。
    • 同时,我们使用独立的持续时间、音高和能量预测器进行推理(所以这些预测器是可以单独使用或者整体使用?),以合成目标语音。
  • 在本小节中:
    • 我们首先描述变分预测器的模型细节,
    • 然后描述如何在变分适配器中利用持续时间、音高和能量信息。

Variance Predictor

  • 如图1c所示,Variance predictor具有类似于FastSpeech中Duration predictor的模型结构:
    • 它以隐藏序列作为输入,
    • 并使用均方误差(MSE)损失来预测每个音素(持续时间)或帧(音高和能量)的方差。
  • Variance predictor由一个带有ReLU激活函数的2层1D-卷积神经网络组成,每个后面都跟着层归一化和dropout层,以及一个额外的线性层将隐藏状态投影到输出序列中。
    • 对于Duration predictor来说,输出是在对数域中每个音素的长度(也就是每个音素对应的对数mel谱的帧数)。
    • 对于Pitch predictor来说,输出序列是帧级的基频序列(F0)。
    • 对于Energy predictor来说,输出是一个Mel-spectrogram的能量序列。
  • 所有预测器共享相同的模型结构,但不共享模型参数

 

Details of Variance Information

  • 除了文本,语音音频通常包含许多其他方差信息,包括:
    • 1)音素持续时间,表示语音的发声速度
    • 2)音高,是传达情感的关键特征,对感知产生重大影响
    • 3)能量,指示Mel-spectrogram的帧级幅度,并直接影响在Mel-spectrogram上计算的损失;
    • 4)情感、风格、说话者等。
  • 方差信息不完全由文本决定,因此由于一对多的映射问题,这会损害非自回归TTS模型的训练。
  • 在本段中,我们描述了如何在变分适配器中使用音高、能量和持续时间的详细信息。

Duration

  • 为了提高对齐准确性,从而减小模型输入和输出之间的信息差距:
    • 我们使用MFA [13]FastSpeech中的开源语音文本对齐系统,性能优良)来提取音素持续时间,而不是使用预训练的自回归TTS模型
    • MFA可以从未标注手动对齐的文本-音频语料库中进行训练。
    • 我们将MFA生成的对齐结果转换为音素级别的持续时间序列,(https://github.com/Kyubyong/g2p)
    • 并将其输入到长度调节器中,以扩展音素序列的隐藏状态。

Pitch and Energy

  • 首先:
    • 我们使用与目标Mel频谱图相同的hop大小从原始波形中提取F0,以获取每个帧的音高
    • 并计算每个STFT帧的振幅的L2范数作为能量
  • 然后:
    • 我们将每个帧的F0和能量量化为256个可能的值,
    • 并将它们分别编码为一个独热向量(p和e)序列。
  • 在训练过程中:
    • 我们使用p和e查找音高和能量嵌入,并将它们添加到隐藏序列中。
    • 音高和能量预测器直接预测F0和能量的值,而不是独热向量,并使用均方误差进行优化。
  • 在推理过程中,我们使用方差预测器预测F0和能量。

(5We extract the F0 using PyWorldVocoder from https://github.com/JeremyCCHsu/Python-Wrapper-for-World-Vocoder. We do not introduce voiced/unvoiced flags and directly set

F0 to 0 for unvoiced frames for simplicity. We find it does not affect the quality of synthesized speech. 6We use log-scale bins for F0 and uniform bins for energy)

2.4 FastSpeech 2s

对于FastSpeech2se2e训练存在疑问!训练的时候有两个解码器,loss怎么操作的?

  • 为了简化文本到波形生成的流程,并支持在文本到波形生成中的端到端的训练和推理,
  • 在本节中,我们提出了FastSpeech 2s,它直接从文本生成波形,而不需要级联的梅尔频谱图生成(声学模型)和波形生成(声码器)
    • 我们先讨论非自回归文本到波形生成中的挑战,
    • 然后描述FastSpeech 2s的细节,包括模型结构和训练和推理过程。
  • 文本到波形生成(e2e)的挑战(Challenges in Text-to-Waveform Generation)
    • 当将TTS流程推向完全的端到端框架时,存在几个挑战:
      • 1) 由于波形包含比梅尔频谱图更多的方差信息(例如相位),输入和输出之间的信息差距比文本到谱图生成的信息差距更大。
      • 2) 由于音频样本非常长且内存有限,很难使用与完整文本序列对应的音频片段进行训练
      • 因此,我们只能训练与部分文本序列对应的简短音频片段,这使得模型难以捕捉不同部分文本序列中的音素之间的关系,从而损害了文本特征提取。
  • 我们的方法(Our Method)
    • 为了解决上述挑战,我们在波形解码器中进行了几项设计
      • 1) 考虑到相位信息的预测很难使用方差预测器来完成[3],我们在波形解码器中引入了对抗性训练,迫使它通过自身隐式地恢复相位信息[27]
      • 2) 我们利用训练在完整文本序列上的梅尔频谱图解码器来帮助文本特征提取
      • 如图1d所示,波形解码器基于WaveNet [22]的结构,包括非因果卷积和门控激活[23]。
        • 波形解码器以与短音频片段相对应的切片隐藏序列作为输入,并使用转置1D卷积将其上采样以匹配音频片段的长度。
        • 对抗性训练中的判别器采用了与Parallel WaveGAN [27]相同的结构。
        • 波形解码器通过由多个不同的STFT损失求和计算的多分辨率STFT损失和遵循Parallel WaveGAN的判别器损失进行优化。
        • 在推理过程中,我们丢弃梅尔频谱图解码器,只使用波形解码器来合成语音音频

3 Experiments and Results

3.2.1 Performance of FastSpeech 2

  • 音频质量上:
    • 我们的FastSpeech 2和FastSpeech 2s能够与自回归模型Transformer TTS和Tacotron 2的声音质量相匹配。
    • 重要的是,FastSpeech 2和FastSpeech 2s的性能优于FastSpeech
    • 这表明了提供诸如音高、能量等方差信息以及更准确的持续时间,并在不使用教师-学生蒸馏管道的情况下直接将真实语音作为训练目标的有效性。
  • 训练和推理速度上:
    • FastSpeech 2通过移除教师-学生蒸馏过程简化了FastSpeech的训练流程,从而减少了训练时间(需要注意的是,这里的训练时间仅包括声学模型训练,没有考虑声码器训练。因此,我们不在这里比较FastSpeech 2s的训练时间),与FastSpeech相比,FastSpeech 2的总训练时间减少了3.22倍。
    • 我们评估了FastSpeech 2和2s、自回归Transformer TTS模型的推理延迟(三者具有相似数量的模型参数)。我们在表2中展示了波形生成的推理加速比。
      • 可以看出,与Transformer TTS模型相比,FastSpeech 2和2s在波形合成中分别将音频生成速度加快了149倍和170倍,
      • 这表明由于端到端的完整生成和去除了梅尔频谱解码器,FastSpeech 2s比FastSpeech和FastSpeech 2更快

3.2.2 Analyses on Variance Information

  • Better Optimization and Generalization
    • 为了分析引入方差信息对模型优化和泛化的影响,我们在图2中绘制了FastSpeech和FastSpeech 2在训练集和验证集上的梅尔频谱损失曲线。
      • 从训练损失曲线可以看出,FastSpeech2的训练损失小于FastSpeech,表明提供的方差信息(音高、能量和更准确的持续时间)可以帮助模型优化。
      • 从每个模型的训练和验证损失曲线之间的差距可以看出,FastSpeech 2的训练和验证损失差距(约0.037在第160k步)小于FastSpeech(约0.119在第160k步),
      • 这表明引入方差信息(音高、能量和更准确的持续时间)可以提高泛化能力。
  • More Accurate Variance Information in Synthesized Speech
    • 为了验证提供更多方差信息(例如音高和能量)作为输入是否确实可以合成具有更准确的音高和能量的语音,我们比较了FastSpeech和FastSpeech 2合成语音的音高和能量的准确性
    • 我们通过计算从生成的波形中逐帧提取的音高/能量与地面真实语音之间的平均绝对误差(MAE)来计算准确性
      • 为确保合成语音和地面真实语音中的帧数相同,我们在FastSpeech和FastSpeech 2中使用MFA提取的地面真实持续时间。
      • 可以看到,与FastSpeech相比,FastSpeech 22s都能够合成具有更接近地面真实音频的音高和能量的语音音频
  • More Accurate Duration for Model Training
  • 我们手动将50个音频和对应的音素级别的文本对齐,并获取地面真实音素级别的时长。我们分别使用FastSpeech的老师模型和本文中使用的MFA提供的时长来计算绝对音素边界差异的平均值[13]。结果如表4a所示。
  • 我们可以看到MFA可以生成比FastSpeech老师模型更准确的时长。接下来,我们将FastSpeech中使用的时长(来自老师模型)替换为MFA提取的时长,并进行CMOS [12]测试,比较使用不同时长训练的两个FastSpeech模型之间的语音质量。
  • 结果列在表4b中,可以看出更准确的时长信息提高了FastSpeech的语音质量,这验证了我们从MFA中获得的改进后的时长的有效性。

3.2.3 Ablation Study

  • 在本小节中,我们进行消融研究来展示FastSpeech 2和2s的几个方差信息的有效性,包括音高和能量[9]。
  • 我们对这些消融研究进行CMOS评估。结果如表5所示。
    • 我们发现在FastSpeech 2和2s中移除能量方差导致语音质量下降(分别为-0.045和-0.150 CMOS),表明能量方差可以稍微改善FastSpeech 2的语音质量,但更有效的是FastSpeech 2s。
    • 我们还发现在FastSpeech 2和2s中移除音高方差导致分别下降0.230和1.045 CMOS,这表明了音高方差的有效性。
    • 当我们同时移除音高和能量方差时,语音质量进一步下降,表明音高和能量方差共同帮助改善了FastSpeech 2和2s的性能。
    • 我们不研究持续时间信息,因为持续时间对于FastSpeech和FastSpeech 2是必要的。此外,我们已经在前一段分析了我们改进的持续时间的有效性。

3.2.4 Variance Control

  • FastSpeech 2和2s引入了几种方差信息,以缓解TTS中的一对一映射问题。
  • 作为一个副产品,它们还使合成语音更加可控。
  • 作为演示,我们在本小节中操纵音高输入以控制合成语音中的音高
    • 我们在图3中展示了音高操纵前后的梅尔频谱图。
    • 从样本中可以看出,在调整了Fˆ0之后,FastSpeech 2生成了高质量的梅尔频谱图。

【4 Conclusion 】

  • 在这篇论文中,我们提出了一种快速、高质量的端到端TTS系统FastSpeech 2,来解决FastSpeech中的问题并缓解一对一映射问题:
    • 1)我们直接使用音调梅尔频谱图进行训练来简化训练流程,并且与FastSpeech相比避免了信息丢失;
    • 2)我们提高了持续时间的准确性,并引入了更多的方差信息,包括音调和能量,以缓解一对一映射问题。
  • 此外,基于FastSpeech 2,我们进一步开发了非自回归文本到波形生成模型FastSpeech 2s,它享受全端到端训练和推理的好处。
  • 我们的实验结果表明:
    • 在语音质量方面,FastSpeech 2和2s可以超越FastSpeech,同时具有更简单的训练流程,
    • 同时继承了FastSpeech快速、鲁棒和可控的语音合成的优势。
    • 在未来,我们将考虑更多方差信息以进一步提高语音质量,并将通过更轻量级的模型进一步加快推理速度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值