Este tema describe los eventos del servidor para la API de traducción de voz y audiovisual en tiempo real de Qwen, incluidos los tipos de eventos, parámetros y ejemplos.
Referencia: Traducción de audio y video en tiempo real - Qwen
Esta página es la referencia de eventos de Qwen-LiveTranslate-Realtime. Las definiciones de eventos se basan en la conexión mediante WebSocket. AOQ y WebRTC usan sus respectivos canales de datos para enviar y recibir eventos del modelo, y pistas de medios para transmitir medios. Primero consulte Conexión mediante WebSocket, Conexión mediante WebRTC o Conexión mediante AOQ.
error
Mensaje de error devuelto por el servidor.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es error.errorobjectInformación detallada sobre el error.
Propiedades type stringEl tipo de error.codestringEl código de error.messagestringEl mensaje de error.paramstringEl parámetro relacionado con el error, como session.modalities. |
session.created
Cuando un cliente se conecta, el servidor devuelve primero este evento con las configuraciones predeterminadas de la sesión.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es session.created.sessionobjectLa configuración de la sesión.
Propiedades id stringEl identificador único para la sesión.objectstringEl valor siempre es realtime.session.modelstringEl modelo en uso.input_modalitiesarrayAplica a qwen3.8-livetranslate-flash-realtime. Modalidades de entrada, como ["audio"].output_modalitiesarrayAplica a qwen3.8-livetranslate-flash-realtime. Modalidades de salida: ["text"] o ["text", "audio"].audioobjectAplica a qwen3.8-livetranslate-flash-realtime. Configuración de entrada y salida de audio.
Propiedades input.format objectFormato de entrada. type tiene como valor predeterminado pcm, y sample_rate tiene como valor predeterminado 16000 (Hz).input.turn_detectionobjectConfiguración de detección de turnos. Valores predeterminados: type es speaker_detection, threshold es 0.5 y silence_duration_ms es 1000.output.formatobjectFormato de salida. type tiene como valor predeterminado pcm, y sample_rate tiene como valor predeterminado 24000 (Hz).output.voicestringVoz de salida. El valor predeterminado es Tina.arrayAplica a modelos como qwen3.5-livetranslate-flash-realtime.La configuración de modalidad de salida para el modelo.voicestringAplica a modelos como qwen3.5-livetranslate-flash-realtime.La voz para el audio generado por el modelo.input_audio_formatstringAplica a modelos como qwen3.5-livetranslate-flash-realtime.El formato del audio de entrada. El valor predeterminado es pcm.sample_rateintegerAplica a modelos como qwen3.5-livetranslate-flash-realtime.La tasa de muestreo del audio de entrada, en Hz.output_audio_formatstringAplica a modelos como qwen3.5-livetranslate-flash-realtime.El formato del audio de salida. El valor predeterminado es pcm.turn_detectionobjectAplica a modelos como qwen3.5-livetranslate-flash-realtime.La configuración de VAD (Detección de Actividad de Voz).translationobject(Opcional)La configuración de traducción.
Propiedades language string (Opcional)El idioma de destino para la traducción.corpusobject(Opcional)Configuración de terminología personalizada para mejorar la precisión de la traducción de términos específicos del dominio.
Propiedades corpus.phrases object(Opcional)Un mapeo de términos del idioma origen a traducciones en el idioma destino. Para más detalles, consulte Idiomas admitidos. | Aplica a qwen3.8-livetranslate-flash-realtime.qwen3.5-livetranslate-flash-realtime: |
session.updated
Se devuelve tras una solicitud session.update exitosa. Si la solicitud falla, se devuelve un evento error en su lugar.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es session.updated.sessionobjectLa configuración de la sesión.
Propiedades id stringEl identificador único para la sesión.objectstringEl valor siempre es realtime.session.modelstringEl modelo en uso.input_modalitiesarrayAplica a qwen3.8-livetranslate-flash-realtime. Modalidades de entrada, como ["audio"].output_modalitiesarrayAplica a qwen3.8-livetranslate-flash-realtime. Modalidades de salida: ["text"] o ["text", "audio"].audioobjectAplica a qwen3.8-livetranslate-flash-realtime. Configuración de entrada y salida de audio.
Propiedades input.format objectFormato de entrada. type tiene como valor predeterminado pcm, y sample_rate tiene como valor predeterminado 16000 (Hz).input.turn_detectionobjectConfiguración de detección de turnos. Valores predeterminados: type es speaker_detection, threshold es 0.5 y silence_duration_ms es 1000.output.formatobjectFormato de salida. type tiene como valor predeterminado pcm, y sample_rate tiene como valor predeterminado 24000 (Hz).output.voicestringVoz de salida. El valor predeterminado es Tina.arrayAplica a modelos como qwen3.5-livetranslate-flash-realtime.La configuración de modalidad de salida para el modelo.voicestringAplica a modelos como qwen3.5-livetranslate-flash-realtime.La voz para el audio generado por el modelo.sample_rateinteger(Opcional)Aplica a modelos como qwen3.5-livetranslate-flash-realtime.La tasa de muestreo del audio de entrada, en Hz.input_audio_formatstringAplica a modelos como qwen3.5-livetranslate-flash-realtime.El formato del audio de entrada. El valor siempre es pcm.output_audio_formatstringAplica a modelos como qwen3.5-livetranslate-flash-realtime.El formato del audio de salida. El valor siempre es pcm.input_audio_transcriptionobjectAplica a modelos como qwen3.5-livetranslate-flash-realtime.La configuración de transcripción de audio de entrada. Se devuelve únicamente cuando el parámetro input_audio_transcription.model está configurado en la sesión.
Propiedades model stringEl modelo de reconocimiento de voz.languagestringEl idioma de reconocimiento de voz configurado.objectAplica a modelos como qwen3.5-livetranslate-flash-realtime.La configuración de VAD (Detección de Actividad de Voz). Este campo no se devuelve en modo Manual (cuando el cliente establece este parámetro en null en session.update).
Propiedades type stringEl tipo de VAD. El valor siempre es server_vad.thresholdfloatLa sensibilidad de detección VAD.prefix_padding_msintegerLa duración del audio (en milisegundos) que se conserva antes de que comience el habla, para evitar perder el inicio del discurso.silence_duration_msintegerLa duración mínima de silencio (en milisegundos) requerida después de que termine el habla para determinar que el discurso ha concluido.create_responsebooleanIndica si se debe activar automáticamente una respuesta de traducción después de que el VAD detecte que el habla ha terminado.interrupt_responsebooleanIndica si se debe interrumpir la respuesta de traducción actual que se está generando cuando el VAD detecta un nuevo turno de habla.object(Opcional)La configuración de traducción.
Propiedades language string (Opcional)El idioma de destino para la traducción.corpusobject(Opcional)Configuración de terminología personalizada para mejorar la precisión de la traducción de términos específicos del dominio.
Propiedades corpus.phrases object(Opcional)Un mapeo de términos del idioma origen a traducciones en el idioma destino.booleanIndica si se debe habilitar la clonación de voz.voice_clone_optionsobjectParámetros de control de clonación de voz. Se devuelven únicamente cuando enable_voice_clone es true.
Propiedades frequency stringLa frecuencia de clonación de voz. | Aplica a qwen3.8-livetranslate-flash-realtime.qwen3.5-livetranslate-flash-realtime: |
session.finished
La sesión ha finalizado y todas las traducciones de audio están completas.
Este evento se devuelve después de que el cliente envía session.finish. Después de recibirlo, si se requiere reproducción, el cliente debe terminar la reproducción local del audio traducido restante antes de desconectarse de forma activa.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es session.finished. |
response.created
Se devuelve cuando el servidor genera una nueva respuesta del modelo.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es response.created.responseobjectEl objeto de respuesta.
Propiedades id stringEl identificador único para la respuesta.conversation_id stringEl identificador único para la sesión actual.object stringEl tipo de objeto. Para este evento, el valor siempre es realtime.response.status stringEl estado de la respuesta. Valores válidos:
arrayModalidad de respuesta.voice stringLa voz del audio generado.output_audio_format stringEl formato del audio de salida.output arrayEste evento está actualmente vacío. |
response.done
Se devuelve una vez completada la generación de la respuesta. Contiene todos los elementos de salida excepto los datos de audio sin procesar.
event_id stringEl identificador único para este evento.type stringEl tipo de evento. El valor siempre es response.done.response objectEl objeto de respuesta.
Propiedades id stringEl identificador único para la respuesta.conversation_id stringEl identificador único para la sesión actual.object stringEl tipo de objeto. Para este evento, el valor siempre es realtime.response.status stringEl estado de la respuesta.modalities arrayLa modalidad de la respuesta.voice stringLa voz utilizada para el audio generado por el modelo.output_audio_format stringEl formato del audio de salida.output objectLa salida de la respuesta.
Propiedades id stringEl identificador único para la salida de la respuesta.type stringEl tipo de elemento de salida. Actualmente, el valor siempre es message.object stringEl tipo de objeto del elemento de salida. Actualmente, el valor siempre es realtime.item.status stringEl estado del elemento de salida.role stringEl rol del elemento de salida.content arrayEl contenido del elemento de salida.
Propiedades type stringEl tipo de contenido de salida. El valor es text para salida de texto sin formato y audio cuando la salida incluye audio.text stringEl contenido de texto de la salida.transcript stringLa transcripción de texto del contenido de audio.objectUso acumulado de tokens de la sesión hasta la respuesta actual. Cada response.done devuelve los valores acumulados en ese momento. Para obtener el total de la sesión, use el último informe de usage, sin sumar los informes.
Propiedades total_tokens integerTotal de tokens de entrada y salida, es decir, la suma de input_tokens y output_tokens.input_tokens integerNúmero de tokens de entrada.output_tokens integerNúmero de tokens de salida.input_tokens_details objectDesglose de tokens de entrada.
Propiedades text_tokens integerTokens de texto del prompt de sistema fijo del modelo. Sin costo.audio_tokens integerNúmero de tokens de audio de entrada.video_tokens integerNúmero de tokens de imagen de entrada, que se cobran como entrada de imagen.objectDesglose de tokens de salida.
Propiedades text_tokens integerNúmero de tokens de texto de salida.audio_tokens integerNúmero de tokens de audio de salida. |
response.text.delta
Aplica a qwen3.8-livetranslate-flash-realtime. Devuelve un nuevo fragmento de traducción para salida solo de texto.
event_idstringIdentificador único del evento.typestringresponse.text.delta.response_idstringID de respuesta.item_idstringID del mensaje.output_indexintegerÍndice del elemento de salida.content_indexintegerÍndice de la parte de contenido.deltastringNuevo fragmento de texto. Agregue los fragmentos en orden de llegada sin reemplazar el texto recibido anteriormente. |
response.text.text
Aplica a modelos como qwen3.5-livetranslate-flash-realtime. Para qwen3.8-livetranslate-flash-realtime, utilice response.text.delta en su lugar.
Se devuelve para salida solo de texto cuando el modelo genera texto de manera incremental.
event_idstringUn identificador único para el evento.typestringEl tipo de evento. El valor siempre es response.text.text.textstringEl texto incremental que se devuelve.response_idstringEl ID de respuesta.item_idstringUn identificador único para el elemento de mensaje.output_indexintegerActualmente, el valor siempre es 0.content_indexintegerActualmente, el valor siempre es 0.stashstringTexto temporal generado por el modelo. Concatene stash con el text actual para formar un resultado provisional. El sistema actualiza text y stash continuamente utilizando eventos response.text.text hasta que recibe un evento response.text.done. El texto completo final estará entonces disponible en el campo text. |
response.text.done
Se devuelve cuando finaliza la generación de texto para salida solo de texto, o si la respuesta se interrumpe, queda incompleta o se cancela.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es response.text.done.response_idstringEl identificador único para la respuesta.item_idstringEl identificador único para el elemento de mensaje.output_indexintegerActualmente, el valor siempre es 0.content_indexintegerActualmente, el valor siempre es 0.text stringLa salida de texto completa del modelo. |
response.audio.delta
Para la conexión mediante WebSocket, el servidor devuelve este evento cuando las modalidades de salida incluyen audio y el modelo genera datos de audio nuevos de forma incremental.
event_idstringUn identificador único para el evento.typestringEl tipo de evento. El valor siempre es response.audio.delta.response_idstringUn identificador único para la respuesta.item_idstringUn identificador único para el elemento de mensaje.output_index integerEl valor siempre es 0.content_index integerEl valor siempre es 0.delta stringLos datos de audio incrementales generados por el modelo. Los datos están codificados en Base64. |
response.audio.done
Se devuelve cuando la generación de audio ha finalizado. También se devuelve si la respuesta se interrumpe, queda incompleta o se cancela. No contiene los datos de audio completos.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. Este valor siempre es response.audio.done.response_idstringEl identificador único para la respuesta.item_idstringEl identificador único para el elemento de mensaje.output_indexintegerEl valor siempre es 0.content_indexintegerEl valor siempre es 0. |
input_audio_buffer.speech_started
Se devuelve cuando el VAD (Detección de Actividad de Voz) del lado del servidor detecta que el usuario ha comenzado a hablar.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es input_audio_buffer.speech_started.audio_start_msintegerEl punto temporal (en milisegundos) en el que se detectó el inicio del habla, como un desplazamiento desde el inicio del flujo de audio.item_idstringEl identificador único del elemento de mensaje asociado.speaker_idintegerAplica a qwen3.8-livetranslate-flash-realtime. El identificador de hablante devuelto cuando speaker_detection está habilitado. Utilice el item_id de este evento para asociar al hablante con la transcripción, y el previous_item_id del elemento de traducción para asociarlo con la traducción. |
input_audio_buffer.speech_stopped
Se devuelve cuando el VAD del lado del servidor detecta que el usuario ha dejado de hablar, lo que indica el final del turno de entrada de voz actual. Dado que la respuesta de traducción se genera sincrónicamente con la entrada de voz en streaming, la respuesta de traducción real puede haber comenzado ya durante el proceso de entrada de voz, sin necesidad de esperar a este evento.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es input_audio_buffer.speech_stopped.audio_end_msintegerEl punto temporal (en milisegundos) en el que se detectó el fin del habla, como un desplazamiento desde el inicio del flujo de audio.item_idstringEl identificador único del elemento de mensaje asociado. |
input_audio_buffer.committed
En modo Manual (turn_detection es null), después de que el cliente envía un evento input_audio_buffer.commit, el servidor devuelve este evento como confirmación y comienza automáticamente a generar la respuesta de traducción.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es input_audio_buffer.committed. |
input_audio_buffer.cleared
Después de que el cliente envía un evento input_audio_buffer.clear, el servidor devuelve este evento como confirmación de que los datos de audio no confirmados en el búfer han sido borrados.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es input_audio_buffer.cleared. |
conversation.item.created
Se devuelve cuando se crea un nuevo elemento de mensaje en la conversación. Este evento se activa en los siguientes escenarios:
- Cuando el servidor comienza a generar una respuesta de traducción, crea un elemento de mensaje de asistente correspondiente (en este punto,
contentes un arreglo vacío y el contenido se llena progresivamente con la respuesta en streaming). - En modo Manual, después de que el cliente envía un evento
input_audio_buffer.commit, el servidor crea adicionalmente un elemento de mensaje correspondiente al audio de entrada del usuario (contentcontiene{"type": "input_audio"}).
item.id del resultado de reconocimiento de voz coincide con el previous_item_id en el evento de resultado de traducción. Utilice estos valores para asociar y mostrar el texto origen con su traducción.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es conversation.item.created.previous_item_idstringEl identificador único del elemento de mensaje anterior. Para un evento de resultado de traducción, este valor coincide con el item.id del resultado de reconocimiento de voz para el mismo segmento de VAD.itemobjectLa información del elemento de mensaje.
Propiedades id stringEl identificador único para el elemento de mensaje.typestringEl valor siempre es message.objectstringEl valor siempre es realtime.item.statusstringEl estado del elemento de mensaje.rolestringEl rol del mensaje. Valores válidos: assistant o user.contentarrayEl contenido del mensaje. Cuando se crea una respuesta por primera vez, este es un arreglo vacío que se llena progresivamente con la respuesta en streaming. Para los elementos de mensaje de usuario creados mediante confirmación en modo Manual, contiene {"type": "input_audio"}. |
conversation.item.input_audio_transcription.delta
Aplica a qwen3.8-livetranslate-flash-realtime. Devuelve incrementos de transcripción de origen para el audio de entrada.
event_idstringIdentificador único del evento.typestringconversation.item.input_audio_transcription.delta.item_idstringID del mensaje.content_indexintegerÍndice de la parte de contenido.deltastringNuevo fragmento de texto. Agregue los fragmentos en orden de llegada sin reemplazar el texto recibido anteriormente. |
conversation.item.input_audio_transcription.text
Aplica a modelos como qwen3.5-livetranslate-flash-realtime. Para qwen3.8-livetranslate-flash-realtime, utilice conversation.item.input_audio_transcription.delta en su lugar.
Cuando input_audio_transcription.model está configurado, el servidor transmite resultados de reconocimiento de voz en el idioma origen original.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es conversation.item.input_audio_transcription.text.item_idstringEl identificador único para el elemento de mensaje.content_indexintegerActualmente, el valor siempre es 0.textstringEl texto de reconocimiento confirmado.stashstringEl texto de reconocimiento pendiente de confirmación. Este texto puede ser corregido por eventos posteriores.languagestringEl idioma de origen detectado.emotionstringLa emoción detectada en el audio reconocido. Las emociones admitidas son las siguientes:
|
conversation.item.input_audio_transcription.completed
Cuando input_audio_transcription.model está configurado, devuelve el resultado final de reconocimiento una vez completado el reconocimiento de voz.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. Este valor siempre es conversation.item.input_audio_transcription.completed.item_idstringEl identificador único para el elemento de mensaje.content_indexintegerActualmente, este valor siempre es 0.transcriptstringEl resultado completo del reconocimiento de voz en el idioma origen original.languagestringEl idioma de origen detectado.emotionstringLa emoción detectada en el audio reconocido. Emociones admitidas:
|
conversation.item.input_audio_transcription.failed
Se devuelve cuando se recibió audio de entrada pero falló el reconocimiento de voz. Este evento se gestiona por separado de otros eventos error, lo que facilita al cliente la identificación del elemento asociado específico.
typestringEl tipo de evento. El valor siempre es conversation.item.input_audio_transcription.failed.item_idstringEl ID del elemento de conversación asociado.content_indexintegerEl índice de la parte de contenido que contiene el audio.error.codestringEl código de error.error.messagestringEl mensaje de error. |
response.audio_transcript.delta
Aplica a qwen3.8-livetranslate-flash-realtime. Devuelve un nuevo fragmento de traducción para salida de texto y audio.
event_idstringIdentificador único del evento.typestringresponse.audio_transcript.delta.response_idstringID de respuesta.item_idstringID del mensaje.output_indexintegerÍndice del elemento de salida.content_indexintegerÍndice de la parte de contenido.deltastringNuevo fragmento de texto. Agregue los fragmentos en orden de llegada sin reemplazar el texto recibido anteriormente. |
response.audio_transcript.text
Aplica a modelos como qwen3.5-livetranslate-flash-realtime. Para qwen3.8-livetranslate-flash-realtime, utilice response.audio_transcript.delta en su lugar.
Se devuelve para la salida de audio con el fin de mostrar la traducción en tiempo real.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es response.audio_transcript.text.response_idstringEl identificador único para la respuesta.item_idstringEl identificador único para el elemento de mensaje.output_index integerActualmente, el valor siempre es 0.content_index integerActualmente, el valor siempre es 0.textstringEl segmento de texto de traducción confirmado.stashstringTexto de traducción temporal, concatenado con text para formar resultados provisionales. El sistema actualiza text y stash continuamente mediante eventos response.audio_transcript.text hasta que se recibe un evento response.audio_transcript.done. Luego, recupere la traducción final de transcript. |
response.audio_transcript.done
Se devuelve cuando la salida de audio está habilitada y la generación de texto finaliza.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. Este valor siempre es response.audio_transcript.done.response_idstringEl identificador único para la respuesta.item_idstringEl identificador único para el elemento de mensaje.output_index integerActualmente, este valor siempre es 0.content_index integerActualmente, este valor siempre es 0.transcriptstringEl texto completo. |
response.output_item.added
Se devuelve cuando se agrega un nuevo elemento de salida durante la generación de la respuesta.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es response.output_item.added.response_idstringEl identificador único para la respuesta.output_index integerActualmente, el valor siempre es 0.item objectInformación sobre el elemento de salida.
Propiedades id stringEl identificador único para el elemento de salida.typestringEl valor siempre es message.objectstringEl valor siempre es realtime.item.statusstringEl estado del elemento de salida.rolestringEl rol del mensaje.contentstringEl contenido del mensaje. |
response.output_item.done
Se devuelve cuando se completa un elemento de salida.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. El valor siempre es response.output_item.done.response_idstringEl identificador único para la respuesta.output_indexintegerActualmente, el valor siempre es 0.itemobjectInformación sobre el elemento de salida.
Propiedades id stringEl identificador único para el elemento de salida.objectstringEl valor siempre es realtime.item.typestringEl valor siempre es message.statusstringEl estado del elemento de salida.rolestringEl rol del remitente del mensaje.contentstringEl contenido del mensaje. |
response.content_part.added
Se devuelve cuando se agrega una nueva parte de contenido.
event_id stringEl ID único del evento.type stringEl tipo de evento. El valor siempre es response.content_part.added.response_id stringEl ID único de la respuesta.item_id stringEl ID único del elemento de mensaje.output_index integerEl valor siempre es 0.content_index integerEl valor siempre es 0.part objectInformación del elemento de salida.
Propiedades type stringEl tipo de la parte de contenido.text stringEl texto de la parte de contenido. |
response.content_part.done
Se devuelve cuando se completa una parte de contenido.
event_idstringEl identificador único para este evento.typestringEl tipo de evento. Este valor siempre es response.content_part.done.response_idstringEl identificador único para la respuesta.item_idstringEl identificador único para el elemento de mensaje.output_index integerEl valor siempre es 0.content_index integerEl valor siempre es 0.part objectInformación sobre la parte de contenido.
Propiedades type stringEl tipo de la parte de contenido.textstringEl texto de la parte de contenido. |