360567ca20 | ||
---|---|---|
.. | ||
README.md | ||
config.py | ||
ljspeech.py | ||
preprocess.py | ||
synthesize.py | ||
train.py |
README.md
TransformerTTS with LJSpeech
Dataset
Download the datasaet.
wget https://data.keithito.com/data/speech/LJSpeech-1.1.tar.bz2
Extract the dataset.
tar xjvf LJSpeech-1.1.tar.bz2
Preprocess the dataset.
Assume 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_tts
Train the model
The 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=1
If you want distributed training, set a larger --nprocs
(e.g. 4). Note that distributed training with cpu is not supported yet.
Synthesize
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" --verbose
Pretrained Model
Pretrained model can be downloaded here. transformer_tts_ljspeech_ckpt_0.3.zip.