📣 🐸TTS now supports 🐢Tortoise with faster inference. Docs
🐸TTS is a library for advanced Text-to-Speech generation.
🚀 Pretrained models in +1100 languages.
🛠️ Tools for training new models and fine-tuning existing models in any language.
📚 Utilities for dataset analysis and curation.
💬 Where to ask questions
Please use our dedicated channels for questions and discussion. Help is much more valuable if it’s shared publicly so that more people can benefit from it.
Underlined “TTS*” and “Judy*” are internal 🐸TTS models that are not released open-source. They are here to show the potential. Models prefixed with a dot (.Jofish .Abe and .Janice) are real human voices.
Features
High-performance Deep Learning models for Text2Speech tasks.
If you are on Ubuntu (Debian), you can also run following commands for installation.
$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
$ make install
If you are on Windows, 👑@GuyPaddock wrote installation instructions here.
Docker Image
You can also try TTS without install with the docker image.
Simply run the following command and you will be able to run TTS without installing it.
docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu
python3 TTS/server/server.py --list_models #To get the list of available models
python3 TTS/server/server.py --model_name tts_models/en/vctk/vits # To start a server
You can then enjoy the TTS server here
More details about the docker images (like GPU support) can be found here
Synthesizing speech by 🐸TTS
🐍 Python API
Running a multi-speaker and multi-lingual model
import torch
from TTS.api import TTS
# Get device
device = "cuda" if torch.cuda.is_available() else "cpu"
# List available 🐸TTS models
print(TTS().list_models())
# Init TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts.tts(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en")
# Text to speech to a file
tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")
Running a single speaker model
# Init TTS with the target model name
tts = TTS(model_name="tts_models/de/thorsten/tacotron2-DDC", progress_bar=False).to(device)
# Run TTS
tts.tts_to_file(text="Ich bin eine Testnachricht.", file_path=OUTPUT_PATH)
# Example voice cloning with YourTTS in English, French and Portuguese
tts = TTS(model_name="tts_models/multilingual/multi-dataset/your_tts", progress_bar=False).to(device)
tts.tts_to_file("This is voice cloning.", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")
tts.tts_to_file("C'est le clonage de la voix.", speaker_wav="my/cloning/audio.wav", language="fr-fr", file_path="output.wav")
tts.tts_to_file("Isso é clonagem de voz.", speaker_wav="my/cloning/audio.wav", language="pt-br", file_path="output.wav")
Example voice conversion
Converting the voice in source_wav to the voice of target_wav
Example voice cloning together with the voice conversion model.
This way, you can clone voices by using any model in 🐸TTS.
tts = TTS("tts_models/de/thorsten/tacotron2-DDC")
tts.tts_with_vc_to_file(
"Wie sage ich auf Italienisch, dass ich dich liebe?",
speaker_wav="target/speaker.wav",
file_path="output.wav"
)
Example text to speech using Fairseq models in ~1100 languages 🤯.
For Fairseq models, use the following name format: tts_models/<lang-iso_code>/fairseq/vits.
You can find the language ISO codes here
and learn about the Fairseq models here.
# TTS with on the fly voice conversion
api = TTS("tts_models/deu/fairseq/vits")
api.tts_with_vc_to_file(
"Wie sage ich auf Italienisch, dass ich dich liebe?",
speaker_wav="target/speaker.wav",
file_path="output.wav"
)
Command-line tts
Synthesize speech on command line.
You can either use your trained model or choose a model from the provided list.
If you don’t specify any models, then it uses LJSpeech based English model.
Single Speaker Models
List provided models:
$ tts --list_models
Get model info (for both tts_models and vocoder_models):
Query by type/name:
The model_info_by_name uses the name as it from the –list_models.
🐸Coqui.ai News
🐸TTS is a library for advanced Text-to-Speech generation.
🚀 Pretrained models in +1100 languages.
🛠️ Tools for training new models and fine-tuning existing models in any language.
📚 Utilities for dataset analysis and curation.
💬 Where to ask questions
Please use our dedicated channels for questions and discussion. Help is much more valuable if it’s shared publicly so that more people can benefit from it.
🔗 Links and Resources
🥇 TTS Performance
Underlined “TTS*” and “Judy*” are internal 🐸TTS models that are not released open-source. They are here to show the potential. Models prefixed with a dot (.Jofish .Abe and .Janice) are real human voices.
Features
Trainer API.dataset_analysis.Model Implementations
Spectrogram models
End-to-End Models
Attention Methods
Speaker Encoder
Vocoders
Voice Conversion
You can also help us implement more models.
Installation
🐸TTS is tested on Ubuntu 18.04 with python >= 3.9, < 3.12..
If you are only interested in synthesizing speech with the released 🐸TTS models, installing from PyPI is the easiest option.
If you plan to code or train models, clone 🐸TTS and install it locally.
If you are on Ubuntu (Debian), you can also run following commands for installation.
If you are on Windows, 👑@GuyPaddock wrote installation instructions here.
Docker Image
You can also try TTS without install with the docker image. Simply run the following command and you will be able to run TTS without installing it.
You can then enjoy the TTS server here More details about the docker images (like GPU support) can be found here
Synthesizing speech by 🐸TTS
🐍 Python API
Running a multi-speaker and multi-lingual model
Running a single speaker model
Example voice conversion
Converting the voice in
source_wavto the voice oftarget_wavExample voice cloning together with the voice conversion model.
This way, you can clone voices by using any model in 🐸TTS.
Example text to speech using Fairseq models in ~1100 languages 🤯.
For Fairseq models, use the following name format:
tts_models/<lang-iso_code>/fairseq/vits. You can find the language ISO codes here and learn about the Fairseq models here.Command-line
ttsSynthesize speech on command line.
You can either use your trained model or choose a model from the provided list.
If you don’t specify any models, then it uses LJSpeech based English model.
Single Speaker Models
List provided models:
Get model info (for both tts_models and vocoder_models):
Query by type/name: The model_info_by_name uses the name as it from the –list_models.
For example:
Query by type/idx: The model_query_idx uses the corresponding idx from –list_models.
For example:
Query info for model info by full name:
Run TTS with default models:
Run TTS and pipe out the generated TTS wav file data:
Run a TTS model with its default vocoder model:
For example:
Run with specific TTS and vocoder models from the list:
For example:
Run your own TTS model (Using Griffin-Lim Vocoder):
Run your own TTS and Vocoder models:
Multi-speaker Models
List the available speakers and choose a among them:
Run the multi-speaker TTS model with the target speaker ID:
Run your own multi-speaker TTS model:
Voice Conversion Models
Directory Structure