Diffusion 的train 和 inference 您 懂了吗?
从代码出发
一张图说明 Train & Inference
train的过程:
- 给定 真实mel, 然后随机 t 步 噪声, 加到真实mel, 生成带噪的mel
- 通过方差适配器输出的 cond 和 步数 t, 以及带噪mel。 预测噪声。
(注意, 这个为了和inference 保持一致, 在推理时需要类似 带噪mel、cond、t 这个三个输入, 才能预测噪声, 带噪mel减去预测噪声,就是真实mel了)
inference:- 随机出一个 噪声x(假设这是符合高斯分布的 带噪mel), 然后输入噪声x,与方差适配器输出的cond,以及预设的步骤t 到训练好的去噪器(denoise) 来预测噪声
- 噪声x - 预测噪声 = 预测的mel, 也即是合成的mel