当前位置:   article > 正文

p0003-- WAVGLOW-A FLOW-BASED GENERATIVE NETWORK FOR SPEECH SYNTHESIS_invertible convolution

invertible convolution

abstract:

     将Glow和WavNet结合生成WAVGLOW,不需要auto-regression,只需要一个网络,一个损失函数--最大化 训练集的似然,就可以将mel-spectrogram生成wav。可以生成500KHZ以上的采样率且性能超过wavnet,比实时快25倍。

introduction:

      在人机交互任务中,好质量,实时的语音合成非常重要。语音合成需要用强的长时依赖生成高维样本。而且,高的采样率会生成高质量的语音。

      目前的TTS(test-to-speech)主要有2步:第一步---将文本转成时间对齐的特征,比如mel-spectrogram, F0 frequency, 或者其他的语言特征。第二个model(有时看成一个vocoder)----将time-aligned feature 转成 audio feature。

     本文重点在第二个模型。很多方法是auto-agressive,利用future  audio samples 建模长时依赖性,这种方法容易训练和实现,但是本质上是串行的,无法用到GPU、TPU的并行计算,并且如果不牺牲 性能无法合成16KHZ以上的语音。

    目前我们知道3种不需要auto-agression的语音合成网络:parallel wavnet ,clarinet, MCNN for spectrogrm inversion。他们可以在GPU上生成500KHZ以上的语音,但是很难训练,他们需要compound loss(复合损失函数)以改善语音质量或者mode collapse??parallel wavnet和clarinet都需要两个网络,teacher 和student, 其中student网络使用inverse auto-regression flow(IAF), 尽管IAF可以在inference的时候并行,但是flow本身的自相关特性使得在计算IAF时效率很低。为了克服这个问题,引入teacher网络,但是难以训练收敛。

    本文说明auto-regression flow对于语音合成并不是必要的。我们将wavenet和glow的思想集合,提出WaveGlow,仅使用一个网络,仅利用like-hood loss function,尽管模型很简单,我们可以在NIVDIA  V100上实现500KHZ以上的音频合成,比实时快25倍。在同样的数据集上,MOS值和wavenet一样优秀。

 

WAVEGLOW

        WaveGlow是一个生成模型,通过分布采样生成语音。为了确保网络是生成网络,我们从简单的分布取样。在这里,我们设定一个和我们想要的输出具有相同维度的零均值球形高斯,将这些samples输入一系列的层,将简单的分布转化成我们想要的分布。将audio sample在mel谱基础上建模。

       最小化数据的negative log-likehood以训练网络.如果随意选取网络,就很难解决。基于flow的网络通过保证网络的mapping是可逆的解决了这个问题。限制每一层是bijective(双向的、可逆的),可以直接通过变量的变化直接计算似然。

 

第一项是球形高斯的对数似然,用了L2范数的惩罚样本;

第二项是变量变化,J是jaccobi

雅可比行列式在前向传播过程中,如果空间列增加,奖励该层。这一项还将x乘以0以优化L2范数。

变换的序列也称为归一化流程。

 

2.1 Affine  Coupling  Layer

我们的模型和【1】GlowFlow很像,前向过程将8个audio 看成一组vector,称为squeze操作。将这些vector分成step  of vector处理,每步有一个invertible 1*1的卷积,和一个affine coupling layer(对偶映射层),

 

 

 

 

      WN可以是 任何转换,得到双射耦合的线性变换系数s和平移变换系数t,

      coupling layer保证了整个网络的可逆性(包括不需要可逆的WN),

      通过(6)式,可以由Xa中计算s和t,从而将Xb'反变换为Xb,
      WN用到空洞卷积(tanh),残差连接和skip 连接,和wavenet相像但是不一样,我们的卷积有3个 taps,而且是no casual conv。       affine layer包括了mel-spectrogram,因为我们想要在输出考虑输入,上采样的梅尔谱被加在每一层的tanh非线性门控之前。
加上对偶映射层,只有s项改变了映射列,在loss上加了变量的改变,这一项还用于不可逆affine mapping的惩罚。

 

2.2. 1x1InvertibleConvolution

        在对偶映射层中,同一半的通道不会相互修改,限制了通道上没有信息混合。Glow在对偶映射层之前加1*1的可逆卷积,实现通道的信息混合。这些卷积的W权重被初始化为正交,因此可逆(invertible)??why。因为变量的变化,变换的雅可比对数行列式加入损失函数,在训练时保证网络可逆。

         因此,最终的似然函数可以表示成

 

       第一项是球形高斯的对数似然,经过可逆卷积和双射耦合之后对loss影响的变量的变化是后两项。sigma是球形高斯的方差

2.3 early outputs

     并不是将所有的channel 通过所有的layers,   每4个coupling  layers输出2个channel到 loss function, 最后将所有的之前输出的channel caoncatnate成最终的z。输出early dimension可以帮助网络增加多个时间维度信息,并且可以使梯度传向early layer。有点像skip  connection.

 

 

2.4. Inference

     网络训练好之后,inference就是简单的从高斯中取样z值,然后送到网络中。我们发现从高斯采样z s,加一个小的偏差得到的语音质量更好。在inference过程,标准差取值0.6。

     反转1*1的卷积仅仅是反转矩阵的问题,inverse被loss保证,每一个coupling  layer包含梅尔谱 ,affine转换被倒置,这些inverse也被loss保证。??

   

 

3. EXPERIMENTS

    用LJ speech data,80  bins librosa梅尔谱 ,The parameters of the mel- spectrograms are FFT size 1024, hop size 256, and window size 1024.

3.1. Griffin-Lim

     为了评估MOS,我们比较griffin-lim算法。Griff-Lim输入的是entire spectrogram而不是减少后的梅尔谱,重复的做时频转换以迭代的估计相位。我们的实验用60个iteration 。

结果分析:没有超过原始语音的,几个网络性能相差不是特别大,WaveGlow的好处在于好训练,inference速度快

3.5. Speed  of  inference  comparison

    没有优化的waveglow的pytorch代码生成520KHZ的语音速度稍快于parallel的wavente,预测在nvidia GV100上waveglow的优化上限是2000KHZ。

4. DISCUSSION

        speech synthesis主要有2种方案:一种是以WaveNet为代表的,需要future audio以建模长时依赖,可以生成高质量的语音,wavenet网络就是这种形式,但是inference过程需要大的算力。因此,各种基于auto-regression的模型致力于改善inference。

      另一种是no auto-regression的网络,parallel WaveNet和Clarinet,在introduction中有介绍。还有 MCNN for speech onversion使用multi-headed CNN生成语音,他可以产生5000KHZ以上的音频,但是很难训练,因为它用到four hand-engineered losses,??利用的是full  spectrogram而不是简化的梅尔谱或者其他特征。像MCNN这样非生成的方法如何不添加额外的采样过程以增加信息的情况下,从更不明确的表示(诸如梅尔谱、语言特征)生成语音尚不明确。

    Flow-based通过限制网络可逆,对于各种生成建模给出一个很好的似然。并且只用到一个网络,相比 clarinet的训练难度大大减小。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/296096
推荐阅读
相关标签
  

闽ICP备14008679号