Contrôle du texte et prononciation
Maîtriser ce que Voxtral prononce
Voxtral génère une parole naturelle à partir de texte brut, mais certaines situations nécessitent un contrôle plus fin : comment prononcer un acronyme, un numéro de téléphone, une date, ou comment insérer une pause ? Cette leçon vous donne les techniques pour contrôler précisément la sortie vocale.
Épeler les chiffres
Le modèle interprète les chiffres de manière variable. Pour garantir une prononciation correcte, épelez-les en toutes lettres :
| Écrivez | Ne pas écrire | Pourquoi |
|---|---|---|
| « deux mille vingt-six » | « 2026 » | Le modèle pourrait dire « vingt-vingt-six » |
| « zéro un, quarante-deux, trente-sept » | « 01 42 37 » | Numéro de téléphone mal prononcé |
| « quinze virgule cinq pour cent » | « 15,5% » | Symbole % non interprété |
| « trois heures quarante-cinq » | « 3h45 » | Format abrégé ambigu |
Épeler les abréviations
Les sigles et abréviations posent le même problème :
# Mauvais : le modèle pourrait prononcer "sarl" comme un mot
input_mauvais = "Notre SARL est basée à Paris."
# Bon : prononciation explicite
input_bon = "Notre Société à Responsabilité Limitée est basée à Paris."
# Alternative pour les sigles lettre par lettre
input_sigle = "Notre S.A.R.L. est basée à Paris."
Pour les sigles que vous voulez épeler lettre par lettre, ajoutez des points entre chaque lettre. Le modèle les prononcera individuellement.
Insérer des pauses
Voxtral interprète la ponctuation comme des indicateurs de pause :
- Virgule (
,) : pause courte (~200 ms) - Point (
.) : pause moyenne (~500 ms) - Points de suspension (
...) : pause longue (~800 ms) - Tiret long (
—) : pause dramatique
# Texte avec pauses contrôlées
texte = (
"Mesdames et messieurs... "
"bienvenue à cette conférence. "
"Aujourd'hui, nous allons parler — "
"d'un sujet qui va changer votre façon de travailler."
)
Le débit de parole
Le débit est principalement contrôlé par le style de l’échantillon de référence. Si votre voix source parle rapidement, la voix synthétique parlera rapidement. Mais vous pouvez influencer le débit avec le texte :
- Pour ralentir : ajoutez plus de ponctuation (virgules, points)
- Pour accélérer : réduisez la ponctuation et utilisez des phrases plus courtes
- Pour insister : mettez le mot en majuscules (ex: « C’est ABSOLUMENT essentiel »)
La limite des 300 mots
Voxtral fonctionne de manière optimale avec des textes de 300 mots maximum par requête. Au-delà :
- La qualité vocale peut se dégrader
- Les intonations peuvent devenir monotones
- Le risque d’hallucinations vocales (répétitions, mots inventés) augmente
Stratégie pour les textes longs
Découpez votre texte en segments de 200 à 300 mots, en respectant les frontières naturelles du discours :
def decouper_texte(texte, max_mots=250):
"""Découpe un texte en segments de max_mots mots."""
mots = texte.split()
segments = []
segment_courant = []
for mot in mots:
segment_courant.append(mot)
# Découper aux phrases (après un point)
if len(segment_courant) >= max_mots and mot.endswith("."):
segments.append(" ".join(segment_courant))
segment_courant = []
if segment_courant:
segments.append(" ".join(segment_courant))
return segments
# Utilisation
texte_long = "..." # Votre texte complet
segments = decouper_texte(texte_long)
for i, segment in enumerate(segments):
print(f"Segment {i + 1} : {len(segment.split())} mots")
response = client.audio.speech.complete(
model="voxtral-mini-tts-2603",
input=segment,
voice_id=voice_id,
response_format="wav",
)
# Sauvegarder chaque segment
Caractères spéciaux à éviter
Certains caractères perturbent la génération :
- Emojis : non supportés, le modèle les ignore ou les interprète de manière aléatoire
- HTML/Markdown : les balises sont prononcées comme du texte
- URLs : le modèle épelle les caractères (slash, dot, etc.) — reformulez en langage naturel
- Code : les symboles de programmation (
{},[],=>) sont mal interprétés
# Mauvais
input_mauvais = "Visitez https://mistral.ai pour en savoir plus 🎉"
# Bon
input_bon = "Visitez le site mistral point ai pour en savoir plus."
Gestion des langues mixtes
Si votre texte contient des passages dans plusieurs langues, Voxtral les gère nativement. La voix adaptera automatiquement sa prononciation :
texte_mixte = (
"Bienvenue dans notre présentation. "
"As we say in English, the sky is the limit. "
"Willkommen bei unserer Vorstellung."
)
Le modèle détecte automatiquement les changements de langue et adapte la prononciation. La qualité est optimale lorsque les langues font partie des 9 langues supportées.
Points clés à retenir
- Épelez les chiffres et les abréviations en toutes lettres pour une prononciation correcte
- Utilisez la ponctuation pour contrôler les pauses (virgule, point, points de suspension)
- Respectez la limite de 300 mots par requête pour une qualité optimale
- Évitez les emojis, le HTML, les URLs et le code dans le texte d’entrée
- Voxtral gère nativement les textes multilingues dans les 9 langues supportées