Configuration de l’agent
Cette page liste toutes les options que vous pouvez passer à client.audio.sessions.init(). Les options se répartissent en deux portées. Les options Agent définissent l’agent lui-même : ses modèles, sa voix, ses instructions, ses outils et la gestion des tours de parole. Vous pouvez les enregistrer dans un agent. Les options Session ne s’appliquent qu’à la session que vous ouvrez, comme l’agent enregistré à partir duquel démarrer ou l’interface audio à utiliser.
Les tableaux utilisent les noms Python. En TypeScript, les mêmes options sont en camelCase : api_key devient apiKey, server_url devient serverUrl, et turn.allow_interruptions devient turn.allowInterruptions.
Le client
client.audio.sessions.init() est une méthode du client généraliste Mistral. Créez le client une seule fois, puis démarrez à partir de celui-ci autant de sessions que nécessaire.
Mistral(
api_key: str,
server_url: str = "https://api.mistral.ai",
timeout_ms: int = 60000,
)| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
api_key | str | Obligatoire | Votre clé API Mistral. |
server_url | str | "https://api.mistral.ai" | URL de base de l’API. |
timeout_ms | int | 60000 | Délai d’expiration des requêtes qui créent et ferment les sessions. |
Configuration directe ou enregistrée
Passez les options de l’agent à init() à chaque fois, ce qui convient aux essais rapides, ou enregistrez-les une seule fois dans un agent, puis démarrez chaque session avec agent_id. Quand vous définissez agent_id, la configuration enregistrée sert de base, et toute option d’agent que vous passez également à init() la remplace pour cette session uniquement. L’agent enregistré ne change pas. Les options de session s’appliquent toujours. Pour un exemple, consultez Créer un agent et démarrer une session.
Dans le navigateur, vous n’appelez pas init() : c’est votre serveur qui crée la session avec client.audio.sessions.create(), qui accepte les mêmes options. Consultez le Guide navigateur.
Options de init()
Options de l’agent
Ces options font partie de la configuration de l’agent, et vous pouvez les enregistrer dans un agent.
| Option | Type | Par défaut | Description |
|---|---|---|---|
llm | mapping | mistral-small-latest | Modèle qui génère les réponses. |
stt | mapping | Modèle de reconnaissance vocale, avec en option language (code ISO 639-1 comme "fr"), context_bias (termes à privilégier), target_streaming_delay_ms (de 80 à 1200, 240 par défaut) et turn_detection (voir Détection de fin de tour). language, context_bias et turn_detection nécessitent un modèle Voxtral 3 realtime ; les autres modèles renvoient une erreur 422. | |
tts | mapping | Modèle de synthèse vocale et voix (voice_id). | |
instructions | str | None | Prompt système de l’agent. |
tools | liste d’outils | None | Outils que l’agent peut appeler. Voir Outils. |
welcome_message | str | None | Message que l’agent prononce à la connexion de la session. |
turn | mapping | allow_interruptions=True | Paramètres de gestion des tours de parole, dont la possibilité pour l’utilisateur d’interrompre l’agent. |
Options de session
Ces options ne s’appliquent qu’à la session que vous ouvrez.
| Option | Type | Par défaut | Description |
|---|---|---|---|
agent_id | str | None | Démarrez la session à partir d’un agent enregistré. |
agent_version | int | La plus récente | Figez une version précise de agent_id. |
audio_interface | AudioInterface | None | Entrée et sortie audio. Omettez-la pour gérer vous-même l’audio : voir Audio personnalisé. |
http_headers | mapping de str vers str | None | En-têtes supplémentaires pour la requête qui crée la session. |
Détection de fin de tour
Définissez stt.turn_detection pour laisser un modèle Voxtral 3 realtime décider quand l’utilisateur a fini de parler. Sans ce paramètre, l’agent utilise la détection de fin de tour par défaut du modèle. Passez {} pour utiliser les valeurs par défaut du serveur, ou définissez les champs de votre choix parmi les suivants :
| Champ | Plage | Par défaut côté serveur | Rôle |
|---|---|---|---|
start_threshold | de 0 à 1 | 0.5 | Détermine quand l’utilisateur commence ou reprend la parole. Augmentez-le si les tours démarrent trop facilement, par exemple à cause du bruit de fond. |
eager_end_threshold | de 0 à 1 | 0.5 | Détermine quand l’utilisateur a peut-être fini de parler. Diminuez-le si les fins anticipées se déclenchent trop souvent. |
end_threshold | de 0 à 1 | 0.33 | Détermine quand l’utilisateur a fini de parler. Diminuez-le pour couper moins souvent la parole aux utilisateurs, au prix d’une réponse plus tardive. |
min_silence_ms | 0 ou plus | 500 | Pause minimale avant que le tour puisse se terminer. Augmentez-la pour éviter les fins de tour trop hâtives, au prix d’une réponse plus tardive. |
end_timeout_ms | 0 ou plus | 3000 | Pause maximale au-delà de laquelle le tour se termine quoi qu’il arrive. Diminuez-la pour plafonner l’attente maximale. |
Par exemple, pour que l’agent réponde après un silence plus court :
session = await client.audio.sessions.init(
stt={
"model": "voxtral-mini-transcribe-realtime-3",
"turn_detection": {"min_silence_ms": 300},
},
)Pour connaître le rôle de chaque seuil et la configuration Agressive, plus rapide, consultez Détection des tours de parole.
Synthèse vocale
tts accepte les champs suivants :
| Champ | Disponibilité | Description |
|---|---|---|
model | Tous | Modèle de synthèse vocale à utiliser : Voxtral TTS 3 (recommandé) voxtral-mini-tts-3 ou Voxtral TTS 2 voxtral-mini-tts-2603. |
voice_id | Tous | Voix à utiliser, selon le modèle. Consultez les listes ci-dessous. |
phoneme_hints | Voxtral TTS 3 uniquement | Prononciation de mots précis, sous forme de dictionnaire qui associe chaque mot à sa liste de phonèmes IPA. |
expressiveness | Voxtral TTS 3 uniquement | Pas encore disponible : cette option est désactivée pour le moment. Elle définira l’expressivité de la voix, de 1.0 à 5.0. |
Prononciation
Utilisez phoneme_hints pour corriger la façon dont l’agent prononce des noms, des marques ou des sigles. Chaque mot est associé à une liste de phonèmes IPA. Les mots sont sensibles à la casse. Seuls les phonèmes de l’anglais sont pris en charge : un phonème hors de cet ensemble est rejeté à la création de la session ou à l’enregistrement de l’agent.
session = await client.audio.sessions.init(
tts={
"model": "voxtral-mini-tts-3",
"voice_id": "voice_447",
"phoneme_hints": {"Mistral": ["m", "ɪ", "s", "t", "ɹ", "ɑ", "l"]},
},
)Voix Voxtral TTS 3
En plus des voix Voxtral TTS 2 listées ci-dessous, Voxtral TTS 3 prend en charge les voix d’acteurs suivantes.
| Voix | Langue | Genre | voice_id |
|---|---|---|---|
| Sheila | Anglais (États-Unis) | Féminin | voice_478 |
| Margaret | Anglais (États-Unis) | Féminin | voice_447 |
| Rob | Anglais (États-Unis) | Masculin | voice_485 |
| James | Anglais (États-Unis) | Masculin | voice_3150 |
| Mary | Anglais (Royaume-Uni) | Féminin | voice_1787 |
| Sky | Anglais (Royaume-Uni) | Féminin | voice_1786 |
| David | Anglais (Royaume-Uni) | Masculin | voice_1788 |
| Harriet | Anglais (Royaume-Uni) | Féminin | voice_590 |
| Fred | Anglais (Royaume-Uni) | Masculin | voice_591 |
| Hugo | Anglais (Royaume-Uni) | Masculin | voice_3149 |
| Howard | Anglais (Royaume-Uni) | Masculin | voice_3147 |
| Marie | Français | Féminin | voice_592 |
| Manon | Français | Féminin | voice_3137 |
| Lea | Français | Féminin | voice_589 |
| Camille | Français | Féminin | voice_3141 |
| Elena | Espagnol | Féminin | voice_483 |
| Heidi | Allemand | Féminin | voice_481 |
| Lorenzo | Italien | Masculin | voice_482 |
| Gabriela | Portugais | Féminin | voice_480 |
| Maryam | Arabe | Féminin | voice_479 |
| Jordi | Catalan | Masculin | voice_3143 |
| Ananya | Hindi | Féminin | voice_3139 |
| Himanshu | Hindi | Masculin | voice_3153 |
| Olivia | Hongrois | Féminin | voice_3146 |
| Haruto | Japonais | Masculin | voice_3133 |
| Sung | Coréen | Masculin | voice_3136 |
| Jin | Coréen | Masculin | voice_3135 |
| Lotte | Néerlandais | Féminin | voice_3145 |
| Lars | Norvégien | Masculin | voice_3134 |
| Leon | Polonais | Masculin | voice_3154 |
| Irina | Roumain | Féminin | voice_3155 |
| Tatiana | Russe | Féminin | voice_3132 |
| Oran | Turc | Masculin | voice_3138 |
| Taras | Ukrainien | Masculin | voice_3140 |
| Huong | Vietnamien | Féminin | voice_3144 |
| Mei | Chinois | Féminin | voice_3142 |
Voix Voxtral TTS 2
En plus de ces voix d’acteurs, Voxtral TTS 2 prend en charge le clonage de voix instantané, qui crée une voix à partir d’un échantillon audio.
| Voix | Langue | Genre | voice_id |
|---|---|---|---|
| Paul | Anglais (États-Unis) | Masculin | en_paul_{neutral,sad,happy,frustrated,excited,confident,cheerful,angry} |
| Oliver | Anglais (Royaume-Uni) | Masculin | gb_oliver_{neutral,sad,excited,curious,confident,cheerful,angry} |
| Jane | Anglais (Royaume-Uni) | Féminin | gb_jane_{neutral,sarcasm,confused,shameful,sad,jealousy,frustrated,curious,confident} |
| Marie | Français | Féminin | fr_marie_{neutral,sad,happy,excited,curious,angry} |
Prise de tour
turn définit la façon dont l’agent partage la conversation avec l’utilisateur :
| Champ | Description |
|---|---|
allow_interruptions | Indique si l’utilisateur peut interrompre l’agent pendant qu’il parle. True par défaut. |
inactivity | Relances que l’agent prononce quand l’utilisateur reste silencieux. |
inactivity accepte les champs suivants :
| Champ | Type | Description |
|---|---|---|
timeout_ms | int | Durée de silence, en millisecondes, avant la première relance. Par défaut : 10000. |
max_reminders | int | Nombre maximal de relances avant la fin de la session. Par défaut : 2. |
messages | liste de str | Messages que l’agent prononce. Par défaut : ["Are you still there?"]. |
session = await client.audio.sessions.init(
turn={
"allow_interruptions": True,
"inactivity": {
"timeout_ms": 10000,
"max_reminders": 2,
"messages": ["Are you still there?"],
},
},
)Vous pouvez modifier instructions, tools et turn pendant qu’une session est en cours. Consultez Mettre à jour une session en cours.