Este documento describe cómo usar el SDK de Python de DashScope para llamar al modelo de traducción de audio y video en tiempo real Qwen-LiveTranslate-Realtime.
Requisitos previos
- Instale el SDK. Asegúrese de que su versión del SDK de DashScope sea 1.25.6 o posterior.
- Obtener una clave de API.
Parámetros de solicitud
-
Establezca los siguientes parámetros en el constructor de la clase
OmniRealtimeConversation.Haga clic para ver código de ejemplo
Parámetro
Tipo
Obligatorio
Descripción
modelstrSí
El nombre del modelo a utilizar. Defina este valor como
qwen3.5-livetranslate-flash-realtime(recomendado).callbackOmniRealtimeCallbackSí
Una instancia de devolución de llamada para gestionar eventos del lado del servidor.
urlstrSí
El endpoint de servicio para traducción en tiempo real:
China (Pekín):
wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtimeSingapur:
wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime
Reemplace
{WorkspaceId}con su ID de espacio de trabajo real. -
Establezca los siguientes parámetros utilizando el método
update_sessionde la claseOmniRealtimeConversation.Haga clic para ver código de ejemplo
Parámetro
Tipo
Obligatorio
Descripción
output_modalitiesList[MultiModality]No
El formato de salida para los resultados de la traducción.
Predeterminado:
[MultiModality.TEXT, MultiModality.AUDIO].Valores válidos:
[MultiModality.TEXT]: Genera salida solo de texto[MultiModality.TEXT, MultiModality.AUDIO]: Genera salida de texto y audio
voicestrNo
La voz para la salida de audio.
Predeterminado:
Qwen3.5-LiveTranslate-Flash-Realtime:
Tina
Valores válidos: Voces compatibles.
input_audio_transcription_modelstrNo
Defina este parámetro como
qwen3-asr-flash-realtimepara recibir resultados de reconocimiento de voz en el idioma de origen.translation_paramsTranslationParamsNo
Configuración de traducción (idioma objetivo y palabras clave).
enable_turn_detectionboolNo
Indica si se debe habilitar VAD (Detección de Actividad de Voz).
Valor predeterminado:
True, que habilita el modo VAD donde el servidor detecta automáticamente el inicio y fin del habla y activa la traducción.Configure como
Falsepara cambiar al modo Manual, donde el cliente envía audio manualmente mediante el métodocommit. Para descripciones detalladas de los parámetros, consulte la descripción deturn_detectionen el documento de Eventos del cliente. -
Establezca los siguientes parámetros en el constructor de la clase
TranslationParams.Haga clic para ver código de ejemplo
Parámetro
Tipo
Obligatorio
Descripción
languagestrNo
El idioma de destino para la traducción.
Predeterminado:
en.Valores válidos: Idiomas compatibles.
corpusTranslationParams.CorpusNo
Un mapeo de palabras clave para mejorar la precisión de la traducción de términos específicos.
corpus.phrasesdictNo
La tabla de mapeo de palabras clave donde las claves son términos fuente y los valores son traducciones objetivo.
Ejemplo:
{'Inteligencia Artificial': 'Artificial Intelligence'}
Interfaces clave
Clase OmniRealtimeConversation
Importación: from dashscope.audio.qwen_omni import OmniRealtimeConversation
| Firma del método | Evento de respuesta del lado del servidor (enviado mediante devolución de llamada) | Descripción |
|---|---|---|
Evento del lado del servidorSesión creadaEvento del lado del servidor Configuración de sesión actualizada | Conectarse al servidor. | |
Sesión actualizadaSesión actualizada | Actualiza la configuración de la sesión. Llame a este método inmediatamente después de conectarse. Si no llama a este método, se aplicarán las configuraciones predeterminadas. | |
session.finishedEl servidor completa la traducción del habla y finaliza la sesión | Finalizar la sesión. El servidor completa el procesamiento final de la traducción. | |
| None | Enviar fragmentos de audio codificados en Base64 al servidor. La detección del habla y la traducción son automáticas. | |
Evento del lado del servidorBúfer de audio de entrada confirmado | En el modo Manual, envíe el audio previamente agregado al búfer del servidor mediante el método append_audio. El servidor comienza automáticamente a generar respuestas de traducción tras la recepción. En el modo VAD, no es necesario llamar a este método, ya que el servidor realiza el envío automáticamente. | |
Evento del lado del servidorBúfer de audio de entrada borrado | Borrar datos de audio no confirmados en el búfer actual del servidor. | |
| None | Detener la tarea y cerrar la conexión. | |
| None | Obtener el ID de sesión. | |
| None | Obtener el ID de la última respuesta. |
Interfaz de callback (OmniRealtimeCallback)
Recibir eventos y datos del servidor a través de devoluciones de llamada.
Herde esta clase e implemente sus métodos para gestionar eventos del servidor.
Importación: from dashscope.audio.qwen_omni import OmniRealtimeCallback
| Firma del método | Parámetros | Descripción |
|---|---|---|
| None | Se llama cuando se abre la conexión WebSocket. | |
| message: Evento del lado del servidor | Se llama cuando el servidor envía un evento. | |
| close_status_code: El código de estado.close_msg: El mensaje de registro cuando se cierra la conexión WebSocket. | Se llama cuando se cierra la conexión WebSocket. |
dashscope.Client(): recepción de eventos después de un error
Al usar dashscope.Client() del SDK de DashScope 2.x, reciba eventos mediante los métodos events() o recv_event() de la sesión. Consulte Iteración de eventos del SDK de Python 2.x para ver su uso completo.
Cuando captura DashScopeError, el iterador events() en uso ya terminó. Capturar la excepción en un try/except externo no reinicia la recepción de eventos.
Si la conexión WebSocket sigue siendo utilizable, corrija la solicitud y vuelva a llamar a events(), o use recv_event() para recibir los eventos uno por uno. Si la conexión está cerrada, primero vuelva a conectarse y configure una sesión nueva y después reanude la recepción de eventos.
Para investigar la causa del error, lea el evento de error original del servidor en el campo body de la excepción.
Ejemplo completo
Este ejemplo graba audio del micrófono y lo traduce en tiempo real.
Código de ejemplo para traducción en tiempo real desde un micrófono
Código de ejemplo para traducción en tiempo real desde un micrófono