
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 。