Biais contextuels et vocabulaire
Les biais contextuels orientent la transcription vers les noms, les termes et les acronymes que vous attendez, pour qu'ils apparaissent orthographiés comme vous les écrivez. Vous les envoyez sous forme de liste d'entrées, chacune étant une expression clé ou une description de l'enregistrement, aussi bien en transcription de fichiers qu'en temps réel.
Pour comprendre pourquoi les noms sont mal transcrits et quand chaque type de contexte convient, consultez Vocabulaire personnalisé.
Biais avec des expressions clés
Pour corriger des termes précis, envoyez chacun d'eux comme entrée de context_bias. Une entrée peut contenir plusieurs mots, par exemple le nom d'une entreprise.
import os
from mistralai.client import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
def transcribe(context_bias=None):
with open("customer_call.wav", "rb") as audio:
return client.audio.transcriptions.complete(
model="voxtral-mini-transcribe-3-0",
file={"file_name": "customer_call.wav", "content": audio},
context_bias=context_bias,
).text
print("Without bias:", transcribe())
print("With bias: ", transcribe(["Northwind", "Quillara", "Alder Creek Design", "Rotterdam"]))L'exemple transcrit le même appel deux fois, une fois sans contexte, une fois avec. Le nom du produit et celui de l'entreprise changent :
Without bias: Thanks for calling Northwind Support. [...] I ordered two Quilliera headsets last week. [...] I also need an invoice for my company, Older Creek Design. [...]
With bias: Thanks for calling Northwind Support. [...] I ordered two Quillara headsets last week, [...] I also need an invoice for my company, Alder Creek Design. [...]Décrire l'enregistrement
Une entrée peut aussi être une phrase ou un paragraphe qui décrit l'enregistrement : son sujet, qui parle et les noms qui reviennent. Envoyez-la de la même façon qu'une expression clé.
curl https://api.mistral.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $MISTRAL_API_KEY" \
-F model=voxtral-mini-transcribe-3-0 \
-F file=@customer_call.wav \
-F "context_bias=Support call for Northwind about an order of Quillara headsets shipped from the Rotterdam warehouse and invoiced to Alder Creek Design."Listez chaque terme qui doit être correctement transcrit comme sa propre expression clé.
Utilisation en sessions en temps réel
Dans une session en temps réel, envoyez context_bias sous forme de tableau JSON de chaînes de caractères dans session.update, avant le premier fragment audio.
{
"type": "session.update",
"session": {
"audio_format": { "encoding": "pcm_s16le", "sample_rate": 24000 },
"context_bias": ["Northwind", "Quillara", "Alder Creek Design", "Rotterdam"]
}
}Le contexte s'applique à toute la session. Après le premier fragment audio, la session rejette toute modification de ses champs avec un événement error.
Transcription en temps réel contient un script complet. Dans les agents audio, définissez context_bias dans les options de reconnaissance vocale : voir Options des agents.
Format des entrées
Les deux modes acceptent les mêmes entrées, envoyées de façon différente :
| Transcription de fichiers | Session en temps réel | |
|---|---|---|
| Comment l'envoyer | Répétez le champ de formulaire context_bias une fois par entrée. En Python, passez une liste de chaînes de caractères. | Définissez context_bias comme un tableau de chaînes de caractères dans session.update. |
| Une entrée | Un terme, un nom en plusieurs mots ou une description de l'enregistrement | Identique |
| Caractères | Les espaces, les virgules et les autres signes de ponctuation sont acceptés | Identique |
| Par défaut | Aucun contexte | Aucun contexte (un tableau vide) |
| Portée | La requête | Toute la session, définie avant le premier fragment audio |
| Modèles | voxtral-mini-transcribe-3-0, voxtral-small-transcribe-3-0 | voxtral-mini-transcribe-realtime-3-0 |
Limites et erreurs
Le contexte n'a pas de budget propre : ses entrées s'ajoutent, avec l'audio, à la fenêtre de contexte du modèle. Un enregistrement long laisse moins de place au contexte ; limitez donc la liste aux termes et aux descriptions qui comptent.
Quand l'audio et le contexte dépassent ensemble la fenêtre, la requête échoue et l'API ne raccourcit pas votre liste :
| Situation | Mode | Ce que vous obtenez |
|---|---|---|
| L'audio et le contexte dépassent la fenêtre de contexte | Transcription de fichiers | |
session.update envoyé après le premier fragment audio | Session en temps réel | Un événement error : Session fields cannot be changed after audio has started. |