Skip to content

Tacotron 2 - PyTorch implementation with faster-than-realtime inference


Notifications You must be signed in to change notification settings



Repository files navigation

‼️This repository is no longer maintained. Please refer to our TTS-API for instructions to use TTS models including Catotron. ‼️

Tacotron 2 (without wavenet)

PyTorch implementation of Natural TTS Synthesis By Conditioning Wavenet On Mel Spectrogram Predictions.

This implementation includes distributed and automatic mixed precision support and uses the LJSpeech dataset.

Distributed and Automatic Mixed Precision support relies on NVIDIA's Apex and AMP.

Visit our website for audio samples using our published Tacotron 2 and WaveGlow models.

Alignment, Predicted Mel Spectrogram, Target Mel Spectrogram




  1. Download and extract the LJ Speech dataset
  2. Clone this repo: git clone
  3. CD into this repo: cd tacotron2
  4. Initialize submodule: git submodule init; git submodule update
  5. Update .wav paths: sed -i -- 's,DUMMY,ljs_dataset_folder/wavs,g' filelists/*.txt
    • Alternatively, set load_mel_from_disk=True in and update mel-spectrogram paths
  6. Install PyTorch 1.0
  7. Install Apex
  8. Install python requirements or build docker image
    • Install python requirements: pip install -r requirements.txt


  1. python --output_directory=outdir --log_directory=logdir
  2. (OPTIONAL) tensorboard --logdir=outdir/logdir

Training using a pre-trained model

Training using a pre-trained model can lead to faster convergence
By default, the dataset dependent text embedding layers are ignored

  1. Download our published Tacotron 2 model
  2. python --output_directory=outdir --log_directory=logdir -c --warm_start

Multi-GPU (distributed) and Automatic Mixed Precision Training

  1. python -m multiproc --output_directory=outdir --log_directory=logdir --hparams=distributed_run=True,fp16_run=True

Inference demo

  1. Download our published Tacotron 2 model
  2. Download our published WaveGlow model
  3. jupyter notebook --ip= --port=31337
  4. Load inference.ipynb

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.

Related repos

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: Keith Ito, Prem Seetharaman as described in our code.

We are inspired by Ryuchi Yamamoto's Tacotron PyTorch implementation.

We are thankful to the Tacotron 2 paper authors, specially Jonathan Shen, Yuxuan Wang and Zongheng Yang.

Additionally the catalan fork of this repository has been developed thanks to the project «síntesi de la parla contra la bretxa digital» (Speech synthesis against the digital gap) that was subsidised by the Department of Culture. A part of the funding comes from the financing administered by the inheritance board of the Generalitat de Catalunya.

Aquests recursos van ser desenvolupats gràcies al projecte «síntesi de la parla contra la bretxa digital» subvencionat pel Departament de Cultura. Una part dels fons provenen dels cabals que atorga la Junta d'Herències de la Generalitat de Catalunya.


Tacotron 2 - PyTorch implementation with faster-than-realtime inference







No releases published




  • Jupyter Notebook 80.8%
  • Python 19.1%
  • Dockerfile 0.1%