《WaveGlow : A Flow-Based Generative Network For Speech Synthesis》论文学习
文章目录
摘要
在本文中,我们提出了 WaveGlow : 一种基于流的网络,能够从梅尔频谱图生成高质量的语音。
WaveGlow 结合了 Glow (《Glow: Generative flow with invertible 1x1 convolutions》)和 WaveNet (《Wavenet: A generative model for raw audio》)的见解,以提供快速、高效和高质量的音频合成,而不需要自回归。
WaveGlow 仅使用单个网络实现,训练时仅使用单个代价函数:最大限度地提高训练数据的似然性,使训练过程简单稳定。
我们的 PyTorch 实现在 NVIDIA V100 GPU 上以超过 500kHz 的速度生成音频样本。
平均意见得分表明,它提供的音频质量与最好的公开可用 WaveNet 实现一样好。
所有代码将在《Waveglow》上公开。
索引术语 —— 语音合成 , 文字转语音 , 生成式模型 ,深度学习
1 介绍
随着与机器的语音交互变得越来越有用,高效合成高质量的语音变得越来越重要。
语音质量或延迟的小变化对客户体验和客户偏好有很大的影响。
然而,高质量的实时语音合成仍然是一个具有挑战性的任务。
语音合成需要生成具有长期依赖性的高维样本。
此外,人类对音频样本中的统计缺陷非常敏感。
除了质量方面的挑战,实时语音合成还面临着速度和计算方面的限制。
当音频采样率低于 16kHz 时,感知语音质量显著下降,更高的采样率产生更高的语音质量。
此外,许多应用需要比 16kHz 更快的合成速率。
例如,在远程服务器上合成语音时,严格的交互性要求意味着必须以远远超过实时要求的采样速率快速合成语音。
目前,最先进的语音合成模型是基于参数神经网络的。
文本-语音合成通常分为两个步骤。
第一步是将文本转换成时间对齐的特征,如梅尔谱图(《Tacotron: A fully end-to-end text-to-speech synthesis model》,《Natural tts synthesis by conditioning wavenet on mel spectrogram predictions》),或 F0 频率和其他语言特征(《Wavenet: A generative model for raw audio》,《Deep voice: Real-time neural text-to-speech》)。
第二个模型将这些时间对齐的特征转换成语音样本。
在本研究中,我们关注的是第二个模型。
大多数基于神经网络的语音合成模型都是自回归的,这意味着它们将未来的音频样本与之前的样本结合起来,以建立长期的相关性模型。
这些方法的实施和训练相对简单。
然而,它们本质上是串行的,因此不能充分利用并行处理器,如 GPU 或 TPU 。
这类模型通常很难在不牺牲音质的情况下合成超过 16kHz 的音频。
目前我们知道有三种基于神经网络的模型可以在不需要自回归的情况下合成语音:并行 WaveNet (《Wavenet: A generative model for raw audio》)、 Clarinet (《Clarinet: Parallel wave generation in end-to-end text-to-speech》)和用于谱图反演(《Fast spectrogram inversion using multi-head convolutional neural networks》)的 MCNN 。
这些技术可以在 GPU 上合成超过 500kHz 的音频。
然而,这些模型的训练和实现都比自回归模型困难。
这三种方法都需要复合损耗函数来改善音频质量或模式崩溃的问题(《Parallel WaveNet: Fast high-fidelity speech synthesis》,《Clarinet: Parallel wave generation in end-to-end text-to-speech》,《Fast spectrogram inversion using multi-head convolutional neural networks》)。
此外, Parallel WaveNet 和 Clarinet 需要两个网络,一个学生网络和一个教师网络。
Parallel WaveNet 和 Clarinet 的学生网络都使用了逆自回归流 ( IAF )(《Improved variational inference with inverse autoregressive flow》)。
虽然在推理时可以并行运行 IAF 网络,但流本身的自回归特性使得 IAF 的计算效率低下。
为了克服这个问题,这些工作使用教师网络来训练学生网络,使其接近真实的可能性。
这些方法很难复制和部署,因为很难训练这些模型成功地收敛。
在这项工作中,我们证明了自回归流在语音合成中是不必要的。
我们的贡献是一个基于流的网络,能够从梅尔谱图生成高质量的语音。
我们称这个网络为 WaveGlow ,因为它结合了 Glow (《Glow: Generative flow with invertible 1x1 convolutions》)和 WaveNet (《Wavenet: A generative model for raw audio》)的思想。
WaveGlow 易于实现和训练,只使用单个网络,训练时只使用似然损失函数。
尽管模型很简单,但我们的 PyTorch 实现在 NVIDIA V100 GPU 上以超过 500kHz 的速度合成语音:比实时速度快 25 倍以上。
平均意见得分表明,它提供的音频质量与在同一数据集上训练的最好的公开可用 WaveNet 实现一样好。
2 WaveGlow
WaveGlow 是一个生成式模型,通过从分布中采样来生成音频。
为了使用神经网络作为生成模型,我们从一个简单的分布中抽取样本。
在我们的案例中,一个维数与我们期望的输出相同的零均值球形高斯函数,将这些样本通过一系列的层,将简单的分布转换为期望的分布。
在这种情况下,我们在梅尔谱图条件下模拟音频样本的分布。

我们想通过直接最小化数据的负对数似然来训练这个模型。
如果我们使用任意的神经网络,这是很难做到的。
基于流的网络(《Nice: Non-linear independent components estimation》,《Density estimation using real nvp》,《Glow: Generative flow with invertible 1x1 convolutions》)通过保证神经网络映射是可逆的来解决这一问题。
通过限制每一层为双射,可以通过变量的改变直接计算可能性:

在我们的例子中,第一项是球面高斯分布的对数似然。
这一项惩罚了变换后样本的 l2 范数。
第二项由变量代换产生, J 是雅可比矩阵。
雅可比矩阵的对数行列式奖励任何一层在前进过程中增加空间的体积。
这一项也防止了一个层仅仅将 x 项乘以 0 来优化 l2 范数。
这个转换序列也称为规范化流程(《Variational inference with normalizing flows》)。

我们的模型与最近的 Glow 工作(《Glow: Generative flow with invertible 1x1 convolutions》)非常相似,如图 1 所示。
对于正向通过网络,我们取 8 组音频样本作为向量,我们称之为压缩操作,如(《Glow: Generative flow with invertible 1x1 convolutions》)。
然后我们处理这些向量 “steps of flow”
这里的流程包括一个可逆的 1×1 卷积,然后是一个仿射耦合层,如下所述。
2.1 仿射耦合层
可逆神经网络通常使用耦合层来构建(《Nice: Non-linear independent components estimation》,《Density estimation using real nvp》,《Glow: Generative flow with invertible 1x1 convolutions》)。
在我们的例子中,我们使用了仿射耦合层(《Density estimation using real nvp》)。
一半的通道作为输入,然后产生乘法和加法术语,用于缩放和转换剩余的通道:

这里 W N ( ) WN() WN() 可以是任何变换。
耦合层对整个网络保持可逆性,即使 W N ( ) WN() WN() 不需要是可逆的。
这是因为用作 W N ( ) WN() WN() 输入的通道(在本例中为 x a x_a xa

WaveGlow是一种结合Glow和WaveNet思想的非自回归生成模型,用于从梅尔频谱图高效生成高质量语音。模型简单,仅使用单一网络和似然损失函数进行训练,实现超过500kHz的合成速度,音频质量媲美最佳的WaveNet实现。
最低0.47元/天 解锁文章
2万+

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



