{"data":{"slug":"rayhane-mamah-tacotron-2","name":"Tacotron-2","tagline":"DeepMind's Tacotron-2 Tensorflow implementation","github_url":"https://github.com/Rayhane-mamah/Tacotron-2","owner":"Rayhane-mamah","repo":"Tacotron-2","owner_avatar_url":"https://avatars.githubusercontent.com/u/34689728?v=4","primary_language":"Python","stars":2322,"forks":899,"topics":["paper","python","speech-synthesis","tacotron","tensorflow","text-to-speech","wavenet"],"archived":false,"github_pushed_at":"2023-07-06T21:18:43+00:00","maintenance_label":"Dormant","url":"https://www.graphcanon.com/tools/rayhane-mamah-tacotron-2","markdown_url":"https://www.graphcanon.com/tools/rayhane-mamah-tacotron-2.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/rayhane-mamah-tacotron-2","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=rayhane-mamah-tacotron-2","description":"DeepMind's Tacotron-2 Tensorflow implementation","homepage_url":null,"license":"MIT","open_issues":265,"watchers":130,"ai_summary":null,"readme_excerpt":"# Tacotron-2:\nTensorflow implementation of DeepMind's Tacotron-2. A deep neural network architecture described in this paper: [Natural TTS synthesis by conditioning Wavenet on MEL spectogram predictions](https://arxiv.org/pdf/1712.05884.pdf)\n\nThis Repository contains additional improvements and attempts over the paper, we thus propose **paper_hparams.py** file which holds the exact hyperparameters to reproduce the paper results without any additional extras.\n\nSuggested **hparams.py** file which is default in use, contains the hyperparameters with extras that proved to provide better results in most cases. Feel free to toy with the parameters as needed.\n\nDIFFERENCES WILL BE HIGHLIGHTED IN DOCUMENTATION SHORTLY.\n\n\n# Repository Structure:\n\tTacotron-2\n\t├── datasets\n\t├── en_UK\t\t(0)\n\t│   └── by_book\n\t│       └── female\n\t├── en_US\t\t(0)\n\t│   └── by_book\n\t│       ├── female\n\t│       └── male\n\t├── LJSpeech-1.1\t(0)\n\t│   └── wavs\n\t├── logs-Tacotron\t(2)\n\t│   ├── eval_-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── mel-spectrograms\n\t│   ├── plots\n\t│   ├── taco_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── logs-Wavenet\t(4)\n\t│   ├── eval-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── plots\n\t│   ├── wave_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── logs-Tacotron-2\t( * )\n\t│   ├── eval-dir\n\t│   │ \t├── plots\n\t│ \t│ \t└── wavs\n\t│   ├── plots\n\t│   ├── taco_pretrained\n\t│   ├── wave_pretrained\n\t│   ├── metas\n\t│   └── wavs\n\t├── papers\n\t├── tacotron\n\t│   ├── models\n\t│   └── utils\n\t├── tacotron_output\t(3)\n\t│   ├── eval\n\t│   ├── gta\n\t│   ├── logs-eval\n\t│   │   ├── plots\n\t│   │   └── wavs\n\t│   └── natural\n\t├── wavenet_output\t(5)\n\t│   ├── plots\n\t│   └── wavs\n\t├── training_data\t(1)\n\t│   ├── audio\n\t│   ├── linear\n\t│\t└── mels\n\t└── wavenet_vocoder\n\t\t└── models\n\n\nThe previous tree shows the current state of the repository (separate training, one step at a time).\n\n- Step **(0)**: Get your dataset, here I have set the examples of **Ljspeech**, **en_US** and **en_UK** (from **M-AILABS**).\n- Step **(1)**: Preprocess your data. This will give you the **training_data** folder.\n- Step **(2)**: Train your Tacotron model. Yields the **logs-Tacotron** folder.\n- Step **(3)**: Synthesize/Evaluate the Tacotron model. Gives the **tacotron_output** folder.\n- Step **(4)**: Train your Wavenet model. Yield the **logs-Wavenet** folder.\n- Step **(5)**: Synthesize audio using the Wavenet model. Gives the **wavenet_output** folder.\n\n- Note: Steps 2, 3, and 4 can be made with a simple run for both Tacotron and WaveNet (Tacotron-2, step ( * )).\n\n\nNote:\n- **Our preprocessing only supports Ljspeech and Ljspeech-like datasets (M-AILABS speech data)!** If running on datasets stored differently, you will probably need to make your own preprocessing script.\n- In the previous tree, files **were not represented** and **max depth was set to 3** for simplicity.\n- If you run training of both **models at the same time**, repository structure will be different.\n\n# Pretrained model and Samples:\nPre-trained models and audio samples will be added at a later date. You can however check some primary insights of the model performance (at early stages of training) [here](https://github.com/Rayhane-mamah/Tacotron-2/issues/4#issuecomment-378741465). THIS IS VERY OUTDATED, I WILL UPDATE THIS SOON\n\n# Model Architecture:\n<p align=\"center\">\n  <img src=\"https://preview.ibb.co/bU8sLS/Tacotron_2_Architecture.png\"/>\n</p>\n\nThe model described by the authors can be divided in two parts:\n- Spectrogram prediction network\n- Wavenet vocoder\n\nTo have an in-depth exploration of the model architecture, training procedure and preprocessing logic, refer to [our wiki](https://github.com/Rayhane-mamah/Tacotron-2/wiki)\n\n# Current state:\n\nTo have an overview of our advance on this project, please refer to [this discussion](https://github.com/Rayhane-mamah/Tacotron-2/issues/4)\n\nsince the two parts of the global model are trained separately, we can start by training the feature prediction model to use his predictions later during the","github_created_at":"2017-12-20T16:08:13+00:00","created_at":"2026-07-11T12:08:57.814028+00:00","updated_at":"2026-07-11T12:09:06.588793+00:00","categories":[{"slug":"evaluation-observability","name":"Evaluation & Observability","url":"https://www.graphcanon.com/categories/evaluation-observability","markdown_url":"https://www.graphcanon.com/categories/evaluation-observability.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/evaluation-observability"},{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"},{"slug":"speech-audio","name":"Speech & Audio","url":"https://www.graphcanon.com/categories/speech-audio","markdown_url":"https://www.graphcanon.com/categories/speech-audio.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/speech-audio"}],"tags":[{"slug":"paper","name":"paper"},{"slug":"python","name":"python"},{"slug":"speech-synthesis","name":"speech-synthesis"},{"slug":"tacotron","name":"tacotron"},{"slug":"tensorflow","name":"tensorflow"},{"slug":"text-to-speech","name":"text-to-speech"},{"slug":"wavenet","name":"wavenet"}],"trust":{"provenance":{"is_fork":false,"github_id":114906452,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T12:08:58.411Z","maintenance":{"label":"Dormant","score":18,"methodology":"github_public_v1","releases_90d":0,"days_since_push":1100,"last_release_at":null},"security_summary":{"status":"findings","scanner":"osv@v1","low_count":12,"high_count":0,"last_scan_at":"2026-07-11T12:09:03.824Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-11T12:09:03.553Z"},"languages":{"value":["python"],"source":"github.language","observed_at":"2026-07-11T12:09:03.553Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-07-11T12:09:03.553Z"}}}}