Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Synthèse vocale non temps réel

Dernière mise à jour :Oct 21, 2026

Convertissez un texte complet en parole via HTTP. Découvrez les fonctionnalités des modèles, les premiers appels et les moyens d’améliorer la synthèse.

Fonctionnalités

La synthèse vocale non temps réel reçoit un texte complet dans une seule requête HTTP et prend en charge les sorties sans flux et en flux SSE. La sortie sans flux renvoie une URL audio valable 24 heures. Téléchargez et enregistrez le fichier avant son expiration ; après celle-ci, vous pouvez relancer la synthèse. La sortie en flux renvoie les données audio par fragments.

  • Langues et dialectes : choisissez un modèle et une voix adaptés à la langue cible, ou précisez le dialecte par une instruction. Consultez Dialectes.
  • Expression vocale : ajustez la diction avec des instructions en langage naturel ou insérez des balises d’émotion et de sons non verbaux. Consultez Contrôle par instructions et Balises d’émotion et de sons non verbaux.
  • Voix personnalisées : créez une voix à partir d’un échantillon audio avec le clonage vocal, ou d’une description avec la conception vocale.
  • Contrôle détaillé et formules : utilisez SSML et LaTeX pour contrôler les pauses et la prononciation ou convertir des formules en parole.

Remarque

  • Les fonctionnalités disponibles dépendent du modèle et de la voix. Consultez leur périmètre dans la documentation correspondante.
  • Pour envoyer le texte progressivement, utilisez la synthèse vocale en temps réel.

Premiers pas

Qwen-Audio-TTS (Recommandé)

Les exemples suivants utilisent qwen-audio-3.1-tts-flash et la voix système longanhuan_v3.1 dans la région Singapour pour illustrer les sorties sans flux et en flux.

Sortie sans flux

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}"},
    json={
        "model": "qwen-audio-3.1-tts-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanhuan_v3.1",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    timeout=60,
)
response.raise_for_status()
audio_url = response.json()["output"]["audio"]["url"]
audio_response = requests.get(audio_url, timeout=60)
audio_response.raise_for_status()
with open("output.wav", "wb") as f:
    f.write(audio_response.content)

L’audio est enregistré dans le fichier output.wav du répertoire courant.

Sortie en flux

Cet exemple affiche les événements SSE reçus ligne par ligne. Le champ output.audio.data contient un fragment audio encodé en Base64.

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}", "X-DashScope-SSE": "enable"},
    json={
        "model": "qwen-audio-3.1-tts-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanhuan_v3.1",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    stream=True,
    timeout=60,
)
response.raise_for_status()
for line in response.iter_lines():
    print(line.decode("utf-8"))
response.close()

CosyVoice

Les exemples suivants utilisent cosyvoice-v3-flash et la voix système longanyang à Pékin pour illustrer les sorties sans flux et en flux.

Sortie sans flux

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}"},
    json={
        "model": "cosyvoice-v3-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanyang",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    timeout=60,
)
response.raise_for_status()
audio_url = response.json()["output"]["audio"]["url"]
audio_response = requests.get(audio_url, timeout=60)
audio_response.raise_for_status()
with open("output.wav", "wb") as f:
    f.write(audio_response.content)

L’audio est enregistré dans le fichier output.wav du répertoire courant.

Sortie en flux

Cet exemple affiche les événements SSE reçus ligne par ligne. Le champ output.audio.data contient un fragment audio encodé en Base64.

import os
import requests

response = requests.post(
    'https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
    headers={"Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}", "X-DashScope-SSE": "enable"},
    json={
        "model": "cosyvoice-v3-flash",
        "input": {
            "text": "Hello, welcome to Alibaba Cloud Model Studio.",
            "voice": "longanyang",
            "format": "wav",
            "sample_rate": 24000
        }
    },
    stream=True,
    timeout=60,
)
response.raise_for_status()
for line in response.iter_lines():
    print(line.decode("utf-8"))
response.close()

Améliorer la qualité de synthèse

Langues et prononciation

Si des nombres, abréviations ou symboles sont mal prononcés, utilisez language_hints pour préciser la langue cible, ou hot_fix pour personnaliser la prononciation et remplacer du texte. Consultez les modèles compatibles et la configuration dans les références Qwen-Audio-TTS API ou CosyVoice API.

Utilisez SSML pour contrôler les pauses, la lecture des nombres ou la prononciation des mots. Pour les modèles, voix, interfaces et balises compatibles avec Qwen-Audio-TTS et CosyVoice, consultez SSML et LaTeX.

Contrôle par instructions

Ajoutez instruction à l’objet input de la requête et décrivez le débit, l’émotion ou le style en langage naturel pour contrôler la parole synthétisée.

RemarquePour créer une voix avec un genre, un âge ou un caractère vocal précis, ou consulter des conseils et exemples de description vocale, reportez-vous à la conception vocale.

Qwen-Audio-TTS

Les voix système, clonées et conçues de qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash, qwen-audio-3.0-tts-plus et qwen-audio-3.0-tts-flash acceptent toutes des instructions en langage naturel via instruction dans les requêtes de synthèse.

Pour ralentir la parole dans l’exemple Qwen-Audio-TTS des premiers pas, ajoutez ce champ à input :

{"instruction": "请用非常缓慢的语速说话,每个字都慢慢说。"}

CosyVoice

RemarqueDans CosyVoice, instruction est limité à 100 caractères. Les caractères chinois, y compris simplifiés, traditionnels et employés en japonais ou en coréen, comptent chacun pour deux. Les autres caractères, notamment la ponctuation, les lettres, les chiffres, les kana et le hangeul, comptent chacun pour un.

ModèleVoix concernéesExigences des instructionsLangues du texte d’instruction

cosyvoice-v3.5-plus, cosyvoice-v3.5-flash

Voix clonées et conçues

Aucune voix système.

Instructions en langage naturel.

Chinois, anglais, français, allemand, japonais, coréen, russe, portugais, thaï, indonésien et vietnamien.

cosyvoice-v3-plus

Voix système

Utilisez le format et le contenu fixes de la liste des voix.

Les voix clonées et conçues ne prennent pas en charge le contrôle par instructions.

Utilisez la langue précisée dans la liste des voix.

cosyvoice-v3-flash

Voix système

Utilisez le format et le contenu fixes de la liste des voix.

Chinois.

Voix clonées et conçues

Instructions en langage naturel.

Chinois, anglais, français, allemand, japonais, coréen et russe.

Dialectes

La synthèse dialectale permet de générer de la parole dans des dialectes chinois, tels que ceux du Henan ou du Sichuan. La méthode de sélection dépend du modèle et du type de voix.

Qwen-Audio-TTS

  • Voix système : choisissez une voix adaptée au dialecte dans la liste Qwen-Audio-TTS. Une voix prenant directement en charge le dialecte ne nécessite aucun réglage supplémentaire. Pour les voix compatibles avec les instructions de dialecte, utilisez instruction.
  • Voix clonées : précisez le dialecte avec instruction, par exemple 请用河南话表达。.
  • Voix conçues : les dialectes ne sont pas pris en charge.

CosyVoice

  • Voix système : choisissez une voix prenant directement en charge le dialecte, telle que longshange_v3, ou compatible avec les instructions, telle que longanhuan_v3. Respectez le format de la liste des voix.
  • Voix clonées : utilisez instruction avec un modèle compatible pour préciser le dialecte.
  • Voix conçues : les dialectes ne sont pas pris en charge.

RemarqueLes voix clonées de cosyvoice-v3-plus ne permettent pas de préciser le dialecte par instruction.

Dans l’exemple CosyVoice des premiers pas, remplacez input par ce contenu pour générer le dialecte du Henan avec longanhuan_v3 :

{
  "text": "叫你去买盐,你买回来一袋面,这不是弄啥嘞吗!",
  "voice": "longanhuan_v3",
  "format": "wav",
  "sample_rate": 24000,
  "instruction": "请用河南话表达。"
}

Qwen3-TTS utilise des voix système compatibles avec le dialecte cible. Consultez la liste des voix Qwen-TTS.

Balises d’émotion et de sons non verbaux

RemarqueModèles concernés : qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash, qwen-audio-3.0-tts-plus et qwen-audio-3.0-tts-flash.

Les balises d’émotion et paralinguistiques contrôlent l’émotion et le style de la parole et insèrent des sons tels que des rires ou des soupirs à des positions précises. Écrivez les balises directement dans le texte à synthétiser, text, sans paramètre supplémentaire.

Exemples d’utilisation

Ce texte commence avec une diction enthousiaste, insère un rire à l’endroit indiqué, puis poursuit la parole :

[excited]今天的天气真不错![laughing]我们一起出去玩吧!

Ce texte passe à une diction enthousiaste dans la deuxième phrase :

[serious]请注意安全事项。[excited]好了,现在让我们开始吧!

Balises prises en charge

Balises de contrôle

Une balise de contrôle définit l’émotion ou le style du texte qui suit jusqu’à la balise de contrôle suivante. Si une longue phrase est segmentée automatiquement, son effet reste limité au segment obtenu.

BaliseDescription

[sad]

Triste

[amazed]

Émerveillé

[deep and loud shouting]

Cri grave et puissant

[trembling]

Tremblant

[angry]

En colère

[excited]

Enthousiaste

[sarcastic]

Sarcastique

[curious]

Curieux

[like dracula]

Diction de Dracula

[bored]

Ennuyé

[tired]

Fatigué

[scornful]

Méprisant

[shouting]

Cri

[asmr]

Voix douce ASMR

[panicked]

Paniqué

[mischievously]

Espiègle

[empathetic]

Empathique

[whispers]

Chuchotement

[reluctantly]

Réticent

[crying]

Pleurs

[serious]

Sérieux

[very slowly]

Très lent

[very fast]

Très rapide

Balises de sons non verbaux

Une balise de son non verbal insère un son à son emplacement sans modifier le style émotionnel du texte environnant.

BaliseDescription

[gasp]

Inspiration brusque

[sighing]

Soupir

[clears throat]

Raclement de gorge

[giggles]

Petit rire

[laughing]

Rire

[cough]

Toux

[snorts]

Reniflement

Modèles pris en charge

Singapour

Utilisez une clé API et un point de terminaison de cette région pour appeler ces modèles :

  • Qwen-Audio-TTS: qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash, qwen-audio-3.0-tts-plus, qwen-audio-3.0-tts-flash
  • Qwen3-TTS: qwen3-tts-flash

Chine (Pékin)

Utilisez une clé API et un point de terminaison de cette région pour appeler ces modèles :

  • Qwen-Audio-TTS: qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash, qwen-audio-3.0-tts-plus, qwen-audio-3.0-tts-flash
  • CosyVoice: cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-plus, cosyvoice-v3-flash, cosyvoice-v2
  • Qwen3-TTS: qwen3-tts-flash

Pour les voix système et les extraits audio, consultez les listes Qwen-Audio-TTS, CosyVoice et Qwen3-TTS. Une voix clonée ou conçue doit être utilisée avec le modèle cible indiqué à sa création.

Référence API