wget https://data.keithito.com/data/speech/LJSpeech-1.1.tar.bz2tar xjvf LJSpeech-1.1.tar.bz2Assume the path to save the preprocessed dataset is ljspeech_transformer_tts. Run the command below to preprocess the dataset.
python preprocess.py --input=LJSpeech-1.1/ --output=ljspeech_transformer_ttsThe training script requires 4 command line arguments.
--data is the path of the training dataset, --output is the path of the output direcctory (we recommend to use a subdirectory in runs to manage different experiments.)
--device should be "cpu" or "gpu", --nprocs is the number of processes to train the model in parallel.
python train.py --data=ljspeech_transformer_tts/ --output=runs/test --device="gpu" --nprocs=1If you want distributed training, set a larger --nprocs (e.g. 4). Note that distributed training with cpu is not supported yet.
Synthesize waveform. We assume the --input is a text file, one sentence per line, and --output is a directory to save the synthesized mel spectrogram(log magnitude) in .npy format. The mel spectrograms can be used with Waveflow to generate waveforms.
--checkpoint_path should be the path of the parameter file (.pdparams) to load. Note that the extention name .pdparmas is not included here.
--device specifies to device to run synthesis on.
python synthesize.py --input=sentence.txt --output=mels/ --checkpoint_path='step-310000' --device="gpu" --verbosePretrained model can be downloaded here. transformer_tts_ljspeech_ckpt_0.3.zip.