Los eventos del cliente son mensajes JSON enviados a través de una conexión WebSocket para controlar la sesión de la API en tiempo real de Qwen-TTS: configurar ajustes de voz, transmitir texto para su síntesis y señalar la finalización.
Para obtener una descripción general completa de la API, consulte Síntesis de voz en tiempo real - Qwen.
Resumen de eventos
| Evento del cliente | Respuesta del servidor | Descripción |
|---|---|---|
session.update | session.updated | Establecer la voz, el formato de audio, el modo de interacción y otros parámetros de la sesión |
input_text_buffer.append | -- | Agregar texto al búfer de síntesis |
input_text_buffer.commit | input_text_buffer.committed | Confirmar el texto en búfer para activar la síntesis |
input_text_buffer.clear | input_text_buffer.cleared | Descartar todo el texto almacenado en búfer |
session.finish | -- | Finaliza la sesión; el servidor vacía el audio restante y cierra la conexión |
session.update
Configura la sesión. Envíelo como primer mensaje después de establecer la conexión WebSocket. Si se omite, todos los parámetros utilizan los valores predeterminados. El servidor confirma con un evento session.updated.
Cuerpo de la solicitud
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
event_id | string | Sí | Identificador de evento único generado por el cliente (se recomienda UUID). Debe ser único dentro de la sesión de WebSocket. |
type | string | Sí | Establecido en session.update. |
session | object | No | Configuración de la sesión. Consulte las siguientes subsecciones. |
propiedades de la sesión
propiedades de la sesión
voice
Tipo: string | Obligatorio: SíLa voz del sistema utilizada para la síntesis de voz. Consulte Voces admitidas.mode
Tipo: string | Obligatorio: No | Predeterminado: server_commitEl modo de interacción que controla cuándo se sintetiza el texto almacenado en búfer.| Valor | Comportamiento |
|---|---|
server_commit | El servidor decide cuándo sintetizar, equilibrando latencia y calidad. Recomendado para la mayoría de los usos. |
commit | Active la síntesis manualmente enviando input_text_buffer.commit. Ofrece la menor latencia, pero debe gestionar la integridad de las oraciones. |
language_type
Tipo: string | Obligatorio: No | Predeterminado: AutoEl idioma del audio sintetizado.Auto-- Para texto desconocido o en varios idiomas. El modelo ajusta automáticamente la pronunciación por segmento, pero no se garantiza la precisión.- Para texto en un solo idioma, especificar el idioma mejora significativamente la calidad. Valores admitidos:
| Valor | Valor | Valor |
|---|---|---|
Chinese | English | German |
Italian | Portuguese | Spanish |
Japanese | Korean | French |
Russian |
response_format
Tipo: string | Obligatorio: No | Predeterminado: pcmEl formato de salida de audio.| Valor | Notas |
|---|---|
pcm | Predeterminado. |
wav | |
mp3 | |
opus | Admite una tasa de bits configurable mediante el parámetro bit_rate. |
sample_rate
Tipo: integer | Obligatorio: No | Predeterminado: 24000La frecuencia de muestreo de la salida de audio, en Hz.Valores admitidos: 8000, 16000, 24000, 48000.speech_rate
Tipo: float | Obligatorio: No | Predeterminado: 1.0 | Rango: 0.5--2.0La velocidad de reproducción. Los valores inferiores a 1.0 ralentizan el audio; los valores superiores a 1.0 lo aceleran.volume
Tipo: integer | Obligatorio: No | Predeterminado: 50 | Rango: 0--100El volumen del audio.pitch_rate
Tipo: float | Obligatorio: No | Predeterminado: 1.0 | Rango: 0.5--2.0El tono del audio sintetizado.bit_rate
Tipo: integer | Obligatorio: No | Predeterminado: 128 | Rango: 6--510Tasa de bits de audio en kbps. Los valores más altos producen mejor calidad pero archivos más grandes. Solo aplica cuando response_format es opus.input_text_buffer.append
Agrega texto al búfer de síntesis.
- En el modo
server_commit, el texto se agrega al búfer del lado del servidor. - En el modo
commit, el texto se agrega al búfer del lado del cliente.
Cuerpo de la solicitud
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
event_id | string | Sí | Identificador de evento único generado por el cliente (se recomienda UUID). Debe ser único dentro de la sesión de WebSocket. |
type | string | Sí | Establecido en input_text_buffer.append. |
text | string | Sí | El texto que se va a sintetizar. |
input_text_buffer.commit
Confirma el texto almacenado en búfer y crea un elemento de mensaje de usuario. El servidor responde con un evento input_text_buffer.committed.
Devuelve un error si el búfer está vacío.
El comportamiento varía según el modo:
- Modo
server_commit: Todo el texto almacenado en búfer se sintetiza inmediatamente. El servidor deja de almacenar en caché y procesa todo a la vez. - Modo
commit: Crea un elemento de mensaje de usuario a partir del texto almacenado en búfer.
Nota: Confirmar el búfer solo activa la síntesis; no genera una respuesta del modelo.
Cuerpo de la solicitud
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
event_id | string | Sí | Identificador de evento único generado por el cliente (se recomienda UUID). Debe ser único dentro de la sesión de WebSocket. |
type | string | Sí | Establecido en input_text_buffer.commit. |
input_text_buffer.clear
Borra el texto del búfer. El servidor responde con un evento input_text_buffer.cleared.
Cuerpo de la solicitud
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
event_id | string | Sí | Identificador de evento único generado por el cliente (se recomienda UUID). Debe ser único dentro de la sesión de WebSocket. |
type | string | Sí | Establecido en input_text_buffer.clear. |
session.finish
Indica que no se enviará más texto. El servidor devuelve el audio restante y cierra la conexión.
Cuerpo de la solicitud
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
event_id | string | Sí | Identificador de evento único generado por el cliente (se recomienda UUID). Debe ser único dentro de la sesión de WebSocket. |
type | string | Sí | Establecido en session.finish. |