Balises d'émotion et de rythme
Les balises d’émotion et de rythme modifient la façon dont une voix prononce une partie du texte : écrivez-les directement dans input, entre crochets, par exemple [emotion=happy] ou [pace=slow]. Pour définir l’interprétation de l’ensemble de l’entrée, utilisez plutôt les instructions de style.
Pour comparer les balises aux autres façons de diriger une voix, et pour comprendre le fonctionnement des émotions dans Voxtral 2 et Voxtral 3, consultez Voix.
Syntaxe des balises
Les balises d’émotion et de rythme partagent la même syntaxe et les mêmes règles :
| Règle | Détails |
|---|---|
| Format | [emotion=<value>] ou [pace=<value>], avec une valeur issue des tableaux de cette page |
| Emplacement | Dans input, avant le texte auquel elle s’applique : au début ou au milieu d’une phrase |
| Prononcé | Non : la balise n’est pas lue à voix haute |
| Combinaison | Écrivez une balise d’émotion et une balise de rythme l’une à la suite de l’autre, par exemple [emotion=calm][pace=slow] |
| Limite | Vous ne pouvez pas utiliser plus d’une balise du même type sur la même portion de texte |
| Portée | Une balise s’applique de sa position jusqu’à la balise suivante ou jusqu’à la fin de l’entrée. |
L’émotion déduite du texte
Voxtral TTS 3 déduit l’émotion du texte lui-même : une balise n’est donc pas toujours nécessaire. Aucun des textes suivants ne contient de balise :
| Texte | Résultat |
|---|---|
| Wow I can't believe you're pregnant! This is so exciting, congratulations Corina, I'm so happy for you! | |
| What do you mean my passport won't be finished this week -- I've told you several times how I need to go to Paris for work. This is ridiculous. I can't even begin to describe how infuriating this has been. |
Utilisez une balise quand le texte seul ne porte pas l’émotion voulue, ou pour la changer au milieu du texte.
Ajouter une balise d’émotion
Placez la balise d’émotion dans input, avant le texte à prononcer avec cette émotion :
import base64
import os
from pathlib import Path
from mistralai.client import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
response = client.audio.speech.complete(
model="voxtral-mini-tts-3-0",
input="[emotion=happy]We passed the audit!",
voice_id="voice_478",
response_format="wav",
)
output = Path("happy.wav")
output.write_bytes(base64.b64decode(response.audio_data))
print(f"Saved {output.resolve()}")Émotions prises en charge
La balise d’émotion prend l’une de ces 34 valeurs :
| Émotion |
|---|
amused |
angry |
anxious |
apologetic |
appreciative |
assertive |
bored |
calm |
confident |
confused |
critical |
curious |
determined |
disappointed |
disgusted |
excited |
frustrated |
grateful |
happy |
hopeful |
playful |
proud |
reflective |
resigned |
sad |
sarcastic |
skeptical |
somber |
surprised |
tense |
tired |
urgent |
warm |
wistful |
Les balises de rythme règlent le débit de parole. Utilisez-les pour lire une mention légale plus lentement, ou pour dérouler une liste plus rapidement :
| Rythme | Effet |
|---|---|
very-slow | La voix parle beaucoup plus lentement qu’à son débit normal. |
slow | La voix parle plus lentement qu’à son débit normal. |
moderate | La voix parle à un débit modéré. |
fast | La voix parle plus rapidement qu’à son débit normal. |
very-fast | La voix parle beaucoup plus rapidement qu’à son débit normal. |
L’exemple suivant génère la même phrase pour chaque rythme :
import base64
import os
from pathlib import Path
from mistralai.client import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
for pace in ["very-slow", "slow", "moderate", "fast", "very-fast"]:
response = client.audio.speech.complete(
model="voxtral-mini-tts-3-0",
input=f"[pace={pace}]Please read the terms carefully before you sign.",
voice_id="voice_478",
response_format="wav",
)
output = Path(f"pace_{pace}.wav")
output.write_bytes(base64.b64decode(response.audio_data))
print(f"Saved {output.resolve()}")Combiner des balises avec une instruction de style
Les balises et une instruction de style agissent à des niveaux différents. Les instructions de style ne sont pas disponibles au lancement. Consultez Instructions de style.
Valeurs non prises en charge
L’API ne rejette pas une balise dont la valeur ne figure pas dans les tableaux de cette page. Une requête comme [emotion=ecstatic] renvoie une réponse normale, et la balise n’est pas prononcée.
Disfluences
Les disfluences ajoutent des sons naturels à la parole, comme des pauses, des respirations ou des rires. Écrivez-les directement dans input, entre crochets, comme les balises d’émotion et de rythme :
| Disfluence | Utilisation |
|---|---|
um | [um] |
uh | [uh] |
laugh | [laugh] |
breath | [breath] |
sigh | [sigh] |
gasp | [gasp] |
sniff | [sniff] |
cough | [cough] |
throat clearing | [throat clearing] |
yawn | [yawn] |
chuckle | [chuckle] |
laugh hard | [laugh hard] |
gasping | [gasping] |
rire | [rire] |
Cette liste n’est pas exhaustive. Les disfluences utilisent la même syntaxe que les balises d’émotion et de rythme : [disfluency] directement dans input.
Langues prises en charge
Les balises d’émotion, de rythme et de disfluence fonctionnent en anglais. Elles n’ont pas été testées en français, en allemand, en espagnol, en italien, en portugais et en hindi, mais devraient aussi y fonctionner.