![見出し画像](https://assets.st-note.com/production/uploads/images/38076831/rectangle_large_type_2_3dcddc93e90e543af475166426211fd1.png?width=800)
Tacotron2 入門 (4) - NVIDIA/tacotron2
以下の記事を参考に書いてます。
前回
1. Tacotron 2 (without wavenet)
「Natural TTS Synthesis By Conditioning Wavenet On Mel Spectrogram Predictions」のPyTorch実装です。この実装には、分散および自動混合精度のサポートが含まれ、「LJ Speech」データセットを利用します。分散および自動混合精度のサポートは、NVIDIAの「Apex」および「AMP」に依存しています。公開されている「Tacotron2モデル」および「WaveGlowモデル」を使用したオーディオサンプルについては、こちらのWebサイトにアクセスしてください。
2. 前提条件
・NVIDIA GPU + CUDA cuDNN
3. セットアップ
(1) 「LJ Speech」データセットをダウンロード。
(2) PyTorch 1.0のインストール。
(3) 「NVIDIA/tacotron2」リポジトリをクローン。
$ git clone https://github.com/NVIDIA/tacotron2.git
$ cd tacotron2
(4) サブモジュールの初期化。
$ git submodule init; git submodule update
(5) filelists/*.txtのパスの変更。
$ sed -i -- 's,DUMMY,LJSpeech-1.1/wavs,g' filelists/*.txt
(6) Apexのインストール。
(7) requirementsのインストール。
$ pip install -r requirements.txt
4. 学習
(1) モデルの学習の実行。
$ python train.py --output_directory=outdir --log_directory=logdir
(2) (オプション) Tensorboardによる監視の実行。
$ tensorboard --logdir=outdir/logdir
5. 事前学習済みモデルを使用した学習
事前学習済みモデルを使用して学習すると、収束が速くなる可能性があります。デフォルトでは、データセットに依存するテキスト埋め込みレイヤーは無視されます。
(1) 「Tacotron2モデル」のダウンロード。
(2) モデルの学習の実行。
$ python train.py --output_directory=outdir --log_directory=logdir -c tacotron2_statedict.pt --warm_start
6. マルチGPU(分散)および自動混合精度学習
(1) モデルの学習の実行。
$ python -m multiproc train.py --output_directory=outdir --log_directory=logdir --hparams=distributed_run=True,fp16_run=True
7. 推論
(1) 「Tacotron2モデル」(112MB)のダウンロード。
(2) 「WaveGlowモデル」(675MB)のダウンロード。
(3) 「jupyter notebook」の実行。
$ jupyter notebook --ip=127.0.0.1 --port=31337
(4) 「inference.ipynb」の実行。
この記事が気に入ったらサポートをしてみませんか?