API HTTP de synthèse vocale non temps réel Qwen-Audio-TTS : 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.
Singapour
POST https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer
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ètre | Type | Obligatoire | Description |
|---|---|---|---|
|
| Obligatoire | Jeton d’authentification au format |
|
| Obligatoire | Définissez la valeur sur |
|
| Facultatif | Définissez la valeur sur |
Exemples
Sans 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
}
}'
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ètre | Type | Obligatoire | Valeur par défaut | Description |
|---|---|---|---|---|
|
| Obligatoire | — | Identifiant du modèle de synthèse vocale. Consultez les modèles et régions dans Synthèse vocale non temps réel. |
|
| Obligatoire | — | Objet contenant les paramètres d’entrée. |
|
| Obligatoire | — | Texte à synthétiser. Pour SSML, définissez |
|
| 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é. |
|
| Facultatif |
| Encodage audio. Valeurs possibles : |
|
| Facultatif | 22050 | Fréquence d’échantillonnage en Hz. Valeurs possibles : 8000, 12000, 16000, 22050, 24000, 44100, 48000. Avec |
|
| Facultatif | 50 | Volume. Plage : [0, 100]. |
|
| Facultatif | 1.0 | Débit de parole. Plage : [0.5, 2.0]. |
|
| Facultatif | 32 | Débit binaire audio en kbps. Plage : [6, 510]. Applicable uniquement avec |
|
| Facultatif | 1.0 | Hauteur. Plage : [0.5, 2.0]. |
|
| Facultatif | — | Active ou non SSML. Consultez les limites d’utilisation pour les restrictions de modèle, de voix et d’interface. |
|
| Facultatif |
| Renvoie ou non les horodatages des mots. Streaming uniquement. Les voix clonées sont prises en charge. Consultez la liste des voix pour les voix système compatibles. |
|
| 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. |
|
| 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. |
|
| 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. |
|
| Facultatif |
| Intègre ou non un identifiant AIGC invisible dans l’audio WAV, MP3 ou Opus. |
|
| Facultatif | UID Alibaba Cloud | Champ |
|
| Facultatif | Request ID de cette requête | Champ |
|
| Facultatif | — | Correction du texte. |
Codes de langue
zh: Chinoisen: Anglaisfr: Françaisde: Allemandja: Japonaisko: Coréenru: Russept: Portugaisth: Thaïid: Indonésienvi: Vietnamienes: Espagnolit: Italienms: Malaisfil: Philippinar: Arabe
Exemple de configuration de correction du texte :
{
"hot_fix": {
"pronunciation": [
{
"天气": "tian1 qi4"
}
],
"replace": [
{
"今天": "金天"
}
]
}
}
Corps de la réponse
| Paramètre | Type | Description |
|---|---|---|
|
| Identifiant unique de la requête. |
|
| Sortie du modèle. |
|
| Motif d’arrêt. |
|
| Renvoyé uniquement en streaming. |
|
| Phrase issue de la segmentation du texte d’entrée. Ce champ peut être absent pour la dernière phrase. |
|
| Informations sur la phrase. |
|
| Indice de la phrase, à partir de 0. |
|
| Mots de la phrase et leurs horodatages. |
|
| Un mot ou un caractère. |
|
| Position de début dans la phrase, à partir de 0. |
|
| Position de fin dans la phrase, à partir de 1. |
|
| Horodatage du début audio du mot, en millisecondes. |
|
| Horodatage de fin audio du mot, en millisecondes. |
|
| Audio synthétisé. |
|
| Bloc audio Base64 en streaming. Vide sans streaming. |
|
| URL du fichier audio complet, valide pendant 24 heures. |
|
| Identifiant de l’audio synthétisé. |
|
| Horodatage d’expiration de |
|
| Informations d’utilisation. Remarque |
|
| Tokens d’entrée. Uniquement pour qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash. |
|
| Tokens de sortie. Uniquement pour qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash. |
|
| Somme des tokens d’entrée et de sortie. Uniquement pour qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash. |
|
| Nombre cumulé de caractères facturables. |
Sans 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
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": 1792079569
}
}
}
Résultat 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"
}