run-task
Inicia una tarea de síntesis de voz y configura el modelo, la voz, la frecuencia de muestreo y otros parámetros.
Cuándo enviar: Inmediatamente después de que se establezca la conexión WebSocket.
Evento de respuesta: El servidor devuelve un evento task-started. Espere este evento antes de enviar comandos posteriores.
header object(obligatorio)
Propiedades action string(obligatorio)El tipo de comando. Establézcalo en run-task.task_id string(obligatorio)Un ID de tarea generado por el cliente en formato UUID. Este ID correlaciona eventos posteriores y debe coincidir con el task_id en los comandos continue-task y finish-task.streaming string(obligatorio)Establecido en duplex.object(obligatorio)
Propiedades task_group string(obligatorio)El grupo de tareas. Establézcalo en audio.task string(obligatorio)El tipo de tarea. Establézcalo en tts.function string(obligatorio)El tipo de función. Establézcalo en SpeechSynthesizer.model string(obligatorio)El nombre del modelo.input object(obligatorio)Establézcalo en un objeto vacío {}. Envíe el texto a sintetizar mediante el comando continue-task.parameters object(obligatorio)Parámetros de síntesis de voz.
Propiedades text_type string(obligatorio)Establecido en PlainText.voice string(obligatorio)La voz utilizada para la síntesis de voz.
string(opcional)El formato de codificación de audio.Valores válidos:
integer(opcional)La frecuencia de muestreo del audio en Hz.Valores válidos: 8000, 16000, 22050 (predeterminado), 24000, 44100, 48000.volume integer(opcional)El nivel de volumen.Valor predeterminado: 50.Valores válidos: [0, 100].rate float(opcional)La velocidad del habla.Valor predeterminado: 1.0.Valores válidos: [0.5, 2.0].pitch float(opcional)El tono.Valor predeterminado: 1.0.Valores válidos: [0.5, 2.0].bit_rate integer(opcional)La tasa de bits de audio en kbps. Cuando el formato de audio es mp3 u opus, utilice bit_rate para ajustar la tasa de bits.Valor predeterminado: 32.Valores válidos: [6, 510].enable_ssml boolean(opcional)Especifica si se debe habilitar SSML.Valor predeterminado: false.Cuando se establece en true, solo se permite un comando continue-task.Para las restricciones de uso de SSML (modelos, voces y API compatibles), consulte Limitaciones.word_timestamp_enabled boolean(opcional)Especifica si se deben habilitar las marcas de tiempo a nivel de palabra.Valor predeterminado: false.Disponible solo en modo de salida por streaming. Se admiten voces clonadas. Para voces del sistema compatibles, consulte la lista de voces de Qwen-Audio-TTS.seed integer(opcional)Una semilla aleatoria para controlar la variación en la salida de la síntesis. Cuando la versión del modelo, el texto, la voz y otros parámetros permanecen sin cambios, el uso de la misma semilla produce resultados idénticos.Valor predeterminado: 0.Valores válidos: [0, 65535].language_hints array[string](opcional)Especifica el idioma objetivo para la síntesis de voz con el fin de mejorar la calidad de salida.Cuando la pronunciación de dígitos, la expansión de abreviaturas, la lectura de símbolos o la síntesis en idiomas minoritarios no cumpla con las expectativas, utilice este parámetro. Por ejemplo:
Valores válidos
string(opcional)Establece una instrucción para controlar el dialecto, la emoción o el carácter de la voz durante la síntesis. Para obtener información detallada sobre su uso, consulte Control de instrucciones.enable_aigc_tag boolean(opcional)Especifica si se debe incrustar una marca de agua AIGC en el audio generado. Cuando se establece en true, la marca de agua se incrusta en archivos de audio de formatos compatibles (wav/mp3/opus).Valor predeterminado: false.aigc_propagator string(opcional)Establece el campo ContentPropagator en la marca de agua AIGC, identificando al propagador del contenido. Solo surte efecto cuando enable_aigc_tag es true.Valor predeterminado: UID de Alibaba Cloud.aigc_propagate_id string(opcional)Establece el campo PropagateID en la marca de agua AIGC, identificando de forma única una acción de propagación específica. Solo surte efecto cuando enable_aigc_tag es true.Valor predeterminado: El ID de solicitud de la solicitud actual de síntesis de voz.hot_fix object(opcional)Configura correcciones de pronunciación y reemplazos de texto aplicados antes de la síntesis.Parámetros:
|
continue-task
Envía el texto a sintetizar. El texto se puede enviar todo a la vez o en varios segmentos.
Cuándo enviar: Después de recibir el evento task-started del servidor.
Límites:
- Máximo de 20,000 caracteres por mensaje
- Máximo de 200,000 caracteres acumulados
- El intervalo de envío no debe exceder los 23 segundos; de lo contrario, la conexión caduca.
header object(obligatorio)
Propiedades action string(obligatorio)El tipo de comando. Establézcalo en continue-task.task_id string(obligatorio)El ID de tarea en formato UUID. Debe coincidir con el task_id en run-task.streaming string(obligatorio)Establecido en duplex.object(obligatorio)
Propiedades input object(obligatorio)Contiene el texto a sintetizar.texto string(obligatorio)El texto a sintetizar. Máximo de 20,000 caracteres por mensaje y 200,000 caracteres acumulados. |
finish-task
Notifica al servidor que se ha enviado todo el texto y solicita la finalización de la tarea.
Cuándo enviar: Inmediatamente después de que se haya enviado todo el texto.
Evento de respuesta: El servidor devuelve un evento task-finished.
header object(obligatorio)
Propiedades action string(obligatorio)El tipo de comando. Establézcalo en finish-task.task_id string(obligatorio)El ID de tarea en formato UUID. Debe coincidir con el task_id en run-task.streaming string(obligatorio)Establecido en duplex.object(obligatorio)
Propiedades input object(obligatorio)Establézcalo en {} para la finalización normal de la tarea. Incluya directive para cancelar el turno de síntesis actual.directive string(opcional)Controla cómo finaliza la tarea. Actualmente solo se admite cancel. Cuando se establece en cancel, se cancela el turno de síntesis actual y el servidor devuelve inmediatamente un evento task-finished sin producir más audio.Después de la cancelación, puede iniciar una nueva tarea de síntesis en la misma conexión WebSocket enviando un nuevo evento run-task sin volver a conectarse. |