API HTTP de síntesis de voz no en tiempo real de CosyVoice, 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.
China (Pekín)
POST https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer
Encabezados de solicitud
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
| Obligatorio | Token de autenticación con el formato |
|
| Obligatorio | Establezca el valor en |
|
| Opcional | Establezca el valor en |
Ejemplos
Sin streaming
curl -X POST "https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cosyvoice-v3-flash",
"input": {
"text": "我家的后面有一个很大的花园。",
"voice": "longanyang",
"format": "wav",
"sample_rate": 24000
}
}'
Streaming
curl --no-buffer -X POST "https://YOUR_WORKSPACE_ID.cn-beijing.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": "cosyvoice-v3-flash",
"input": {
"text": "我家的后面有一个很大的花园。",
"voice": "longanyang",
"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ámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
|
| Obligatorio | — | ID del modelo de síntesis de voz. Consulte los modelos y regiones en Síntesis de voz no en tiempo real. |
|
| Obligatorio | — | Objeto de parámetros de entrada. |
|
| Obligatorio | — | Texto para sintetizar. Para SSML, establezca |
|
| 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. |
|
| Opcional |
| Codificación de audio. Valores: |
|
| Opcional | 22050 | Frecuencia de muestreo en Hz. Valores: 8000, 12000, 16000, 22050, 24000, 44100, 48000. Con |
|
| Opcional | 50 | Volumen. Intervalo: [0, 100]. |
|
| Opcional | 1.0 | Velocidad de voz. Intervalo: [0.5, 2.0]. |
|
| Opcional | 32 | Tasa de bits de audio en kbps. Intervalo: [6, 510]. Solo se aplica con |
|
| Opcional | 1.0 | Tono. Intervalo: [0.5, 2.0]. |
|
| Opcional | — | Indica si se habilita SSML. Consulte Límites de uso para conocer las restricciones de modelos, voces e interfaces. |
|
| Opcional |
| Indica si se devuelven marcas de tiempo por palabra. Solo streaming. Admite voces clonadas de cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-flash, cosyvoice-v3-plus, cosyvoice-v2 y voces del sistema señaladas en la lista de voces. Las voces clonadas de otros modelos no son compatibles. |
|
| 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. |
|
| 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. |
|
| Opcional | — | Instrucción que controla el dialecto, la emoción o el rol. Consulte Control mediante instrucciones para modelos, voces y uso. |
|
| Opcional |
| Indica si se incorpora un identificador AIGC invisible en audio WAV, MP3 u Opus. Solo es compatible con cosyvoice-v3-flash, cosyvoice-v3-plus y cosyvoice-v2. |
|
| Opcional | UID de Alibaba Cloud | Campo Solo es compatible con cosyvoice-v3-flash, cosyvoice-v3-plus y cosyvoice-v2. |
|
| Opcional | Request ID de esta solicitud | Campo Solo es compatible con cosyvoice-v3-flash, cosyvoice-v3-plus y cosyvoice-v2. |
|
| Opcional | — | Configuración de corrección de texto. No es compatible con cosyvoice-v2. |
|
| Opcional |
| Indica si se filtran los marcadores Markdown antes de la síntesis. Solo es compatible con voces clonadas de cosyvoice-v3-flash. |
Códigos de idioma
zh: Chinoen: Inglésfr: Francésde: Alemánja: Japonésko: Coreanoru: Rusopt: Portuguésth: Tailandésid: Indonesiovi: Vietnamitaes: Españolit: Italianoms: Malayofil: Filipinoar: Árabe
Ejemplo de configuración de corrección de texto:
{
"hot_fix": {
"pronunciation": [
{
"天气": "tian1 qi4"
}
],
"replace": [
{
"今天": "金天"
}
]
}
}
Cuerpo de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Identificador único de la solicitud. |
|
| Salida del modelo. |
|
| Motivo de finalización. |
|
| Solo se devuelve en streaming. |
|
| Oración obtenida al dividir el texto de entrada. Puede faltar en la última oración. |
|
| Información de la oración. |
|
| Índice de la oración, a partir de 0. |
|
| Palabras de la oración y sus marcas de tiempo. |
|
| Una palabra o un carácter. |
|
| Posición inicial en la oración, a partir de 0. |
|
| Posición final en la oración, a partir de 1. |
|
| Marca de tiempo de inicio del audio de la palabra, en milisegundos. |
|
| Marca de tiempo de fin del audio de la palabra, en milisegundos. |
|
| Audio sintetizado. |
|
| Bloque de audio Base64 para streaming. Vacío sin streaming. |
|
| URL del archivo de audio completo, válida durante 24 horas. |
|
| Identificador del audio sintetizado. |
|
| Marca de tiempo de vencimiento de |
|
| Información de uso. |
|
| Caracteres facturables acumulados. |
Sin streaming
{
"output": {
"audio": {
"data": "",
"id": "audio_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"expires_at": 1792079570,
"url": "https://example.com/output.wav"
},
"finish_reason": "stop"
},
"usage": {
"characters": 27
},
"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": 1792079570
}
}
}
Resultado final:
{
"output": {
"audio": {
"data": "",
"id": "audio_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"expires_at": 1792079570,
"url": "https://example.com/output.wav"
},
"finish_reason": "stop"
},
"usage": {
"characters": 27
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}