©PaperWeekly 原创 · 作者 | 黄融杰

单位 | 浙江大学

研究方向 | Speech/NLP

扩散模型在深度生成模型中自成一派,最近成为最热门的话题之一。扩散模型展示了强大的生成能力,无论是生成高水平的细节还是其生成的多样性,都让人印象深刻。

扩散生成模型将生成式建模领域的标准提高到了一个全新的水平。迄今为止,扩散模型已被应用于各种生成式语音建模任务,如语音合成(speech synthesis)、语音转换(speech conversion)、语音编辑(speech editing)、语音转换(speech-to-speech translation)等等。

然而,传统扩散模型主要基于梯度匹配的训练目标,因此高生成质量的保证通常以数百的去噪迭代为代价,给样本的快速合成带来阻碍。当试图减少去噪步时,去噪模型在复杂的数据分布中的收敛出现明显退化,导致样本中的带噪与过平滑的低质量生成结果。

浙江大学正在算法和网络结构层面探索如何让深度学习里最先进(State-of-the-art)的非自回归生成模型:降噪扩散概率模型(Denoising Diffusion Probabilistic Model, DDPM),在解决其原来的速度瓶颈的同时,仍能生成出与人声难以分辨的高质量语音, 并挖掘其应用在语音合成上的潜力。

论文链接:

https://arxiv.org/abs/2204.09934

代码链接:

https://github.com/Rongjiehuang/FastDiff

论文链接:

https://arxiv.org/pdf/2207.06389.pdf

代码链接:

https://github.com/Rongjiehuang/ProDiff

在今年的 IJCAI 2022 和 ACM-MM 2022 上,浙江大学的两篇论文提出了全新的语音合成条件扩散模型 FastDiff 和 ProDiff,能大幅减少 DDPM 每步降噪所需时间在解决其原来的速度瓶颈的同时,仍能生成出与人声难以分辨的高质量语音, 并挖掘其应用在语音合成上的潜力。FastDiff,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),梅尔频谱条件(Mel-spectrogram,表示为 c)。DBlock等同于 WaveGrad 中的 DBlock 结构。

而新设计的条件上采样块(Diffusion UBlock)如图(b)所示,先使用位置编码(Positional Encoding,PE)对 t 编码,然后经线性层后跟 c 相加,然后作为卷积核预测器(Kernel Predictor)的输入。预测的卷积核会在 Time-Aware Location-Variable Convolutoin(LVC)中使用。以下是引入 Time-Aware LVC 的作用和原理解释。

为了有效的捕获条件的局部信息,FastDiff 参考了 LVCNet [2] 设计 Time-Aware LVC,如图(c)所示,位置变量卷积能对梅尔频谱和噪声步数编码条件进行高效建模,使之能对应于不同的噪声水平,均能够高质量地生成所预测的卷积核。能在保持模型尺寸的同时获得了更优的音质和速度。该模块输入包括下采样的带噪音频,以及预测的卷积核。

在 Time-Aware LVC 中,Gated Activation Unit(GAU)门激活单元是为了提高本语音合成深度模型对于多说话人数据集的通用性,它在 WaveNet 中被证明能够有效地增加深度神器网络网络中的非线性。

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

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

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

ProDiff: 快速蒸馏式文本语音合成模型

ProDiff 的主要创新点来自于训练策略方面:

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

基于这些初步研究,我们设计了更好的文本到语音合成扩散模型。在本文中,我们提出了 ProDiff,关于高质量文本演讲的渐进式快速扩散模型。为了避免在减少反向迭代时感知质量显著下降,ProDiff 直接预测干净的数据并且不需要估计分数匹配的梯度;

受到 [3] 启发,我们使用知识蒸馏预测扩散过程中方差减小的粗粒度梅尔谱图。为了通过减少扩散迭代来应对模型收敛挑战,知识蒸馏了减少目标端的数据方差。具体来说,去噪模型使用 N 步 DDIM 教师生成的样本作为训练目标,并将行为提取为一个新的 N/2 步模型。因此,它允许模型进行精确预测,并进一步按数量级加速采样。

模型的损失函数主要由样本重建损失、结构相似性指数(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).

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

浙大开源快速扩散语音合成模型FastDiff和ProDiff相关推荐

  1. MnTTS: 开源蒙古语语音合成数据集及其基线模型

    本次分享内蒙古大学蒙古文信息处理重点实验室.蒙古文智能信息处理技术国家地方联合工程研究中心及语音理解与生成实验室 (S2LAB) (https://ttslr.github.io/index_S2Gr ...

  2. 新网杯top1方案:手把手构建中文语音合成模型!

    基于Parakeet的中文语音合成方案 方案地址: https://aistudio.baidu.com/aistudio/projectdetail/2792887 1 第一步 安装Parakeet ...

  3. ICLR 2023 | 扩散生成模型新方法:极度简化,一步生成

    ©作者 | 刘星超 单位 | 德州大学奥斯汀分校 研究方向 | 生成式模型 Diffusion Generative Models(扩散式生成模型)已经在各种生成式建模任务中大放异彩,但是,其复杂的数 ...

  4. 从Storm到Flink:大数据处理的开源系统及编程模型(文末福利)

    本文节选自CCF大数据教材系列丛书之<大数据处理>,本书由华中科技大学金海教授主编,包括大数据处理基础技术.大数据处理编程与典型应用处理.大数据处理系统与优化三个方面.本教材以大数据处理编 ...

  5. 从Storm到Flink:大数据处理的开源系统及编程模型

    开源系统及编程模型基于流计算的基本模型,当前已有各式各样的分布式流处理系统被开发出来.本节将对当前开源分布式流处理系统中三个最典型的代表性的系统:Apache Storm,Spark Streamin ...

  6. ubuntu20.04使用浙大开源包lidar_IMU_calib

    Ubuntu20.04使用lidar_IMU_calib 浙大开源的lidar_IMU_calib提供了在无目标的情况下进行Lidar和IMU的标定.下面记录了我在使用过程中遇到的一些问题,希望对大家 ...

  7. 北大95后「AI萝莉」回来了,一次中8篇顶会论文的她,现在达摩院开源7大NLP模型...

    梦晨 博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 曾有一位北大硕士生,在校期间一次性在国际顶会ACL中标8篇论文,其中2篇一作,还登上了知乎热搜. 在那次热搜之后,这位"论文 ...

  8. AI端计算产业应用:如何快速训练高精度模型并在设备端加速计算 | 公开课报名...

    位来 发自 凹非寺 量子位 报道 | 公众号 QbitAI 近年来,端侧AI在技术和应用方面都取得了快速发展,端计算模型已应用到各行业的AI实践中.如部署在野外气象观测点用于环境监测,响应垃圾分类政策 ...

  9. 104. 软件工程的开发过程几种模型(瀑布模型、快速原型开发模型、增量模型、迭代模型、螺旋模型)

    文章目录 1.前言 2.瀑布模型--按阶段严格完成 (1)瀑布模型把整个项目过程分成了六个主要阶段: (2)举个例子来理解瀑布模型 (3)优缺点 (4)解决的重要问题 3.快速原型模型--低成本快速的 ...

  10. 两个相邻盒子的边框怎么只显示一个_一篇文章带你快速理解盒子模型「经典案例」...

    今天带大家快速理解盒子模型,直接上代码: css盒子 我的css盒子测试模型 上面代码没有任何难度,只是写了一个div标签,大家已经知道,div标签是块级元素,所以会占满一行: 但是我们也注意到了图片 ...

最新文章

  1. 自媒体敏感词大全_让新媒体小编头疼的敏感词与错别字
  2. linux驱动设备树
  3. 【Android】Uri、UriMatcher、ContentUris详解
  4. 90年代人们使用计算机,上世纪90年代电脑走进普通家庭 你还记得长什么样吗?
  5. wincc与第三方软件opc通讯_WinCC与第三方系统数据交互—IndustrialDataBridge
  6. Linux——find命令常见用法
  7. java 画树_java – 如何绘制代表连接节点图的树?
  8. 前端性能优化之 gzip+cache-control
  9. python通过内置模块监控磁盘、内存、CPU、负载
  10. 图像分类模型的学习笔记
  11. DSOframer 微软官方API的查阅方法
  12. 中文python笔记
  13. Rational ClearCase批量merge合并
  14. python入门心得_python学习心得:如何入门
  15. 计算机表格斜杠怎么打,excel表格打斜杠的方法步骤图详解
  16. 2021年全国职业院校技能大赛(中职组)网络安全竞赛正式赛题A模块防火墙部分解析
  17. 日本語を勉強するの日記(四)
  18. 买房应该全款还是贷款
  19. 一图读懂哪里买iPhone 12最划算,我们帮你整理好了!
  20. oracle导入和导出dmp,Oracle 导入、导出DMP(备份)文件

热门文章

  1. 2019 计蒜之道 初赛 第一场 A-商汤的AI伴游小精灵
  2. 使用memcpy函数的耗时测试(拷贝不同大小数据量耗时不同)
  3. LaTeX \subfloat 引用子图片使用小括号
  4. Text strings must be rendered within a Text component的一个情况
  5. Python GUI教程:信号、槽、事件
  6. proc 文件的创建和读写
  7. Intellij Idea 所有快捷键列表,工欲善其事必先利其器。
  8. 写一个获取非行间样式的函数
  9. Focal Loss简述
  10. BZOJ 1189([HNOI2007]紧急疏散evacuate-网络流二分+拆点)