ⓍTTS
ⓍTTS is a Voice generation model that lets you clone voices into different languages by using just a quick 6-second audio clip. There is no need for an excessive amount of training data that spans countless hours.
This is the same or similar model to what powers
Coqui Studio and
Coqui API.
Features
- Supports 17 languages.
- Voice cloning with just a 6-second audio clip.
- Emotion and style transfer by cloning.
- Cross-language voice cloning.
- Multi-lingual speech generation.
- 24khz sampling rate.
Updates over XTTS-v1
- 2 new languages; Hungarian and Korean
- Architectural improvements for speaker conditioning.
- Enables the use of multiple speaker references and interpolation between speakers.
- Stability improvements.
- Better prosody and audio quality across the board.
Languages
XTTS-v2 supports 17 languages: English (en), Spanish (es), French (fr), German (de), Italian (it), Portuguese (pt),
Polish (pl), Turkish (tr), Russian (ru), Dutch (nl), Czech (cs), Arabic (ar), Chinese (zh-cn), Japanese (ja), Hungarian (hu), Korean (ko)
Hindi (hi).
Stay tuned as we continue to add support for more languages. If you have any language requests, feel free to reach out!
Code
The
code-base supports inference and
fine-tuning.
Demo Spaces
- XTTS Space : You can see how model performs on supported languages, and try with your own reference or microphone input
- XTTS Voice Chat with Mistral or Zephyr : You can experience streaming voice chat with Mistral 7B Instruct or Zephyr 7B Beta
License
This model is licensed under
Coqui Public Model License. There's a lot that goes into a license for generative models, and you can read more of
the origin story of CPML here.
Contact
Come and join in our 🐸Community. We're active on
Discord and
Twitter.
You can also mail us at
info@coqui.ai.
Using 🐸TTS API:
1from TTS.api import TTS
2tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2", gpu=True)
3
4# generate speech by cloning a voice using default settings
5tts.tts_to_file(text="It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.",
6 file_path="output.wav",
7 speaker_wav="/path/to/target/speaker.wav",
8 language="en")
9
Using 🐸TTS Command line:
1 tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 \
2 --text "Bugün okula gitmek istemiyorum." \
3 --speaker_wav /path/to/target/speaker.wav \
4 --language_idx tr \
5 --use_cuda true
Using the model directly:
1from TTS.tts.configs.xtts_config import XttsConfig
2from TTS.tts.models.xtts import Xtts
3
4config = XttsConfig()
5config.load_json("/path/to/xtts/config.json")
6model = Xtts.init_from_config(config)
7model.load_checkpoint(config, checkpoint_dir="/path/to/xtts/", eval=True)
8model.cuda()
9
10outputs = model.synthesize(
11 "It took me quite a long time to develop a voice and now that I have it I am not going to be silent.",
12 config,
13 speaker_wav="/data/TTS-public/_refclips/3.wav",
14 gpt_cond_len=3,
15 language="en",
16)