voice_id : REST,
WebSocket et Speech-to-Speech. Aucun audio de référence n’est nécessaire.
Vous avez plutôt un enregistrement ?
Les voix personnalisées clonent un locuteur à partir d’un court échantillon audio.
Fonctionnement
1. Générer
Envoyez une description et recevez des voix candidates en quelques secondes.
2. Écouter
Écoutez chaque candidat sur une courte phrase en synthèse vocale (TTS).
3. Convertir
Transformez votre choix en
voice_id permanent.4. Utiliser
La synthèse vocale, le streaming et le Speech-to-Speech l’acceptent tous.
Accès
URL de basehttps://api.gradium.ai/api, clé API dans l’en-tête x-api-key.
Démarrage rapide
Les étapes s’enchaînent en une seule séquence, en conservant les identifiants dans des variables shell ou des noms Python.1
Générer des candidats
201 Created
ready: false.Chaque requête crée de nouveaux identifiants. Conservez-les. Pour retrouver des
identifiants que vous n’avez pas conservés, listez vos candidats avec
GET /voice-generator/embeddings.2
Attendre qu'ils soient prêts
200 OK
200 avec une liste embeddings vide, et non 404 :
vérifiez donc la liste avant d’y accéder par index. Les horodatages sont en UTC, avec ou
sans Z final.3
Écouter un candidat
Passez l’identifiant du candidat comme Le corps de la réponse est l’audio, en 48 kHz mono. Répétez l’opération pour les autres candidats.Les candidats sont soumis à trois restrictions qui ne s’appliquent pas aux voix converties :
voice_id sur l’endpoint de synthèse vocale habituel. Le
préfixe vox_emb_ permet à l’API de distinguer un candidat d’une voix convertie.- Le texte est limité à 100 caractères (
400 input text too long). - REST uniquement. Le WebSocket TTS et le Speech-to-Speech rejettent les identifiants de candidats avec l’erreur
1011. - Un candidat qui n’est pas prêt, inconnu ou appartenant à un autre compte renvoie
404 Embedding not found.
4
Convertir le candidat en voix
Un candidat est un brouillon, supprimé 30 jours après sa génération. Le convertir
crée une voix permanente dans votre bibliothèque.
201 Created
uid est votre voice_id permanent. C’est celui-ci qu’il faut conserver. Il s’agit de la même
valeur que voxium_embedding_id dans la requête et que voice_id partout ailleurs.- La conversion est gratuite. La voix occupe un emplacement de voix personnalisée, partagé avec les clones de voix. Au-delà de votre quota :
409 Custom voice limit reached. - Elle supprime la date d’expiration du candidat.
- Convertir deux fois le même candidat :
409 A voice was already created from this embedding: <voice_id>. Conservez vous-même la correspondance entre candidat et voix plutôt que d’analyser ce message. - Candidat pas prêt ou inconnu :
409 Embedding is not ready yet.
5
Utiliser la voix
voice_id fonctionne avec le
SDK Python, le
WebSocket TTS et le
Speech-to-Speech.6
Faire le ménage
Les candidats que vous ne convertissez pas sont supprimés au bout de 30 jours. Pour en supprimer un plus tôt :Sans risque à tout moment : une voix convertie conserve sa propre copie. Un identifiant déjà
supprimé renvoie
cURL
404.Exemple complet
L’ensemble du processus dans un seul fichier. DéfinissezGRADIUM_API_KEY et exécutez-le. Il crée une
vraie voix dans votre compte.
L’audio est diffusé en streaming : les en-têtes WAV contiennent donc des longueurs fictives. Les lecteurs qui se fient à l’en-tête, comme le module
wave de Python, indiquent une durée erronée. Réécrivez les tailles RIFF et data après l’enregistrement si cela compte pour vous.Rédiger une description
La description est la seule entrée dont dispose le modèle. Il réagit aux attributs que contiendrait une fiche de casting, et plus vous en nommez, plus le résultat est précis.
Terminez par l’usage prévu. Il oriente l’interprétation et le registre, pas seulement la couleur
de la voix.
A British female voice, 20 to 30, glossy and confident, with girly chatter, high pitch, fast pacing, high energy and bright sparkling resonance. Ideal for a friendly receptionist or assistant.
Règles empiriques
- Utilisez l’espace disponible. Jusqu’à 500 caractères, tous utilisables. Des phrases complètes valent mieux qu’une liste d’adjectifs.
- Décrivez la voix, pas le script. Les mots à prononcer vont dans la phrase d’écoute.
- Définissez
languagesur la langue que parlera la voix. Ce paramètre façonne l’accent et l’interprétation, pas seulement les mots. Les accents régionaux restent à préciser dans la description : « de Bristol » ou « parisien » doit être écrit explicitement. - Le concret l’emporte sur l’appréciation. « Voix grave, débit lent, timbre rocailleux » en dit plus au modèle que « une super voix de narrateur ».
Exemples
Les descriptions telles qu’envoyées :
Pirate
A gruff Bristolian English male pirate voice, 45 to 60, for game and character narration: weathered low pitch, gravelly timbre with heavy vocal fry, strong projection, at a steady, unhurried pace, boisterous and commanding energy.Fionn
An Irish English male voice, 40 to 55, for customer service: calm and crisp, with mid-low pitch, steady natural pacing, medium energy and warm rounded resonance. Ideal for reassuring walkthroughs, empathic de-escalation and complex IT support.Freya
A British female voice, 20 to 30, glossy and confident, with girly chatter, high pitch, fast pacing, high energy and bright sparkling resonance. Ideal for a friendly receptionist or assistant.Desmond
An American English male voice, 55 to 65: clean, deliberate and precise, with low pitch, slow pacing and low-to-mid energy, resonant timbre and a gentle low-to-high flow. Ideal for projecting academic authority.
Itérer
Modifiez l’attribut qui ne convient pas plutôt que de réécrire la description.Intégrer Voice Design dans un produit
Si vous proposez la conception de voix à vos propres utilisateurs, préremplissez un formulaire avec les attributs ci-dessus et composez la phrase à partir de celui-ci, avec une zone de texte libre comme solution de repli. Affichez la limite de 500 caractères. Proposez « garder celle-ci » comme moyen de conserver une voix, et faites en sorte que « régénérer » envoie une nouvelle description plutôt que davantage d’échantillons.Paramètres de génération
Les paramètres de génération façonnent la voix et se placent dansjson_config sur
POST /voice-generator/generate. Les paramètres de synthèse
façonnent chaque énoncé et se placent dans json_config sur la requête TTS. Voice Design
prend toujours en charge cfg_scale pour contrôler à quel point la voix suit littéralement votre
description.
Tous les paramètres de génération sont facultatifs. Les valeurs par défaut sont optimisées : n’envoyez que les
clés que vous avez une raison de modifier.
cfg_scale
5.0, la valeur par défaut, pour explorer avec 3 à 5 candidats lorsque vous voulez qu’ils diffèrent.8.0à12.0lorsque les candidats s’éloignent de la description, ou lorsque vous générez un seul candidat à la fois. Les assistants de conception conversationnels qui génèrent un candidat par tour utilisent généralement10.0.- Au-delà de
12.0, la voix suit la description de plus en plus littéralement au détriment du naturel, et les candidats convergent les uns vers les autres.
cfg_scale ne peut pas ajouter un attribut que la description ne mentionne pas. Corrigez d’abord la
description.
La liste des clés autorisées dans json_config
Paramètres de synthèse
Écouter un candidat ou synthétiser avec une voix convertie est une requête TTS ordinaire : tout ce qui figure dans Paramètres de voix s’applique donc. Consultez Choix du modèle pour l’accès aux modèles TTS.Obsolète :
cfg_coef pour le TTSLe nouveau modèle TTS ignore cfg_coef lors de la synthèse avec une voix conçue. Supprimez-le
de vos requêtes TTS. cfg_scale s’applique toujours lors de la génération de la voix.Température (temp)
0.0 à 1.4, valeur par défaut 0.7.
- Écoutez les candidats avec la valeur par défaut.
0.0rend une voix vive plus plate qu’elle ne le sera en production. 0.3à0.5pour une production scénarisée à fort volume où les prises doivent être identiques : messages de SVI, annonces fixes.- Valeur par défaut ou légèrement au-dessus pour les agents conversationnels et la narration.
Balises prises en charge
Les modèles lisent du texte brut. Deux balises en ligne sont reconnues, aussi bien sur les candidats que sur les voix converties. Tout le reste est prononcé à voix haute comme du texte.
Sur un candidat, les balises comptent dans la limite de 100 caractères.
Non pris en charge
Le SSML n’est pas interprété.<speak><prosody rate="slow">Hello there.</prosody></speak>
produit une voix qui dit « speak prosody rate slow, hello there, slash prosody,
slash speak ». Utilisez plutôt :
Le Markdown et le HTML sont eux aussi lus comme du texte. Retirez la mise en forme avant l’envoi.
Cycle de vie des candidats
Limites
Erreurs
Les erreurs ont la forme{"detail": "..."}, sauf 422, qui contient une liste d’erreurs par champ.
Un candidat qui ne devient jamais prêt est presque toujours dû à une valeur de
json_config hors
plage ou à une clé que l’API ne reconnaît pas. Consultez la
liste des clés autorisées.
Étapes suivantes
Voice Localization
Faites parler un candidat ou une voix convertie dans une autre langue ou avec un autre accent.
Gérer les voix
Listez, modifiez et supprimez les voix que vous convertissez.
Paramètres de voix
Vitesse, température et autres options de synthèse.
Synthèse vocale en streaming
Utilisez votre nouvelle voix sur le WebSocket à faible latence.
Référence de l'API
Tous les endpoints de Voice Design en détail.