見出し画像

Tacotron2 入門 (4) - NVIDIA/tacotron2

以下の記事を参考に書いてます。

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サイトにアクセスしてください。

画像1

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」の実行。



この記事が気に入ったらサポートをしてみませんか?