扩散模型是生成模型的一种强大类别,近期在生成高保真音频波形方面取得了显著成功,涵盖声码器任务。它们源于热力学,随后在图像生成中受到关注,其在音频合成中的应用为自回归 (autoregressive)、流基和基于GAN的方法提供了一种截然不同的选择。
扩散模型背后的理念出人意料地简单:系统地破坏数据中的结构(即“正向过程”),然后学习如何逆转此过程以生成新数据(即“逆向过程”)。
正向过程:逐步加噪
设想一个干净的音频波形,x0。正向扩散过程在一系列 T 个离散时间步中,逐步向此波形添加少量高斯噪声。在每个步长 t 中添加的噪声量由预设的方差时间表 βt 控制,其中 t 的范围从 1 到 T。通常,T 较大(例如 1000),且 βt 值较小,常随时间增加。
此过程确定了一系列噪声逐渐增加的样本 x1,x2,...,xT。每个 xt 通过添加噪声从 xt−1 生成:
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)
此处,N(x;μ,σ2I) 表示一个高斯分布,其均值为 μ,对角协方差为 σ2I。缩放因子 1−βt 确保总方差不会激增。
一个有用的特性是,我们可以直接从原始的 x0 采样 xt,而无需遍历所有中间步骤。如果我们定义 αt=1−βt 且 αˉt=∏i=1tαi,那么:
q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I)
随着 t 趋近于 T,αˉT 趋近于零,这表示 xT 几乎丢失了关于原始 x0 的所有信息,并且近似于一个标准高斯分布,xT≈N(0,I)。此正向过程是固定的,不涉及任何学习。
逆向过程:学习去噪
生成环节发生在逆向过程中。目标是学习一个模型,它能够逆转加噪步骤:从纯噪声 xT∼N(0,I) 开始,我们能否迭代去除噪声,最终获得一个干净的波形 x0?
这需要学习由神经网络 (neural network) θ 参数 (parameter)化的转移概率 pθ(xt−1∣xt)。如果我们知道真实的后验 q(xt−1∣xt,x0)(在给定 x0 的条件下是可处理的高斯分布),我们理论上可以完美逆转此过程。然而,在生成时,我们没有 x0。扩散模型使用神经网络来近似此逆向转移:
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))
神经网络 μθ(xt,t) 需要在给定含噪的 xt 和时间步 t 的条件下,预测 xt−1 分布的均值。方差 Σθ(xt,t) 通常保持固定或与正向过程方差 βt 相关。
基于声学特征的条件设定
对于声码器来说,我们不希望生成随机音频;我们希望生成与特定声学特征(通常是梅尔频谱图 c)对应的音频。因此,逆向过程必须以 c 为条件:
pθ(xt−1∣xt,c)
神经网络 (neural network)在条件信息 c 的引导下学习执行去噪步骤 xt→xt−1。此条件设定通常被纳入网络架构中,常采用与其他条件生成模型相似的技术:
- 将 c(可能经过上采样)与 xt 拼接。
- 通过 c 调制网络中的中间特征图(例如,通过FiLM层或自适应组归一化 (normalization))。
- 在 xt 表示和 c 之间采用交叉注意力机制 (attention mechanism)。
μθ 常用的网络架构是U-Net变体,类似于在图像生成中取得成功的那些,适用于一维音频信号。时间步 t 也作为输入提供,通常通过正弦嵌入 (embedding),使网络能够学习时间相关的去噪行为。
模型训练
替代直接参数 (parameter)化 μθ(xt,t,c) 的方法,通常更有效的是训练网络 ϵθ(xt,t,c) 来预测正向过程中从 x0 得到 xt 时所添加的噪声分量 ϵ。回顾 xt=αˉtx0+1−αˉtϵ,其中 ϵ∼N(0,I)。
训练目标简化为最小化真实噪声 ϵ 与预测噪声 ϵθ 之间的均方误差,该误差在随机时间步 t、数据样本 x0 和噪声样本 ϵ 上进行平均:
Lsimple=Et∼[1,T],x0∼data,ϵ∼N(0,I)[∣∣ϵ−ϵθ(αˉtx0+1−αˉtϵ,c,t)∣∣2]
此目标训练网络,使其能够在任何给定噪声水平 t 下有效估计噪声,以声学特征 c 为条件。
推理 (inference):生成音频
音频生成始于从标准高斯分布 N(0,I) 采样 xT。随后,学得的逆向过程被迭代应用于 t=T,T−1,...,1:
- 使用网络预测噪声:ϵ^=ϵθ(xt,c,t)。
- 估计 pθ(xt−1∣xt,c) 的均值 μθ(xt,t,c)。这可以从预测噪声 ϵ^ 中推导得出。一种常用公式为:
μθ(xt,t,c)=αt1(xt−1−αˉtβtϵθ(xt,c,t))
- 从预测分布中采样 xt−1:
xt−1∼N(xt−1;μθ(xt,t,c),σt2I)
其中 σt2 是逆向步骤的方差(常根据 βt 设定,例如 σt2=βt 或相关值)。
经过 T 个步骤后,最终样本 x0 表示以 c 为条件的生成音频波形。
正向扩散过程向干净音频添加噪声,直至其变为纯噪声。学得的逆向过程从噪声开始,并迭代地去除它,在条件梅尔频谱图输入的引导下,合成目标音频波形。
优点与缺点
优点:
- **高音频质量:**扩散声码器已呈现出最先进的性能,生成高度自然且无瑕疵的音频,通常可与自回归 (autoregressive)模型媲美或更优。
- **训练稳定:**与GAN相比,基于分数匹配(噪声预测)的训练过程通常更稳定,且对超参数 (parameter) (hyperparameter)调整不那么敏感。
- **模型灵活性:**该框架灵活,并与其他生成建模方法(例如基于分数的生成模型)相关联。
缺点:
- **推理 (inference)速度慢:**标准的迭代采样过程需要许多顺序步骤(等于 T,通常是数百或数千),这使得推理速度远慢于GAN或流基声码器等并行方法。这是实时应用的一个主要缺点。
- **计算成本高:**训练和推理都可能计算成本高昂,因为其迭代性质和潜在的大型U-Net架构。
加速扩散推理 (inference)
采样速度慢是研究的一个主要方向。若干技术旨在减少推理时所需的去噪步骤数(N<T):
- **去噪扩散隐式模型 (DDIM):**修改采样过程以采取更大的步长,大幅减少所需的迭代次数(例如,从1000次减少到50次或更少),通常对质量影响极小。
- **优化采样调度:**设计非均匀时间步调度进行采样,将计算集中在去噪过程更重要的部分。
- **知识蒸馏 (knowledge distillation):**训练一个更快的模型(例如GAN或流基模型)来模拟预训练 (pre-training)扩散模型的输出分布。
即使经过加速,扩散声码器通常仍比HiFi-GAN等最快的并行替代方案慢。
与其他声码器的比较
- **对比自回归 (autoregressive)模型 (WaveNet):**扩散模型可获得相似或更佳的音频质量,但避免了严格的顺序生成,尽管其自身的迭代过程除非加速否则也慢。训练扩散模型可能更简单。
- **对比流基模型 (WaveGlow):**流基模型允许快速并行采样,但有时与最佳扩散模型相比,音频质量可能略低。扩散模型可能提供更高的质量,但以牺牲速度为代价。
- **对比GAN基模型 (HiFi-GAN):**GAN声码器提供非常快速的并行采样和高质量。扩散模型可以达到或超过此质量,但采样通常更慢。扩散训练通常被认为比GAN训练更稳定。
扩散模型为声码器提供了一种吸引人的方法,以采样速度换取潜在更优的音频保真度和训练稳定性。随着研究继续加速其推理 (inference),它们正成为生成高质量语音波形日益实际的选择。