FastDiff & ProDiff:浙大开源用于语音时序合成的扩散模型

2022-12-04 16:55:57 浏览数 (2)

扩散模型是最近学术界最热门的研究领域之一,在生成高水平的细节或者生成多样性上都展示了极好的效果。最近扩散模型逐渐被应用于生成语音时序的任务之中。

然而在语音生成领域,与图像生成不同,传统扩散模型主要基于梯度匹配的训练目标,通常需要数百的去噪迭代,这给样本的快速合成带来阻碍。而减少去噪迭代,模型在复杂数据分布中的收敛会出现明显退化,导致低质量生成结果。

在今年的人工智能领域顶会 IJCAI 2022 和多媒体领域顶会 ACM-MM 2022 上,来自浙江大学的研究者发表了两篇论文,提出了全新的语音合成条件扩散模型 FastDiff 和 ProDiff,该模型在能大幅减少降噪扩散概率模型(DDPM)每步降噪所需时间的同时,仍能生成出与人声难以分辨的高质量语音。

目前,该两项工作已正式开源。本文将为大家简要描述。

论文链接:https://arxiv.org/abs/2204.09934

论文源码:https://github.com/Rongjiehuang/FastDiff

论文链接:https://arxiv.org/pdf/2207.06389.pdf

代码链接:https://github.com/Rongjiehuang/ProDiff

研究背景

降噪扩散概率模型(Denoising Diffusion Probabilistic Model,DDPM)是近两年学术界比较火热的一种非自回归生成模型,其能以较为简单的训练方式在图像生成任务中达到甚至超越 GAN 的效果。

目前行业内一些基于 DDPM 的语音合成质量已能赶上自回归模型,但其生成速度却远低于同为非自回归模型的 Flow 和 GAN 模型。这是由于 DDPM 需要通过迭代几百上千个采样步数来得到有效的降噪。如何快速得到高质量的合成样本仍然是难以解决的瓶颈。

整体方案思路

在理论方面,定义语音样本为

。从

分布中采样:有预先定义的噪声编制(Noise Schedule):

扩散过程如下:

反向过程则是:

作者通过最大化证据下界(Evidence Lower Bound,ELBO),可以推导出简化的训练损失。这里参考 BDDM [1],有效的训练方法是用随机梯度下降优化:

其中,

是降噪神经网络(Score Network)

其中,仅有噪声编制与去噪步数 T 是需要预先定义的,其他变量都可以依次计算出。

FastDiff

FastDiff 是一种高效的带噪波形条件模型,其主要创新点来自于降噪模型结构方面

如上图 a 所示,FastDiff 模型主要由三层降采样块(DBlock)以及三层条件上采样块(Diffusion UBlock) 构成。模型输入为带噪音频时序(Noisy Audio),噪声步数索引(t),梅尔频谱条件(c)。新设计的条件上采样块(Diffusion UBlock)如上图 b 所示,先使用位置编码(PE)对 t 编码,然后经线性层后跟 c 相加,然后作为卷积核预测器的输入。预测的卷积核会在时间自适应卷积(LVC)中使用。

为了有效的捕获条件的局部信息,FastDiff 参考了LVCNet [2] 设计 LVC,如上图 c 所示,位置变量卷积能对 c 和 t 进行高效建模,使之能对应于不同的噪声水平,高质量地生成所预测的卷积核,在保持模型尺寸的同时获得了更优的音质和速度。该模块输入包括下采样的带噪音频,以及预测的卷积核。在 LVC中,GAU 门激活单元是为了提高本语音合成深度模型对于多说话人数据集的通用性,它在 WaveNet 中被证明能够有效地增加深度神器网络网络中的非线性。

总结 FastDiff 每步降噪的建模过程:卷积核预测器以噪声等级和梅尔频谱为条件,输出预测的卷积核。带噪音频通过三次下采样,经过 LReLU 激活与一维卷积计算后,与先前预测输出的卷积核一起,参与 LVC 的区域卷积。得到的音频通过 GAU 以增加非线性,与残差相加后送到下一层 Diffusion UBlock 的子层,最后模型输出预测噪声向量。

当降噪神经网络被充分训练之后,FastDiff 利用 BDDM 算法训练调度网络来得到步数更少的噪声编制。当得到搜索后的噪声编制,FastDiff 能用以下的采样算法来进行高速的音频合成。

在 LJSpeech 数据的实验中,如下表所示,FastDiff 能以4步降噪就能拿到相比前者最先进的声码器更优的主观及客观听感指标,同时 FastDiff 是首个在生成速度上能跟非 DDPM 模型可比的。在生成多样性上面,实验中较低的 ND B和 JSD 也验证了 FastDiff 和其他 DDPM 模型能比较避免模式坍塌问题。

ProDiff

ProDiff 是一种快速蒸馏式文本语音合成的模型,其主要创新点来自于训练策略方面

研究者们首先对文本到语音的扩散参数化进行了初步研究,发现传统扩散模型通过估计数据密度的梯度来生成样本,需要数百或数千次迭代才能保证较高的感知质量。当减少采样步骤时,由于可感知的背景噪声,质量明显下降。相反,通过使用神经网络直接预测干净数据来参数化去噪模型的方法已证明其在加速复杂分布的采样方面的优势。

基于此研究者设计了更好的文本到语音时序合成扩散模型,ProDiff,一种高质量的渐进式快速扩散模型。为了避免在减少反向迭代时感知质量显著下降,ProDiff 直接预测干净的数据并且不需要估计分数匹配的梯度。

受到[3]启发,研究者使用知识蒸馏预测扩散过程中方差减小的粗粒度梅尔谱图。为了通过减少扩散迭代来应对模型收敛挑战,知识蒸馏减少了目标端的数据方差。因此,它允许模型进行精确预测,并进一步按数量级加速采样。

模型的损失函数主要由样本重建损失、结构相似性指数(SSIM)损失和声学特征重建损失。在训练 ProDiff 时,研究者不使用原始的干净数据,而是通过运行2个 DDIM 采样步骤来获得方差减小的目标值。SSIM 损失是衡量图像质量的最先进的感知指标之一,它可以捕获结构信息和纹理。为了提高生成语音的自然度和表现力,研究者提供了更多的声学方差信息,包括音高、持续时间和能量。

在 LJSpeech 的实验表明,ProDiff 仅需2次迭代即可合成高保真音频,同时它通过保持了生成样本的质量和多样性,与 SOTA 模型相比具有竞争力。ProDiff 在单个 NVIDIA 2080Ti GPU上实现 24 倍于实时的采样速度,从而实现扩散模型在低计算量的情况下适用于交互式、真实世界的语音合成应用。

为了评估反向采样中扩散模型的效率,研究者报告了每次迭代后获得的 MCD 结果。如下图所示,与高度优化的随机基线采样器 DiffSpeech[4] 进行了比较:1)DiffSpeach 从高斯噪声中缓慢地细化粗粒度样本,高样本质量的保证是以数百个去噪步骤为代价的;2) 相比之下,ProDiff Teacher 和 ProDiff 预测直接预测无噪数据,使用扩散生成模型后验分布加入扰动,更快、更有效地产生接近最优的结果。

参考文献

[1] Max W. Y. Lam, Jun Wang, Dan Su, and Dong Yu. "BDDM: Bilateral Denoising Diffusion Models for Fast and High-Quality Speech Synthesis." In Proc. ICLR 2022.

[2] Zeng Zhen, et al. "LVCNet: Efficient Condition-Dependent Modeling Network for Waveform Generation." In Proc. ICASSP 2021.

[3] Tim Salimans and Jonathan Ho. Progressive distillation for fast sampling of diffusion models. In Proc. ICLR 2022.

[4] Jinglin Liu, Chengxi Li, Yi Ren, Feiyang Chen, Zhou Zhao. Diffsinger: Singing voice synthesis via shallow diffusion mechanism. In Proc. AAAI 2022.

[5]https://github.com/NATSpeech/NATSpeech. A Non-Autoregressive Text-to-Speech (NAR-TTS) framework, including official PyTorch implementation of PortaSpeech (NeurIPS 2021) and DiffSpeech (AAAI 2022).

0 人点赞