
Google Brain高保真WAVEGRAD VOCODER(PAPER)的实现(Pytorch)。在GitHub上首次实施,具有高质量生成6次的生成。
generated_samples文件夹)。 参数数:15.810.401
| 模型 | 稳定的 | RTX 2080 TI | 特斯拉K80 | 英特尔Xeon 2.3GHz* |
|---|---|---|---|---|
| 1000迭代 | + | 9.59 | - | - |
| 100次迭代 | + | 0.94 | 5.85 | - |
| 50次迭代 | + | 0.45 | 2.92 | - |
| 25个迭代 | + | 0.22 | 1.45 | - |
| 12个迭代 | + | 0.10 | 0.69 | 4.55 |
| 6次迭代 | + | 0.04 | 0.33 | 2.09 |
*注意:使用了Intel Xeon CPU的旧版本。
WaveGrad是通过使用波经相似的采样质量估算数据密度梯度的条件模型。该Vocoder既不是gan,也不是正常的流动,也不是经典自回归模型。 Vocoder的主要概念是基于使用Langevin Dynamics和得分匹配框架的DeNoRising扩散概率模型(DDPM)。此外,与经典的DDPM相比,WaveGrad获得了超快速收敛(6次迭代,可能较低)WRT Langevin动力学迭代采样方案。
git clone https://github.com/ivanvovk/WaveGrad.git
cd WaveGradpip install -r requirements.txtfilelists文件夹中的火车数据。configs文件夹中制作配置文件*。 *注意:如果要更改STFT的hop_length ,请确保配置中UPSMPLING factors的乘积等于您的新hop_length 。
runs/train.sh脚本,并指定可见的GPU设备和配置文件的路径。如果您指定多个GPU,则培训将在分布式模式下进行。sh runs/train.sh 要跟踪您的训练过程,由tensorboard --logdir=logs/YOUR_LOGDIR_FOLDER 。所有日志记录信息和检查点将存储在logs/YOUR_LOGDIR_FOLDER中。 logdir在配置文件中指定。
训练型号后,网格搜索最佳的时间表**在notebooks/inference.ipynb中需要数量的迭代次数。该代码支持并行性,因此您可以指定多个作业以加速搜索。
*注意:对于少量迭代(例如6或7),网格搜索是必需的。对于较大的数字,只需尝试fibonacci序列benchmark.fibonacci(...)初始化:我将其用于25次迭代,并且效果很好。例如,从良好的25次时间表中,您可以通过复制元素来构建高阶时间表。
benchmark.fibonacci(...) 。将您的MEL光谱图放入某个文件夹中。做一个filelist。然后用自己的论点运行此命令:
sh runs/inference.sh -c < your-config > -ch < your-checkpoint > -ns < your-noise-schedule > -m < your-mel-filelist > -v " yes " notebooks/inference.ipynb中提供了更多推理详细信息。在这里,您还可以找到如何为模型设置噪声时间表并进行网格搜索最佳方案。
生成的generated_samples文件夹中提供了生成的音频的示例。如果找到后者的最佳时间表,则不会明显1000倍和6次介质之间的质量下降。
您可以通过此Google Drive链接在ljspeech(22kHz)上找到验证的检查点文件*。
*注意:上传的检查点是带有单个密钥'model' dict 。