Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:CosyVoice HTTP API

Dernière mise à jour :Oct 15, 2026

API HTTP de synthèse vocale non temps réel CosyVoice : appels non streaming et SSE, paramètres des requêtes et champs des réponses.

Points de terminaison

Remplacez YOUR_WORKSPACE_ID par l’identifiant de l’espace de travail de la région et utilisez une clé API de cette même région.

Chine (Pékin)

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

En-têtes de requête

ParamètreTypeObligatoireDescription

Authorization

string

Obligatoire

Jeton d’authentification au format Bearer <your_api_key>.

Content-Type

string

Obligatoire

Définissez la valeur sur application/json.

X-DashScope-SSE

string

Facultatif

Définissez la valeur sur enable pour le streaming. Sans cet en-tête, le résultat complet est renvoyé.

Exemples

Sans 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
  }
}'

RemarqueUn événement SSE peut contenir plusieurs lignes data:. Combinez toutes les lignes data: d’un événement avant d’analyser le JSON. Décodez en Base64 puis concaténez les blocs audio dans l’ordre des événements. La trame finale contient output.finish_reason=stop et renvoie l’URL de l’audio complet.

Corps de la requête

ParamètreTypeObligatoireValeur par défautDescription

model

string

Obligatoire

—

Identifiant du modèle de synthèse vocale. Consultez les modèles et régions dans Synthèse vocale non temps réel.

input

object

Obligatoire

—

Objet contenant les paramètres d’entrée.

input.text

string

Obligatoire

—

Texte à synthétiser. Pour SSML, définissez enable_ssml=true. LaTeX ne nécessite aucun réglage supplémentaire. Consultez SSML et LaTeX pour le périmètre, les balises et la syntaxe.

input.voice

string

Obligatoire

—

Identifiant de voix. Consultez la liste des voix pour les voix système. Créez une voix personnalisée avec le clonage vocal ou la conception vocale, puis utilisez le modèle cible associé.

input.format

string

Facultatif

mp3

Encodage audio. Valeurs possibles : mp3, pcm, wav, opus.

input.sample_rate

integer

Facultatif

22050

Fréquence d’échantillonnage en Hz. Valeurs possibles : 8000, 12000, 16000, 22050, 24000, 44100, 48000. Avec format=opus, seules les valeurs 8000, 12000, 16000, 24000, 48000 sont prises en charge.

input.volume

integer

Facultatif

50

Volume. Plage : [0, 100].

input.rate

float

Facultatif

1.0

Débit de parole. Plage : [0.5, 2.0].

input.bit_rate

integer

Facultatif

32

Débit binaire audio en kbps. Plage : [6, 510]. Applicable uniquement avec format=opus.

input.pitch

float

Facultatif

1.0

Hauteur. Plage : [0.5, 2.0].

input.enable_ssml

boolean

Facultatif

—

Active ou non SSML. Consultez les limites d’utilisation pour les restrictions de modèle, de voix et d’interface.

input.word_timestamp_enabled

boolean

Facultatif

false

Renvoie ou non les horodatages des mots. Streaming uniquement. Compatible avec les voix clonées de cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-flash, cosyvoice-v3-plus et cosyvoice-v2, et les voix système indiquées dans la liste des voix. Les voix clonées des autres modèles ne sont pas prises en charge.

input.seed

integer

Facultatif

0

Graine aléatoire. Plage : [0, 65535]. Avec une version de modèle, un texte, une voix et les autres paramètres identiques, la même graine reproduit le même résultat.

input.language_hints

array[string]

Facultatif

—

Langue cible de la synthèse. Seul le premier élément du tableau est traité. Ce paramètre est indépendant de la langue source de l’échantillon de clonage. Utilisez-le si la prononciation des nombres, abréviations, symboles ou langues moins courantes ne convient pas. Les codes sont listés ci-dessous. Pour la langue source du clonage, consultez l’API de clonage vocal.

input.instruction

string

Facultatif

—

Instruction contrôlant le dialecte, l’émotion ou le rôle. Consultez Contrôle par instructions pour les modèles, voix et méthodes compatibles.

input.enable_aigc_tag

boolean

Facultatif

false

Intègre ou non un identifiant AIGC invisible dans l’audio WAV, MP3 ou Opus.

Pris en charge uniquement par cosyvoice-v3-flash, cosyvoice-v3-plus et cosyvoice-v2.

input.aigc_propagator

string

Facultatif

UID Alibaba Cloud

Champ ContentPropagator de l’identifiant, qui identifie le diffuseur. Applicable uniquement avec enable_aigc_tag=true.

Pris en charge uniquement par cosyvoice-v3-flash, cosyvoice-v3-plus et cosyvoice-v2.

input.aigc_propagate_id

string

Facultatif

Request ID de cette requête

Champ PropagateID de l’identifiant, qui identifie cette opération de diffusion. Applicable uniquement avec enable_aigc_tag=true.

Pris en charge uniquement par cosyvoice-v3-flash, cosyvoice-v3-plus et cosyvoice-v2.

input.hot_fix

object

Facultatif

—

Correction du texte. pronunciation personnalise la prononciation des mots indiqués. replace remplace le texte indiqué avant la synthèse.

Non pris en charge par cosyvoice-v2.

input.enable_markdown_filter

boolean

Facultatif

false

Filtre ou non les marqueurs Markdown avant la synthèse. Uniquement pour les voix clonées de cosyvoice-v3-flash.

Codes de langue

  • zh: Chinois
  • en: Anglais
  • fr: Français
  • de: Allemand
  • ja: Japonais
  • ko: Coréen
  • ru: Russe
  • pt: Portugais
  • th: Thaï
  • id: Indonésien
  • vi: Vietnamien
  • es: Espagnol
  • it: Italien
  • ms: Malais
  • fil: Philippin
  • ar: Arabe

Exemple de configuration de correction du texte :

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

Corps de la réponse

ParamètreTypeDescription

request_id

string

Identifiant unique de la requête.

output

object

Sortie du modèle.

output.finish_reason

string

Motif d’arrêt. null indique une synthèse en cours ; stop indique la fin.

output.type

string

Renvoyé uniquement en streaming. sentence-begin marque le début d’une phrase ; sentence-synthesis marque un bloc audio, avec plusieurs blocs possibles par phrase ; sentence-end marque la fin et contient l’utilisation. Les blocs audio et les trames correspondent un à un. Ajoutez les blocs au même fichier dans l’ordre.

output.original_text

string

Phrase issue de la segmentation du texte d’entrée. Ce champ peut être absent pour la dernière phrase.

output.sentence

object

Informations sur la phrase.

output.sentence.index

integer

Indice de la phrase, à partir de 0.

output.sentence.words

array

Mots de la phrase et leurs horodatages.

output.sentence.words[].text

string

Un mot ou un caractère.

output.sentence.words[].begin_index

integer

Position de début dans la phrase, à partir de 0.

output.sentence.words[].end_index

integer

Position de fin dans la phrase, à partir de 1.

output.sentence.words[].begin_time

integer

Horodatage du début audio du mot, en millisecondes.

output.sentence.words[].end_time

integer

Horodatage de fin audio du mot, en millisecondes.

output.audio

object

Audio synthétisé.

output.audio.data

string

Bloc audio Base64 en streaming. Vide sans streaming.

output.audio.url

string

URL du fichier audio complet, valide pendant 24 heures.

output.audio.id

string

Identifiant de l’audio synthétisé.

output.audio.expires_at

integer

Horodatage d’expiration de url.

usage

object

Informations d’utilisation.

usage.characters

integer

Nombre cumulé de caractères facturables.

Sans 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

Résultat intermédiaire:

{
  "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
    }
  }
}

Résultat 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"
}