
Google Brainの高忠実度波グラードボコーダー(Paper)の実装(Pytorch)。 6項目の高品質の生成を伴うGitHubでの最初の実装。
generated_samplesフォルダーを参照)。 パラメーターの数:15.810.401
| モデル | 安定した | RTX 2080 TI | テスラK80 | Intel 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は、Wavenet Similarサンプリング品質を備えたデータ密度の勾配を推定することにより、波形生成の条件付きモデルです。このボコーダーは、ganではなく、フローの正規化でも、古典的な自己回帰モデルでもありません。ボコーダーの主な概念は、ランジュビンのダイナミクスとスコアマッチングフレームワークを利用する拡散確率モデル(DDPM)の除去に基づいています。さらに、Classic DDPMと比較すると、Wavegradは超高速収束(6回の反復とおそらく低い)を達成します。
git clone https://github.com/ivanvovk/WaveGrad.git
cd WaveGradpip install -r requirements.txtfilelistsフォルダーに含まれるように、オーディオデータのフィルリストをトレーニングおよびテストします。configsフォルダーに構成ファイル*を作成します。 *注: STFTのhop_length変更する場合は、configのアップサンプリング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項目のスケジュールから、要素をコピーすることで高次のスケジュールを作成できます。
benchmark.fibonacci(...)を使用して25人の適性スケジュールが取得されました。メルスペクトルグラムをいくつかのフォルダーに入れます。フィルリストを作ります。次に、このコマンドを独自の引数で実行します。
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ドライブリンクを介して、ljspeech(22kHz)に事前に処理されたチェックポイントファイル*を見つけることができます。
*注:アップロードされたチェックポイントは、単一のキー'model'を備えたdictです。