Pytorch Implementation of Robust and fine-grained prosody control of end-to-end speech synthesis (Unofficial)
This implementation uses the LibriTTS dataset.
- dev branch: Tacotron2 with multispeaker (speaker embedding). Speaker information is only consumed by Decoder module, and Attention module doesn't see any of it (as authors' intention).
- text_side branch: Text-side prosody control model implementation.
- Speech-side prosody control and Prosody normalization are not implemented in current version, but you can simply add them on top of above branches.
- NVIDIA GPU + CUDA cuDNN
- Download and extract the LibriTTS dataset
- Clone this repo:
git clone https://github.com/keonlee9420/Robust_Fine_Grained_Prosody_Control.git
- CD into this repo:
cd Robust_Fine_Grained_Prosody_Control
- Initialize submodule:
git submodule init; git submodule update
- Update .wav paths:
sed -i -- 's,/home/keon/speech-datasets/LibriTTS_preprocessed/train-clean-100/,your_libritts_dataset_folder/,g' filelists/*.txt
- Alternatively, set
load_mel_from_disk=True
inhparams.py
and update mel-spectrogram paths
- Alternatively, set
- Install PyTorch 1.0
- Install Apex
- Install python requirements or build docker image
- Install python requirements:
pip install -r requirements.txt
- Install python requirements:
python train.py --output_directory=outdir --log_directory=logdir
- (OPTIONAL)
tensorboard --logdir=outdir/logdir
(TBD)
- Not supported in current implementation.
- Single sample:
python inference.py -c checkpoint/path -r reference_audio/wav/path -t "synthesize text"
- Multi samples:
python inference_all.py -c checkpoint/path -r reference_audios/dir/path
N.b. When performing Mel-Spectrogram to Audio synthesis, make sure Tacotron 2 and the Mel decoder were trained on the same mel-spectrogram representation.
@misc{lee2021robust_fine_grained_prosody_control,
author = {Lee, Keon},
title = {Robust_Fine_Grained_Prosody_Control},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/keonlee9420/Robust_Fine_Grained_Prosody_Control}}
}
WaveGlow Faster than real time Flow-based Generative Network for Speech Synthesis
nv-wavenet Faster than real time WaveNet.
This implementation uses code from the following repos: NVIDIA/Tacotron-2, KinglittleQ/GST-Tacotron
We are thankful to the paper authors, specially Younggun Lee, and Taesu Kim.