VITS-VCTK

This tutorial shows you how to train an VITS model with the VCTK dataset.

Note

TTS related recipes require packages in requirements-tts.txt.

Data preparation

$ cd egs/vctk/TTS
$ ./prepare.sh

To run stage 1 to stage 6, use

$ ./prepare.sh --stage 1 --stop_stage 6

Training

$ export CUDA_VISIBLE_DEVICES="0,1,2,3"
$ ./vits/train.py \
    --world-size 4 \
    --num-epochs 1000 \
    --start-epoch 1 \
    --use-fp16 1 \
    --exp-dir vits/exp \
    --tokens data/tokens.txt
    --max-duration 350

Note

You can adjust the hyper-parameters to control the size of the VITS model and the training configurations. For more details, please run ./vits/train.py --help.

Note

The training can take a long time (usually a couple of days).

Training logs, checkpoints and tensorboard logs are saved in vits/exp.

Inference

The inference part uses checkpoints saved by the training part, so you have to run the training part first. It will save the ground-truth and generated wavs to the directory vits/exp/infer/epoch-*/wav, e.g., vits/exp/infer/epoch-1000/wav.

$ export CUDA_VISIBLE_DEVICES="0"
$ ./vits/infer.py \
    --epoch 1000 \
    --exp-dir vits/exp \
    --tokens data/tokens.txt \
    --max-duration 500

Note

For more details, please run ./vits/infer.py --help.

Export models

Currently we only support ONNX model exporting. It will generate two files in the given exp-dir: vits-epoch-*.onnx and vits-epoch-*.int8.onnx.

$ ./vits/export-onnx.py \
    --epoch 1000 \
    --exp-dir vits/exp \
    --tokens data/tokens.txt

You can test the exported ONNX model with:

$ ./vits/test_onnx.py \
    --model-filename vits/exp/vits-epoch-1000.onnx \
    --tokens data/tokens.txt

Download pretrained models

If you don’t want to train from scratch, you can download the pretrained models by visiting the following link: