🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production
 
 
 
 
Go to file
Eren Golge 2ebe545259 config change - remove redundant config fields 2018-02-13 08:18:01 -08:00
datasets updates and debugs 2018-02-13 01:45:52 -08:00
layers More layer tests 2018-02-13 08:08:23 -08:00
models More layer tests 2018-02-13 08:08:23 -08:00
notebooks More layer tests 2018-02-13 08:08:23 -08:00
png Beginning 2018-01-22 01:48:59 -08:00
tests More layer tests 2018-02-13 08:08:23 -08:00
utils updates and debugs 2018-02-13 01:45:52 -08:00
.gitignore gitignore update 2018-01-31 07:25:37 -08:00
README.md Merge branch 'master' into testing_docing 2018-02-13 17:13:00 +01:00
__init__.py Beginning 2018-01-22 01:48:59 -08:00
config.json config change - remove redundant config fields 2018-02-13 08:18:01 -08:00
debug_config.py A big revision: visualization, data loader, tests 2018-02-04 08:25:00 -08:00
module.py Beginning 2018-01-22 01:48:59 -08:00
requirements.txt Merge branch 'master' into testing_docing 2018-02-13 17:13:00 +01:00
synthesis.py Bug solve on attention module and a new Notebook to experiment spectrogram reconstruction 2018-01-31 07:21:22 -08:00
train.py updates and debugs 2018-02-13 01:45:52 -08:00

README.md

TTS (Work in Progress...)

Here we have pytorch implementation of:

At the end, it should be easy to add new models and try different architectures.

You can find here a brief note about possible TTS architectures and their comparisons.

Requirements

Highly recommended to use miniconda for easier installation.

  • python 3.6
  • pytorch > 0.2.0
  • TODO

Data

Currently TTS provides data loaders for

Training the network

To run your own training, you need to define a config.json file (simple template below) and call with the command.

train.py --config_path config.json

If you like to use specific set of GPUs.

CUDA_VISIBLE_DEVICES="0,1,4" train.py --config_path config.json

Each run creates an experiment folder with the corresponfing date and time, under the folder you set in config.json. And if there is no checkpoint yet under that folder, it is going to be removed when you press Ctrl+C.

Example config.json:

{
  // Data loading parameters
  "num_mels": 80,
  "num_freq": 1024,
  "sample_rate": 20000,
  "frame_length_ms": 50.0,
  "frame_shift_ms": 12.5,
  "preemphasis": 0.97,
  "min_level_db": -100,
  "ref_level_db": 20,
  "hidden_size": 128,
  "embedding_size": 256,
  "text_cleaner": "english_cleaners",

  // Training parameters
  "epochs": 2000,
  "lr": 0.001,
  "lr_patience": 2,  // lr_scheduler.ReduceLROnPlateau().patience
  "lr_decay": 0.5,   // lr_scheduler.ReduceLROnPlateau().factor
  "batch_size": 256,
  "griffinf_lim_iters": 60,
  "power": 1.5,
  "r": 5,            // number of decoder outputs for Tacotron

  // Number of data loader processes
  "num_loader_workers": 8,

  // Experiment logging parameters
  "save_step": 200,
  "data_path": "/path/to/KeithIto/LJSpeech-1.0",
  "output_path": "/path/to/my_experiment",
  "log_dir": "/path/to/my/tensorboard/logs/"
}