欢迎光临散文网 会员登陆 & 注册

FastSpeech论文翻译

2023-03-16 22:29 作者:xhy2023  | 我要投稿

论文地址:https://arxiv.org/pdf/1905.09263.pdf

  • Abstract

基于神经网络的端到端文本到语音( TTS )显著提高了合成语音的质量。主要的方法(例如 Tacotron 2 )通常首先从文本生成梅尔谱图,然后使用声码器(如 WaveNet )从梅尔谱图合成语音。与传统的连接和统计参数方法相比,基于神经网络的端到端模型推理速度慢,合成的语音通常缺乏鲁棒性(如一些词被跳过或重复)和可控性(语音速度或韵律控制)。在本研究中,我们提出了一种基于 Transformer 的前馈网络,用于并行生成 TTS 梅尔谱图。具体来说,我们从基于编码器-解码器的教师模型中提取注意对齐用于音素持续时间预测,该模型由长度调节器用于扩展源音素序列,以匹配目标梅尔谱图序列的长度,用于并行梅尔谱图生成。在 LJSpeech 数据集上的实验表明,我们的并行模型在语音质量方面与自回归模型一致,几乎消除了在特别困难的情况下跳过词和重复的问题,并且可以平滑地调整语音速度。最重要的是,与自回归 Transformer TTS 相比,我们的模型使梅尔谱图生成速度加快了 270 倍,端到端语音合成速度加快了 38 倍。因此,我们称我们的模型为 FastSpeech

  • Introduction

近年来,由于深度学习的发展,文本到语音( Text to speech, TTS )引起了人们的广泛关注。基于深度神经网络的系统越来越受 TTS 的欢迎,如 Tacotron, Tacotron 2, Deep Voice 3,以及完整的端到端 ClariNet。这些模型通常首先从文本输入中自回归生成梅尔频谱图,然后使用 Griffin-Lim、 WaveNet、 Parallel WaveNet或 WaveGlow等声码器从梅尔频谱图合成语音。基于神经网络的 TTS 方法在语音质量方面优于传统的连接和统计参数方法。在现有的基于神经网络的 TTS 系统中,梅尔谱图的生成是自回归的。由于梅尔谱图的长序列和自回归特性,这些系统面临着几个挑战:

  1. 生成梅尔谱图的推理速度慢:虽然基于 CNN 和 Transformer 的 TTS可以加快训练基于 RNN 的模型,所有模型生成的梅尔谱图都是在之前生成的梅尔谱图的基础上生成的,并且由于梅尔谱图序列通常为数百或数千个,因此推理速度较慢。

  2. 合成语音通常不具有鲁棒性:在自回归生成过程中,由于错误的传播和文本与语音之间错误的注意对齐,生成的梅尔谱图往往存在跳词和重复的问题。

  3. 合成语音缺乏可控性:以前的自回归模型自动生成一个接一个的梅尔谱图,而没有明确地利用文本和语音之间的对齐。因此,在自回归生成中,通常很难直接控制语音的速度和韵律。

考虑到文本和语音之间的单调对齐,为了加快梅尔谱图的生成,我们提出了一种新的模型 FastSpeech ,该模型以文本(音素)序列作为输入,非自回归地生成梅尔谱图。它采用了基于 Transformer中自注意的前馈网络和一维卷积。由于梅尔谱图序列比对应的音素序列长很多,为了解决两个序列长度不匹配的问题, FastSpeech 采用了一个长度调节器,根据音素持续时间(即每个音素对应的梅尔频谱图的数目)来匹配梅尔声谱图序列的长度。该调节器建立在音素持续时间预测器上,该预测器预测每个音素的持续时间。我们所提出的 FastSpeech 可以解决以下三个问题:

  1. 通过并行生成梅尔谱图, FastSpeech 级大加快了合成过程。

  2. 音素持续时间预测器保证了音素及其梅尔频谱图之间的硬对齐,这与自回归模型中的软对齐和自动注意对齐有很大不同。因此, FastSpeech 避免了错误传播和错误注意对齐的问题,从而减少了跳词和重复的比例。

  3. 长度调节器可以通过延长或缩短音素持续时间来轻松调节语速,以确定生成的梅尔频谱图的长度,也可以通过在相邻音素之间添加停顿来控制部分韵律。

我们在 LJSpeech 数据集上进行实验来测试 FastSpeech 。结果表明,在语音质量方面, FastSpeech 几乎与自回归 Transformer 模型一致。与自回归 Transformer TTS 模型相比, FastSpeech 在梅尔谱图生成上提高了 270 倍的速度,在最终语音合成上提高了 38 倍的速度,几乎消除了单词跳过和重复的问题,并且可以平滑地调整语音速度。

  • Background

在本节中,我们简要概述了这项工作的背景,包括文本到语音,序列到序列学习,和非自回归序列生成。

  1. 文本到语音:TTS是人工智能领域的一个热点研究课题,其目的是从给定文本合成自然且可理解的语音。TTS 的研究已经从早期的串联合成、统计参数合成转向基于神经网络的参数合成和端到端模型,并且端到端模型合成的语音质量接近人类水平。基于神经网络的端到端 TTS 模型通常先将文本转换为声学特征(如梅尔谱图),然后再将梅尔谱图转换为音频样本。然而,大多数神经 TTS 系统生成的语音谱图是自回归的,推理速度慢,合成语音通常缺乏鲁棒性(跳过词和重复)和控制性(语音速度或韵律控制)。在这项工作中,我们提出了快速语音非自回归生成梅尔谱图,充分解决了上述问题。

  2. 序列到序列学习:序列到序列学习通常建立在编码器-解码器框架上:编码器将源序列作为输入并生成一组表示。然后,解码器在给定源表示及其前一个元素的情况下估计每个目标元素的条件概率。在编码器和解码器之间进一步引入注意机制,以便在预测当前元素时找到需要关注的源表示,是序列到序列学习的重要组成部分。在这项工作中,我们提出了一个前馈网络来并行生成序列,而不是使用传统的编码-注意-解码器框架进行序列对序列的学习。

  3. 非自回归序列生成:与自回归序列生成不同,非自回归模型并行生成序列,而不显式依赖于前面的元素,这可以大大加快推理过程。非自回归生成已经在一些序列生成任务中得到了研究,如神经机器翻译和音频合成。我们的 FastSpeech 与上述工作有两个不同之处:(1)以前的工作主要是在神经机器翻译或音频合成中采用非自回归生成,以提高推理加速,而 FastSpeech 在 TTS 中既注重推理加速,又注重提高合成语音的鲁棒性和控制性。(2)对于 TTS 来说,虽然 Parallel WaveNet、ClariNet和WaveGlow 是并行产生音频的,但它们的条件是梅尔谱图,梅尔谱图仍然是自回归产生的。因此,他们没有解决这项工作中考虑到的挑战。还有一个并行工作(《Parallel neural text-to-speech》),它也可以并行生成梅尔谱图。但是,它仍然采用了带注意机制的编码器-解码器框架:(1)与教师模型相比,需要 2~3 倍模型参数,从而实现了比 FastSpeech 更慢的推理速度;(2)不能完全解决跳过单词和重复的问题,而 FastSpeech 几乎消除了这些问题。

  • 3 FastSpeech

在本节中,我们将介绍 FastSpeech 的体系结构设计。为了并行生成目标梅尔谱图序列,我们设计了一种新的前馈结构,而不是采用大多数序列对序列的自回归生成所采用的基于编码器-注意-解码器的结构。FastSpeech 的整体模型架构如图 1 所示。我们将在下面的小节中详细描述这些组件。

  • 3.1 前馈 Transformer

FastSpeech 的体系结构是基于 Transformer (《Attention is all you need》)中的自注意和 1D 卷积的前馈结构。我们称之为前馈 Transformer,如图 1a 所示。前馈 Transformer 堆叠多个 FFT 块用于音素到梅尔频谱图的转换,在音素一侧有 N 块,在梅尔频谱图一侧有 N 块,在音素和梅尔频谱图序列之间有一个长度调节器(将在下一小节中描述),以弥合音素和梅尔频谱图序列之间的长度差距。每个 FFT 块由一个自注意和 1D 卷积网络组成,如图 1b 所示。自注意网络由一个多头注意组成,用于提取交叉位置信息。与 Transformer 中的 2 层密集网络不同,我们使用的是 ReLU 激活的 2 层 1D 卷积网络。其动机是相邻隐态在语音任务的字符/音素和梅尔频谱图序列上关系更密切。在实验部分,我们评估了一维卷积网络的有效性。在 Transformer之后,自注意网络和 1D 卷积网络分别添加了残差连接、层归一化和 Dropout 。

  • 3.2 长度调节器

长度调节器(图 1c )用于解决前馈变压器中音素和声谱序列长度不匹配的问题,并控制语音速度和部分韵律。音素序列的长度通常小于其梅尔频谱图序列的长度,每个音素对应几个梅尔频谱图声谱。我们将对应于音素的梅尔频谱图的长度称为音素持续时间(我们将在下一个小节中描述如何预测音素持续时间)。长度调节器以音素持续时间d为基础,将音素序列的隐藏状态扩展d次,隐藏状态的总长度等于梅尔频谱图的长度。

  • 3.3 持续时间预测

音素持续时间预测对于长度调节器是重要的。如图 1d 所示,持续时间预测器由一个 ReLU 激活的 2 层 1d 卷积网络组成,每一层都进行层归一化和 Dropout 层,再增加一个线性层输出一个标量,这就是预测的音素持续时间。需要注意的是,该模块被叠加在音素侧的 FFT 块的顶部,并与 FastSpeech 模型联合训练,以预测每个音素的梅尔频谱图的长度,并损失均方误差( MSE )。我们在对数域中预测长度,这使它们更高斯化,更容易训练。请注意,训练持续时间预测器只在 TTS 推理阶段使用,因为我们可以在训练中直接使用从自回归教师模型中提取的音素持续时间(见下面的讨论)。为了训练持续时间预测器,我们从一个自回归的教师 TTS 模型中提取了真实情况音素持续时间,如图 1d 所示。我们描述的详细步骤如下:我们首先训练一个自回归的基于编码器-注意-解码器的 Transformer TTS 模型跟随,对于每个训练序列对,我们从训练教师模型中提取解码器到编码器的注意对齐。由于多头自我注意存在多重注意对齐,并不是所有的注意头都表现出对角线性质(音素和梅尔频谱图序列是单调对齐的)。

  • 4 实验设置

  • 4.1 数据集

我们在 LJSpeech 数据集(《The lj speech dataset》)上进行实验,该数据集包含 13100 个英语音频片段和相应的文本文本,总音频长度约为 24 小时。我们将数据随机分成 3 组: 12500 个样本用于训练, 300 个样本用于验证, 300 个样本用于测试。为了减轻发音错误的问题,我们使用内部的字素到音素转换工具(《Tokenlevel ensemble distillation for grapheme-to-phoneme conversion》)将文本序列转换为音素序列。对于语音数据,我们将原始波形转换为后的梅尔谱图。我们的帧大小和跳数大小分别设置为 1024 和 256 。为了评估我们提出的 FastSpeech 的鲁棒性,我们还根据的实践,选择了 50 个 TTS 系统特别难的句子。

  • 4.2 模型配置

我们的 FastSpeech 模型由 6 个 FFT 块组成,分别在音素侧和梅尔谱图侧。包括标点符号在内的音素词汇量为 51 个。FFT 块中的音素嵌入维数、自注意隐藏大小和一维卷积均设为 384 。注意头的数量设置为 2 。2 层卷积网络中 1D 卷积的核大小都设为 3 ,第一层输入输出大小为 384/1536 ,第二层为 1536/384 。输出线性层将 384 维的隐藏图转换为 80 维的梅尔谱图。

  • 4.3 训练和推理

我们首先在 4 个 NVIDIA V100 图形处理器上训练自回归 Transformer TTS 模型,每个图形处理器上批量训练 16 个句子。我们将训练集中的文本和语音对再次输入到模型中,得到编码器-解码器注意对齐,用于训练持续时间预测器。此外,我们还利用在非自回归机器翻译中表现良好的序列级知识精馏,将知识从教师模型转移到学生模型。对于每个源文本序列,我们使用自回归 Transformer TTS 模型生成梅尔谱图,并将源文本和生成的梅尔谱图作为配对数据进行 FastSpeech 模型训练。我们将 FastSpeech 模型与持续时间预测器一起训练。 FastSpeech 的优化器和其他超参数的与自回归 Transformer TTS 模型是相同的。FastSpeech 模型训练在 4 个 NVIDIA V100 GPU 上大约需要 80k 步。在推理过程中,使用预先训练的 WaveGlow将我们的 FastSpeech 模型输出的梅尔谱图转换为音频样本。

  • 5 结果

略。



FastSpeech论文翻译的评论 (共 条)

分享到微博请遵守国家法律