Referencia de eventos del cliente de Qwen-Audio-Realtime API.
Guía del usuario: Conversación de voz en tiempo real (Qwen-Audio-Realtime). Para conocer la secuencia de interacción de eventos, consulte Conexión mediante WebSocket.
Para usar el SDK de WebSocket, consulte SDK de Android, SDK de iOS y SDK de HarmonyOS. Para seleccionar un modelo y un protocolo, consulte Descripción general.
Descripción: Después de establecer una conexión, envíe este evento para actualizar la configuración predeterminada de la sesión. Incluya solo los campos que want cambiar; los campos omitidos conservan sus valores actuales. Si algún parámetro no es válido, el servidor devuelve un error. Si todos los parámetros son válidos, el servidor aplica los cambios y devuelve la configuración completa.
Descripción: para la conexión mediante WebSocket, agrega datos de audio al búfer de entrada. Envíe datos continuamente a intervalos cortos, por ejemplo, un fotograma cada 20~40 ms. El servidor no confirma la recepción de este evento.
Descripción: Solo modo Push-to-talk. Confirma el audio almacenado en el búfer como un mensaje de usuario. Esto no activa automáticamente la inferencia. Envíe
Descripción: para la conexión mediante WebSocket, este evento solo tiene efecto en modo push-to-talk. Borra el audio no enviado del búfer. Se ignora en los modos server_vad / smart_turn / smart_turn_v2. El servidor responde con un evento
Descripción: Inserta un elemento de conversación en el contexto de conversación. Utilice este evento para inyectar contexto histórico o agregar contenido de texto, o para devolver resultados de Function Calling.
Descripción: Recupera un elemento de conversación almacenado en el servidor. El contenido de tipo audio en la respuesta contiene solo la transcripción (
Descripción: Elimina un elemento de conversación del contexto de conversación. El servidor confirma la eliminación con un evento
Descripción: Activa la inferencia del modelo. El comportamiento varía según el modo:
Descripción: Cancela la inferencia actual. Cualquier texto generado hasta el momento se guarda en la lista de elementos. Luego, el servidor devuelve un evento
Esta página es la referencia de eventos de Qwen-Audio-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.
session.update
Descripción: Después de establecer una conexión, envíe este evento para actualizar la configuración predeterminada de la sesión. Incluya solo los campos que want cambiar; los campos omitidos conservan sus valores actuales. Si algún parámetro no es válido, el servidor devuelve un error. Si todos los parámetros son válidos, el servidor aplica los cambios y devuelve la configuración completa.
turn_detection solo puede modificarse antes de enviar el primer audio (estado IDLE).typestring(obligatorio)Tipo de evento. Valor fijo: session.update.sessionobject (opcional)Configuración de la sesión.
Propiedades modalities array (opcional)Modalidades de salida para el modelo. Valores válidos:
string (opcional)Nombre de la voz TTS. El valor predeterminado es longanqian_v3.1 para 3.1 Plus y longanqian para 3.0 Plus/Flash. Se admiten voces del sistema y voces clonadas. Solo puede configurarse en el primer session.update; se ignora en llamadas subsiguientes.
qwen-audio-3.1-realtime-plus, configure la voz en el primer session.update, por ejemplo:boolean (opcional)Especifica si se debe habilitar la mejora de emoción en el habla. Cuando está habilitada, la voz de respuesta exhibe variaciones emocionales más pronunciadas. Valor predeterminado: true. Valores válidos: true y false.instructionsstring (opcional)Instrucciones del sistema que definen el rol del modelo, el estilo de respuesta y las preferencias de comportamiento. Aplica a toda la sesión.input_audio_formatstring (opcional)Formato de audio de entrada. Actualmente solo se admite pcm (16 kHz, 16 bits, mono) y es el valor predeterminado. Solo puede modificarse antes de enviar el primer audio (estado IDLE).output_audio_formatstring (opcional)Formato de audio de salida. Actualmente solo se admite pcm (24 kHz, 16 bits, mono) y es el valor predeterminado.input_audio_transcriptionobject (opcional)Configuración de transcripción de audio de entrada. Aplica a qwen-audio-3.1-realtime-plus.
Propiedades language string (opcional)El idioma de origen del audio de entrada.Valores válidos:
object (opcional)Configuración de audio de salida. Aplica a qwen-audio-3.1-realtime-plus.
Propiedades language string (opcional)El idioma de destino del audio de salida.Este parámetro aplica a la síntesis de voz (TTS). El modelo hace todo lo posible por producir habla en el idioma objetivo, pero esto no está garantizado, y el idioma del texto de respuesta no cambia. Para generar texto en el idioma objetivo, indique el requisito explícitamente en el prompt, por ejemplo, especificando el idioma de respuesta en instructions.Valores válidos:
integer (opcional)Número máximo de turnos de conversación (pares pregunta-respuesta) incluidos en una sola solicitud. Valores válidos: de 1 a 50. Valor predeterminado: 20.enable_searchboolean (opcional)Aplica a los modelos qwen-audio-3.1-realtime-plus, qwen-audio-3.0-realtime-plus y qwen-audio-3.0-realtime-flash.Especifica si se debe habilitar la búsqueda web. Valor predeterminado: false. Cuando está habilitada, el modelo decide si buscar en la web basándose en la consulta en tiempo real.search_options object (opcional)La configuración de búsqueda web. Este parámetro solo surte efecto cuando enable_search se establece en true.
Propiedades enable_source boolean (opcional)Especifica si se deben devolver las fuentes de los resultados de búsqueda. Establezca este parámetro en true para devolver las fuentes.array (opcional)Definiciones de herramientas para Function Calling. Una vez configuradas, el modelo decide si llamar a una herramienta basándose en la entrada del usuario.
Propiedades type string(obligatorio)Valor fijo: function.function.namestring(obligatorio)Nombre de la función de herramienta.function.descriptionstring (opcional)Descripción de la función de herramienta. El modelo utiliza esto para determinar si debe llamar a la herramienta.function.parametersobject (opcional)Descripción de los parámetros de entrada de la función de herramienta. El modelo utiliza esto para extraer los parámetros requeridos. Omita este campo si la función no toma parámetros.
Propiedades type string(obligatorio)Valor fijo: object.propertiesobject (opcional)Describe el nombre, el tipo de datos y la descripción de cada parámetro.requiredarray (opcional)Especifica qué parámetros son obligatorios.object|null (opcional)Configuración de detección de turnos. Para cambiar al modo push-to-talk, establezca este campo en null. En el modo push-to-talk, el audio debe confirmarse manualmente y la inferencia debe activarse manualmente. Si no se proporciona este campo, VAD se habilita con sus parámetros predeterminados.
Propiedades type string (opcional)Tipo de VAD. Valores válidos:
float (opcional)Sensibilidad de VAD. Solo efectiva en modo server_vad (ignorada en modo smart_turn). Valores más bajos aumentan la sensibilidad de VAD, facilitando la detección de sonidos tenues (incluido el ruido de fondo) como habla. Valores más altos disminuyen la sensibilidad, requiriendo un habla más clara y fuerte para activar la detección.Rango: [-1.0, 1.0]. Valor predeterminado: 0.5.silence_duration_msinteger (opcional)Duración mínima de silencio (en milisegundos) después de que termina el habla antes de activar una respuesta del modelo. Solo efectivo en modo server_vad (ignorado en modo smart_turn). Valores más bajos producen respuestas más rápidas pero pueden causar activaciones false durante pausas breves.Rango: [200, 6000]. Valor predeterminado: 800. Rango recomendado para conversaciones: 400-800.voiceprint_audio_urlsarray (opcional)Solo efectivo en modo smart_turn. Una lista de URL accesibles públicamente que apuntan a muestras de audio pregrabadas del usuario objetivo, utilizadas para la mejora del hablante. Una vez registrado, el modelo se fija en el hablante objetivo durante conversaciones dúplex, ignorando efectivamente otras voces y el ruido de fondo. Máximo 5 URL. Requisitos de formato de audio: PCM de 16kHz o WAV. | qwen-audio-3.1-realtime-plus, puede enviar el siguiente evento session.update para establecer el idioma de origen del audio de entrada en chino y el idioma de destino del audio de salida en inglés. |
input_audio_buffer.append
Descripción: para la conexión mediante WebSocket, agrega datos de audio al búfer de entrada. Envíe datos continuamente a intervalos cortos, por ejemplo, un fotograma cada 20~40 ms. El servidor no confirma la recepción de este evento.
typestring(obligatorio)Tipo de evento. Valor fijo: input_audio_buffer.append.audiostring(obligatorio)Datos de audio codificados en Base64. |
input_audio_buffer.commit
Descripción: Solo modo Push-to-talk. Confirma el audio almacenado en el búfer como un mensaje de usuario. Esto no activa automáticamente la inferencia. Envíe response.create para activar la inferencia manualmente.
Este evento se ignora en los modos server_vad y smart_turn.
typestring(obligatorio)Tipo de evento. Valor fijo: input_audio_buffer.commit. |
input_audio_buffer.clear
Descripción: para la conexión mediante WebSocket, este evento solo tiene efecto en modo push-to-talk. Borra el audio no enviado del búfer. Se ignora en los modos server_vad / smart_turn / smart_turn_v2. El servidor responde con un evento input_audio_buffer.cleared.
typestring(obligatorio)Tipo de evento. Valor fijo: input_audio_buffer.clear. |
conversation.item.create
Descripción: Inserta un elemento de conversación en el contexto de conversación. Utilice este evento para inyectar contexto histórico o agregar contenido de texto, o para devolver resultados de Function Calling.
Si
item.id ya existe en la conversación, se devuelve un error y el elemento no se crea.typestring(obligatorio)Tipo de evento. Valor fijo: conversation.item.create.previous_item_idstring (opcional)Especifica el elemento de conversación después del cual se inserta el nuevo elemento. Si no se proporciona, el elemento se añade al final de la conversación.itemobject(obligatorio)El elemento de conversación a crear.
Propiedades id string (opcional)Identificador único para el elemento de conversación. Si no se proporciona, el servidor genera uno automáticamente. Se devuelve un error si el ID especificado ya existe en la conversación.typestring(obligatorio)Tipo de elemento de conversación. Valores válidos:
string (obligatorio para el tipo message)Rol del mensaje. Valores válidos: system, user, assistant.contentarray (obligatorio para el tipo message)Lista de elementos de contenido del mensaje. Cada elemento contiene un campo type y los campos de datos correspondientes.
Tipos de contenido admitidos por rol system input_text: Mensaje del sistema. Campo obligatorio: text.user
output_text: Salida de texto del asistente. Campo obligatorio: text.string (obligatorio para los tipos function_call / function_call_output)Identificador único para la llamada de función, utilizado para correlacionar solicitudes y resultados.namestring (obligatorio para el tipo function_call)Nombre de la función a llamar.argumentsstring (obligatorio para el tipo function_call)Parámetros de llamada de función en formato de cadena JSON.outputstring (obligatorio para el tipo function_call_output)Resultado de ejecución de herramienta en formato de cadena JSON. | Inyectar un mensaje de texto de usuario: |
conversation.item.retrieve
Descripción: Recupera un elemento de conversación almacenado en el servidor. El contenido de tipo audio en la respuesta contiene solo la transcripción (transcript), no los datos de audio originales.
typestring(obligatorio)Tipo de evento. Valor fijo: conversation.item.retrieve.item_idstring(obligatorio)ID del elemento de conversación a recuperar. El servidor devuelve el resultado en un evento conversation.item.retrieved. |
conversation.item.delete
Descripción: Elimina un elemento de conversación del contexto de conversación. El servidor confirma la eliminación con un evento conversation.item.deleted.
typestring(obligatorio)Tipo de evento. Valor fijo: conversation.item.delete.item_idstring(obligatorio)ID del elemento de conversación a eliminar. |
response.create
Descripción: Activa la inferencia del modelo. El comportamiento varía según el modo:
- Modo Push-to-talk: Debe llamarse manualmente. Confirme primero el audio almacenado en el búfer con
input_audio_buffer.commit, o devuelva un resultadofunction_call_outputantes de activarlo. No puede llamarse mientras se está generando una respuesta. - Modo server_vad: Normalmente activado automáticamente por el servidor. Los clientes también pueden llamarlo manualmente cuando no se está generando ninguna respuesta. No puede llamarse mientras se está generando una respuesta.
- Modo smart_turn: Puede llamarse mientras se espera el siguiente turno del usuario. No puede llamarse durante un turno activo (entre
input_audio_buffer.speech_startedyresponse.done).
response reemplaza los valores predeterminados de la sesión para la ronda de inferencia actual. En escenarios de Function Calling, después de que el cliente devuelve un function_call_output, este evento activa la segunda ronda de inferencia.
En los modos server_vad y smart_turn, las inferencias activadas manualmente aún pueden ser interrumpidas por nuevo habla.
typestring(obligatorio)Tipo de evento. Valor fijo: response.create.responseobject (opcional)Reemplaza los valores predeterminados de la sesión para la ronda de inferencia actual. Si no se proporciona, se utiliza la configuración de sesión actual.
Propiedades modalities array (opcional)Reemplaza las modalidades de salida para la ronda actual. Los valores válidos son los mismos que session.update modalities.voicestring (opcional)Reemplaza la voz de TTS para la ronda actual. |
response.cancel
Descripción: Cancela la inferencia actual. Cualquier texto generado hasta el momento se guarda en la lista de elementos. Luego, el servidor devuelve un evento response.done con status=cancelled.
Se devuelve un error si no hay ninguna inferencia en curso.
typestring(obligatorio)Tipo de evento. Valor fijo: response.cancel. |