论文笔记:DiffWave: A Versatile Diffusion Model for Audio Synthesis

论文笔记:DiffWave: A Versatile Diffusion Model for Audio Synthesis

1. Introduction

以往的波形模型大多着眼于带有信息的局部调节器的音频合成任务,只有很少的一部分关注无条件生成;自回归模型(例如 WaveNet)倾向于在无条件情况下生成人造的类似单词的声音或劣质样本。

扩散模型可以用一个没有可学习参数的扩散(加噪)过程从训练数据中获得"白化"的潜变量。**因此,在训练中不需要引入额外的神经网络。**这避免了由两个网络联合训练而产生的具有挑战性的"后向崩溃"或"模式崩溃"问题。
在这里插入图片描述
DiffWave模型的几个优点:

  • 它是非自回归的,可以并行合成高维波形。
  • 它很灵活。与流模型相比,它不施加任何架构约束 ,这使得神经声码器占用空间小,但仍能生成高保真语音。
  • 使用单个基于 ELBO 的训练目标来进行高保真合成,没有任何辅助损失。
  • 它是一种多功能模型,可为条件和无条件波形生成任务均生成高质量音频信号。

训练过程算法:
在这里插入图片描述

2. 快速采样

  • 普通采样算法:在这里插入图片描述在这里插入图片描述

采样时最有效的去噪步骤发生在t = 0附近。 由此可以设计一个快速采样算法,使用比训练时用的T(如200)少得多的去噪步骤 T i n f e r T_{infer} Tinfer(如6)进行采样。

快速采样的核心思想是通过精心设计方差调度,将T步的反向过程"折叠"为 T i n f e r T_{infer} Tinfer步过程。
在这里插入图片描述
在这里插入图片描述

  1. γ \gamma γ η \eta η

    这里 γ \gamma γ对应公式(5)中的 α \alpha α η \eta η对应 β \beta β,计算方式与公式(4)相同:
    在这里插入图片描述
    公式(4)(5):在这里插入图片描述
    { η t } t = 1 T i n f e r \{\eta_t\}^{T_{infer}}_{t = 1} {ηt}t=1Tinfer为用户自定义的方差调度,可以独立于训练方差调度 { β t } t = 1 T \{\beta_t\}^T_{t = 1} {βt}t=1T,因此该快速采样算法不需要修改训练过程,只需重用训练好的T较大的模型检查点即可。

  2. t s a l i g n t^{align}_s tsalign

    在采样过程的步骤s中, ϵ θ ( ⋅ , t ) \epsilon_\theta(\cdot,t) ϵθ(,t)中的 t t t是通过对齐来自 { η t } t = 1 T i n f e r \{\eta_t\}^{T_{infer}}_{t = 1} {ηt}t=1Tinfer { β t } t = 1 T \{\beta_t\}^T_{t = 1} {βt}t=1T的噪声水平 α ˉ t \sqrt{\bar{\alpha}_t} αˉt γ ˉ s \sqrt{\bar{\gamma}_s} γˉs 来实现的。理想情况下我们希望 α ˉ t = γ ˉ s \sqrt{\bar{\alpha}_t}=\sqrt{\bar{\gamma}_s} αˉt =γˉs ,但这并不总是可能的。因此在实际应用中要通过以下公式得到对齐的扩散步长t,记为 t s a l i g n t^{align}_s tsalign
    在这里插入图片描述
    如果 γ ˉ s \sqrt{\bar{\gamma}_s} γˉs 的大小介于两个连续的训练噪声水平 α ˉ t + 1 \sqrt{\bar{\alpha}_{t+1}} αˉt+1 α ˉ t \sqrt{\bar{\alpha}_t} αˉt 之间,则要对它们做插值得到 t s a l i g n t^{align}_s tsalign

3. DiffWave模型结构

DiffWave采用了WaveNet驱动的前馈双向空洞卷积架构,该网络是非自回归的,因此从隐元 x T x_T xT生成长度为L的音频 x 0 x_0 x0需要进行 T T T轮正向传播,其中 T T T (例如50)远小于波形长度 L L L

DiffWave模型包括堆叠的 N N N个残差层,残差通道数为 C C C,这些残差层被分为 m m m个blocks,每个block包含 n = N m n=\frac{N}{m} n=mN层。每个残差层使用一个内核大小为3的双向空洞卷积,在每个block中的每一层上进行2倍膨胀,即 [ 1 , 2 , 4 , ⋅ ⋅ ⋅ , 2 n − 1 ] [ 1 , 2 , 4 , · · · , 2^{n-1}] [1,2,4,⋅⋅⋅,2n1]。最后对所有残差层的输出进行跳跃连接。
DiffWave模型架构图
在这里插入图片描述

3.1 扩散步长嵌入

将扩散步长 t t t作为输入的一部分是很重要的,因为模型需要对不同的 t t t输出不同的 ϵ θ ( ⋅ , t ) \epsilon_\theta(\cdot,t) ϵθ(,t)

这里对每个扩散步长 t t t使用一个128维的编码向量:
在这里插入图片描述
然后对时间嵌入使用3个全连接层,其中前两个全连接层在所有的残差层之间共享参数,最后一个为残差层特定的FC,它将第二个FC的输出映射为C维嵌入向量。最后将这个嵌入向量在长度L上进行广播,并将其添加到每个残差层的输入中。
在这里插入图片描述

3.2 条件生成

在这里插入图片描述

  1. 局部调节器

    这里将DiffWave作为基于mel语谱图的神经声码器进行测试。

    首先通过转置的二维卷积将mel谱图上采样到与波形相同的长度。在一个层特定的1 × 1Conv将其mel - band映射到2C通道后,在每个残差层中添加该调节器作为空洞卷积的偏置项。

  2. 全局调节器

    此时,条件信息由全局的离散标签给定。

    对其使用维度 d l a b e l = 128 d_{label} = 128 dlabel=128的共享嵌入,然后在每个残差层中用层特定的1 × 1Conv将 d l a b e l d_{label} dlabel映射到2C通道,并在每个残差层的空洞卷积后添加此嵌入作为偏置项。

3.3 无条件生成

在无条件生成任务中,模型需要在没有条件信息的情况下生成一致的语句。

网络的输出单元具有大于语句长度 L L L的感受野大小 r r r是很重要的。实际上我们需要 r ≥ 2 L r\geq2L r2L,由此最左边和最右边的输出单元具有覆盖整个 L L L维输入的感受野。
在这里插入图片描述
对于堆叠的空洞卷积层,输出的感受野大小为: r = ( k − 1 ) ∑ i d i + 1 r=(k-1)\sum_id_i+1 r=(k1)idi+1,其中 k k k是内核大小, d i d_i di是第 i i i层残差层的膨胀因子。作者发现使用更深的层和更大的膨胀周期会导致生成样本的质量下降,这对于WaveNet来说尤其如此。事实上,即使是中等大的感受野大小(如6139)在WaveNet中也没有得到有效的使用,它倾向于关注更短的上下文(如500)。

DiffWave在扩大输出 x 0 x_0 x0的感受野方面具有优势:通过在反向过程中从 x T x_T xT迭代到 x 0 x_0 x0,感受野大小可以增加到 T × r T × r T×r,这使得DiffWave适用于无条件生成。

4. 实验

4.1 神经声码器任务

DiffWave在语音质量方面与强大的 WaveNet 声码器相匹配(MOS:4.44 与 4.43),同时合成速度更快几个数量级,因为它只需要几个连续步骤(如6)即可生成很长的波形。

小型 DiffWave 具有 2.64M 参数,在没有工程内核的 V100 GPU 上合成 22.05 kHz 高保真语音(MOS:4.37)的速度比实时速度快 5 倍以上。尽管它仍然比最先进的基于流的模型慢,但它的占用空间要小得多。作者期望未来通过优化其推理机制来进一步提速。
在这里插入图片描述

4.2 无条件和类条件波形生成任务

在通过多项自动和人工评估测量的音频质量和样本多样性方面,DiffWave 在具有挑战性的无条件和类条件波形生成任务中显着优于 WaveGAN和 WaveNet。
在这里插入图片描述

5. 展望

  1. 由于DiffWave潜在具有非常大的感受野,推动模型生成更长的语句将是有意义的。

  2. 优化推理速度将有利于该模型在TTS(text-to-speech)中的应用

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Pyramid Vision Transformer (PVT)是一种用于密集预测的通用backbone,它是一种基于Transformer的设计。PVT的整体架构包括了Transformer编码器和其他细节。PVT的设计使得它可以应用于图像分类、目标检测和实例分割等任务。 PVT的整体架构包括了Transformer编码器和其他细节。Transformer编码器是PVT的核心组件,它通过自注意力机制和全连接层来建模输入图像的关系。PVT还采用了金字塔结构,通过在不同尺度上应用Transformer来捕捉图像中的多尺度信息。这种金字塔结构可以提高PVT在密集预测任务中的性能。 PVT还提供了相应的代码实现,包括了图像分类、目标检测和实例分割的代码。这些代码可以帮助研究人员和开发者更好地理解和应用PVT模型。 论文地址:PVT-V1版本论文 源码地址:PVT-v1-torch源码<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [PVT论文精读:Pyramid Vision Transformer: A Versatile Backbone for Dense Predictionwithout ...](https://blog.csdn.net/qq_52053775/article/details/127700540)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Pyramid Vision Transformer (PVT) 代码,用于密集预测的通用backbone](https://download.csdn.net/download/weixin_42715977/87625056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions论文以及...](https://blog.csdn.net/m0_45971439/article/details/120495124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值