Este tema describe los eventos que el servidor envía al cliente durante una sesión WebSocket con la API Qwen-ASR-Realtime.
Guía del usuario: Para obtener una descripción general del modelo, características y código de muestra completo, consulte Reconocimiento de voz en tiempo real - Qwen.
error
Se envía cuando el servidor detecta un error de cliente o de servidor.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. Fijo en error. | event_id | string | El ID del evento. | error.type | string | El tipo de error. | error.code | string | El código de error. | error.message | string | El mensaje de error específico. Para soluciones, consulte Códigos de error. | error.param | string | El parámetro relacionado con el error. | error.event_id | string | El ID del evento relacionado con el error. |
| {
"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
Se envía primero tras una conexión exitosa. Contiene las configuraciones predeterminadas de la sesión.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. Fijo en session.created. | event_id | string | El ID del evento. | session.id | string | El ID de la sesión WebSocket actual. | session.object | string | Fijo en realtime.session. | session.model | string | El nombre del modelo. | session.modalities | array[string] | La modalidad de salida del modelo. Fija en ["text"]. | session.input_audio_format | string | El formato de audio de entrada. | session.input_audio_transcription | object | Configuración para el reconocimiento de voz. Consulte input_audio_transcription en el evento session.update del cliente para más detalles. | session.turn_detection | object | La configuración de Detección de Actividad de Voz (VAD). | session.turn_detection.type | string | Fijo en server_vad. | session.turn_detection.threshold | float | El umbral de detección de VAD. | session.turn_detection.silence_duration_ms | integer | El umbral de detección de pausa entre oraciones de VAD en milisegundos (ms). |
| {
"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
Se envía después de procesar con éxito el evento session.update del cliente. En caso de error, se envía un evento de error en su lugar.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. El valor es session.updated. |
Para descripciones de los otros parámetros, consulte 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
}
}
}
|
Se envía en modo VAD cuando comienza el habla en el búfer de audio.
Puede ocurrir cada vez que se agrega audio al búfer, a menos que ya se haya detectado el inicio del habla.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. Fijo en input_audio_buffer.speech_started. | event_id | string | El ID del evento. | audio_start_ms | integer | Milisegundos desde que se comenzó a escribir audio en el búfer hasta que se detectó habla por primera vez en la sesión. | item_id | string | El ID del elemento de mensaje del usuario que se creará. |
| {
"event_id": "event_B1lV7FPbgTv9qGxPI1tH4",
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 64,
"item_id": "item_B1lV7jWLscp4mMV8hSs8c"
}
|
Se envía en modo VAD cuando el habla termina en el búfer de audio.
Después de este evento, el servidor envía inmediatamente un evento conversation.item.created que contiene el elemento de mensaje del usuario creado a partir del búfer de audio.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. Fijo en input_audio_buffer.speech_stopped. | event_id | string | El ID del evento. | audio_end_ms | integer | Milisegundos transcurridos desde el inicio de la sesión hasta que se detuvo el habla. | item_id | string | ID del elemento de mensaje del usuario creado cuando se detiene el habla. |
| {
"event_id": "event_B3GGEYh2orwNIdhUagZPz",
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 28128,
"item_id": "item_B3GGE8ry4yqbqJGzrVhEM"
}
|
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. Fijo en input_audio_buffer.committed. | event_id | string | El ID del evento. | previous_item_id | string | El ID del elemento de conversación anterior. | item_id | string | El ID del elemento de conversación del usuario que se va a crear. |
| {
"event_id": "event_1121",
"type": "input_audio_buffer.committed",
"previous_item_id": "msg_001",
"item_id": "msg_002"
}
|
conversation.item.created
Se envía cuando se crea un nuevo elemento de conversación.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo del evento. Fijo en conversation.item.created. | event_id | string | El ID del evento. | previous_item_id | string | El ID del elemento de conversación anterior. | item | object | El elemento a agregar a la conversación. | item.id | string | El ID único del elemento de conversación. | item.object | string | Fijo en realtime.item. | item.type | string | Fijo en message. | item.status | string | El estado del elemento de conversación. | item.role | string | El rol del remitente del mensaje. | item.content | array[object] | El contenido del mensaje. | item.content.type | string | Fijo en input_audio. | item.content.transcript | string | Fijo en null. El resultado completo del reconocimiento se proporciona en el evento 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
Se envía frecuentemente con resultados de reconocimiento en tiempo real.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo del evento. Fijo en conversation.item.input_audio_transcription.text. | event_id | string | El ID del evento. | item_id | string | El ID del elemento de conversación asociado. | content_index | integer | El índice de la parte de contenido que contiene el audio. | language | string | Idioma del audio reconocido. Coincide con el parámetro de solicitud language si se especifica. Valores posibles: | emotion | string | La emoción detectada en el audio. Se admiten las siguientes emociones: surprised
neutral
happy
sad
disgusted
angry
fearful
| text | string | Prefijo de texto confirmado: la parte de la oración actual que el modelo ha verificado y no cambiará. | stash | string | Sufijo de texto prerreconocido que sigue a la parte confirmada. Borrador temporal que el modelo aún está procesando y puede corregir. |
| {
"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"
}
Para obtener la vista previa completa de la oración, concatene: text + stash. Haga clic para ver un ejemplo Por ejemplo, suponga que un usuario dice: "El clima está agradable hoy, soleado y brillante". La siguiente tabla muestra el flujo de eventos que podría recibir y explica cómo interpretarlo: Marca de tiempo | Progreso del habla del usuario | Respuesta de API (texto y stash) | Visualización en UI (texto + stash) |
|---|
T1 | "The..." | text: "" stash: "The" | The | T2 | "...weather is..." | Text: "" stash: "The weather is" | The weather is | T3 | "...nice today" | text: "The" stash: "weather is nice today" | The weather is nice today (Nota: "The" está confirmado y se ha movido al campo de texto.) | T4 | (Pausa breve) | text: "The weather is nice today," stash: "" | The weather is nice today, (La primera cláusula está completamente confirmada.) | T5 | "...sunny and..." | text: "The weather is nice today," stash: "sunny and" | The weather is nice today, sunny and | T6 | "...bright." | text: "The weather is nice today," stash: "sunny and bright." | El clima está agradable hoy, soleado y brillante. | T7 | (El usuario deja de hablar) | - | Utilice el contenido de la transcripción del evento conversation.item.input_audio_transcription.completed como resultado final. |
|
Envía el resultado final de reconocimiento, marcando el fin de un elemento de conversación.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. Fijo en conversation.item.input_audio_transcription.completed. | event_id | string | El ID del evento. | item_id | string | El ID del elemento de conversación asociado. | content_index | integer | El índice de la parte de contenido que contiene el audio. | language | string | Idioma del audio reconocido. Coincide con el parámetro de solicitud language si se especifica. Valores posibles: | emotion | string | La emoción detectada en el audio. Se admiten las siguientes emociones: surprised
neutral
happy
sad
disgusted
angry
fearful
| transcript | string | El resultado de la transcripción. |
| {
"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?"
}
|
Se envía cuando falla el reconocimiento de audio de entrada. Se maneja por separado de otros eventos error para identificar el elemento fallido específico.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. Fijo en conversation.item.input_audio_transcription.failed. | item_id | string | El ID del elemento de conversación asociado. | content_index | integer | El índice de la parte de contenido que contiene el audio. | error.code | string | El código de error. | error.message | string | El mensaje de error. | error.param | string | El parámetro relacionado con el error. |
| {
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
|
session.finished
Sesión finalizada; todo el reconocimiento de audio completado.
Se envía después de que el cliente envía el evento session.finish. El cliente puede desconectarse después de recibirlo.
Parámetro | Tipo | Descripción |
|---|
type | string | El tipo de evento. El valor es session.finished. | event_id | string | El ID del evento. |
| {
"event_id": "event_2239",
"type": "session.finished"
}
|