Cette rubrique documente les événements client-serveur de l'API WebSocket Qwen-ASR Realtime. Chaque section détaille un type d'événement, ses paramètres et les réponses du serveur.
Pour une présentation des fonctionnalités et des exemples de code complets, consultez Reconnaissance vocale en temps réel - Qwen. Pour les événements serveur-client, reportez-vous à Événements serveur pour Qwen-ASR-Realtime.
Cycle de vie des événements
Une session typique suit la séquence suivante :
- Établissez une connexion WebSocket.
- Envoyez
session.updatepour configurer le format audio, la langue et les paramètres VAD. - Envoyez
input_audio_buffer.appendde manière répétée pour transmettre les données audio en flux continu. - En mode manuel, envoyez
input_audio_buffer.commitpour déclencher la reconnaissance d'une phrase complète. En mode VAD, le serveur déclenche automatiquement la reconnaissance. - Envoyez
session.finishpour terminer la session, puis fermez la connexion après réception de la réponsesession.finished.
session.update
Configure la session. Envoyez cet événement immédiatement après l'établissement de la connexion WebSocket pour définir le format audio, la langue et les paramètres VAD. En cas d'omission, les valeurs par défaut s'appliquent.
En cas de succès, le serveur répond par un événement session.updated.
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| type | string | Oui | Valeur fixe : session.update. |
| event_id | string | Oui | ID d'événement unique. |
| session | object | Oui | Objet de configuration de la session. Consultez le tableau de configuration de la session ci-dessous. |
Configuration de la session
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| input_audio_format | string | Non | Format d'encodage audio. Valeurs valides : pcm, opus. Par défaut : pcm. |
| sample_rate | integer | Non | Taux d'échantillonnage audio en Hz. Valeurs valides : 16000, 8000. Par défaut : 16000. La valeur 8000 entraîne un suréchantillonnage côté serveur vers 16 000 Hz (léger délai). Réservez la valeur 8000 aux sources audio nativement échantillonnées à 8 000 Hz, comme la téléphonie. |
| input_audio_transcription | object | Non | Paramètres de reconnaissance vocale. |
| input_audio_transcription.language | string | Non | Langue de l'audio. Consultez le tableau des langues prises en charge ci-dessous. |
| input_audio_transcription.corpus.text | string | Non | Texte contextuel pour le biais contextuel : texte d'arrière-plan, vocabulaires d'entités ou documents de référence améliorant la précision de la reconnaissance. Maximum : 10 000 tokens. |
| turn_detection | object | Non | Configuration VAD. Définissez ce paramètre sur null pour le mode manuel. Si ce paramètre est présent, le mode VAD est activé. |
| turn_detection.type | string | Obligatoire si turn_detection est défini | Valeur fixe : server_vad. |
| turn_detection.threshold | float | Non | Seuil de sensibilité VAD. Par défaut : 0.2. Plage valide : [-1, 1]. Des valeurs plus faibles augmentent la sensibilité (risque de déclenchement sur le bruit ambiant). Des valeurs plus élevées réduisent la sensibilité et évitent les faux positifs dans les environnements bruyants. Consultez les préréglages VAD recommandés ci-dessous. |
| turn_detection.silence_duration_ms | integer | Non | Durée du silence en millisecondes marquant la fin d'une phrase. Par défaut : 800. Plage valide : [200, 6000]. Des durées plus courtes (ex. : 300 ms) accélèrent les réponses mais peuvent scinder les pauses naturelles. Des durées plus longues (ex. : 1 200 ms) gèrent mieux les pauses mais augmentent la latence. Consultez les préréglages VAD recommandés ci-dessous. |
Préréglages VAD recommandés
Utilisez ces préréglages comme points de départ et ajustez-les selon vos résultats :
| Préréglage | threshold | silence_duration_ms | Idéal pour |
|---|---|---|---|
| Faible latence | 0.0 | 400 | Interactions rapides telles que les commandes vocales ou l'assistance par agent, où la réactivité prime sur la gestion des pauses longues |
| Équilibré (par défaut) | 0.2 | 800 | Transcription polyvalente offrant un compromis entre réactivité et précision |
Langues prises en charge
| Code | Langue |
|---|---|
| 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 |
| cs | Tchèque |
| da | Danois |
| fil | Filipino |
| fi | Finnois |
| is | Islandais |
| ms | Malais |
| no | Norvégien |
| pl | Polonais |
| sv | Suédois |
Exemple
{
"event_id": "event_123",
"type": "session.update",
"session": {
"input_audio_format": "pcm",
"sample_rate": 16000,
"input_audio_transcription": {
"language": "zh"
},
"turn_detection": {
"type": "server_vad",
"threshold": 0.0,
"silence_duration_ms": 400
}
}
}
input_audio_buffer.append
Transmet un segment audio au tampon d'entrée du serveur. Cet événement constitue le mécanisme principal d'envoi de données audio.
Le comportement varie selon le mode d'interaction :
- Mode VAD : Le serveur surveille l'activité vocale dans le tampon et déclenche automatiquement la reconnaissance.
- Mode manuel : Le client contrôle les limites des phrases. Envoyez des segments plus petits pour réduire la latence.
ImportantLe champ audio contient des données encodées en Base64. En mode manuel, la taille maximale par événement est de 15 Mio. Le serveur n'envoie aucune confirmation.
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| type | string | Oui | Valeur fixe : input_audio_buffer.append. |
| event_id | string | Oui | ID d'événement unique. |
| audio | string | Oui | Données audio encodées en Base64. |
Exemple
{
"event_id": "event_2728",
"type": "input_audio_buffer.append",
"audio": "<Base64-encoded-audio-data>"
}
input_audio_buffer.commit
Déclenche la reconnaissance de tout l'audio présent dans le tampon en tant que phrase unique. Utilisez cet événement en mode manuel lorsque votre application contrôle les limites des phrases (par exemple, appui-pour-parler).
Cet événement est désactivé en mode VAD.
En cas de succès, le serveur répond par un événement input_audio_buffer.committed.
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| type | string | Oui | Valeur fixe : input_audio_buffer.commit. |
| event_id | string | Oui | ID d'événement unique. |
Exemple
{
"event_id": "event_789",
"type": "input_audio_buffer.commit"
}
session.finish
Termine la session. La réponse du serveur dépend de la détection vocale :
- Parole détectée : Le serveur achève la reconnaissance finale, envoie un événement conversation.item.input_audio_transcription.completed avec le résultat, puis envoie un événement session.finished.
- Aucune parole détectée : Le serveur envoie directement session.finished.
Après réception de session.finished, fermez la connexion WebSocket.
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| type | string | Oui | Valeur fixe : session.finish. |
| event_id | string | Oui | ID d'événement unique. |
Exemple
{
"event_id": "event_341",
"type": "session.finish"
}