Model reference · open weights
parler-tts-mini-multilingual is an open-weight audio or speech model from parler-tts. parler-tts-mini-multilingual-v1.1 (FP32) weighs 1.9 GB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the parler-tts/parler-tts-mini-multilingual-v1.1 model card, 2026-10-01
What it is
| Released by | parler-tts |
|---|---|
| Released | 2024-11-22 |
| Parameters | 938M |
| VRAM | 1.9 GB for the weights |
What it runs on
| Card | One stream | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
Parler-TTS Mini Multilingual v1.1 is a multilingual extension of Parler-TTS Mini.
🚨 As compared to Mini Multilingual v1, this version was trained with some consistent speaker names and with better format for descriptions. 🚨
It is a fine-tuned version, trained on a cleaned version of CML-TTS and on the non-English version of Multilingual LibriSpeech. In all, this represents some 9,200 hours of non-English data. To retain English capabilities, we also added back the LibriTTS-R English dataset, some 580h of high-quality English data.
Parler-TTS Mini Multilingual can speak in 8 European languages: English, French, Spanish, Portuguese, Polish, German, Italian and Dutch.
Thanks to its better prompt tokenizer, it can easily be extended to other languages. This tokenizer has a larger vocabulary and handles byte fallback, which simplifies multilingual training.
🚨 This work is the result of a collaboration between the HuggingFace audio team and the Quantum Squadra team. The AI4Bharat team also provided advice and assistance in improving tokenization. 🚨
🚨Unlike previous versions of Parler-TTS, here we use two tokenizers - one for the prompt and one for the description.🚨
Using Parler-TTS is as simple as "bonjour". Simply install the library once:
pip install git+https://github.com/huggingface/parler-tts.git
Parler-TTS Mini Multilingual has been trained to generate speech with features that can be controlled with a simple text prompt, for example:
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
import soundfile as sf
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = ParlerTTSForConditionalGeneration.from_pretrained("parler-tts/parler-tts-mini-multilingual-v1.1").to(device)
tokenizer = AutoTokenizer.from_pretrained("parler-tts/parler-tts-mini-multilingual-v1.1")
description_tokenizer = AutoTokenizer.from_pretrained(model.config.text_encoder._name_or_path)
prompt = "Salut toi, comment vas-tu aujourd'hui?"
description = "A female speaker delivers a slightly expressive and animated speech with a moderate speed and pitch. The recording is of very high quality, with the speaker's voice sounding clear and very close up."
input_ids = description_tokenizer(description, return_tensors="pt").input_ids.to(device)
prompt_input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("parler_tts_out.wav", audio_arr, model.config.sampling_rate)
To ensure speaker consistency across generations, this checkpoint was also trained on 16 speakers, characterized by name (e.g. Daniel, Christine, Richard, Nicole, ...).
To take advantage of this, simply adapt your text description to specify which speaker to use: Daniel's voice is monotone yet slightly fast in delivery, with a very close recording that almost has no background noise.
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
import soundfile as sf
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = ParlerTTSForConditionalGeneration.from_pretrained("parler-tts/parler-tts-mini-multilingual-v1.1").to(device)
tokenizer = AutoTokenizer.from_pretrained("parler-tts/parler-tts-mini-multilingual-v1.1")
description_tokenizer = AutoTokenizer.from_pretrained(model.config.text_encoder._name_or_path)
prompt = "Salut toi, comment vas-tu aujourd'hui?"
description = "Daniel's voice is monotone yet slightly fast in delivery, with a very close recording that almost has no background noise."
input_ids = description_tokenizer(description, return_tensors="pt").input_ids.to(device)
prompt_input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("parler_tts_out.wav", audio_arr, model.config.sampling_rate)
You can choose a speaker from this list:
| Language | Speaker Name | Number of occurrences it was trained on |
|---|---|---|
| Dutch | Mark | 460066 |
| Jessica | 4438 | |
| Michelle | 83 | |
| French | Daniel | 10719 |
| Michelle | 19 | |
| Christine | 20187 | |
| Megan | 695 | |
| German | Nicole | 53964 |
| Christopher | 1671 | |
| Megan | 41 | |
| Michelle | 12693 | |
| Italian | Julia | 2616 |
| Richard | 9640 |
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.