开启辅助访问
 找回密码
 立即注册

HiFi-GAN——基于GAN的高速Neural Vocoder

zhangxi24 回答数0 浏览数845
本文未经允许禁止转载,谢谢合作。作者:Light Sea@资深
本文我将介绍近期一台比较优秀的有关Neural Vocoder的工作:HiFi-GAN,HiFi-GAN改善了之前的基于GAN的工作中语音质量较差的缺点,因此兼具了高效率和质量。
原文标题:<HiFi-GAN: Generative Adversarial Networks for Efficient and High Fidelity Speech Synthesis>
1. Introduction

最近和vocoder相关的工作会使用GAN来加快生成速度,但是这类模型的表现还比不上自回归或者flow-based模型。这篇文章中作者提出了HiFi-GAN,HiFi-GAN兼具了好的效率和表现,实验结果证明HiFi-GAN在GPU上可以以比实时速度快167.9倍的速度生成22.05 kHz的语音,在CPU上可以以比自回归模型快13.4倍的速度生成语音。
在基于深度学习的TTS中,从文字生成语音有两个阶段:(1)从文字生成mel-spec,典型的如Tacotron和FastSpeech,(2)从mel-spec生成语音,比如WaveNet、WaveRNN。
WaveNet的表现和人类语音相差无几,但是生成速度太慢,最近基于GAN的Vocoder,比如MelGAN尝试进一步提升语音的生成速度,然而这类模型提升效率的同时却牺牲了质量,因此研究者希望有一台效率和质量兼备的Vocoder,这就是HiFi-GAN。
HiFi-GAN针对语音中包含不同周期的信号的特点,使用多个小的sub-discriminator来分别处理这些周期的模式,从而获得了很好的表现,又因为模型可以并行处理这些模式,因此可以有较高的计算效率。
2. Model

HiFi-GAN包括一台生成器和两个判别器,下面分别介绍。
2.1 Generator

生成器的架构如下图所示:

就像最左边的子图展示的,生成器由|k_{u}|个类似的模块组成,即反卷积+MRF (multi-receptive field fusion),这里反卷积主要用于上采样。
MRF的具体架构可以参考上图剩下的两个子图,它包含多个CNN,每个CNN都有不同的kernel size和dilation rate,这样设计的目的在于提取不同长度的数据中包含的模式。
在中间的子图中可以看到,不同ResBlock的输出会在最后加和,因此这里CNN的计算是可以并行完成的。
最后一台子图展示了ResBlock的内部结构。
2.2 判别器

语音中的判别器和CV或者NLP中的判别器最大的不同在于数据的长度,语音的长度通常是上万的,因此如何判别这么长的数据是真是假就成了一台问题。虽然之前的工作已经在一定程度上解决了这个问题,比如增加discriminator的receptive field的方法,但作者认为信号中包含不同周期的正弦信号,这个也需要进行识别。
基于上述的两点,作者使用了两个判别器,一台是multi-period discriminator (MPD),用来识别语音中不同周期的信号,另一台是MelGAN中的multi-scale discriminator,用来应对超长数据。
MPD和MSD的架构如下图所示:

MPD中包含了很多子判别器,每个子判别器有不同的period p,上图中的(b)展示了p=3的子判别器,子判别器会先根据p的值把语音转换成2-D数据,然后使用kernel size为k \times 1的CNN来进行处理。通过使用不同的p,就可以获得不同周期信号的模式。
MPD的缺点在于它只能从非连续的信号中学习模式,因此作者使用了MSD作为补充。MSD从连续的信号中学习,其架构如上图中的(a)所示。MSD中也包含子判别器,每个判别器使用不同长度的average pooling来处理语音,然后使用CNN进行判别。
2.3 Loss

模型的loss分成几个部分,首先是GAN的部分,这个部分和一般的GAN没什么区别(不了解GAN的读者参考这篇文章):

除了GAN的loss之外,为了稳定训练并加速收敛,作者也使用了其它两个loss,首先是mel-spec loss:

也就是把生成的audio再次转换成mel-spec然后和GT mel-spec进行计算的L1 loss。
然后是feature matching loss:

这个loss计算了fake语音和与之对应的true语音在判别器中各层feature的L1 loss。
最终模型的loss为:

如果进一步分解为子判别器的话可以表示为:

3. Experiments

作者使用VCTK进行实验,且同时测试了模型在CPU和GPU上的表现。
首先是主观评价的结果:

这里表中有V1、V2、V3三个模型,简单来说V1是最大的模型,V2保持了和V1相同的receptive field但是减少了隐层的大小,V3则是保持相同receptive field的同时减少了模型的层数。
可以看到V1的表现最好,而V3的计算速度最快,且V3的表现基本和WaveNet持平。具体的参数设定可以参考原论文。
然后是ablation experiments的结果:

可以看到本文提出的三个模块:MPD、MSD、MRF以及mel-spec loss都对模型表现有贡献,MelGAN在加上MPD之后也有了表现的提升。
作者也测试了HiFi-GAN生成unseen speaker语音时的表现:

可以看到表现是很不错的。
最后,作者测试了HiFi-GAN在end-to-end TTS中的表现:

可以看到如果不fine-tuning,则HiFi-GAN和WaveGlow的表现都不如何好,但进行fine-tuning之后HiFi-GAN的表现就比较令人满意了。
这里由于篇幅的原因笔者省略了一些附录的细节,感兴趣的读者可以进一步参考原论文。
4. Conclusions

本文介绍了HiFi-GAN,一台基于GAN的neural vocoder。HiFi-GAN兼具了高计算效率和语音质量,是最近比较好的工作。
创作不易,如果大家觉得有收获的话烦请点赞收藏支持一下,你的支持就是我创作的最大动力。
使用道具 举报
| 来自北京 用Deepseek满血版问问看

相关问题更多>

快速回复
您需要登录后才可以回帖 登录 | 立即注册

当贝投影