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.

Note

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

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ètreTypePar défautDescription
api_keystrObligatoireVotre clé API Mistral.
server_urlstr"https://api.mistral.ai"URL de base de l’API.
timeout_msint60000Délai d’expiration des requêtes qui créent et ferment les sessions.
Configuration directe ou enregistrée

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.

i
Information

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 init()

Options de l’agent

Options de l’agent

Ces options font partie de la configuration de l’agent, et vous pouvez les enregistrer dans un agent.

OptionTypePar défautDescription
llmmappingmistral-small-latestModèle qui génère les réponses.
sttmappingModè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.
ttsmappingModèle de synthèse vocale et voix (voice_id).
instructionsstrNonePrompt système de l’agent.
toolsliste d’outilsNoneOutils que l’agent peut appeler. Voir Outils.
welcome_messagestrNoneMessage que l’agent prononce à la connexion de la session.
turnmappingallow_interruptions=TrueParamètres de gestion des tours de parole, dont la possibilité pour l’utilisateur d’interrompre l’agent.
Options de session

Options de session

Ces options ne s’appliquent qu’à la session que vous ouvrez.

OptionTypePar défautDescription
agent_idstrNoneDémarrez la session à partir d’un agent enregistré.
agent_versionintLa plus récenteFigez une version précise de agent_id.
audio_interfaceAudioInterfaceNoneEntrée et sortie audio. Omettez-la pour gérer vous-même l’audio : voir Audio personnalisé.
http_headersmapping de str vers strNoneEn-têtes supplémentaires pour la requête qui crée la session.
Détection de fin de tour

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 :

ChampPlagePar défaut côté serveurRôle
start_thresholdde 0 à 10.5Dé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_thresholdde 0 à 10.5Détermine quand l’utilisateur a peut-être fini de parler. Diminuez-le si les fins anticipées se déclenchent trop souvent.
end_thresholdde 0 à 10.33Dé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_ms0 ou plus500Pause 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_ms0 ou plus3000Pause 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

Synthèse vocale

tts accepte les champs suivants :

ChampDisponibilitéDescription
modelTousModèle de synthèse vocale à utiliser : Voxtral TTS 3 (recommandé) voxtral-mini-tts-3 ou Voxtral TTS 2 voxtral-mini-tts-2603.
voice_idTousVoix à utiliser, selon le modèle. Consultez les listes ci-dessous.
phoneme_hintsVoxtral TTS 3 uniquementPrononciation de mots précis, sous forme de dictionnaire qui associe chaque mot à sa liste de phonèmes IPA.
expressivenessVoxtral TTS 3 uniquementPas 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

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

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.

VoixLangueGenrevoice_id
SheilaAnglais (États-Unis)Fémininvoice_478
MargaretAnglais (États-Unis)Fémininvoice_447
RobAnglais (États-Unis)Masculinvoice_485
JamesAnglais (États-Unis)Masculinvoice_3150
MaryAnglais (Royaume-Uni)Fémininvoice_1787
SkyAnglais (Royaume-Uni)Fémininvoice_1786
DavidAnglais (Royaume-Uni)Masculinvoice_1788
HarrietAnglais (Royaume-Uni)Fémininvoice_590
FredAnglais (Royaume-Uni)Masculinvoice_591
HugoAnglais (Royaume-Uni)Masculinvoice_3149
HowardAnglais (Royaume-Uni)Masculinvoice_3147
MarieFrançaisFémininvoice_592
ManonFrançaisFémininvoice_3137
LeaFrançaisFémininvoice_589
CamilleFrançaisFémininvoice_3141
ElenaEspagnolFémininvoice_483
HeidiAllemandFémininvoice_481
LorenzoItalienMasculinvoice_482
GabrielaPortugaisFémininvoice_480
MaryamArabeFémininvoice_479
JordiCatalanMasculinvoice_3143
AnanyaHindiFémininvoice_3139
HimanshuHindiMasculinvoice_3153
OliviaHongroisFémininvoice_3146
HarutoJaponaisMasculinvoice_3133
SungCoréenMasculinvoice_3136
JinCoréenMasculinvoice_3135
LotteNéerlandaisFémininvoice_3145
LarsNorvégienMasculinvoice_3134
LeonPolonaisMasculinvoice_3154
IrinaRoumainFémininvoice_3155
TatianaRusseFémininvoice_3132
OranTurcMasculinvoice_3138
TarasUkrainienMasculinvoice_3140
HuongVietnamienFémininvoice_3144
MeiChinoisFémininvoice_3142
Voix Voxtral TTS 2

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.

VoixLangueGenrevoice_id
PaulAnglais (États-Unis)Masculinen_paul_{neutral,sad,happy,frustrated,excited,confident,cheerful,angry}
OliverAnglais (Royaume-Uni)Masculingb_oliver_{neutral,sad,excited,curious,confident,cheerful,angry}
JaneAnglais (Royaume-Uni)Féminingb_jane_{neutral,sarcasm,confused,shameful,sad,jealousy,frustrated,curious,confident}
MarieFrançaisFémininfr_marie_{neutral,sad,happy,excited,curious,angry}
Prise de tour

Prise de tour

turn définit la façon dont l’agent partage la conversation avec l’utilisateur :

ChampDescription
allow_interruptionsIndique si l’utilisateur peut interrompre l’agent pendant qu’il parle. True par défaut.
inactivityRelances que l’agent prononce quand l’utilisateur reste silencieux.

inactivity accepte les champs suivants :

ChampTypeDescription
timeout_msintDurée de silence, en millisecondes, avant la première relance. Par défaut : 10000.
max_remindersintNombre maximal de relances avant la fin de la session. Par défaut : 2.
messagesliste de strMessages 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.

Aller plus loin

Aller plus loin