Biais contextuels : expressions clés et texte libre

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 du texte libre qui donne du contexte sur l'enregistrement, aussi bien en transcription de fichiers qu'en temps réel.

i
Information

Pour comprendre pourquoi les noms sont mal transcrits et quand chaque type de contexte convient, consultez Vocabulaire personnalisé.

Référence API — POST /v1/audio/transcriptions
Biais avec des expressions clés

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",
            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. [...]
Ajouter du texte libre

Ajouter du texte libre

Une entrée peut aussi être une phrase ou un paragraphe qui apporte du contexte supplémentaire sur l'enregistrement. Envoyez-la de la même façon qu'une expression clé. Le modèle utilise ce texte pour améliorer sa transcription.

Par exemple, si l'enregistrement est une audience au tribunal, le texte peut être des extraits des documents juridiques de l'affaire. Si l'enregistrement est la réponse d'un utilisateur à la question d'un agent, le texte peut être la question que l'agent a posée :

curl https://api.mistral.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $MISTRAL_API_KEY" \
  -F model=voxtral-mini-transcribe-3 \
  -F file=@customer_answer.wav \
  -F "context_bias=Which Quillara headset model did you order, and to which Northwind warehouse was it shipped?"
Attention

Le texte libre donne au modèle du contexte sur les mots qu’il transcrit. Ce n’est pas une instruction : ne l’utilisez pas pour demander quelque chose sur l’audio, comme transcrire les bruits de fond ou mettre en forme le texte d’un locuteur.

Astuce

Listez chaque terme qui doit être correctement transcrit comme sa propre expression clé, et ajoutez du texte libre à la même liste quand vous en avez. Dans les sessions en temps réel, le texte libre seul peut ne pas corriger un terme qu’une expression clé corrige.

Utilisation en sessions en temps réel

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.

i
Information
Format des entrées

Format des entrées

Les deux modes acceptent les mêmes entrées, envoyées de façon différente :

Transcription de fichiersSession en temps réel
Comment l'envoyerRé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éeUn terme, un nom en plusieurs mots ou du texte libre sur l'enregistrementIdentique
CaractèresLes espaces, les virgules et les autres signes de ponctuation sont acceptésIdentique
Par défautAucun contexteAucun contexte (un tableau vide)
PortéeLa requêteToute la session, définie avant le premier fragment audio
Modèlesvoxtral-mini-transcribe-3, voxtral-small-transcribe-3voxtral-mini-transcribe-realtime-3
Limites et erreurs

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 au texte 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 :

SituationModeCe que vous obtenez
L'audio et le contexte dépassent la fenêtre de contexteTranscription de fichiersUne erreur 400 de type invalid_request_prompt_too_long, dont le message indique la taille de la requête et le maximum
session.update envoyé après le premier fragment audioSession en temps réelUn événement error : Session fields cannot be changed after audio has started.
Aller plus loin

Aller plus loin