Créez des voix personnalisées à partir de descriptions en langage naturel, écoutez leur aperçu et utilisez-les pour la synthèse vocale.
Présentation
La conception de voix convient au prototypage rapide, à la production de contenu créatif et aux voix de personnages de jeux.
RemarqueAucun échantillon audio n’est nécessaire pour créer la voix. Pour reproduire une voix à partir d’un échantillon audio existant, utilisez Clonage de voix.
Préparation
-
Obtenez une API key et définissez-la dans la variable d’environnement
DASHSCOPE_API_KEY. -
Obtenez l’ID de votre espace de travail et remplacez
YOUR_WORKSPACE_IDdans l’exemple par cette valeur. Pour les instructions, consultez Régions, périmètre de déploiement du service et endpoints. -
Installez le DashScope SDK et
requests:pip install -U dashscope requests
Premiers pas
Qwen-Audio-TTS et CosyVoice partagent le même processus de création de voix, d’aperçu et de synthèse de base. L’exemple suivant utilise qwen-audio-3.1-tts-flash.
- Créer une voix : Définissez la description
voice_prompt, le texte de l’aperçupreview_textet le modèle cibletarget_modelpour obtenir un ID de voix. - Enregistrer l’audio de l’aperçu : Décodez la valeur
preview_audio.datarenvoyée et enregistrez-la dans un fichier WAV pour l’écouter. - Synthétiser la parole : Utilisez le
voice_idrenvoyé comme valeur devoiceet effectuez la synthèse avec le modèle associé.
import base64
import os
import dashscope
import requests
from dashscope.audio.tts_v2 import AudioFormat, SpeechSynthesizer
api_key = os.environ["DASHSCOPE_API_KEY"]
workspace_id = "YOUR_WORKSPACE_ID"
target_model = "qwen-audio-3.1-tts-flash"
# Create a voice and save the returned preview audio.
response = requests.post(
f"https://{workspace_id}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/customization",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": "voice-enrollment",
"input": {
"action": "create_voice",
"target_model": target_model,
"voice_prompt": "A calm middle-aged male announcer with a deep, resonant voice, steady speaking pace, and clear articulation, suited for news broadcasts or documentaries.",
"preview_text": "Good evening, everyone. Welcome to the evening news.",
"prefix": "announcer",
"language_hints": ["en"],
},
"parameters": {"sample_rate": 24000, "response_format": "wav"},
},
timeout=120,
)
response.raise_for_status()
output = response.json()["output"]
voice_id = output["voice_id"]
print(f"voice_id: {voice_id}")
with open("preview.wav", "wb") as f:
f.write(base64.b64decode(output["preview_audio"]["data"]))
# Synthesize speech with the same target model and the returned voice ID.
dashscope.api_key = api_key
dashscope.base_websocket_api_url = (
f"wss://{workspace_id}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference"
)
synthesizer = SpeechSynthesizer(
model=target_model,
voice=voice_id,
format=AudioFormat.WAV_24000HZ_MONO_16BIT,
)
audio = synthesizer.call("The weather is clear today, perfect for a walk outside. Have a wonderful day.")
with open("output.wav", "wb") as f:
f.write(audio)
L’exemple enregistre l’audio de l’aperçu dans preview.wav et l’audio synthétisé dans output.wav. Conservez l’ID de voix affiché pour les prochains appels de synthèse vocale.
Pour les exemples de requêtes HTTP, les paramètres optionnels et les champs de réponse, consultez la Référence de l’API de conception de voix. Pour les paramètres de synthèse, consultez le Événements client Qwen-Audio-TTS.
Guide de rédaction des descriptions de voix
La description de la voix (voice_prompt) précise les caractéristiques souhaitées. Des descriptions claires et précises aident à générer des voix adaptées aux besoins.
Conseils de rédaction
- Être précis : Décrivez des caractéristiques telles que « grave », « claire » ou « débit rapide ». Évitez les appréciations vagues comme « belle » ou « normale ».
- Combiner les dimensions : Décrivez le genre, l’âge, la tonalité, le débit et l’émotion. « Voix féminine » seule fournit peu de détails pour obtenir une voix distinctive.
- Être objectif : Décrivez des caractéristiques perceptibles, comme « tonalité aiguë et énergique », plutôt que des préférences subjectives comme « ma voix préférée ».
- Être original : Décrivez les caractéristiques sans demander l’imitation d’une personne précise, comme une célébrité ou un acteur. Le modèle ne prend pas en charge l’imitation ciblée, et ces demandes peuvent soulever des questions de droits d’auteur.
- Être concis : Réduisez les synonymes répétés et les qualificatifs inutiles.
Combinez les dimensions suivantes dans une description de voix :
| Dimension | Exemples |
|---|---|
Genre | Masculin, féminin, neutre |
Âge | Enfant (5-12 ans), adolescent (13-18 ans), jeune adulte (19-35 ans), âge mûr (36-55 ans), senior (55 ans et plus) |
Tonalité | Aiguë, moyenne, grave, légèrement aiguë, légèrement grave |
Vitesse | Rapide, moyenne, lente, légèrement rapide, légèrement lente |
Émotion | Joyeux, calme, doux, sérieux, vivant, posé, apaisant |
Caractéristiques | Résonnant, clair, rauque, velouté, sucré, profond, puissant |
Cas d'utilisation | Journal télévisé, publicité, livre audio, personnage d'animation, assistant vocal, narration documentaire |
Exemples de descriptions
- Style radiophonique standard : articulation claire et précise avec une élocution parfaite
- Voix féminine jeune et dynamique, débit rapide avec une intonation montante marquée, adaptée aux présentations de produits de mode
- Voix masculine d'âge mûr, calme et posée, profonde et résonnante, idéale pour la lecture de journaux ou la narration documentaire
- Femme douce et réfléchie d'une trentaine d'années, tonalité régulière, convenant à la lecture de livres audio
- Voix d'enfant mignonne, fillette d'environ 8 ans, élocution légèrement enfantine, parfaite pour le doublage de personnages d'animation
RemarqueUne même description peut générer des voix différentes. Écoutez l’aperçu audio après la création. Pour comparer les résultats, générez plusieurs voix et choisissez celle qui convient le mieux.
Gestion des voix
- Lister les voix : Affichez les voix personnalisées existantes.
- Consulter les détails d’une voix : Affichez le modèle associé, l’état de la voix et d’autres informations.
- Supprimer une voix : Supprimez les voix devenues inutiles pour libérer du quota.
Pour les interfaces et les paramètres, consultez la Référence de l’API de conception de voix.
Modèles pris en charge
Chine (Pékin)
Utilisez une API key de cette région pour appeler les modèles suivants :
-
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
RemarqueLa conception de voix CosyVoice repose sur le modèle FunAudioGen-VD.
Quotas et limites
-
Nombre de voix: Chaque compte Alibaba Cloud Model Studio peut disposer de 1 000 voix personnalisées au maximum. Le clonage et la conception de voix partagent ce quota au niveau du compte, tous modèles confondus.
RemarqueLorsque la limite est atteinte, les nouvelles demandes de création par clonage ou conception de voix échouent. Supprimez les voix devenues inutiles pour libérer du quota avant d’en créer de nouvelles.
-
Description de la voix :
voice_promptprend en charge uniquement le chinois et l’anglais, avec une longueur maximale de 500 caractères. -
Texte de l’aperçu :
preview_textprend en charge uniquement le chinois et l’anglais et doit contenir entre 15 et 200 caractères. -
Association au modèle : Lors de sa création, la voix est associée à un modèle de synthèse vocale via
target_model. Utilisez le même modèle pour les synthèses suivantes.
La voix générée peut synthétiser de la parole dans plusieurs langues. Les langues prises en charge dépendent du modèle de synthèse vocale cible.
Facturation
La création de voix est gratuite.
La synthèse vocale avec une voix conçue est facturée selon le modèle de synthèse vocale cible. Pour les tarifs, consultez Tarification des modèles.