Un message vocal d'un personnage fictif fonctionne quand la voix correspond à la personne et que le rendu correspond au moment. Qwen3 TTS transforme le script d'un personnage adulte en un seul MP3 à voix unique, et vous dirigez le rendu avec une note en langage courant. La tâche SpicyAPI propose neuf voix préréglées et coûte $0.068 pour 1 000 caractères de texte, avec un minimum de 100 caractères par requête. D'après nos tests de septembre 2026, le vocabulaire adulte explicite dans les passages directs et à la manière d'un livre audio a été lu tel quel. Utilisez-la pour des messages vocaux enregistrés et de la narration ; cette voie n'offre ni clonage vocal ni diffusion en direct.
Ce que comprend la tâche hébergée
| Détail | Tâche Qwen3 TTS |
|---|---|
| Entrée requise | text, 1–2 000 caractères |
| Direction du rendu | instructions, jusqu'à 1 000 caractères ; non prononcé, non facturé |
| Voix par défaut | Serena |
| Sortie | un MP3 mono 24 kHz |
| Prix | $0.068 pour 1 000 caractères de texte, minimum 100 caractères ($0.0068) |
| Référence vocale importée | non exposée |
| Plusieurs locuteurs dans une requête | non exposé ; générez chaque réplique séparément |
| Vitesse ou hauteur numérique | non exposées ; décrivez le rendu dans instructions |
Choisissez le préréglage et générez sur la page de la tâche Qwen3 TTS. Le dépôt de l'équipe Qwen couvre aussi les variantes CustomVoice, Base (clonage) et VoiceDesign. Il s'agit d'offres distinctes : l'argument ref_audio ou speaker d'une bibliothèque n'est pas une entrée ici, où le champ voix est voice_id.
Choisissez une voix pour le script que vous avez
| Préréglage | Description publiée de la voix | Langue native |
|---|---|---|
| Serena | voix féminine chaleureuse et douce | chinois |
| Vivian | voix féminine claire, légèrement mordante | chinois |
| Uncle_Fu | voix masculine grave et ronde | chinois |
| Dylan | voix masculine claire de Pékin | chinois, dialecte de Pékin |
| Eric | voix masculine vive, légèrement rauque | chinois, dialecte du Sichuan |
| Ryan | voix masculine rythmée | anglais |
| Aiden | voix masculine américaine claire | anglais |
| Ono_Anna | voix féminine légère et espiègle | japonais |
| Sohee | voix féminine chaleureuse et expressive | coréen |
Chaque préréglage peut lire toutes les langues prises en charge, mais l'équipe Qwen recommande la langue native de la voix pour la meilleure qualité. Pour un personnage masculin anglophone, commencez par Ryan ou Aiden. Pour un personnage féminin anglophone, essayez Serena ou Vivian ; l'ensemble ne contient aucune voix féminine d'anglais natif, alors écoutez-la avant de vous engager.
Écoutez un exemple de message vocal avec Serena : une note nocturne « rappelle-moi », lue avec une instruction essoufflée et taquine.
Essayez d'abord dans le Playground
Ouvrez la page de la tâche Qwen3 TTS et utilisez l'onglet Playground :
- Dans Text, ne collez que les mots à entendre (le script d'exemple de la page est un bon premier test).
- Choisissez un nom dans Voice (Serena par défaut).
- Écrivez la note de rendu dans Delivery instructions.
- Laissez Language sur Auto-detect, ou choisissez l'anglais pour un script anglais si la détection est ambiguë.
- Lancez l'exécution, puis écoutez le résultat dans Output et téléchargez le MP3.
Une adulte fictive après un rendez-vous : Text « I had a good time tonight. More than I expected, actually. Call me tomorrow? I'd like to see you again. », Voice Serena, Delivery instructions « Chaleureuse et légèrement timide, en parlant doucement à un seul auditeur adulte. Gardez la question finale dans un ton conversationnel. » Ne commencez pas le texte par Serena: ni par « Read this in a soft voice » : les deux seraient prononcés. Testez deux ou trois voix et notes ici avant d'écrire du code ; le prix s'affiche avant l'exécution.
language accepte auto, zh, en, de, fr, es, it, pt, ru, ja et ko. Il choisit comment votre texte est lu ; il ne traduit pas.
Puis appelez-la depuis le code
Installez le SDK Python (pip install spicyapi), définissez SPICY_API_KEY dans l'environnement et exécutez :
import urllib.request
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="alibaba/qwen-3-tts/text-to-speech",
input_data={
"text": "I had a good time tonight. More than I expected, actually. Call me tomorrow? I'd like to see you again.",
"voice_id": "Serena",
"language": "en",
"instructions": "Warm and slightly shy, speaking quietly to one adult listener. Keep the final question conversational.",
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")
urllib.request.urlretrieve(output_assets(final)[0]["url"], "voice-message.mp3")L'attente, les nouvelles tentatives, les devis et les erreurs figurent dans la référence du SDK Python et dans le guide des tâches asynchrones.
Ou laissez un Agent l'exécuter
Si un assistant doit donner la voix à vos répliques, donnez-lui la CLI ou le serveur MCP. Les deux affichent le prix et vous demandent de confirmer avant un appel payant. Le Skill ajoute des instructions par-dessus l'un ou l'autre.
- CLI.
spicyapiexécute une tâche depuis un terminal (npx @spicyapi/clifonctionne sans installation). Mettez le même objetinputdansinput.json:
``bash spicyapi tasks create --model alibaba/qwen-3-tts/text-to-speech \ --input-file input.json --idempotency-key voice-message-take-1 --wait ``
- Serveur MCP. Ajoutez le serveur MCP à votre assistant et demandez : « Lis cette réplique avec Qwen3 TTS, Serena, chaleureuse et légèrement timide. » Il appelle
spicyapi_task_create(qui s'arrête pour votre confirmation de prix), puisspicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstalle l'Agent Skill, qui apprend à un assistant de programmation à lire le schéma en direct et à réutiliser les clés d'idempotence. Il ne peut pas exécuter de tâches tout seul, alors utilisez-le avec la CLI ou MCP.
Dirigez la même réplique de trois façons
Gardez le texte et la voix fixes et ne changez que la note. Pour « I thought you'd forgotten » :
| Émotion visée | Instruction à essayer |
|---|---|
| Soulagé | « Souffle doux de soulagement, souriant, un peu plus bas sur le dernier mot » |
| Blessé | « Calme et prudent, plus lent, sans sourire » |
| Taquin | « Léger et joueur, légère montée à la fin, comme pour cacher un sourire » |
Ne changez qu'une chose à la fois. « Retirez le murmure » ou « plus lent après la première phrase » corrige une prise ; « plus émotionnel, plus humain » non. Si le résultat est trop théâtral, raccourcissez la note en « Rendu conversationnel naturel. »
Peut-il lire un script NSFW ?
Les tests ont couvert un passage adulte direct, un passage encadré comme un livre audio et un passage riche en indications, avec Serena ou Ryan et des instructions de rendu. Les transcriptions directe et livre audio ont correspondu mot pour mot au script, vocabulaire adulte compris, et le texte des instructions n'a jamais été prononcé.
Le passage riche en indications a conservé son vocabulaire adulte mais s'est davantage écarté du script à cause des vocalisations non verbales. Considérez les respirations et les rires comme quelque chose à tester, pas à contrôler : si une scène en dépend, générez d'abord ce moment, et ne supposez pas que la syntaxe en crochets ou en parenthèses d'un autre modèle fonctionne ici.
Composez une scène à deux personnages
Une requête donne une voix. Pour deux adultes fictifs, générez chaque réplique séparément :
| Réplique | Voix | Texte | Direction |
|---|---|---|---|
| 1 | Serena | « Did you really think I'd leave without saying goodnight? » | question chaleureuse et détendue |
| 2 | Ryan | « No. I was hoping you would come find me. » | réponse calme et amusée |
Les tutoriels ComfyUI multi-locuteurs analysent les noms de locuteurs, les silences et les chevauchements dans un nœud supplémentaire ; ces balises ne sont pas des champs d'entrée ici. Retirez les noms du texte parlé, envoyez chaque réplique avec son propre voice_id, puis réglez les silences dans votre éditeur. Commencez par un silence court et déplacez le deuxième clip jusqu'à ce que la réponse sonne naturelle. Mettre les deux noms dans un seul champ text vous donne un préréglage qui lit les étiquettes et les deux répliques. Pour scripter tout l'échange et joindre les clips automatiquement, voir le flux de dialogue Seed Speech 2.0 ; son script de jointure fonctionne avec n'importe quelle voix.
Pour une longue histoire à voix unique, découpez avant 2 000 caractères aux frontières de phrase ou de paragraphe et réutilisez la même voix et la même note pour chaque section. Pour remplacer une phrase, régénérez toute la phrase environnante et coupez aux pauses voisines, afin que le volume et le rythme continuent de correspondre.
Le forfait minimum compte pour les réponses courtes
Le coût est max(text characters, 100) × $0.068 / 1,000, espaces et ponctuation comptés. Les instructions sont gratuites.
| Longueur d'entrée | Caractères facturables | Coût |
|---|---|---|
| 40 caractères | 100 | $0.0068 |
| 80 caractères | 100 | $0.0068 |
| 180 caractères | 180 | $0.01224 |
| 1 000 caractères | 1 000 | $0.068 |
| 2 000 caractères | 2 000 | $0.136 |
Dix réponses séparées de 40 caractères coûtent $0.068, alors que leurs textes ne totalisent que 400 caractères ; une requête de 400 caractères avec la même voix coûte $0.0272. Fusionnez la narration contiguë d'une même voix lorsque votre montage le permet, mais ne fusionnez pas des personnages différents pour éviter le minimum.
Corrigez un résultat décevant
| Problème | Changement |
|---|---|
| Une réplique est précipitée | Ajoutez « Sans hâte, avec une pause naturelle après la première phrase » à instructions |
| Un nom est mal prononcé | Écrivez-le phonétiquement dans text ; gardez l'orthographe correcte dans votre transcription publique |
| La note change à peine le timbre | Essayez un autre préréglage ; les notes de rendu ne changent pas le caractère de base d'une voix |
La requête refuse speed, pitch ou ref_audio | Retirez-les et utilisez les quatre champs ci-dessus |
Si vous avez besoin d'un clonage vocal par import ou d'une conversation en direct, choisissez une tâche qui l'expose ; pour comparer d'autres modèles vocaux pour des scripts adultes, voir notre comparatif des API de synthèse vocale.






