Un tutoriel produit peut avoir une voix agréable et lire un montant de travers. Pour une équipe data qui automatise des contenus, la question dépasse donc le choix du timbre : comment conserver le sens, corriger les termes métier et retrouver le fichier effectivement validé ?
Ce guide fournit un atelier Python de génération et de cache audio, un glossaire d’exemple et une grille de recette. Le code fonctionne sans dépendance externe et prépare les demandes sans réseau par défaut. Une option explicite déclenche la génération payante.
Le contrôle local du code a été exécuté. Aucun modèle vocal n’a été appelé et aucun audio fournisseur n’a été évalué pour cet article. Les exemples sont fictifs ; la grille reste à remplir après écoute.
Ce que fait une API de synthèse vocale
Une API de text-to-speech reçoit un texte et des paramètres de voix, puis renvoie des octets audio. Elle ne vérifie pas que votre montant correspond à la facture, ni que votre acronyme a le sens attendu. Ces décisions appartiennent au système qui prépare le contenu.
Dans un parcours manuel, une personne lit le script, enregistre, corrige et exporte. Avec une API, on automatise la production du fichier. On doit encore organiser la validation du texte et l’écoute. Si une formation change chaque semaine, cette organisation peut réduire les reprises ; si une vidéo ne change jamais, conserver une bonne prise humaine peut rester préférable.
Séparez trois objets :
- Le texte métier, fidèle à la donnée et à la version du produit.
- Le texte destiné à être lu, où les dates et références ambiguës sont explicitées.
- L’audio validé, associé à ses paramètres et à une décision de diffusion.
Le texte affiché à l’écran peut rester « 1 250,50 € », tandis que le script dit « mille deux cent cinquante euros et cinquante centimes ». Conservez cette correspondance pour pouvoir vérifier une correction.
Quel modèle essayer avec ElevenLabs API ?
ElevenLabs a annoncé Eleven v4 le 28 septembre 2026. La page de lancement indique son accès via ElevenAPI. Cela justifie un essai, pas une migration générale : les résultats et comparaisons présentés sur cette page sont ceux du fournisseur. Annonce officielle.
Pour un premier protocole de narration, deux candidats suffisent :
- Eleven Multilingual v2 constitue un point de comparaison pour un contenu parlé classique.
- Eleven v4 permet d’explorer davantage le contrôle de la prononciation et de l’expression.
La documentation donne une limite de 10 000 caractères par requête pour chacun. L’atelier reste dans cette limite et utilise les identifiants eleven_multilingual_v2 et eleven_v4. Choisissez une voix adaptée au français de votre audience ; un modèle multilingue ne dispense pas de tester son accent. Modèles disponibles.
Une alternative mérite aussi d’être regardée si votre plateforme utilise déjà Azure Speech : sa documentation décrit les phonèmes, les lexiques et les substitutions SSML. Vérifiez la prise en charge par la voix choisie avant de transférer une recette d’un moteur à l’autre. Un balisage accepté chez un fournisseur n’est pas automatiquement portable. Prononciation dans Azure Speech.
La bonne comparaison porte sur vos phrases, le temps de correction et l’intégration existante. Le nombre total de langues ou une démonstration expressive ne départagent pas, à eux seuls, deux solutions pour un tutoriel français neutre.
Le glossaire dépend du modèle
Un alias remplace un terme par une autre forme écrite. Par exemple, on peut demander de lire « ARR » comme « revenu annuel récurrent » dans un contexte où ce sens est validé. Un phonème décrit les sons attendus dans un alphabet phonétique.
Le guide ElevenLabs du 1er octobre distingue ces mécanismes : Multilingual v2 accepte les alias, mais pas les phonèmes de dictionnaire ; v4 accepte les deux. Les règles sont sensibles à la casse. Notre exemple utilise des alias pour permettre une comparaison avec la même intention entre les deux modèles. Guide des dictionnaires.
Le fichier fourni contient notamment :
{
"string_to_replace": "ETL",
"type": "alias",
"alias": "E T L"
}
Cet espacement est une hypothèse de prononciation à écouter, pas une garantie. Testez « ETL », une phrase qui contient ce terme et sa variante en minuscules. Si le mot ne doit pas être développé partout, préférez une préparation du texte liée au contexte plutôt qu’une substitution globale.
Versionner le glossaire compte autant que le conserver. Après une correction, ne remplacez pas silencieusement la référence utilisée par des centaines de contenus. Créez une nouvelle version, rejouez les phrases concernées, puis décidez quels fichiers doivent être régénérés. La documentation permet de référencer un dictionnaire avec son identifiant et celui de sa version. Utilisation par API.
Deux situations concrètes
Mettre à jour un tutoriel produit
Une équipe fictive publie un tutoriel expliquant l’import d’un fichier de ventes. Le script contient des sigles, un nom de fonctionnalité et une consigne de validation. Elle conserve des segments par étape du parcours pour ne reprendre que les passages modifiés.
Le gain recherché est le délai entre modification du produit et audio prêt à diffuser. Mesurez aussi le temps d’écoute et de montage. Un découpage trop fin peut produire des ruptures de rythme : la recette doit porter sur le segment et sur son raccord avec les voisins.
Le critère de réussite peut être : aucune erreur sur les noms de commandes et les consignes, puis un rythme accepté par les relecteurs. Fixez ces règles avant l’essai. Une note moyenne élevée ne doit pas compenser un « ne validez pas » devenu difficile à comprendre.
Lire un récapitulatif de chiffres
Autre exemple fictif : une équipe veut ajouter une lecture audio au résumé d’un rapport commercial. Les nombres changent, mais les explications restent proches d’une période à l’autre.
Préparez d’abord un texte validé à partir des chiffres, des unités et de la période. Une valeur absente ne doit pas être lue comme zéro. Évitez de transmettre directement des chaînes ambiguës comme « 07/10 » sans année ni convention. Le problème est ici autant une question de définition des indicateurs que de voix ; notre guide des modèles sémantiques traite ce premier étage.
La mesure utile est la proportion de résumés acceptés avec des nombres et un sens corrects, avec le temps de contrôle nécessaire. Si chaque sortie exige une écoute complète coûteuse, la synthèse vocale peut rester une option de préparation plutôt qu’un canal automatiquement diffusé.
Tutoriel : préparer, générer et retrouver le bon fichier
1. Installer les fichiers de l’atelier
Prérequis : Python 3.10 ou plus récent. Pour la partie distante, il faut aussi un compte ElevenLabs, une clé API, une voix accessible et des conditions d’utilisation adaptées à votre usage.
Téléchargez dans un même dossier :
Commencez sans clé et sans dépense :
python3 atelier_voix.py --self-test
python3 atelier_voix.py --text script-fr.txt --voice-id voix_fictive
Le premier contrôle utilise de faux octets pour vérifier le stockage et les reprises, pas du son écoutable. Le second affiche le JSON préparé et son empreinte. Il n’écrit aucun MP3 et n’effectue aucun appel distant. voix_fictive est uniquement un identifiant de démonstration locale.
2. Créer une fois le dictionnaire distant
Renseignez ELEVENLABS_API_KEY dans votre environnement local sans la mettre dans le code ni dans Git. La commande suivante crée une ressource dans votre compte ; conservez sa réponse avant de continuer :
curl --fail-with-body \
'https://api.elevenlabs.io/v1/pronunciation-dictionaries/add-from-rules' \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @glossaire.json \
-o dictionnaire.json
La réponse doit contenir id et version_id. Ne répétez pas cette création à chaque génération. Si la commande échoue ou si sa réponse manque, vérifiez le compte avant de la relancer. Le schéma est celui de la référence de création d’un dictionnaire.
3. Préparer puis soumettre un court échantillon
Choisissez votre voice_id dans la bibliothèque de votre compte et remplacez VOTRE_VOICE_ID. Inspectez d’abord la demande :
python3 atelier_voix.py \
--text script-fr.txt \
--voice-id VOTRE_VOICE_ID \
--dictionary-json dictionnaire.json
Après contrôle du texte et du coût, ajoutez --generate pour effectuer un véritable appel, potentiellement facturé :
python3 atelier_voix.py \
--text script-fr.txt \
--voice-id VOTRE_VOICE_ID \
--dictionary-json dictionnaire.json \
--generate
Le script demande du MP3 en mp3_44100_128, avec des réglages explicites, et écrit sous sorties-voix/<empreinte>/. Il garde le corps de la demande et le hash de l’audio dans un manifest. Pour comparer v4, ajoutez --model eleven_v4 ; ne changez pas simultanément la voix, le texte et le glossaire.
La référence précise qu’un seed ne garantit pas un résultat déterministe. Réutiliser le fichier enregistré donne donc une meilleure traçabilité que demander de nouveau « le même » son. Endpoint de synthèse.
4. Comprendre le cache et les échecs
Une demande identique retrouve son fichier local si son empreinte est intacte. Un changement de texte, de voix, de modèle ou de version de dictionnaire produit une autre clé. Le cache évite une nouvelle soumission ; il ne signifie jamais que le contenu a été approuvé. Le champ d’évaluation reste not_listened dans cet atelier.
Une coupure après envoi laisse l’état attempted. Le script refuse alors de soumettre automatiquement la même demande. Inspectez l’historique et la consommation du fournisseur : un timeout ne prouve pas l’absence de génération ou de facturation. Conservez la trace de cette vérification avant toute reprise manuelle.
Ce mécanisme reste local à un dossier. Il ne remplace pas une file distribuée ni une garantie d’idempotence du fournisseur. Pour une production en lot, ajoutez une file à concurrence bornée, un suivi des tentatives et une gestion explicite des réponses de limitation. Les principes du guide sur la reprise des pipelines s’appliquent aussi à ces tâches.
5. Écouter avant la diffusion
Remplissez la grille avec le fichier écouté, la version du dictionnaire et le relecteur dans votre suivi interne. Classez les erreurs de sens séparément des préférences de timbre. Testez une négation, un montant, une date, un sigle et une référence que vos contenus utilisent réellement.
Conservez les versions refusées pour comprendre le coût des reprises, mais ne les exposez pas au public. Après l’essai, supprimez les fichiers locaux devenus inutiles selon votre politique de conservation ; retirez séparément le dictionnaire distant s’il ne sert plus à aucun contenu. Supprimer le dossier local ne supprime pas l’historique du compte fournisseur.
Tarifs : compter les reprises et la relecture
Au 7 octobre 2026, la page ElevenAPI affiche 0,08 USD pour 1 000 caractères sur Multilingual v2 et un prix promotionnel v4 de 0,022 USD, au lieu de 0,08, jusqu’au 12 octobre. Ces prix excluent les taxes ; vérifiez le mode de paiement et les conditions de votre compte au moment du test. Ne projetez pas la promotion sur le budget annuel. Tarifs API.
À titre de calcul illustratif, 100 000 caractères soumis une fois à 0,08 USD pour 1 000 donnent 8 USD de génération, avant prise en compte des inclusions et conditions du contrat. Ce chiffre ne dit rien du coût par fichier accepté. Ajoutez toutes les reprises, le temps d’écoute, le montage et le stockage, puis rapportez le total aux contenus réellement diffusables.
Le paiement à l’usage ne suffit pas à conclure aux droits de diffusion : la documentation indique que l’activation PAYG ne change pas, à elle seule, le niveau de souscription. L’aide distingue les droits commerciaux des plans payants et exclut les Beta Services de cet usage. Vérifiez les conditions propres au service et vos droits sur les textes et les voix. PAYG, conditions de diffusion.
Quand passer au lot ?
Passez au lot lorsque les phrases difficiles, le circuit de relecture et la reprise sur erreur sont maîtrisés. Conservez un petit corpus de référence pour chaque changement de modèle, de voix ou de glossaire. Comparez la qualité acceptée, le coût complet et le délai de mise à jour avec votre fonctionnement actuel.
Si l’enregistrement humain convient déjà, la synthèse doit démontrer une utilité sur un besoin précis : variantes fréquentes, changements localisés ou volumes répétitifs. Un premier échantillon contrôlé vous donnera une décision plus utile qu’un classement général des voix.