Cette rubrique décrit les événements envoyés par le serveur au client lors d'une session WebSocket avec l'API Qwen-ASR-Realtime.
Guide utilisateur : Pour une présentation du modèle, ses fonctionnalités et des exemples de code complets, consultez Reconnaissance vocale en temps réel - Qwen.
error
Envoyé lorsque le serveur détecte une erreur côté client ou serveur.
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : error. | event_id | string | ID de l'événement. | error.type | string | Type de l'erreur. | error.code | string | Code d'erreur. | error.message | string | Message d'erreur détaillé. Pour les solutions, consultez Codes d'erreur. | error.param | string | Paramètre associé à l'erreur. | error.event_id | string | ID de l'événement lié à l'erreur. |
| {
"event_id": "event_B2uoU7VOt1AAITsPRPH9n",
"type": "error",
"error": {
"type": "invalid_request_error",
"code": "invalid_value",
"message": "Invalid value: 'whisper-1xx'. Supported values are: 'whisper-1'.",
"param": "session.input_audio_transcription.model",
"event_id": "event_123"
}
}
|
session.created
Premier événement envoyé après une connexion réussie. Il contient la configuration par défaut de la session.
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : session.created. | event_id | string | ID de l'événement. | session.id | string | ID de la session WebSocket en cours. | session.object | string | Valeur fixe : realtime.session. | session.model | string | Nom du modèle. | session.modalities | array[string] | Modalité de sortie du modèle. Valeur fixe : ["text"]. | session.input_audio_format | string | Format audio d'entrée. | session.input_audio_transcription | object | Configuration de la reconnaissance vocale. Consultez input_audio_transcription dans l'événement client session.update pour plus de détails. | session.turn_detection | object | Configuration de la détection d'activité vocale (VAD). | session.turn_detection.type | string | Valeur fixe : server_vad. | session.turn_detection.threshold | float | Seuil de détection VAD. | session.turn_detection.silence_duration_ms | integer | Durée de silence en millisecondes (ms) pour la détection de fin de phrase par le VAD. |
| {
"event_id": "event_1234",
"type": "session.created",
"session": {
"id": "sess_001",
"object": "realtime.session",
"model": "qwen3-asr-flash-realtime",
"modalities": ["text"],
"input_audio_format": "pcm16",
"input_audio_transcription": null,
"turn_detection": {
"type": "server_vad",
"threshold": 0.5,
"silence_duration_ms": 200
}
}
}
|
session.updated
Envoyé après le traitement réussi de l'événement client session.update. En cas d'erreur, un événement d'erreur est envoyé à la place.
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : session.updated. |
Pour la description des autres paramètres, consultez session.created. | {
"event_id": "event_1234",
"type": "session.updated",
"session": {
"id": "sess_001",
"object": "realtime.session",
"model": "gpt-4o-realtime-preview-2024-12-17",
"modalities": ["text"],
"input_audio_format": "pcm16",
"input_audio_transcription": null,
"turn_detection": {
"type": "server_vad",
"threshold": 0.5,
"silence_duration_ms": 200
}
}
}
|
Envoyé en mode VAD lorsque la parole débute dans le tampon audio.
Cet événement peut survenir à chaque ajout d'audio au tampon, tant que le début de la parole n'a pas encore été détecté.
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : input_audio_buffer.speech_started. | event_id | string | ID de l'événement. | audio_start_ms | integer | Temps écoulé en millisecondes entre le début de l'écriture audio dans le tampon et la première détection de parole dans la session. | item_id | string | ID de l'élément de message utilisateur qui sera créé. |
| {
"event_id": "event_B1lV7FPbgTv9qGxPI1tH4",
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 64,
"item_id": "item_B1lV7jWLscp4mMV8hSs8c"
}
|
Envoyé en mode VAD lorsque la parole se termine dans le tampon audio.
À la suite de cet événement, le serveur envoie immédiatement un événement conversation.item.created contenant l'élément de message utilisateur créé à partir du tampon audio.
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : input_audio_buffer.speech_stopped. | event_id | string | ID de l'événement. | audio_end_ms | integer | Temps écoulé en millisecondes depuis le début de la session jusqu'à l'arrêt de la parole. | item_id | string | ID de l'élément de message utilisateur créé à l'arrêt de la parole. |
| {
"event_id": "event_B3GGEYh2orwNIdhUagZPz",
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 28128,
"item_id": "item_B3GGE8ry4yqbqJGzrVhEM"
}
|
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : input_audio_buffer.committed. | event_id | string | ID de l'événement. | previous_item_id | string | ID de l'élément de conversation précédent. | item_id | string | ID de l'élément de conversation utilisateur à créer. |
| {
"event_id": "event_1121",
"type": "input_audio_buffer.committed",
"previous_item_id": "msg_001",
"item_id": "msg_002"
}
|
conversation.item.created
Envoyé lors de la création d'un nouvel élément de conversation.
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : conversation.item.created. | event_id | string | ID de l'événement. | previous_item_id | string | ID de l'élément de conversation précédent. | item | object | Élément à ajouter à la conversation. | item.id | string | ID unique de l'élément de conversation. | item.object | string | Valeur fixe : realtime.item. | item.type | string | Valeur fixe : message. | item.status | string | Statut de l'élément de conversation. | item.role | string | Rôle de l'expéditeur du message. | item.content | array[object] | Contenu du message. | item.content.type | string | Valeur fixe : input_audio. | item.content.transcript | string | Valeur fixe : null. Le résultat complet de la reconnaissance est fourni dans l'événement conversation.item.input_audio_transcription.completed. |
| {
"type": "conversation.item.created",
"event_id": "event_B3GGKbCfBZTpqFHZ0P8vg",
"previous_item_id": "item_B3GGE8ry4yqbqJGzrVhEM",
"item": {
"id": "item_B3GGEPlolCqdMiVbYIf5L",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_audio",
"transcript": null
}
]
}
}
|
conversation.item.input_audio_transcription.text
Envoyé fréquemment avec les résultats de reconnaissance en temps réel.
| Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : conversation.item.input_audio_transcription.text. | event_id | string | ID de l'événement. | item_id | string | ID de l'élément de conversation associé. | content_index | integer | Index de la partie de contenu contenant l'audio. | language | string | Langue de l'audio reconnu. Correspond au paramètre de requête language s'il est spécifié. Valeurs possibles :
- zh : Chinois (Mandarin, Sichuanais, Minnan et Wu)
- yue : Cantonais
- en : Anglais
- ja : Japonais
- de : Allemand
- ko : Coréen
- ru : Russe
- fr : Français
- pt : Portugais
- ar : Arabe
- it : Italien
- es : Espagnol
- hi : Hindi
- id : Indonésien
- th : Thaï
- tr : Turc
- uk : Ukrainien
- vi : Vietnamien
| emotion | string | Émotion détectée dans l'audio. Les émotions suivantes sont prises en charge :
surprised
neutral
happy
sad
disgusted
angry
fearful
| text | string | Préfixe de texte confirmé : partie de la phrase actuelle que le modèle a validée et ne modifiera plus. | stash | string | Suffixe de texte pré-reconnu suivant la partie confirmée. Il s'agit d'une ébauche temporaire que le modèle traite encore et qu'il peut corriger. |
| {
"event_id": "event_R7Pfu8QVBfP5HmpcbEFSd",
"type": "conversation.item.input_audio_transcription.text",
"item_id": "item_MpJQPNQzqVRc9aC9zMwSj",
"content_index": 0,
"language": "en",
"emotion": "neutral",
"text": "",
"stash": "Beijing's"
}
Pour obtenir l'aperçu complet de la phrase, concaténez : text + stash. Cliquez pour voir un exemple Par exemple, supposons qu'un utilisateur dise : « Il fait beau aujourd'hui, il y a du soleil et le ciel est dégagé. » Le tableau suivant présente le flux d'événements susceptible d'être reçu et explique comment l'interpréter : Horodatage | Progression de la parole utilisateur | Réponse API (text et stash) | Affichage UI (text + stash) |
|---|
T1 | « Il... » | text: "" stash: "Il" | Il | T2 | « ...fait... » | Text: "" stash: "Il fait" | Il fait | T3 | « ...beau aujourd'hui » | text: "Il" stash: "fait beau aujourd'hui" | Il fait beau aujourd'hui (Remarque : « Il » est confirmé et déplacé vers le champ text.) | T4 | (Courte pause) | text: "Il fait beau aujourd'hui," stash: "" | Il fait beau aujourd'hui, (La première proposition est entièrement confirmée.) | T5 | « ...il y a du soleil et... » | text: "Il fait beau aujourd'hui," stash: "il y a du soleil et" | Il fait beau aujourd'hui, il y a du soleil et | T6 | « ...le ciel est dégagé. » | text: "Il fait beau aujourd'hui," stash: "il y a du soleil et le ciel est dégagé." | Il fait beau aujourd'hui, il y a du soleil et le ciel est dégagé. | T7 | (L'utilisateur arrête de parler) | - | Utilisez le contenu de la transcription de l'événement conversation.item.input_audio_transcription.completed comme résultat final. |
|
Envoie le résultat final de la reconnaissance, marquant la fin d'un élément de conversation.
| Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : conversation.item.input_audio_transcription.completed. | event_id | string | ID de l'événement. | item_id | string | ID de l'élément de conversation associé. | content_index | integer | Index de la partie de contenu contenant l'audio. | language | string | Langue de l'audio reconnu. Correspond au paramètre de requête language s'il est spécifié. Valeurs possibles :
- zh : Chinois (Mandarin, Sichuanais, Minnan et Wu)
- yue : Cantonais
- en : Anglais
- ja : Japonais
- de : Allemand
- ko : Coréen
- ru : Russe
- fr : Français
- pt : Portugais
- ar : Arabe
- it : Italien
- es : Espagnol
- hi : Hindi
- id : Indonésien
- th : Thaï
- tr : Turc
- uk : Ukrainien
- vi : Vietnamien
| emotion | string | Émotion détectée dans l'audio. Les émotions suivantes sont prises en charge :
surprised
neutral
happy
sad
disgusted
angry
fearful
| transcript | string | Résultat de la transcription. |
| {
"event_id": "event_B3GGEjPT2sLzjBM74W6kB",
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "item_B3GGC53jGOuIFcjZkmEQ9",
"content_index": 0,
"language": "en",
"emotion": "neutral",
"transcript": "What's the weather like today?"
}
|
Envoyé lorsque la reconnaissance de l'audio d'entrée échoue. Cet événement est traité séparément des autres événements error afin d'identifier l'élément spécifique ayant échoué.
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : conversation.item.input_audio_transcription.failed. | item_id | string | ID de l'élément de conversation associé. | content_index | integer | Index de la partie de contenu contenant l'audio. | error.code | string | Code d'erreur. | error.message | string | Message d'erreur. | error.param | string | Paramètre associé à l'erreur. |
| {
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
|
session.finished
Session terminée ; toute la reconnaissance audio est achevée.
Envoyé après que le client a émis l'événement session.finish. Le client peut se déconnecter après réception de cet événement.
Paramètre | Type | Description |
|---|
type | string | Type de l'événement. Valeur fixe : session.finished. | event_id | string | ID de l'événement. |
| {
"event_id": "event_2239",
"type": "session.finished"
}
|