Skip to main content

Qwen-LiveTranslate-Realtime Eventos del cliente

Este tema describe los eventos del cliente para la API de traducción de voz y audiovisual en tiempo real de Qwen, incluidos 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.
Para usar el SDK de WebSocket, consulte SDK de Python y SDK de Java. Para seleccionar un modelo y un protocolo, consulte Descripción general.

session.update

Envíe este evento después de establecer una conexión WebSocket para actualizar la configuración predeterminada de la sesión. El servidor valida los parámetros y devuelve un error (si no son válidos) o la configuración actualizada (si son válidos).
typestring(Obligatorio)Tipo de evento. Debe establecerse en session.update.sessionobject(Opcional)La configuración de la sesión.
output_modalitiesarray (Opcional)Aplica a qwen3.8-livetranslate-flash-realtime. Modalidades de salida: ["text"] para solo texto o ["text", "audio"] para texto y audio (predeterminado).audioobject (Opcional)Aplica a qwen3.8-livetranslate-flash-realtime. Configuración de audio.
inputobjectConfiguración de audio de entrada.
formatobject (Opcional)Formato del audio de entrada.
typestring (Opcional)Formato de audio. Valores válidos: pcm (predeterminado) y opus.sample_rateinteger (Opcional)Frecuencia de muestreo del audio de entrada, en Hz. El valor predeterminado es 16000.
turn_detectionobject (Opcional)Configuración de detección de voz.
typestring (Opcional)Valores válidos: speaker_detection (predeterminado, habilita la diarización de hablantes en tiempo real) y server_vad (detección de actividad de voz).thresholdnumber (Opcional)El umbral de detección. En el modo speaker_detection, distingue el silencio del habla válida. Los sonidos por debajo del umbral se filtran y no se pasan al modelo. El valor está fijado en 0.5.
modalitiesarray(Opcional)Aplica a qwen3.5-livetranslate-flash-realtime.Modalidades de salida. Valores válidos:
  • ["text"] Genera salida solo de texto.
  • ["text","audio"] (Predeterminado) Genera texto y audio.
voicestring(Opcional)Voz para el audio generado. Cuando la clonación de voz está deshabilitada, establézcala en una voz preestablecida del sistema. Valores válidos: Voces admitidas. La voz predeterminada es Tina para qwen3.8-livetranslate-flash-realtime y qwen3.5-livetranslate-flash-realtime.
Cuando enable_voice_clone es true, el valor de voice depende de la configuración de voice_clone_options.frequency. Cuando frequency es once o always, establézcalo en default. Cuando frequency es never, establézcalo en el ID de voz que clonaste previamente. Usar una voz preestablecida del sistema en este caso provoca un error del servidor.
enable_voice_cloneboolean(Opcional)Indica si se debe activar la clonación de voz. El valor predeterminado es false. Cuando está activada, puede clonar la voz de entrada en tiempo real durante la traducción o usar una voz clonada previamente. En ese caso, voice ya no usa una voz predefinida del sistema. Establézcalo en default o en el ID de una voz que haya clonado previamente mediante la API de clonación de voz.voice_clone_optionsobject(Opcional)Opciones de control de clonación de voz. Surten efecto únicamente cuando enable_voice_clone es true.
frequencystring(Opcional)Frecuencia de clonación de voz. Valores válidos:
  • never Deshabilita la clonación de voz en el servidor y utiliza una voz que usted haya clonado previamente. Establezca voice en su ID de voz clonada.
  • once Clona la voz una vez al inicio de la sesión y la reutiliza para toda salida subsiguiente. Adecuado para escenarios de un solo hablante. Establezca voice en default.
  • always Reclona la voz en tiempo real antes de cada salida, adaptándose dinámicamente al audio de entrada. Adecuado para escenarios de múltiples hablantes. Establezca voice en default.
sample_rateinteger(Opcional)Aplica a qwen3.5-livetranslate-flash-realtime.Tasa de muestreo del audio de entrada, en Hz. Valores válidos:
  • 8000
  • 16000 (Predeterminado)
input_audio_transcriptionobject(Opcional)Aplica a qwen3.5-livetranslate-flash-realtime.Para qwen3.8-livetranslate-flash-realtime, ASR siempre está habilitado y no se puede deshabilitar. Las transcripciones son gratuitas.Configuración para el audio de entrada.
modelstring|null(Opcional)Modelo de reconocimiento de voz. El valor predeterminado es qwen3-asr-flash-realtime; ASR está habilitado de forma predeterminada. El servidor devuelve el resultado del reconocimiento del audio de entrada (texto original en el idioma de origen) a través de los eventos conversation.item.input_audio_transcription.text y conversation.item.input_audio_transcription.completed. Para deshabilitar ASR, establezca explícitamente este parámetro en null.Valores válidos: qwen3-asr-flash-realtime (predeterminado, habilita ASR) y null (deshabilita ASR).languagestring(Opcional)Idioma de origen para la traducción. Valores válidos: Idiomas admitidos. Si no se especifica, el modelo detecta automáticamente el idioma de origen.
input_audio_formatstring(Opcional)Aplica a qwen3.5-livetranslate-flash-realtime.Formato de audio de entrada. Valores válidos:
  • pcm (Predeterminado) Datos de audio sin procesar y sin comprimir.
  • opus Códec de audio con pérdida y soporte de baja latencia, adecuado para escenarios VoIP.
output_audio_formatstring(Opcional)Aplica a qwen3.5-livetranslate-flash-realtime.Formato de audio de salida. Actualmente, este parámetro solo puede establecerse en pcm.turn_detectionobject|null(Opcional)Aplica a qwen3.5-livetranslate-flash-realtime.Configuración de Detección de Actividad de Voz (VAD), utilizada para controlar cómo se detectan el inicio y el final del habla:
  • Establecer en un objeto de configuración (predeterminado): Habilita el modo VAD. El servidor detecta automáticamente el inicio y el final del habla, confirma el búfer de audio y activa respuestas de traducción. El cliente no necesita enviar eventos input_audio_buffer.commit.
  • Establecer en null: Habilita el modo Manual. El cliente confirma manualmente el búfer de audio enviando eventos input_audio_buffer.commit. El servidor comienza automáticamente a generar respuestas de traducción al recibir la confirmación.
typestring(Opcional)Tipo de VAD. Debe establecerse en server_vad.thresholdfloat(Opcional)Sensibilidad de detección VAD. Un valor más bajo facilita el reconocimiento de sonidos débiles (incluido el ruido de fondo) como habla; un valor más alto requiere un habla más clara y fuerte para activar la detección.Rango de valores: [-1.0, 1.0]. Valor predeterminado: 0.2.silence_duration_msinteger(Opcional)Duración mínima de silencio (en milisegundos) requerida después de que finaliza el habla. Una vez superada esta duración, el servidor determina que el habla ha terminado, confirma automáticamente el búfer de audio y activa una respuesta de traducción.Rango de valores: [200, 6000]. Valor predeterminado: 1000.
translationobject(Opcional)Configuración de traducción.
languagestring(Opcional)Idioma de destino para la traducción. Valores válidos: Idiomas admitidos. Valor predeterminado: en.same_language_skip_optionsobject(Opcional)qwen3.8-livetranslate-flash-realtime no admite este parámetro.Configuración de salida para el mismo idioma. Cuando los idiomas de origen y destino son iguales, el servicio puede omitir la salida de texto, la salida de audio o ambas. Este parámetro surte efecto únicamente cuando el idioma de destino se establece en zh o en.
skip_textboolean(Opcional)Especifica si se debe omitir la salida de texto cuando los idiomas de origen y destino son iguales.skip_audioboolean(Opcional)Especifica si se debe omitir la salida de audio cuando los idiomas de origen y destino son iguales.
corpusobject(Opcional)Configuración de palabras clave para mejorar la precisión de la traducción de términos específicos.
phrasesobject(Opcional)Mapeo de palabras clave. La clave es el término en el idioma de origen y el valor es su traducción al idioma de destino.Ejemplo: {"AI": "Artificial Intelligence"}
  • qwen3.8-livetranslate-flash-realtime
  • qwen3.5-livetranslate-flash-realtime
{
  "type": "session.update",
  "session": {
    "output_modalities": [
      "text",
      "audio"
    ],
    "audio": {
      "input": {
        "format": {
          "type": "pcm",
          "sample_rate": 16000
        },
        "turn_detection": {
          "type": "speaker_detection",
          "threshold": 0.5
        }
      }
    },
    "voice": "default",
    "enable_voice_clone": true,
    "voice_clone_options": {
      "frequency": "once"
    },
    "translation": {
      "language": "en",
      "corpus": {
        "phrases": {
          "人工智能": "Artificial Intelligence",
          "机器学习": "Machine Learning"
        }
      }
    }
  }
}

input_audio_buffer.append

Para la conexión mediante WebSocket, agrega bytes de audio al búfer de audio de entrada. El servidor usa este búfer para detectar el habla y determinar cuándo enviarlo.
typestring(Obligatorio)Tipo de evento. Debe establecerse en input_audio_buffer.append.audiostring(Obligatorio)Datos de audio codificados en Base64.
{
    "event_id": "event_xxx",
    "type": "input_audio_buffer.append",
    "audio": "xxx"
}

input_audio_buffer.commit

Confirma el búfer de audio de entrada. Este evento solo necesita enviarse en modo Manual (turn_detection establecido en null). En el modo VAD, el servidor confirma automáticamente y el cliente no necesita enviar este evento. Al recibir este evento, el servidor devuelve un evento input_audio_buffer.committed como confirmación y comienza automáticamente a generar una respuesta de traducción (no se necesita ningún evento adicional para activar la respuesta). Si el búfer de audio está vacío, el servidor devuelve un evento de error.
typestring(Obligatorio)Tipo de evento. Debe establecerse en input_audio_buffer.commit.
{
    "event_id": "event_xxx",
    "type": "input_audio_buffer.commit"
}

input_audio_buffer.clear

Borra los datos de audio no confirmados del búfer de audio de entrada.
typestring(Obligatorio)Tipo de evento. Debe establecerse en input_audio_buffer.clear.
{
    "event_id": "event_xxx",
    "type": "input_audio_buffer.clear"
}

input_image_buffer.append

Para la conexión mediante WebSocket, agrega datos de imagen al búfer de imágenes. Las imágenes pueden provenir de un archivo local o capturarse en tiempo real desde un flujo de video. Límites de entrada de imagen:
  • Formato de imagen: JPG o JPEG. Resolución recomendada para un rendimiento óptimo: 480p o 720p (máximo: 1080p).
  • Tamaño máximo de imagen: 500 KB (antes de la codificación Base64).
  • Los datos de imagen deben estar codificados en Base64.
  • Frecuencia máxima: 2 imágenes por segundo.
  • Envíe al menos un evento input_audio_buffer.append antes de enviar input_image_buffer.append.
typestring(Obligatorio)Tipo de evento. Debe establecerse en input_image_buffer.append.imagestring(Obligatorio)Datos de imagen codificados en Base64.
{
    "event_id": "event_xxx",
    "type": "input_image_buffer.append",
    "image": "xxx"
}

session.finish

Envíe este evento para finalizar la sesión actual. Respuestas del servidor:
  • Si se detecta habla: El servidor completa la traducción restante. Si la transcripción de audio de entrada está habilitada, devuelve la transcripción completa en el idioma de origen a través de conversation.item.input_audio_transcription.completed. Después de completar toda la traducción de audio, envía session.finished para indicar el final de la sesión.
  • Si no se detecta habla: El servidor envía session.finished directamente.
Después de recibir session.finished, si se requiere reproducción, el cliente debe terminar la reproducción local del audio traducido restante antes de desconectarse de forma activa.
typestring(Obligatorio)Tipo de evento. Debe establecerse en session.finish.
{
    "event_id": "event_xxx",
    "type": "session.finish"
}