Todos los productos
Search
Centro de documentos

Alibaba Cloud Model Studio:Referencia de la API de generación de audio

Última actualización: Oct 22, 2026

Envíe prompts de texto y audio de referencia mediante HTTPS para recibir archivos de audio generados. Esta página describe las solicitudes, las respuestas y el manejo de errores.

Requisitos previos

Obtenga una clave API y un ID de espacio de trabajo de la región seleccionada. Configúrelos como las variables de entorno DASHSCOPE_API_KEY y SFM_WORKSPACE_ID. Los ejemplos siguientes usan Beijing.

Envíe solicitudes HTTPS POST al siguiente endpoint. Reemplace {WorkspaceId} con su ID de espacio de trabajo.

Singapur

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

China (Beijing)

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

Headers

HeaderObligatorioDescripción
AuthorizationSíBearer <API Key>
Content-TypeSíapplication/json

Ejemplo de solicitud

curl --request POST \
  "https://$SFM_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer" \
  --max-time 300 \
  --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "qwen-audio-3.1-tts-next",
    "input": {
      "text_prompt": "A woman clearly says: Hello, welcome.",
      "format": "wav",
      "sample_rate": 48000,
      "channels": 2
    }
  }'

Respuesta de ejemplo, con IDs ilustrativos y una URL de descarga de marcador de posición:

{
  "request_id": "example-request-id",
  "output": {
    "finish_reason": "stop",
    "audio": {
      "data": "",
      "url": "https://example.com/generated.wav",
      "id": "audio_example-request-id",
      "expires_at": 1789616932,
      "duration": 1.12
    }
  },
  "usage": {
    "duration": 1
  }
}

Descargue el archivo usando output.audio.url de la respuesta real. La URL es válida por 24 horas. No use la URL de marcador de posición anterior para descargar audio.

Parámetros de solicitud

model es un campo de nivel superior. Todos los parámetros de generación pertenecen al objeto input.

CampoTipoObligatorioValor predeterminadoDescripción
modelstringSí—ID del modelo. Consulte Modelos compatibles.
inputobjectSí—Entrada de generación de audio.
input.text_promptstringSí—Descripción de audio o texto para sintetizar. Utilice @voice1, @voice2 y @voice3 para hacer referencia a los clips de audio en orden. Los límites de longitud se indican en la tabla de modelos.
input.referencesarrayNo—Clips de audio de referencia. Omítalos para generación solo de texto. El modelo actual acepta hasta 3 clips, cada uno de no más de 30 segundos y no mayor de 10 MB.
input.references[].audio_urlstringCondicional—URL de audio pública accesible para el servicio. Proporcione este campo o audio_data, pero no ambos.
input.references[].audio_datastringCondicional—URI de datos de audio: data:{mime_type};base64,{base64_encoded_data}. Mutuamente excluyente con audio_url.
input.formatstringNowavFormato de salida: wav, mp3 o pcm. No se admite la salida Opus.
input.sample_rateintegerNo48000Tasa de muestreo de salida en Hz: 8000, 16000, 24000, 44100 o 48000.
input.channelsintegerNo2Número de canales: 1 (mono) o 2 (estéreo).
input.volumeintegerNo50Volumen. Rango: [0, 100].
input.enable_cbrbooleanNofalseSolo MP3. true habilita la tasa de bits constante (CBR); false usa la tasa de bits variable (VBR).
input.bit_rateintegerNo128Solo CBR de MP3, en kbps. La salida real depende de la tasa de muestreo y los niveles de tasa de bits de MP3 admitidos. Véase abajo.
input.qualityintegerNo5Solo VBR de MP3. Rango: [0, 9], donde 0 es la calidad más alta.
input.ratefloatNo1.0Velocidad de habla. Rango: [0.5, 2.0].
input.seedintegerNo42Semilla aleatoria a nivel de solicitud.
input.enable_aigc_tagbooleanNofalseSi se debe agregar una marca de agua de identificación AIGC al audio generado.

El audio de referencia admite WAV, MP3 y OGG Opus, pero no PCM sin procesar. Los formatos de referencia y de salida tienen límites diferentes: OGG Opus se puede usar como entrada, pero Opus no se puede usar como salida.

Envíe audio de referencia a través de una URL o datos Base64, no a través de un ID de voz del sistema o clonada.

Tasa de bits CBR de MP3

Frecuencia de muestreo (Hz)Tasa de bits de salida mínima (kbps)Tasa de bits de salida máxima (kbps)
8000864
16000, 240008160
44100, 4800032320

La frecuencia de muestreo y los niveles de tasa de bits MP3 determinan la tasa de bits de salida. La tabla enumera los límites de salida, no la compatibilidad con cada número entero en cada rango. Los valores fuera del rango se restringen a los límites correspondientes.

Enviar audio de referencia

Este ejemplo de Python utiliza dos clips de audio de referencia para generar una conversación entre dos hablantes. Instale requests, prepare reference1.wav y reference2.wav, cada uno con un hablante diferente y cumpliendo los límites del modelo, y configure las variables de entorno descritas anteriormente.

Las ranuras siguen el orden de la lista references: el primer elemento, reference1.wav, corresponde a @voice1; el segundo elemento, reference2.wav, corresponde a @voice2. El ejemplo codifica en Base64 cada clip y hace referencia a ambos hablantes en el prompt.

import base64
import os
from pathlib import Path

import requests

reference1 = base64.b64encode(Path("reference1.wav").read_bytes()).decode("ascii")
reference2 = base64.b64encode(Path("reference2.wav").read_bytes()).decode("ascii")
workspace_id = os.environ["SFM_WORKSPACE_ID"]
endpoint = (
    f"https://{workspace_id}.cn-beijing.maas.aliyuncs.com"
    "/api/v1/services/audio/tts/SpeechSynthesizer"
)
response = requests.post(
    endpoint,
    headers={
        "Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "model": "qwen-audio-3.1-tts-next",
        "input": {
            "text_prompt": "@voice1 says: It is sunny today. Shall we take a walk? @voice2 replies: Sure, let us go to the park.",
            "references": [
                {"audio_data": f"data:audio/wav;base64,{reference1}"},
                {"audio_data": f"data:audio/wav;base64,{reference2}"}
            ],
            "format": "wav",
        },
    },
    timeout=300,
)
response.raise_for_status()
result = response.json()
audio_response = requests.get(result["output"]["audio"]["url"], timeout=60)
audio_response.raise_for_status()
Path("output.wav").write_bytes(audio_response.content)

Para usar una URL, reemplace el elemento de la lista con {"audio_url": "publicly accessible audio URL"} y omita audio_data. Los números de referencia siguen el orden de la lista y deben apuntar a elementos existentes.

Parámetros de respuesta

CampoTipoDescripción
request_idstringID de solicitud para solución de problemas.
output.finish_reasonstring"stop" al finalizar normalmente.
output.audio.datastringUna cadena vacía para este modo de solicitud. Descargue el audio completo desde output.audio.url.
output.audio.urlstringURL completa de descarga de audio, válida por 24 horas.
output.audio.idstringID del audio generado.
output.audio.expires_atintegerMarca de tiempo de caducidad de la URL de descarga.
output.audio.durationfloatDuración del audio generado en segundos.
usage.durationintegerDuración del audio generado redondeada al segundo entero más cercano. Este campo no se utiliza para calcular cargos por tokens.

Las solicitudes de podcast pueden generar hasta 240 segundos (4 minutos) de audio; otros escenarios están limitados a 120 segundos por solicitud. Para consultar los precios, véase Precios de modelos.

Modelos compatibles

Model IDLímite de promptDuración máxima generada por solicitud
qwen-audio-3.1-tts-next3,000 caracteresPodcasts: 240 segundos (4 minutos); otros escenarios: 120 segundos

Para casos de uso, ejemplos de audio y orientación sobre prompts, consulte Generación de audio. Los ejemplos en este documento utilizan este modelo.

Manejo de errores

Ejemplo de respuesta de error:

{
  "request_id": "example-request-id",
  "code": "CLIENT_ERROR",
  "message": "text_prompt exceeds the maximum length of 3000 characters."
}
HTTP statuscodeAction
400CLIENT_ERRORVerifique la longitud del prompt, el recuento y duración de referencias, exclusividad de URL/Base64, índices de referencia y el uso del campo voice no admitido.
404InvalidParameterPara "Model not exist.", verifique el ID del modelo, la región y la disponibilidad del modelo para su cuenta.
401InvalidApiKeyVerifique la validez de la clave API.
403AccessDeniedVerifique los permisos de acceso al modelo.
429Throttling.RateQuotaReduzca la tasa de solicitudes.
400DataInspectionFailedVerifique si el prompt o el audio de referencia cumplen con los requisitos de seguridad de contenido.
500InternalErrorConserve el request_id y reintente más tarde o contacte al soporte técnico.