Este tema presenta la traducción de voz y audiovisual en tiempo real de Qwen, incluyendo las capacidades del modelo, los modelos admitidos y la integración. Los modelos utilizan entradas de audio e imagen para traducir en tiempo real y generar texto o voz en el idioma objetivo para comunicación de voz y traducción de video.
Pruebe una demostración en línea con implementación con un clic mediante Function Compute .
Funcionalidades
- Soporte multilingüe: Traduce entre 60 idiomas — 29 con salida de audio y texto, 31 con salida solo de texto — incluyendo chino, inglés, francés, alemán, ruso, japonés, coreano, español, portugués y árabe.
- Mejora visual: Analiza señales visuales, como movimientos labiales, gestos y texto en pantalla, para mejorar la precisión de la traducción, especialmente en entornos ruidosos o para palabras ambiguas.
- Latencia de 2.3 segundos: Ofrece interpretación simultánea con una latencia tan baja como 2.3 segundos.
- Diarización de hablantes en tiempo real: Distingue a los diferentes hablantes y sus intervenciones cuando varias personas toman turnos para hablar, de modo que los oyentes puedan entender claramente quién dijo qué.
- Interpretación simultánea sin pérdidas: Predice unidades semánticas para resolver diferencias en el orden de las palabras entre idiomas, logrando una calidad comparable a la traducción sin conexión.
- Voz natural: Coincide automáticamente con la entonación y la emoción del audio de origen.
- Configuración de palabras clave: Las palabras clave configurables mejoran la precisión de la traducción para términos específicos.
- Clonación de voz: Clona la voz del hablante para la salida traducida. Admite clonación en tiempo real y perfiles de voz preclonados.
Procedimiento
1. Configurar la conexión
Establezca model en un modelo compatible al conectarse. El ejemplo de conexión a continuación utiliza qwen3.8-livetranslate-flash-realtime.
Al conectarse mediante WebSocket, utilice los siguientes parámetros:
| Parámetro | Descripción |
|---|---|
| endpoint | Región China (Beijing): wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime. Reemplace {WorkspaceId} con su ID de espacio de trabajo real.Región de Singapur: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime.Reemplace {WorkspaceId} con su ID de espacio de trabajo real. |
| query parameter | El parámetro de consulta del modelo debe establecerse en el nombre del modelo. Ejemplo: ?model=qwen3.8-livetranslate-flash-realtime |
| message header | Utilice un token Bearer para la autenticación: Authorization: Bearer DASHSCOPE_API_KEYDASHSCOPE_API_KEY es su clave API de Model Studio. |
Código de ejemplo en Python para conexión WebSocket
Código de ejemplo en Python para conexión WebSocket
2. Configurar idioma, modalidad y voz
Configure la sesión mediante session.update:
-
Idioma de destino: Establezca
session.translation.language, comoenpara inglés. Conqwen3.8-livetranslate-flash-realtime, el idioma de origen se detecta automáticamente.Conqwen3.5-livetranslate-flash-realtime, establezcasession.input_audio_transcription.languagepara especificar el idioma de origen, u omítalo para la detección automática. -
Modalidades de salida: Con
qwen3.8-livetranslate-flash-realtime, establezcasession.output_modalitiesen["text"]para solo texto o["text", "audio"]para texto y audio (predeterminado).Conqwen3.5-livetranslate-flash-realtime, utilicesession.modalities. Los valores admitidos y el valor predeterminado son los mismos. -
Transcripción de origen: Con
qwen3.8-livetranslate-flash-realtime, la transcripción de origen siempre está habilitada y no se puede desactivar. El propio modelo LiveTranslate genera la transcripción en el idioma de origen. La información relevante de las imágenes puede ayudar a resolver ambigüedades en el audio de origen. Reciba incrementos medianteconversation.item.input_audio_transcription.deltay transcripciones completas medianteconversation.item.input_audio_transcription.completed.Conqwen3.5-livetranslate-flash-realtime, la transcripción de origen está habilitada de forma predeterminada. Un modelo ASR independiente transcribe el audio de entrada. Establezcasession.input_audio_transcription.modelenqwen3-asr-flash-realtimepara habilitarla o ennullpara deshabilitarla. Reciba incrementos medianteconversation.item.input_audio_transcription.texty transcripciones completas medianteconversation.item.input_audio_transcription.completed. -
Audio y voz: Con
qwen3.8-livetranslate-flash-realtime, los valores predeterminados son entrada PCM de 16000 Hz, salida PCM de 24000 Hz y la vozTina. Para enviar audio Opus, establezcasession.audio.input.format.typeenopus. Consultesession.audio.output.voiceen session.created para verificar la voz. Para conservar la voz del hablante, consulte Clonación de voz.Conqwen3.5-livetranslate-flash-realtime, configure el audio mediantesession.sample_rate,session.input_audio_formatysession.output_audio_format, y la voz mediantesession.voice. La voz predeterminada también esTina. -
Palabras clave: Configure
session.translation.corpus.phrasespara especificar traducciones preferidas. Consulte Configurar palabras clave.Se recomienda utilizar no más de 1,000 palabras clave.
3. Introducir audio e imágenes
Envíe datos de audio e imágenes codificados en Base64 utilizando los eventos input_audio_buffer.append y input_image_buffer.append. La entrada de audio es obligatoria; la entrada de imagen es opcional.
Las imágenes pueden provenir de un archivo local o capturarse en tiempo real desde una transmisión de video.Con
qwen3.8-livetranslate-flash-realtime, el valor predeterminado es session.audio.input.turn_detection.type = speaker_detection. Envíe audio de forma continua; el servidor detecta los límites del habla y genera respuestas de traducción sin necesidad de confirmar manualmente cada enunciado. Consulte Identificar hablantes para obtener información sobre la configuración y los identificadores de hablantes.
qwen3.5-livetranslate-flash-realtime: Modos VAD y Manual
qwen3.5-livetranslate-flash-realtime: Modos VAD y Manual
- Modo VAD (predeterminado): El cliente envía continuamente eventos input_audio_buffer.append. Cuando el servidor detecta el inicio o fin del habla, devuelve eventos
input_audio_buffer.speech_startedyinput_audio_buffer.speech_stoppedrespectivamente, confirma automáticamente el búfer de audio y activa la traducción. Las respuestas de traducción se generan de manera síncrona con la transmisión de audio y generalmente comienzan durante la entrada de audio, sin esperar a que termine el habla. - Modo manual: Establezca
session.turn_detectionennull. Después de que el cliente termina de enviar un enunciado completo, envía un evento input_audio_buffer.commit para confirmar el búfer de audio. Una vez que el servidor devuelve un eventoinput_audio_buffer.committedcomo confirmación, comienza automáticamente a generar la respuesta de traducción; el cliente no necesita enviar ningún otro evento para activar la respuesta. Para borrar el audio no confirmado antes de realizar la confirmación, envíe un evento input_audio_buffer.clear.
4. Recibir la respuesta del modelo
Con qwen3.8-livetranslate-flash-realtime, gestione las respuestas según las modalidades de salida:
- Solo texto: Agregue los valores de
deltaderesponse.text.deltaal final de los subtítulos en orden, sin sobrescribir el texto ya mostrado. - Texto y audio: Concatene
deltaderesponse.audio_transcript.deltapara obtener texto, y decodifique en Base64 el campodeltaderesponse.audio.deltapara obtener fragmentos de audio.
response.done indica el final de una respuesta. Consulte Eventos del servidor para ver los campos del evento.
qwen3.5-livetranslate-flash-realtime: Diferencias en eventos de respuesta
qwen3.5-livetranslate-flash-realtime: Diferencias en eventos de respuesta
-
Generar resultados de reconocimiento del idioma de origen
Establezca
session.input_audio_transcription.modelenqwen3-asr-flash-realtime. El servidor entonces devuelve tanto la traducción como el resultado del reconocimiento de voz (texto original) para el audio de entrada. El servidor devuelve estos eventos:conversation.item.input_audio_transcription.text: Transmite los resultados de reconocimiento.conversation.item.input_audio_transcription.completed: Devuelve el resultado final una vez completado el reconocimiento.conversation.item.input_audio_transcription.failed: Devuelve información de error cuando falla el reconocimiento.
-
Salida solo de texto
El servidor transmite texto traducido incremental (incluyendo texto confirmado y texto predictivo tentativo) mediante eventos response.text.text; al finalizar, el texto traducido completo se devuelve en un evento response.text.done.
stashcontiene una traducción provisional. Permite mostrar los subtítulos antes, pero los eventos posteriores pueden reescribirla. Según las necesidades de la aplicación, muestre en el cliente la concatenación detextystash, o solo el texto confirmado detext. Useitem_idpara actualizar el subtítulo correspondiente y muestre la traducción completa cuando recibaresponse.text.done. -
Salida de texto y audio
- Texto El servidor transmite texto traducido incrementalmente mediante eventos response.audio_transcript.text; al finalizar, el texto traducido completo se devuelve en un evento response.audio_transcript.done.
- Audio El servidor devuelve datos de audio incrementales codificados en Base64 en eventos response.audio.delta.
conversation.item.created de la traducción. item.id es el ID de la traducción, y el campo previous_item_id del nivel superior del evento es el ID del original correspondiente.
El original o la traducción puede llegar primero. Guarde los resultados por separado, asócielos mediante esta relación y actualice cada subtítulo con su propio item_id. Consulte Asociación del texto original y la traducción para ver las definiciones de los campos.
5. Finalizar la sesión
Después de enviar todo el audio, envíe un evento session.finish y luego espere a que el servidor devuelva un evento session.finished antes de cerrar la conexión WebSocket.
Si cierra la conexión WebSocket sin enviar session.finish, el VAD del servidor no puede detectar el final del último segmento de habla. Esto provoca que los resultados de traducción de ese segmento se pierdan por completo, y la conexión puede quedar colgada indefinidamente. Envíe siempre este evento antes de desconectarse.
Modelos admitidos
Modelos recomendados
| Modelo | Versión | Ventana de contexto | Entrada máxima | Salida máxima |
|---|---|---|---|---|
| (tokens) | ||||
| qwen3.8-livetranslate-flash-realtime | Estable | 53248 | 49152 | 4096 |
qwen3.5-livetranslate-flash-realtimeAlias para qwen3.5-livetranslate-flash-realtime-2026-05-19 | Estable | 53248 | 49152 | 4096 |
| qwen3.5-livetranslate-flash-realtime-2026-05-19 | Instantánea | |||
Introducción
Traducir la entrada del micrófono en tiempo real
-
Utilice Python 3.10 o posterior e instale
pyaudio:Instale la dependencia de WebSocket:- macOS
- Debian/Ubuntu
- CentOS
- Windows
pip install websocket-client. -
Configure estas variables de entorno. La clave API y el espacio de trabajo deben pertenecer a la región indicada en la URL de conexión:
DASHSCOPE_API_KEY: Una clave API para la región y el espacio de trabajo. Consulte Obtener una clave API.DASHSCOPE_WORKSPACE_ID: Su ID de espacio de trabajo. Consulte Espacios de trabajo y regiones.
-
Guarde el siguiente código como
livetranslate_client.py, ejecutepython livetranslate_client.pyy hable al micrófono.
qwen3.8-livetranslate-flash-realtime para traducir la entrada del micrófono al inglés, imprimir el texto y reproducir el habla traducida en tiempo real. La entrada es mono, 16 bits, 16000 Hz PCM; la reproducción es mono, 16 bits, 24000 Hz PCM. Presione Ctrl+C para detener la grabación. El ejemplo envía session.finish, recibe y reproduce los resultados restantes, y cierra la conexión después de session.finished. Utilice auriculares para evitar que el habla traducida sea grabada nuevamente.
Configurar palabras clave
Agregar palabras clave puede mejorar la precisión de la traducción cuando necesita una traducción fija o necesita distinguir entre homófonos. Por ejemplo:
- Redacción fija: El eslogan de Alibaba Cloud, “计算,为了无法计算的价值。”, tiene la redacción acordada en inglés “Computing, for the value beyond computation.”. La redacción y el orden de las palabras deben conservarse.
- Nombres de marcas que suenan similar: Qoder suena como la palabra común coder. Cuando el hablante se refiere al producto Qoder, la traducción necesita conservar la ortografía de la marca.
| Contenido del audio de entrada | Sin palabras clave | Con palabras clave |
|---|---|---|
| 计算,为了无法计算的价值。 | Calcular. Para valores que no se pueden calcular. | Computación, para el valor más allá de la computación. |
| Qoder 是面向真实工作的 Agentic 平台。 | Coder es un sistema agéntico diseñado para el trabajo en el mundo real. plataforma. | Qoder, es una plataforma agéntica diseñada para el trabajo en el mundo real. |
Configuración
Configure las palabras clave mediante session.translation.corpus.phrases, utilizando pares clave-valor para asignar palabras o frases del idioma de origen a sus traducciones preferidas.
En la primera solicitud session.update de Primeros pasos, fusione el siguiente objeto translation en el objeto session existente. Mantenga la modalidad de salida, la voz y otras configuraciones para la sesión.
session.updated del servidor antes de enviar eventos input_audio_buffer.append.
Identificar hablantes
qwen3.8-livetranslate-flash-realtime puede identificar a diferentes hablantes y etiquetarlos con speaker_id. Asocie este ID con el texto de origen y la traducción para mostrar subtítulos por hablante.
Mantenga el valor predeterminado de speaker_detection, o configúrelo explícitamente en session.update. threshold distingue el silencio del habla válida. Los sonidos por debajo del umbral se filtran antes de llegar al modelo. El umbral está fijo en 0.5.
- Registre el
speaker_idy elitem_idde origen deinput_audio_buffer.speech_started. - Lea el texto de origen para ese
item_iddeconversation.item.input_audio_transcription.delta. - En el evento
conversation.item.createdde la traducción, asocieitem.idcon el ID de origen en el campo de nivel superiorprevious_item_iddel evento. - Utilice el
item_idde cada incremento de traducción para encontrar su texto de origen y hablante, y luego actualice el subtítulo.
def receive_translation(): en el ejemplo de micrófono de inicio rápido. Dentro de esa función, llame a handle_speaker_event(event) inmediatamente después de event = receive(), y reemplace el print(event["delta"], end="", flush=True) original con pass para que el fragmento maneje toda la salida de subtítulos. El fragmento imprime el ID del hablante, el texto de origen y la traducción a medida que cambian, lo que le permite mostrar subtítulos por hablante. Mantenga el manejo existente de audio y finalización de sesión.
Mejorar la traducción con imágenes
Los modelos de traducción en tiempo real de Qwen admiten entrada de imágenes para ayudar a desambiguar homónimos y reconocer nombres propios poco comunes durante la traducción. Envíe no más de 2 imágenes por segundo.
Descargue las siguientes imágenes de muestra: medical mask.png, masquerade mask.png
Reutilice la configuración de entrada de micrófono y conexión del inicio rápido:
- Instale
Pillow:pip install Pillow. - Establezca
translation.languageenzhpara la salida en chino y luego diga "What is mask?" al micrófono cuando ejecute el ejemplo. - Coloque el código de carga de imágenes a continuación antes de
def send_audio():en el ejemplo del micrófono, y reemplace elsend_audio()original con esta versión. Utiliza los elementos existentesinput_stream,stop_recording,ws,send_errorse importaciones.
Ctrl+C para detener la grabación, el ejemplo solicita la finalización de la sesión y recibe los resultados restantes.
Clonación de voz
El modelo clona la voz del hablante a partir del audio de entrada y la utiliza para la salida traducida. Utilice un perfil de voz preclonado o clone en tiempo real durante la traducción. Útil para interpretación de conferencias, transmisiones en vivo y doblaje de video.
Clonación en tiempo real: Tanto qwen3.8-livetranslate-flash-realtime como qwen3.5-livetranslate-flash-realtime clonan voces a partir del audio de entrada durante la traducción sin un cargo adicional por clonación. Las llamadas al modelo siguen facturándose por uso de tokens.
Crear una voz previamente: use la API de clonación de voz para crear una voz previamente. El costo es de $0.01 por voz. Las solicitudes de creación fallidas no se cobran. Para conocer las regiones, el número de usos y el periodo de validez de la cuota gratuita, consulte Facturación. La traducción con una voz creada se sigue facturando según el uso de tokens del modelo.
Configure los siguientes parámetros en session.update para habilitar la clonación de voz:
-
session.enable_voice_clone: Establezca este valor entruepara habilitar la clonación de voz. -
session.voice_clone_options.frequency: Controla cuándo ocurre la clonación de voz. Valores aceptados:never: Utilice una voz creada previamente sin extraer una nueva voz durante esta sesión. Establezcasession.voiceen su ID de voz clonada.once: Extrae la voz una vez del audio de entrada al inicio de la sesión y la reutiliza para traducciones posteriores en esta sesión. “Una vez” describe la extracción, no una única salida de audio. Adecuado para presentaciones de un solo hablante; establezcasession.voiceendefault.always: Extrae la voz antes de cada respuesta de audio traducido, de modo que la salida siga los cambios de hablante. Adecuado para múltiples hablantes; establezcasession.voiceendefault.
-
session.voice: Especifica la voz de salida. El valor depende de la configuración defrequency:- Establecer en
default: Úselo confrequencyestablecido enonceoalways. Clona la voz del hablante a partir del audio de entrada. Se utiliza una voz predeterminada hasta que finaliza la clonación. - Establezca un ID de voz clonada personalizada, por ejemplo
qwen-translate-vc-xxx-yyy-zzz, confrequencyennever. Prepare la voz previamente mediante la API de clonación de voz, contarget_modelestablecido en el modelo de traducción que use.
- Establecer en
Cuandofrequencyse establece enonceoalways, el parámetrovoicedebe establecerse endefault. Cualquier otro valor hace que el servidor devuelva un error.
Ejemplos de configuración de clonación de voz
Con qwen3.8-livetranslate-flash-realtime, reemplace la configuración de session.update en su ejemplo de Inicio rápido con la configuración para su escenario.
qwen3.5-livetranslate-flash-realtime, reemplace session.output_modalities con session.modalities en los ejemplos. Los otros parámetros de clonación son los mismos. Especifique este modelo en el parámetro model de la conexión y gestione sus eventos de respuesta como se describe en Recibir respuestas del modelo.Despliegue con un clic de Function Compute
Para implementar la aplicación:
- Abra la plantilla de Function Compute, ingrese su clave API y haga clic en Create and Deploy Default Environment para probar la aplicación.
- Espere aproximadamente un minuto. En Detalles del entorno > Contexto del entorno, obtenga el endpoint, cambie el protocolo de http a https (por ejemplo, https://qwen-livetranslate-flash-realtime-intl.fcv3.xxx.ap-southeast-1.fc.devsapp.net/) y abra la URL en un navegador para interactuar con el modelo.
Si se le solicita configurar permisos de Resource Access Management, siga las instrucciones en pantalla.
Para ver el código fuente del proyecto, vaya a Información de recursos > Recursos de funciones .
Tanto Function Compute como Model Studio proporcionan una cuota gratuita para nuevos usuarios, suficiente para la depuración básica. Una vez agotada la cuota gratuita, se aplica la facturación de pago por uso.
Flujo de interacción
Con qwen3.8-livetranslate-flash-realtime, el servidor detecta los turnos y genera respuestas de forma predeterminada. La siguiente tabla resume las principales etapas de interacción. Consulte Eventos del servidor para ver los campos de los eventos.
Etapa | Acción del cliente | Eventos del servidor |
|---|---|---|
Crear y configurar la sesión | Conectar y enviar |
|
Enviar audio |
| La transcripción de origen se transmite mediante |
Recibir traducción y audio | Continuar recibiendo eventos del servidor | La traducción se devuelve mediante |
Finalizar la sesión |
| Cierre la conexión después de recibir |
qwen3.5-livetranslate-flash-realtime: Flujo de interacción
qwen3.5-livetranslate-flash-realtime: Flujo de interacción
| Ciclo de vida | Evento del cliente | Evento del servidor |
|---|---|---|
| Inicialización de sesión | session.updateConfiguración de sesión | session.createdSesión creadasession.updated Configuración de sesión actualizada |
| Entrada de audio del usuario | input_audio_buffer.appendAgregar audio al búferinput_image_buffer.append Agregar imagen al búferinput_audio_buffer.commit (Solo modo manual) Confirmar el búfer de audio | Modo VAD:input_audio_buffer.speech_startedInicio de habla detectadoinput_audio_buffer.speech_stopped Fin del habla detectado; el servidor confirma automáticamente el búfer de audioModo manual:input_audio_buffer.committed Se devuelve después de que el cliente envía input_audio_buffer.commit, confirmando que el búfer de audio se ha confirmado |
| Salida de audio del servidor | None | response.createdIndica que el servidor comienza a generar una respuesta.response.output_item.added Indica que hay un nuevo elemento de salida disponible.conversation.item.created Se crea un nuevo elemento de mensaje en la conversación.response.content_part.added Indica que se ha añadido una nueva parte de contenido al mensaje del asistente.response.text.text Texto traducido incremental en modalidad de solo textoresponse.audio_transcript.text Texto traducido incremental en modalidad de audio y textoresponse.audio.delta Contiene un fragmento incremental del audio sintetizado.response.text.done Texto de traducción completado en modalidad de solo textoresponse.audio_transcript.done Texto de traducción completado en modalidad de audio y textoresponse.audio.done Indica que el audio sintetizado está completo.response.content_part.done Indica que una parte de contenido de texto o audio para el mensaje del asistente está completa.response.output_item.done Indica que el elemento de salida completo para el mensaje del asistente ha finalizado.response.done Indica que la respuesta completa ha finalizado. |
| Terminación de sesión | session.finishNotifica al servidor que la entrada de audio ha finalizado | session.finishedProcesamiento del servidor completado; sesión finalizada |
session.finish y espere a session.finished antes de cerrar la conexión WebSocket. Si cierra la conexión sin enviar session.finish, el servidor no podrá saber que la entrada de audio ha terminado, y los resultados de reconocimiento y traducción del último segmento de habla se perderán.
API
Para consultar el flujo de conexión mediante AOQ y los ejemplos, consulte Conexión mediante AOQ. Para seleccionar un protocolo y consultar los enlaces de referencia, consulte la Referencia de la API.
Facturación
Qwen3.8-LiveTranslate-Flash-Realtime y Qwen3.5-LiveTranslate-Flash-Realtime
-
Audio: 7 tokens por segundo de audio de entrada; 12.5 tokens por segundo de audio de salida.
Con la detección de voz del servidor, la duración del audio de entrada se calcula sobre el audio que llega al modelo después del filtrado. Los silencios eliminados por ese filtrado no se incluyen. Consulte la cantidad real de tokens de audio de entrada en
response.usage.input_tokens_details.audio_tokensdel eventoresponse.done. - Imagen: Cada 32×32 píxeles consume 0.5 tokens. Para conocer los precios de tokens de cada modelo, consulte Precios y facturación de modelos.
qwen3.8-livetranslate-flash-realtime como qwen3.5-livetranslate-flash-realtime clonan voces a partir del audio de entrada durante la traducción sin un cargo adicional por clonación. Las llamadas al modelo siguen facturándose por uso de tokens.
Crear una voz previamente: use la API de clonación de voz para crear una voz previamente. El costo es de $0.01 por voz. Las solicitudes de creación fallidas no se cobran. Para conocer las regiones, el número de usos y el periodo de validez de la cuota gratuita, consulte Facturación. La traducción con una voz creada se sigue facturando según el uso de tokens del modelo.
Límites de tasa
Para obtener información sobre los límites de tasa del modelo, consulte Límites de tasa.
Idiomas admitidos
Utilice los siguientes códigos de idioma para especificar los idiomas de origen y de destino.
Algunos idiomas de destino solo admiten texto.
Código de idioma | Idioma | Salida |
|---|---|---|
zh | Chino | Audio + texto |
en | Inglés | Audio + texto |
ar | Árabe | Audio + texto |
de | Alemán | Audio + texto |
fr | Francés | Audio + texto |
es | Español | Audio + texto |
pt | Portugués | Audio + texto |
id | Indonesio | Audio + texto |
it | Italiano | Audio + texto |
ko | Coreano | Audio + texto |
ru | Ruso | Audio + texto |
th | Tailandés | Audio + texto |
vi | Vietnamita | Audio + texto |
ja | Japonés | Audio + texto |
tr | Turco | Audio + texto |
hi | Hindi | Audio + texto |
ms | Malayo | Audio + texto |
nl | Neerlandés | Audio + texto |
ur | Urdu | Audio + texto |
nb | Noruego bokmål | Audio + texto |
sv | Sueco | Audio + texto |
da | Danés | Audio + texto |
he | Hebreo | Audio + texto |
fi | Finlandés | Audio + texto |
pl | Polaco | Audio + texto |
is | Islandés | Audio + texto |
cs | Checo | Audio + texto |
fil | Filipino | Audio + texto |
fa | Persa | Audio + texto |
yue | Cantonés | Text |
el | Griego | Text |
af | Afrikáans | Text |
ast | Asturiano | Text |
be | Bielorruso | Text |
bg | Búlgaro | Text |
bn | Bengalí | Text |
bs | Bosnio | Text |
ca | Catalán | Text |
ceb | Cebuano | Text |
et | Estonio | Text |
gl | Gallego | Text |
gu | Guyaratí | Text |
hr | Croata | Text |
hu | Húngaro | Text |
jv | Javanés | Text |
kk | Kazajo | Text |
kn | Canarés | Text |
ky | Kirguís | Text |
lv | Letón | Text |
mk | Macedonio | Text |
ml | Malayalam | Text |
mr | Maratí | Text |
pa | Punyabí | Text |
ro | Rumano | Text |
sk | Eslovaco | Text |
sl | Esloveno | Text |
sw | Suajili | Text |
tg | Tayiko | Text |
az | Azerbaiyano | Text |
uk | Ucraniano | Text |
Voces admitidas
Para consultar las voces admitidas y los valores correspondientes del parámetro voice, consulte Lista de voces.
Preguntas frecuentes
¿Se cobra mientras la conexión está abierta, pero nadie habla?
Mantener la conexión abierta no genera cargos por sí solo. Al enviar audio en silencio, su contabilización como entrada de audio depende del modo que utilice:
- Detección de voz del servidor: El silencio filtrado no se cuenta como entrada de audio.
- Modo Manual: El silencio que el cliente confirma explícitamente se cuenta como entrada de audio.
response → usage → input_tokens_details → audio_tokens. El modelo se factura por tokens de entrada y salida. Consulte Facturación para conocer los precios y las reglas de cálculo.
¿Cómo migro de Gummy a LiveTranslate?
gummy-realtime-v1 y qwen3.8-livetranslate-flash-realtime usan protocolos distintos. Además del nombre del modelo, cambia el código que abre la conexión, envía el audio, recibe las traducciones y cierra la sesión.
Este ejemplo del SDK de Python genera subtítulos en inglés. Puedes reutilizar el audio PCM mono de 16 bits a 16 kHz y cambiar estas cuatro llamadas.
Paso | Gummy | LiveTranslate |
|---|---|---|
Conexión y configuración |
|
Configura la sesión tras conectarte. Espera a |
Envío de audio |
|
|
Subtítulos |
|
Añade el contenido de cada campo |
Fin de la sesión |
|
Sigue recibiendo subtítulos y cierra la conexión tras recibir |
Ejemplo en Python: traducir una grabación a subtítulos en inglés
Ejemplo en Python: traducir una grabación a subtítulos en inglés
DASHSCOPE_API_KEY con la clave API de Pekín y DASHSCOPE_WORKSPACE con el ID del espacio de trabajo de esa región. Guarda el código en subtitles.py y ejecuta python subtitles.py input.wav con un archivo WAV PCM mono de 16 bits a 16 kHz.- Dirección: cambia
/api-ws/v1/inferencepor/api-ws/v1/realtime?model=qwen3.8-livetranslate-flash-realtime. - Audio: sustituye las tramas binarias por eventos JSON
input_audio_buffer.appendy envía el PCM codificado en Base64 en el campoaudio. - Traducción: sustituye
result-generatedporresponse.text.deltay añade cada fragmentodeltaal subtítulo. Cuando termines de enviar el audio, envíasession.finishy espera asession.finishedantes de cerrar.
¿Cómo reanudar la traducción después de una desconexión?
Si recibe no semantic result after merged audio exceeded 60s y se cierra la conexión WebSocket, cree una sesión nueva para reanudar la traducción:
- Deje de enviar audio a la conexión anterior.
- Vuelva a conectarse y envíe
session.updatepara restablecer el idioma de destino, las modalidades de salida y los demás ajustes. - Espere a recibir
session.updatedy luego reanude el envío de audio.
dashscope.Client(), reanude también la recepción de eventos.