PARALLEL WAVEGAN论文学习

Parallel Wavegan:基于具有多分辨率谱图的生成逆向网络的快速波形生成模型

摘要:Parallel WaveGAN是一种无蒸馏的对抗生成网络,快速且占用空间小的波形生成方法。该方法通过联合优化多分辨率谱图和对抗损失函数来训练非自回归WaveNet,可以有效捕获真实语音波形的时频分布。由于我们的方法不需要在常规师生框架中使用密度蒸馏,因此即使使用少量参数,也可以轻松地训练整个模型。特别是,提出的Parallel WaveGAN仅具有1.44 M参数,并且在单个GPU环境下生成24 kHz语音波形的速度比实时速度快28.68倍。感知听觉测试结果验证了我们提出的方法在基于Transformer的文本到语音框架中的平均意见得分为4.16,与最佳的基于精馏的Parallel WaveNet系统相比。

一、介绍

文本到语音(TTS)框架中的深层生成模型显着提高了合成语音信号的质量[1,2]。值得注意的是,诸如WaveNet之类的自回归生成模型已显示出优于传统参数声码器的性能[3-8]。但是,由于它们的自回归特性,它们的推理速度较慢,因此它们在实时场景中的应用受到限制。
解决这一局限性的一种方法是利用基于teacher-student框架的快速波形生成方法[9-11]。在这种框架下,定义为概率密度蒸馏的桥梁将自回归teacher WaveNet的知识转移到基于非自回归流(IAF)的student model。尽管IAF的student model可以以合理的感知质量实现语音的实时生成,但是在训练过程中仍然存在问题:它不仅需要训练有素的教师模型,而且还需要反复试验的方法来优化复杂的密度蒸馏过程。
为了克服上述问题,我们提出了一种基于生成对抗网络(GAN)的Parallel WaveGAN,一种简单有效的并行波形生成方法[14]。与传统的基于蒸馏的方法不同,Parallel WaveGAN不需要两阶段的,连续teacher-studen的训练过程。在建议的方法中,仅非自回归WaveNet模型是通过优化多分辨率短时傅立叶变换(STFT)和对抗性损失函数的组合来训练的,这些函数使模型能够有效地捕获现实语音波形的时频分布。结果,整个训练过程变得比传统方法容易得多,并且该模型可以生成具有少量模型参数的自然发声的语音波形。我们的贡献总结如下:
(1)我们提出了一种多分辨率STFT损失和波形域对抗损失的联合训练方法。该方法对于常规的基于蒸馏的Parallel WaveNet(例如ClariNet)以及拟议的无蒸馏Parallel WaveGAN有效。
(2)由于可以在没有任何teacher-student框架的情况下简单地训练提出的Parallel WaveGAN,因此我们的方法显着减少了训练和推理时间。尤其是,训练过程变得更快4.82倍(使用两个NVIDIA Telsa V100 GPU从13.5天缩短到2.8天),推理过程变得1.96倍(从14.62实时提高到28.68实时2),从而利用单个NVIDIA生成24 kHz语音波形Telsa V100 GPU)与传统的ClariNet模型相比。
(3)我们将提出的Parallel WaveGAN与基于Transformer的TTS声学模型相结合。感知听觉测试验证了所提出的Parallel WaveGAN实现了4.16 MOS,与基于蒸馏的最佳ClariNet模型相比具有竞争力。

二、相关工作

在并行WaveNet框架中使用GAN的想法并不新鲜。在我们之前的工作中,IAF的student model被合并为一个生成器,并通过最小化对抗性损失以及Kullback-Leibler散度(KLD)和辅助损失来共同优化。随着GAN学习现实语音信号的分布,该方法显着提高了合成信号的感知质量。但是,基于密度蒸馏的复杂训练阶段限制了其利用率。
我们的目标是最大程度地减少训练常规teacher-student框架的两阶段流水线的工作。换句话说,我们提出了一种无需任何蒸馏过程即可训练并行WaveNet的新颖方法。Juvela等人[18]提出了类似的方法(例如GAN激发的线性预测; GELP),该方法通过使用对抗训练方法来产生声门激励。但是,由于GELP需要线性预测(LP)参数才能将声门激励转换为语音波形,因此当LP参数包含由TTS声学模型引起的不可避免的误差时,可能会发生质量下降。为了避免这个问题,我们的方法被设计为直接估计语音波形。由于很难捕获语音信号的动态特性,包括声带运动和声道电阻(分别由GELP中的声门激励和LP参数表示),因此我们建议在两者之间采用一种联合优化方法。对抗性损失和多分辨率STFT损失,以捕获真实语音信号的时频分布。结果,即使使用少量参数也可以容易地训练整个模型,同时有效地减少了推理时间并提高了合成语音的感知质量。

三 、方案

3.1 基于GAN的并行波形生成

GAN是由两个独立的神经网络组成的生成模型:生成器(G)和鉴别器(D)。在我们的方法中,使用基于辅助特征(例如mel频谱图)的WaveNet为基础的模型作为生成器,它将输入噪声并行转换为输出波形。生成器与原始WaveNet的不同之处在于:(1)我们使用非因果卷积代替因果卷积;
(2)输入是从高斯分布中提取的随机噪声;
(3)该模型在训练和推理步骤上都是非自回归的。
生成器学习实际波形的分布, 来尝试欺骗鉴别器以将生成器样本识别为真实波形。通过使对抗损失最小化来执行此过程,如下所示:
L a d v ( G , D ) = E z ∼ N ( 0 , 1 ) [ ( 1 − D ( G ( z ) ) ) 2 ] L_{adv}(G,D) = E_{z \sim N(0,1)}[(1-D(G(z)))^2] Ladv(G,D)=EzN(0,1)[(1D(G(z)))2]
其中z表示输入白噪声。注意G输入的附加特征,为了简介起见进行了省略。
另一方面,对鉴别器进行了训练,以使用以下优化准则正确地将生成的样本分类为假,同时将基本事实分类为真实:
L D ( G , D ) = E x ∼ P d a t a [ ( 1 − D ( x ) ) 2 ] + E z ∼ N ( 0 , 1 ) [ D ( G ( z ) ) 2 ] L_{D}(G,D) = E_{x \sim P_{data}}[(1-D(x))^2] + E_{z \sim N(0,1)}[D(G(z))^2] LD(G,D)=ExPdata[(1D(x))2]+EzN(0,1)[D(G(z))2]
其中x和 P d a t a P_{data} Pdata分别表示目标波形及其分布。

3.2 多分辨率STFT附加损失

为了提高对抗训练过程的稳定性和效率,我们提出了多分辨率STFT辅助损失。图1显示了我们的框架,该框架将多分辨率STFT损失与3.1节中所述的对抗训练方法相结合。
与先前的工作[11]相似,我们将单个STFT损耗定义如下:
L s ( G ) = E z ∼ p ( x ) , x ∼ P d a t a [ L s c ( x , x ~ ) + L m a g ( x , x ~ ) ] L_{s}(G) = E_{z \sim p(x), x \sim P_{data}}[L_{sc}(x, \tilde{x}) + L_{mag}(x, \tilde{x})] Ls(G)=Ezp(x),xPdata[Lsc(x,x~)+Lmag(x,x~)]
其中 x ~ \tilde{x} x~表示生成的样本(即 G ( z ) G(z) G(z)), L s c L_{sc} Lsc L m a g L_{mag} Lmag表示频谱收敛和对数 STFT幅度损失,分别定义如下:
L s c ( x , x ~ ) = ∥ ∣ S T F T ( x ) ∣ − ∣ S T F T ( x ~ ) ∣ ∥ F ∥ ∣ S T F T ( x ) ∣ ∥ F L_{sc}(x, \tilde{x}) = \frac{\parallel |STFT(x)|-|STFT( \tilde{x})| \parallel_{F}}{\parallel |STFT(x)| \parallel_{F}} Lsc(x,x~)=STFT(x)FSTFT(x)STFT(x~)F
L m a g ( x , x ~ ) = 1 N ∥ l o g ∣ S T F T ( x ) ∣ − l o g ∣ S T F T ( x ~ ) ∣ ∥ F L_{mag}(x, \tilde{x})=\frac{1}{N}\parallel log|STFT(x)|-log|STFT( \tilde{x})| \parallel_F Lmag(x,x~)=N1logSTFT(x)logSTFT(x~)F
其中 ∥ ∙ ∥ F \parallel \bullet \parallel_F F ∥ ∙ ∥ 1 \parallel \bullet \parallel_1 1分别表示FrobeniusL1范数; ∣ S T F T ( ⋅ ) ∣ | STFT(·)| STFT()和N分别表示STFT幅度和该幅度中的元素数量。
我们的多分辨率STFT损失是具有不同分析参数(即FFT大小,窗口大小和帧移位不同)的STFT损失之和。令M为STFT损耗数,多分辨率STFT附加损失表示如下:
L a u x ( G ) = 1 M ∑ m = 1 M L s ( m ) ( G ) L_{aux}(G)=\frac{1}{M}\sum_{m=1}^{M}L_s^{(m)}(G) Laux(G)=M1m=1MLs(m)(G)
在基于STFT的信号的时频表示中,时间和频率分辨率之间需要权衡。例如,增加窗口大小可提供更高的频率分辨率,同时降低时间分辨率[24]。通过将多个STFT损耗与不同的分析参数结合起来,可以极大地帮助生成器学习语音的时频特性。此外,它还可以防止生成器过度拟合固定的STFT表示,这可能导致波形域的性能欠佳。
我们对生成器的最终损失函数定义为多分辨率STFT损失和对抗性损失的线性组合,如下所示:
L G ( G , D ) = L a u x ( G ) + λ a d v L a d v ( G , D ) L_G(G, D) = L_{aux}(G) + \lambda_{adv}L_{adv}(G, D) LG(G,D)=Laux(G)+λadvLadv(G,D)
其中 λ a d v \lambda_{adv} λadv表示平衡两个损耗项的超参数。通过共同优化波形域对抗性损失和多分辨率STFT损失,发生器可以有效地学习真实语音波形的分布
PARALLEL WAVEGAN论文学习_第1张图片

对抗训练框架具有多分辨率STFT损失的说明

四、实验

4.1 模型细节

这块直接看代码学习的更快:
github链接:https://github.com/kan-bayashi/ParallelWaveGAN

你可能感兴趣的:(声码器)