Todos los productos
Search
Centro de documentos

Alibaba Cloud Model Studio:Qwen-Audio-TTS HTTP API

Última actualización: Oct 21, 2026

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

POST https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer

China (Pekín)

POST https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer

Encabezados de solicitud

ParámetroTipoObligatorioDescripció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

curl -X POST "https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "qwen-audio-3.1-tts-flash",
  "input": {
    "text": "你好,今天的天气真不错。",
    "voice": "longanhuan_v3.1",
    "format": "wav",
    "sample_rate": 24000
  }
}'

Streaming

curl --no-buffer -X POST "https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-DashScope-SSE: enable" \
  -d '{
  "model": "qwen-audio-3.1-tts-flash",
  "input": {
    "text": "你好,今天的天气真不错。",
    "voice": "longanhuan_v3.1",
    "format": "wav",
    "sample_rate": 24000
  }
}'

NotaUn 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ámetroTipoObligatorioPredeterminadoDescripció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

Ejemplo de configuración de corrección de texto:

{
  "hot_fix": {
    "pronunciation": [
      {
        "天气": "tian1 qi4"
      }
    ],
    "replace": [
      {
        "今天": "金天"
      }
    ]
  }
}

Cuerpo de la respuesta

ParámetroTipoDescripció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.

Notaqwen-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

{
  "output": {
    "audio": {
      "data": "",
      "id": "audio_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "expires_at": 1792079569,
      "url": "https://example.com/output.wav"
    },
    "finish_reason": "stop"
  },
  "usage": {
    "input_tokens": 12,
    "output_tokens": 30,
    "total_tokens": 42,
    "characters": 22
  },
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Streaming

Resultado intermedio:

{
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "output": {
    "finish_reason": null,
    "type": "sentence-begin",
    "original_text": "你好,今天的天气真不错。",
    "sentence": {
      "index": 0,
      "words": []
    },
    "audio": {
      "data": "",
      "id": "audio_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "expires_at": 1792079569
    }
  }
}

Resultado final:

{
  "output": {
    "audio": {
      "data": "",
      "id": "audio_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "expires_at": 1792079569,
      "url": "https://example.com/output.wav"
    },
    "finish_reason": "stop"
  },
  "usage": {
    "input_tokens": 12,
    "output_tokens": 30,
    "total_tokens": 42,
    "characters": 22
  },
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}