curl --request POST \
--url https://api.evolink.ai/v1/audios/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "qwen-audio-3.1-tts-flash",
"prompt": "我家的后面有一个很大的花园。"
}
'{
"created": 1790000000,
"id": "task-unified-1790000000-abcd1234",
"model": "qwen-audio-3.1-tts-flash",
"object": "audio.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 3,
"audio_type": "tts"
},
"type": "audio",
"usage": {
"credits_reserved": 0.0144
}
}Synthèse vocale Qwen Audio 3.1 TTS Flash
- Convertissez du texte en audio, jusqu’à
5000caractères par requête - 68 voix système : consultez la liste des voix. Vous pouvez aussi utiliser une voix créée par clonage ou conception avec Voice Enrollment
- Les voix personnalisées expirent par défaut
6 heuresaprès la fin de leur création. La synthèse renvoie ensuite404(voice_expired) ; créez une nouvelle voix avec Voice Enrollment - Instructions en langage naturel (
instruction), balises émotionnelles et paralinguistiques dans le texte, SSML et prononciation personnalisée (hot_fix) - Seuls les paramètres ci-dessous sont acceptés ; les autres renvoient
400(unsupported_parameter) - Traitement asynchrone : utilisez l’ID de tâche renvoyé pour consulter le résultat
- Aucune annulation après soumission
- Les liens audio sont valides 24 heures ; enregistrez-les rapidement
Facturation :
- Selon les tokens réellement utilisés : tokens d’entrée (liés à la longueur du texte) et de sortie (liés à la durée audio), facturés séparément
- Des crédits sont réservés à la soumission selon la longueur du texte (
usage.credits_reserved). À la fin, le coût réel est régularisé : remboursement de l’excédent ou facturation du solde. Remboursement intégral en cas d’échec - Chiffres, lettres et symboles peuvent être lus individuellement, produisant un audio plus long et davantage de tokens de sortie qu’un texte ordinaire de même longueur ; le coût réel peut dépasser la réservation
- Pour un même texte, les instructions ou balises de lecture lente, comme
[very slowly], peuvent nettement augmenter les tokens de sortie. Le réglagespeech_rateet les pauses SSML ne les augmentent pas
Résultat de tâche (lorsque status vaut completed) :
| Champ | Description |
|---|---|
results[0] | URL audio |
result_data[0].audio_url | URL audio, identique à results[0] |
result_data[0].format | Format audio |
result_data[0].sample_rate | Fréquence d’échantillonnage (Hz) |
usage.input_tokens / usage.output_tokens / usage.total_tokens | Tokens utilisés pour cette synthèse |
usage.credits_used | Crédits réellement utilisés |
curl --request POST \
--url https://api.evolink.ai/v1/audios/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "qwen-audio-3.1-tts-flash",
"prompt": "我家的后面有一个很大的花园。"
}
'{
"created": 1790000000,
"id": "task-unified-1790000000-abcd1234",
"model": "qwen-audio-3.1-tts-flash",
"object": "audio.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 3,
"audio_type": "tts"
},
"type": "audio",
"usage": {
"credits_reserved": 0.0144
}
}Autorisations
Tous les points d’accès exigent une authentification par token Bearer
Obtenir une clé API :
Rendez-vous dans Gestion des clés API pour obtenir votre clé
Ajoutez cet en-tête :
Authorization: Bearer YOUR_API_KEY
Corps
- Option 1
- Option 2
Fournissez au moins un texte non vide dans prompt ou input. Si les deux sont présents, leurs contenus doivent être identiques. Si response_format et format sont présents, leurs valeurs doivent aussi être identiques.
Texte à synthétiser
Contraintes :
- Maximum
5000caractères - Conservez la ponctuation des textes longs : un long passage sans séparation de phrases peut être tronqué en amont vers
1500tokens de sortie (environ 120 secondes d’audio). La tâche reste indiquée comme réussie et facturée selon les tokens générés ; la passerelle ne peut pas détecter cette troncature - Vous pouvez utiliser
input. Au moins un texte non vide est requis ; préférez un seul champ. Des contenus différents renvoient400(parameter_conflict) - Le texte doit être dans une langue prise en charge par la voix choisie, sinon la prononciation peut être incorrecte
Balises émotionnelles et paralinguistiques : Insérez-les directement dans le texte, sans paramètre supplémentaire ; leur texte compte dans les caractères de facturation
- Balises de contrôle: Définissent l’émotion ou le style du texte qui suit jusqu’à la prochaine balise de contrôle.
[sad]triste,[amazed]étonné,[deep and loud shouting]cri grave et puissant,[trembling]tremblant,[angry]en colère,[excited]enthousiaste,[sarcastic]sarcastique,[curious]curieux,[like dracula]grave et inquiétant,[bored]ennuyé,[tired]fatigué,[scornful]méprisant,[shouting]cri,[asmr]chuchotement doux ASMR,[panicked]paniqué,[mischievously]espiègle,[empathetic]empathique,[whispers]chuchotement,[reluctantly]à contrecœur,[crying]pleurs,[serious]sérieux,[very slowly]très lentement,[very fast]très vite - Balises paralinguistiques: Insèrent un effet vocal à cet endroit sans modifier l’émotion du texte environnant.
[gasp]inspiration brusque,[sighing]soupir,[clears throat]raclement de gorge,[giggles]petit rire,[laughing]rire,[cough]toux,[snorts]reniflement
Exemple : [excited]今天的天气真不错![laughing]我们一起出去玩吧!
Avec enable_ssml: true, ce champ est interprété comme du SSML
5000\S"我家的后面有一个很大的花园。"
Nom du modèle
qwen-audio-3.1-tts-flash "qwen-audio-3.1-tts-flash"
Alias de prompt, avec les mêmes limites de longueur et règles d’utilisation
- Fournissez au moins un texte non vide dans
promptouinput - Si les deux sont présents, leurs contenus doivent être identiques, sinon
400(parameter_conflict)
5000"我家的后面有一个很大的花园。"
Nom de voix, sensible à la casse
- 68 voix système ; noms, genre et usages dans la liste des voix
- Par défaut :
longanhuan_v3.1 - Vous pouvez utiliser une voix créée avec Voice Enrollment :
qwen-audio-3.1-tts-flash-{prefix}-{32-character-id}pour le clonage,qwen-audio-3.1-tts-flash-vd-{prefix}-{32-character-id}pour la conception. Seul le compte créateur peut l’utiliser. Les voix d’autres modèles, commeqwen-tts-vd-…deqwen-voice-design, renvoient400(invalid_voice). Une voix inexistante ou appartenant à un autre compte renvoie404(voice_not_found) - Les voix personnalisées expirent par défaut
6 heuresaprès la fin de leur création. Ensuite, la synthèse renvoie404(voice_expired) ; créez une nouvelle voix avec Voice Enrollment
"longanhuan_v3.1"
Format audio de sortie : mp3, wav ou opus, par défaut mp3
opusutilise un conteneur Ogg Opus- Vous pouvez aussi utiliser
format. Préférez un seul champ ; des valeurs différentes renvoient400(parameter_conflict)
mp3, wav, opus "mp3"
Alias de response_format ; accepte mp3, wav et opus
- Par défaut
mp3si les deux champs sont absents - Si les deux sont présents, les valeurs doivent être identiques, sinon
400(parameter_conflict)
mp3, wav, opus "mp3"
Fréquence d’échantillonnage de sortie (Hz)
22050et44100ne sont pas acceptés avecresponse_format: opus- Absence ou
nullutilise la valeur par défaut ;0ou une valeur hors liste renvoie400
8000, 12000, 16000, 22050, 24000, 44100, 48000, null 24000
Volume, de 0 à 100
0 <= x <= 10050
Multiplicateur de vitesse de parole
1.0: vitesse normale (par défaut)2.0: vitesse double ;0.5: demi-vitesse
Plage : 0.5 à 2.0. Ce réglage ne change pas le nombre de tokens de sortie
0.5 <= x <= 21
Multiplicateur de hauteur de voix
1.0: hauteur par défaut- Au-dessus de
1.0, voix plus aiguë ; en dessous, plus grave
Plage : 0.5 à 2.0
Changer la hauteur modifie aussi la vitesse et la durée audio
- Une hauteur plus élevée accélère et raccourcit l’audio ; une hauteur plus basse ralentit et allonge l’audio. La durée varie approximativement comme l’inverse du carré de la valeur
- Pour une phrase de 2.8 secondes à
1.0:0.8donne environ 4.3 secondes,1.22.1 secondes,0.510.9 secondes et2.00.7 seconde - Préférez de petits ajustements entre
0.8et1.2; près de0.5ou2.0, la parole devient nettement trop lente ou rapide - Si
speech_rateest aussi défini à une valeur différente de1.0,pitchest sans effet ; les deux ne se cumulent pas - Le réglage de hauteur ne change pas le nombre de tokens de sortie
0.5 <= x <= 21
Instructions en langage naturel pour contrôler émotion, ton, personnage, dialecte et expression
Contraintes :
- Maximum
100caractères de facturation : les caractères Han (y compris les kanji japonais et les hanja coréens) comptent pour 2 ; les autres, y compris les kana et le hangul, pour 1 (environ 50 caractères Han ou 100 caractères anglais). Dépassement :400
Exemples :
用欢快、热情的语气说(parler joyeusement et avec enthousiasme)请用上海话表达(parler shanghaïen ; voix multilingues et dialectales)Speak slowly in a calm and gentle tone
Les instructions ne comptent pas dans les tokens d’entrée, mais peuvent modifier la durée audio et donc les tokens de sortie
Le paramètre est
instruction(au singulier) ;instructionsrenvoie400
"用欢快、热情的语气说"
Indication de langue cible pour améliorer la lecture des chiffres, abréviations et symboles ainsi que la synthèse dans les langues moins courantes
Par exemple, avec zh, 110 dans hello, this is 110 se lit en chinois « yao yao ling »
| Valeur | Langue | Valeur | Langue |
|---|---|---|---|
zh | Chinois | th | Thaï |
en | Anglais | id | Indonésien |
fr | Français | vi | Vietnamien |
de | Allemand | es | Espagnol |
ja | Japonais | it | Italien |
ko | Coréen | ms | Malais |
ru | Russe | fil | Filipino |
pt | Portugais | ar | Arabe |
Sans ce paramètre, le modèle détecte la langue ; il ne traduit pas le texte
zh, en, fr, de, ja, ko, ru, pt, th, id, vi, es, it, ms, fil, ar "zh"
Interpréter prompt comme du SSML
Une fois activé, les balises SSML sont utilisables, comme <break time="1s"/> pour une pause :
<speak>欢迎收听今天的节目。<break time="1s"/>我们马上开始。</speak>
Les pauses SSML ne comptent pas dans les tokens de sortie
false
Prononciation personnalisée et remplacement de texte pour corriger les caractères à plusieurs lectures, noms propres et autres prononciations
pronunciation: annotez les mots en pinyin, avec des espaces entre syllabes et des chiffres pour les tons, commetian1 qi4replace: remplace les mots avant la synthèse. Synthèse et facturation utilisent le texte remplacé, toujours limité à5000caractères ; dépassement :400(prompt_too_long)
Les deux listes sont limitées à 200 entrées au total, comptées comme paires clé-valeur dans les objets. Dépassement : 400 (invalid_parameter)
Fournissez au moins une liste. Chaque liste fournie doit être un tableau non vide d’objets de forme {"mot": "valeur"}
Exemple :
{
"pronunciation": [{"天气": "tian1 qi4"}],
"replace": [{"今天": "金天"}]
}
Show child attributes
Show child attributes
Intégrer un marqueur AIGC invisible dans l’audio généré (formats wav / mp3 / opus)
false
URL HTTPS de rappel pour le résultat de la tâche
Déclenchement :
- À la fin (
completed) ou à l’échec (failed) de la tâche; ce modèle ne permet pas l’annulation - Après confirmation de la facturation
Sécurité :
- HTTPS uniquement
- Adresses IP privées interdites (127.0.0.1, 10.x.x.x, 172.16–31.x.x, 192.168.x.x, etc.)
- URL de
2048caractères maximum
Livraison :
- Délai d’expiration :
10secondes - Au plus
3nouvelles tentatives après un échec, avec délais de1/2/4secondes - Corps du rappel au même format que la réponse de consultation de tâche
- Un statut 2xx indique le succès ; les autres déclenchent une nouvelle tentative
"https://your-domain.com/webhooks/tts-completed"
Réponse
Tâche de synthèse vocale créée
Horodatage de création de la tâche
1790000000
ID de tâche
"task-unified-1790000000-abcd1234"
Modèle effectivement utilisé
"qwen-audio-3.1-tts-flash"
Type précis de l’objet de tâche
audio.generation.task Progression de la tâche en pourcentage (0–100)
0 <= x <= 1000
État de la tâche
pending, processing, completed, failed "pending"
Détails de la tâche audio
Show child attributes
Show child attributes
Type de sortie de la tâche
audio "audio"
Informations d’utilisation et de facturation
Show child attributes
Show child attributes