Accéder au contenu principal

Voxtral TTS : guide avec exemples pratiques

Comprenez le premier modèle texte-vers-parole de Mistral, comment il se compare aux alternatives, et générez de la voix avec le SDK Python grâce à des exemples de code pas à pas.
Actualisé 12 mai 2026  · 9 min lire

Jusqu'en mars 2026, Mistral n'avait déployé que la moitié d'une chaîne vocale. Ses modèles Voxtral Transcribe géraient le speech-to-text, mais il n'existait pas de solution pour faire l'inverse. Si vous vouliez que votre application parle, il fallait passer par un autre fournisseur : ElevenLabs pour un clonage de voix expressif, TTS-1 d'OpenAI pour une intégration minimaliste, ou Neural2 de Google Cloud si vous étiez déjà dans cet écosystème.

Voxtral TTS comble ce vide. Il s'agit du premier modèle texte-vers-parole de Mistral, un système de 4,1 milliards de paramètres qui génère de la voix dans neuf langues à partir d'une courte référence audio. Les poids du modèle sont disponibles sur Hugging Face, et l'API cloud est en production à 0,016 $ pour 1 000 caractères, avec des poids ouverts pour l'auto-hébergement.

Point de nomenclature : les modèles Voxtral de juillet 2025 sont des modèles speech-to-text. Voxtral TTS, publié le 26 mars 2026, fait le chemin inverse.

Qu'est-ce que Voxtral TTS ?

Voxtral TTS est un modèle de synthèse vocale qui convertit du texte en audio parlé dans neuf langues : anglais, français, allemand, espagnol, néerlandais, portugais, italien, hindi et arabe. Vous pouvez utiliser l'une des 20 voix prédéfinies ou fournir un extrait audio de référence pour cloner la voix d'un locuteur. Pour le clonage, Mistral recommande des extraits de 5 à 25 secondes, avec un minimum accepté de 3 secondes.

L'argument principal de Mistral : une empreinte mémoire réduite pour ce qu'il présente comme une qualité de pointe. Les poids BF16 par défaut sur Hugging Face pèsent environ 8 Go, et l'auto-hébergement requiert un GPU avec au moins 16 Go de VRAM pour couvrir l'inférence. L'article de recherche indique que des versions quantifiées peuvent descendre à environ 3 Go, mais ce ne sont pas les éditions par défaut. Pierre Stock, VP Science chez Mistral, a indiqué à VentureBeat que le modèle peut même tourner sur smartphone, mais cela dépend de la quantification et je n'ai pas pu le vérifier indépendamment.

Le modèle prend également en charge ce que Mistral appelle « Voice-as-an-instruction ». Plutôt que de s'appuyer sur des balises SSML ou des étiquettes d'émotions explicites pour contrôler le rendu, Voxtral TTS infère le ton, le rythme et l'interprétation émotionnelle directement à partir de la voix de référence fournie. Fournissez un extrait où la personne parle avec entrain, et la génération tendra à refléter cette énergie. C'est une approche différente d'ElevenLabs, qui utilise des étiquettes d'émotion explicites pour guider la génération.

Aperçu de l'architecture

Voxtral TTS est un modèle transformeur, auto-régressif, de type flow-matching, bâti sur Ministral 3B. Il comporte trois briques : un backbone décodeur transformeur de 3,4 Md de paramètres qui prédit des jetons sémantiques à partir du texte et de la voix ; un transformeur acoustique flow-matching de 390 M de paramètres qui convertit ces jetons en représentations audio ; et un codec audio neuronal de 300 M de paramètres conçu par Mistral, fonctionnant à 12,5 Hz avec des trames de 80 millisecondes. Le codec assure l'efficacité de la représentation audio : il opère dans un espace latent fortement compressé, ce qui permet au modèle complet (4,1 Md) de générer un audio de haute qualité tout en maintenant ~8 Go de poids en BF16.

Schéma présentant les trois composants de l'architecture Voxtral TTS : backbone décodeur transformeur, transformeur acoustique flow-matching et codec audio neuronal transformant une entrée texte+voix en sortie audio

Aperçu de l'architecture de Voxtral TTS. Source : Mistral AI.

Cette chaîne en trois étapes rend également le clonage vocal possible : le codec capture les caractéristiques du locuteur dans l'espace latent, que le backbone et le transformeur acoustique réutilisent pour reproduire cette voix sur un nouveau texte.

Clonage vocal zero-shot

Avec le clonage, vous fournissez un court extrait de référence et le modèle génère une voix qui reprend l'accent, l'intonation et le rythme du locuteur, y compris les pauses naturelles et le phrasé.

La capacité translinguistique m'a surpris : si vous fournissez une référence vocale en français et tapez un prompt en allemand, le modèle a tendance à produire de l'allemand qui ressemble à la même voix, en conservant l'accent et une partie des caractéristiques vocales. Le modèle n'a pas été explicitement entraîné pour cela : c'est un comportement émergent, utile pour la traduction speech-to-speech quand on souhaite préserver la voix source.

Point pratique : le clonage de voix personnalisé requiert l'API Mistral. La version en poids ouverts se limite aux 20 voix préréglées. Pour cloner une voix spécifique en auto-hébergé, il faut utiliser l'endpoint de création de voix de l'API.

Benchmarks de Voxtral TTS

Les données de benchmark ci-dessous proviennent des évaluations internes de Mistral. Le modèle est suffisamment récent pour qu'à la date de rédaction, aucun benchmark indépendant n'ait encore été publié. Le Leaderboard Speech Arena d'Artificial Analysis, un classement TTS indépendant, n'intègre pas encore Voxtral TTS.

Mistral a utilisé des évaluations de préférence humaine plutôt que des métriques automatiques comme le MOS (Mean Opinion Score), arguant dans l'article de recherche que ces scores capturent mal la naturalité selon les langues et cultures. Les tests sont des écoutes en aveugle menées par des annotateurs natifs sur les neuf langues supportées.

Avec les voix phares intégrées à chaque modèle, Voxtral TTS a été préféré dans 58,3 % des comparaisons. En clonage vocal zero-shot, où les deux modèles reçoivent le même court extrait de référence, ce taux monte à 68,4 %. L'écart est le plus marqué en hindi (environ 80 %) et en espagnol (environ 88 %). Le néerlandais constitue un point faible, à 49,4 %, ce qui donne un avantage à ElevenLabs Flash v2.5 sur cette langue.

Histogramme de Mistral AI montrant les taux de victoire de Voxtral TTS face à ElevenLabs Flash v2.5 en préférence humaine, voix phares et clonage

Résultats de préférence humaine issus des évaluations Mistral. Source : Mistral AI.

Mistral a également testé l'orientation émotionnelle, cette fois contre ElevenLabs v3 et Gemini 2.5 Flash TTS plutôt que Flash v2.5. Face à ElevenLabs v3, les deux modèles sont globalement à égalité sur l'orientation explicite ; Voxtral garde un léger avantage sur l'implicite. Face à Gemini 2.5 Flash TTS, Gemini domine à environ 65 %, meilleur sur ce comparatif. Ces chiffres, comme tous ceux de cette section, proviennent du papier de Mistral.

Côté latence, Mistral annonce 70 ms sur un seul NVIDIA H200. Le temps jusqu'au premier audio en bout-en-bout via l'API est d'environ 0,8 seconde en PCM et 1,5 à 2 secondes en MP3.

Tester Voxtral TTS : exemples concrets

Je me suis concentré sur trois scénarios : d'abord, la tenue d'une voix préréglée pour une narration générale, et la naturalité là où les TTS déraillent souvent ; ensuite, la fidélité du clonage avec un court extrait et l'impact de sa durée ; enfin, l'effet du format de sortie sur la latence en pratique.

Mise en place

Commencez par installer le SDK Python officiel et configurer votre clé d'API. Il vous faut un compte Mistral avec facturation activée.

pip install mistralai

Définissez votre clé d'API en variable d'environnement :

export MISTRAL_API_KEY="your-api-key-here"

Exemple 1 : génération vocale basique

Les voix préréglées couvrent l'anglais américain et britannique, ainsi que des variantes du français. C'est un bon point de départ pour la narration générale lorsque l'identité du locuteur importe peu.

Playground Mistral Studio pour Voxtral TTS. Image : auteur.

Voici la version la plus simple avec une voix préréglée :

import base64
import os
from pathlib import Path
from mistralai.client import Mistral

client = Mistral(api_key=os.getenv("MISTRAL_API_KEY"))

# Générer de l'audio à partir de texte
response = client.audio.speech.complete(
    model="voxtral-mini-tts-2603",
    input="Welcome to Voxtral TTS. This is a basic speech generation test.",
    voice_id="your-voice-id",  # Utilisez un ID de voix de votre compte
    response_format="mp3",
)

# Enregistrer le fichier audio
Path("basic_output.mp3").write_bytes(base64.b64decode(response.audio_data))
print("Saved to basic_output.mp3")

Deux points d'attention : la méthode s'appelle .complete() et non .create() si vous venez de l'API TTS d'OpenAI. La réponse contient l'audio encodé en base64 dans response.audio_data, à décoder avant l'écriture sur disque.

Premier vérification : la chute en fin de phrase. Beaucoup de TTS marquent un abaissement mécanique au point final, cadence plate qui trahit l'artifice. Ici, ça tient la route. Surprenant aussi : les pauses à la virgule ; les systèmes plus économiques en font souvent des arrêts francs, mais le phrasé reste fluide. La prononciation est juste de bout en bout, y compris sur le mot « Voxtral », où j'attendais un accroc.

Exemple 2 : créer une voix personnalisée

Quand l'identité du locuteur compte, l'API permet de créer un profil de voix réutilisable à partir d'un court extrait de référence.

import base64
import os
from pathlib import Path
from mistralai.client import Mistral

client = Mistral(api_key=os.getenv("MISTRAL_API_KEY"))

# Encoder l'audio de référence en base64
sample_audio_b64 = base64.b64encode(
    Path("reference_voice.mp3").read_bytes()
).decode()

# Créer un profil de voix réutilisable
voice = client.audio.voices.create(
    name="my-custom-voice",
    sample_audio=sample_audio_b64,
    sample_filename="reference_voice.mp3",
    languages=["en"],
    gender="male",
)

print(f"Created voice with ID: {voice.id}")

# Générer de l'audio avec la voix clonée
response = client.audio.speech.complete(
    model="voxtral-mini-tts-2603",
    input="This sentence was generated using a cloned voice from just a few seconds of reference audio.",
    voice_id=voice.id,
    response_format="mp3",
)

Path("cloned_output.mp3").write_bytes(base64.b64decode(response.audio_data))
print("Saved to cloned_output.mp3")

Sortie de terminal montrant la création réussie d'un profil vocal personnalisé et la génération d'un audio cloné via le SDK Python Voxtral TTS

Sortie terminal du script de clonage de voix. Image : auteur.

Premier essai avec un extrait d'environ trois secondes : le rendu est plausible mais générique ; la tessiture est bonne, mais sans les inflexions qui rendent une voix identifiable. En passant à huit secondes, la différence est nette : l'accent, le rythme et la légère montée en fin de question sont capturés, là où le court extrait aplanissait tout.

La voix clonée n'est pas identique à la source, mais on reconnaît le même registre et un tempo similaire. D'après mes tests, 8 à 15 secondes offrent un bon compromis entre effort et qualité.

Exemple 3 : comparer les formats pour la latence

Le format de sortie influe sur la vitesse d'arrivée du premier chunk audio. J'ai testé deux formats.

import os
import time
from mistralai.client import Mistral

client = Mistral(api_key=os.getenv("MISTRAL_API_KEY"))

text = "This is a latency test comparing PCM and MP3 output formats from Voxtral TTS."
voice_id = "your-voice-id"


def time_to_first_chunk(response_format):
    start = time.time()
    stream = client.audio.speech.complete(
        model="voxtral-mini-tts-2603",
        input=text,
        voice_id=voice_id,
        response_format=response_format,
        stream=True,
    )
    for _ in stream:
        return time.time() - start  # return on first chunk


pcm_time = time_to_first_chunk("pcm")
mp3_time = time_to_first_chunk("mp3")

print(f"PCM latency: {pcm_time:.2f}s")
print(f"MP3 latency: {mp3_time:.2f}s")

Sortie de terminal de example_3_latency.py indiquant 0,86 s en PCM et 1,57 s en MP3, soit 0,71 s d'écart

Comparaison de latence entre deux formats de sortie. Image : auteur.

J'ai commencé par le MP3, format par défaut de beaucoup de workflows audio. Le résultat est exploitable à 1,5 – 2 secondes, mais pour un agent vocal, la pause avant le démarrage est perceptible. La doc de Mistral cite jusqu'à 3 secondes en MP3 ; je ne l'ai pas constaté, mais le réseau peut varier. Le PCM descend à 0,6 – 0,9 seconde, en ligne avec la valeur annoncée (~0,8 s).

En contrepartie, le PCM est brut et non compressé ; votre application doit le gérer ou le convertir avant une lecture standard. Si vous enregistrez un fichier ou ciblez un lecteur audio classique, le MP3 est plus simple. Si vous contrôlez toute la chaîne audio (agent vocal), le PCM est le choix pragmatique pour la latence.

L'API prend en charge cinq formats : MP3, WAV, PCM (float32 brut), FLAC et Opus. Le modèle génère jusqu'à deux minutes d'audio en un seul passage. Pour du plus long, l'API gère automatiquement via le « smart interleaving » : le texte est fragmenté, chaque morceau est synthétisé, puis les segments sont enchaînés sans blanc audible.

J'ai également réalisé une petite application Streamlit qui regroupe ces trois exemples dans une seule interface. Voici un aperçu rapide de son fonctionnement :

L'intégralité du code de ce tutoriel est disponible dans ce dépôt GitHub.

Tarification de Voxtral TTS

Voxtral TTS coûte 16 $ par million de caractères via l'API cloud. Un palier gratuit est disponible pour les tests, et les poids ouverts sur Hugging Face sont gratuits pour un usage non commercial sous licence CC BY-NC 4.0.

Voici une comparaison avec les principales alternatives au début de 2026.

Fournisseur

Modèle

Prix pour 1 M de caractères

Poids ouverts

Mistral

Voxtral TTS

$16

Oui (non commercial)

OpenAI

TTS-1

$15

Non

OpenAI

TTS-1-HD

$30

Non

Google Cloud

Neural2

$16

Non

Google Cloud

Chirp 3 HD

$30

Non

Amazon Polly

Neural

$16

Non

Azure Speech

Neural TTS

$15-16

Non

Deepgram

Aura-2

$30

Non

ElevenLabs

Flash v2.5

~$25-110 (selon l'offre)

Non

Voxtral TTS s'aligne sur les fournisseurs cloud de milieu de gamme en termes de prix, pas sur l'entrée de gamme. Mistral l'a présenté comme « une fraction de tout le reste sur le marché », ce qui est surtout vrai face à ElevenLabs. Face à OpenAI TTS-1, Google Neural2 et Amazon Polly, le tarif est sensiblement le même.

Les poids ouverts font la différence : aucun autre acteur du tableau ne propose de poids auto-hébergeables. Pour des projets non commerciaux, cela signifie un déploiement local gratuit via vLLM-Omni. Pour les entreprises, Mistral propose des options on-premise via sa plateforme Forge.

La contrepartie, c'est la couverture linguistique : neuf langues contre plus de 70 chez ElevenLabs. Si votre cas d'usage dépasse cette liste, l'écart compte.

Conclusion

Dans ce tutoriel, nous avons parcouru trois exemples d'API : génération basique, clonage de voix et impact du format sur la latence. Et ce n'est qu'un début.

Que vous construisiez un agent vocal, un outil de narration multilingue ou une solution où l'audio doit rester sur votre infrastructure, Voxtral TTS est une option sérieuse à évaluer. Avant la mise en production, gardez à l'esprit que les benchmarks sont auto-déclarés, que la licence CC BY-NC limite l'auto-hébergement commercial, et que l'auto-hébergement passe actuellement par vLLM-Omni. La documentation Mistral et l'article de recherche sont de bons points de départ.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Je suis ingénieur de données et créateur de communautés. Je travaille sur les pipelines de données, le cloud et les outils d'IA, tout en rédigeant des tutoriels pratiques et percutants pour DataCamp et les développeurs émergents.

FAQs

Voxtral TTS nécessite-t-il des GPU ?

Pour l'API cloud, non. Des exigences GPU apparaissent uniquement si vous auto-hébergez les poids ouverts. Les poids BF16 par défaut font environ 8 Go et nécessitent au moins 16 Go de VRAM pour l'inférence. L'article de recherche mentionne une version quantifiée autour de 3 Go, mais ce n'est pas la release par défaut sur Hugging Face.

Puis-je utiliser les poids ouverts à des fins commerciales ?

Les poids sont sous licence CC BY-NC 4.0, donc usage non commercial uniquement. L'API cloud n'impose pas cette restriction. Pour un déploiement commercial on-premise, Mistral propose des licences entreprise. Notez que leurs modèles speech-to-text utilisent la licence Apache 2.0 plus permissive, ce qui est un autre cas de figure.

Comment Voxtral TTS gère-t-il les langues non prises en charge ?

Il ne renvoie pas d'erreur. D'après les retours, les langues non prises en charge donnent un rendu dégradé sans avertissement. Vérifiez la langue de votre côté avant d'envoyer la requête.

Puis-je utiliser Voxtral TTS pour des agents vocaux en temps réel ?

Oui. Le temps jusqu'au premier audio est d'environ 0,8 seconde en PCM et 1,5 à 2 secondes en MP3, selon les chiffres de Mistral et mes propres tests. C'est exploitable pour des agents vocaux, mais le PCM est à privilégier si la réactivité compte.

La qualité du clonage vocal varie-t-elle selon la langue ?

Oui. D'après les évaluations de Mistral, l'hindi et l'espagnol donnent les meilleurs résultats, tandis que le néerlandais est en retrait. Ces données sont auto-déclarées ; à prendre comme indicatives, mais utiles si vous ciblez une langue précise.

Sujets

Formez-vous à l'IA avec DataCamp

Cours

Comprendre l'intelligence artificielle

2 h
394.5K
Découvrez les bases de l’intelligence artificielle : machine learning, deep learning, NLP, IA générative et bien plus encore.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Contenus associés
cursor ai code editor

Tutoriel

Cursor AI : Un guide avec 10 exemples pratiques

Apprenez à installer Cursor AI sur Windows, macOS et Linux, et découvrez comment l'utiliser à travers 10 cas d'utilisation différents.

Tutoriel

Tableaux Python

Tableaux Python avec exemples de code. Découvrez comment créer et imprimer des tableaux à l'aide de Python NumPy dès aujourd'hui.
DataCamp Team's photo

DataCamp Team

Tutoriel

Données JSON Python : Un guide illustré d'exemples

Apprenez à utiliser JSON en Python, notamment la sérialisation, la désérialisation, le formatage, l'optimisation des performances, la gestion des API, ainsi que les limites et les alternatives de JSON.
Moez Ali's photo

Moez Ali

Tutoriel

30 astuces Python pour améliorer votre code, accompagnées d'exemples

Nous avons sélectionné 30 astuces Python intéressantes que vous pouvez utiliser pour améliorer votre code et développer vos compétences en Python.
Kurtis Pykes 's photo

Kurtis Pykes

Tutoriel

Tutoriel et exemples sur les fonctions et méthodes des listes Python

Découvrez les fonctions et méthodes des listes Python. Veuillez suivre les exemples de code pour list() et d'autres fonctions et méthodes Python dès maintenant.
Abid Ali Awan's photo

Abid Ali Awan

Tutoriel

Python Switch Case Statement : Guide du débutant

Découvrez le match-case de Python : un guide sur sa syntaxe, ses applications en data science, ML, et une analyse comparative avec le switch-case traditionnel.
Matt Crabtree's photo

Matt Crabtree

Voir plusVoir plus