API HTTP de síntesis de voz no en tiempo real de Qwen-Audio-TTS, con llamadas sin streaming y SSE, parámetros de solicitud y campos de respuesta.
Puntos de conexión
Sustituya YOUR_WORKSPACE_ID por el ID del espacio de trabajo de la región y utilice una clave de API de la misma región.
- Singapur
- China (Pekín)
POST https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizerEncabezados de solicitud
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Authorization | string | Obligatorio | Token de autenticación con el formato Bearer <your_api_key>. |
Content-Type | string | Obligatorio | Establezca el valor en application/json. |
X-DashScope-SSE | string | Opcional | Establezca el valor en enable para streaming. Si se omite, se devuelve el resultado completo. |
Ejemplos
- Sin streaming
- Streaming
Un evento SSE puede contener varias líneas
data:. Combine todas las líneas data: del evento antes de analizar el JSON. Decodifique el Base64 y concatene los bloques de audio en el orden de los eventos. La trama final tiene output.finish_reason=stop y devuelve la URL del audio completo.Cuerpo de la solicitud
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
model | string | Obligatorio | — | ID del modelo de síntesis de voz. Consulte los modelos y regiones en Síntesis de voz no en tiempo real. |
input | object | Obligatorio | — | Objeto de parámetros de entrada. |
input.text | string | Obligatorio | — | Texto para sintetizar. Para SSML, establezca enable_ssml=true. LaTeX no requiere otra configuración. Consulte SSML y LaTeX para conocer el alcance, las etiquetas y la sintaxis. |
input.voice | string | Obligatorio | — | ID de voz. Para las voces del sistema, consulte la lista de voces. Cree una voz personalizada con la clonación de voz o el diseño de voz y utilice el modelo de destino vinculado. |
input.format | string | Opcional | mp3 | Codificación de audio. Valores: mp3, pcm, wav, opus. |
input.sample_rate | integer | Opcional | 22050 | Frecuencia de muestreo en Hz. Valores: 8000, 12000, 16000, 22050, 24000, 44100, 48000. Con format=opus, solo se admiten 8000, 12000, 16000, 24000, 48000. |
input.volume | integer | Opcional | 50 | Volumen. Intervalo: [0, 100]. |
input.rate | float | Opcional | 1.0 | Velocidad de voz. Intervalo: [0.5, 2.0]. |
input.bit_rate | integer | Opcional | 32 | Tasa de bits de audio en kbps. Intervalo: [6, 510]. Solo se aplica con format=opus. |
input.pitch | float | Opcional | 1.0 | Tono. Intervalo: [0.5, 2.0]. |
input.enable_ssml | boolean | Opcional | — | Indica si se habilita SSML. Consulte Límites de uso para conocer las restricciones de modelos, voces e interfaces. |
input.word_timestamp_enabled | boolean | Opcional | false | Indica si se devuelven marcas de tiempo por palabra. Solo streaming. Admite voces clonadas. Consulte la lista de voces para las voces del sistema compatibles. |
input.seed | integer | Opcional | 0 | Semilla aleatoria. Intervalo: [0, 65535]. Con la misma versión del modelo, texto, voz y demás parámetros, la misma semilla reproduce el mismo resultado. |
input.language_hints | array[string] | Opcional | — | Idioma de destino de la síntesis. Solo se procesa el primer elemento del arreglo. Es independiente del idioma de origen de la muestra de clonación. Úselo si la pronunciación de números, abreviaturas, símbolos o idiomas menos comunes no es la esperada. Los códigos aparecen abajo. Para el idioma de origen de la clonación, consulte la API de clonación de voz. |
input.instruction | string | Opcional | — | Instrucción que controla el dialecto, la emoción o el rol. Consulte Control mediante instrucciones para modelos, voces y uso. |
input.enable_aigc_tag | boolean | Opcional | false | Indica si se incorpora un identificador AIGC invisible en audio WAV, MP3 u Opus. |
input.aigc_propagator | string | Opcional | UID de Alibaba Cloud | Campo ContentPropagator que identifica al distribuidor. Solo se aplica con enable_aigc_tag=true. |
input.aigc_propagate_id | string | Opcional | Request ID de esta solicitud | Campo PropagateID que identifica esta operación de distribución. Solo se aplica con enable_aigc_tag=true. |
input.hot_fix | object | Opcional | — | Configuración de corrección de texto. pronunciation personaliza la pronunciación de palabras concretas. replace sustituye el texto indicado antes de la síntesis. |
Códigos de idioma
-
zh: Chino -
en: Inglés -
fr: Francés -
de: Alemán -
ja: Japonés -
ko: Coreano -
ru: Ruso -
pt: Portugués -
th: Tailandés -
id: Indonesio -
vi: Vietnamita -
es: Español -
it: Italiano -
ms: Malayo -
fil: Filipino -
ar: Árabe -
other: Otros idiomas (compatibles con
qwen-audio-3.1-tts-flash) búlgaro, neerlandés, húngaro, rumano, danés, croata, griego, checo, noruego, sueco, hindi, eslovaco, finés, urdu, serbio, español de México, lituano, letón, turco, persa, hebreo, mongol, esloveno, azerbaiyano, polaco, catalán, jemer, portugués de Brasil, lao, georgiano, afrikáans, nepalí, bielorruso, malabar, luxemburgués, albanés, tamil, cingalés, telugu, estonio, cebuano, bosnio, birmano, armenio, latín, islandés, maltés, suajili, kazajo, criollo seychelense, ucraniano.
Cuerpo de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
request_id | string | Identificador único de la solicitud. |
output | object | Salida del modelo. |
output.finish_reason | string | Motivo de finalización. null indica síntesis en curso; stop indica síntesis terminada. |
output.type | string | Solo se devuelve en streaming. sentence-begin marca el inicio de una oración; sentence-synthesis marca un bloque de audio, con varios bloques posibles por oración; sentence-end marca el final e incluye el uso. Los bloques de audio y las tramas de datos se corresponden uno a uno. Agregue los bloques al mismo archivo en orden. |
output.original_text | string | Oración obtenida al dividir el texto de entrada. Puede faltar en la última oración. |
output.sentence | object | Información de la oración. |
output.sentence.index | integer | Índice de la oración, a partir de 0. |
output.sentence.words | array | Palabras de la oración y sus marcas de tiempo. |
output.sentence.words[].text | string | Una palabra o un carácter. |
output.sentence.words[].begin_index | integer | Posición inicial en la oración, a partir de 0. |
output.sentence.words[].end_index | integer | Posición final en la oración, a partir de 1. |
output.sentence.words[].begin_time | integer | Marca de tiempo de inicio del audio de la palabra, en milisegundos. |
output.sentence.words[].end_time | integer | Marca de tiempo de fin del audio de la palabra, en milisegundos. |
output.audio | object | Audio sintetizado. |
output.audio.data | string | Bloque de audio Base64 para streaming. Vacío sin streaming. |
output.audio.url | string | URL del archivo de audio completo, válida durante 24 horas. |
output.audio.id | string | Identificador del audio sintetizado. |
output.audio.expires_at | integer | Marca de tiempo de vencimiento de url. |
usage | object | Información de uso.qwen-audio-3.1-tts-flash se factura por los Tokens de entrada y salida. qwen-audio-3.1-tts-plus, qwen-audio-3.0-tts-plus y qwen-audio-3.0-tts-flash se facturan por carácter. |
usage.input_tokens | integer | Tokens de entrada. Solo se aplica a qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash. |
usage.output_tokens | integer | Tokens de salida. Solo se aplica a qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash. |
usage.total_tokens | integer | Suma de tokens de entrada y salida. Solo se aplica a qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash. |
usage.characters | integer | Caracteres facturables acumulados. |
- Sin streaming
- Streaming