[audio][clonage de voix][confidentialité][Coqui TTS][développement][open source][prosodie][synthèse vocale][TTS]

Coqui TTS : la voix libre pour ton site


Publié & Lecture
— ~8 min
Intention
Tutoriel
Biais
aucun
Validité
2027


Illustration - Coqui TTS : la voix libre pour ton site

Flemme de tout lire? Voici un petit résumé :

j’ai testé, comparé, cassé des environnements (par amour) et je te raconte pourquoi j’ai choisi Coqui TTS pour donner de la voix à mes articles — tout en expliquant où ElevenLabs reste leader quand on accepte le cloud.

Pourquoi une voix, et pourquoi maintenant ?

Parce qu’un article qui s’écoute se lit davantage (et parce que c’est drôle d’entendre sa propre voix sortir d’un fichier .wav , enfin je dis drôle, c’est encore plus perturbant que simplement s’entendre dans un enregistrement). Je voulais une solution libre, locale et pérenne : si demain un service ferme, mes posts doivent continuer à parler. D’où mon parti pris : open source d’abord, cloud ensuite, pas l’inverse.


Le contexte

Coqui TTS est né d’une scission du projet Mozilla TTS le 15 mars 2021 et après deux ans et demi la startup Coqui a fermé fin 2023/début 2024, mais le code ne s’est pas volatilisé : la communauté maintient la bibliothèque et les modèles (notamment via un fork actif), et l’écosystème continue d’évoluer. Résultat : on garde une techno de haut niveau, hors du cloud, avec un vrai contrôle sur les voix et les données.


Ce que Coqui fait (vraiment) bien

  • Multilingue (français inclus) avec XTTS v2 en tête d’affiche.

  • Clonage de voix à partir d’un court extrait (quelques secondes suffisent si l’audio est propre).

  • Contrôle du timbre, rythme, intonation, et transfert de style.

  • Choix de modèles variés (XTTS, VITS, YourTTS, etc.).

  • Local-first : fonctionne hors-ligne (CPU ou GPU).

  • Licence de code permissive (voir « Le coin des experts » plus bas pour les nuances de licences de modèles).

💡 Cas d’usage : lire tes billets, générer une version audio pour ton flux podcast, accessibilité, démos produit, prototypes d’assistants vocaux, etc.


« OK, mais ElevenLabs ? » (le match amical)

J’ai aussi pas mal discuté/essayé l’option ElevenLabs. Franchement : qualité et stabilité bluffantes, très simple à prendre en main. En gratuit, on peut déjà jouer, mais on reste dépendant du cloud, de quotas et d’une licence commerciale qui démarre sur les offres payantes.

Comment je tranche ?

  • Tu veux autonomie, confidentialité, bidouille et zéro dépendance : Coqui TTS.

  • Tu veux le meilleur rendu out-of-the-box, hébergé, avec des voix prêtes à l’emploi et du multi-projet : ElevenLabs (et tu assumes l’abonnement).

(Je me suis posé aussi la question de NotebookLM qui peut faire des podcasts de tes billets, mais je n’ai pas le droit de les utiliser… légalement parlant)


Les modèles : XTTS v2 en MVP

Si tu dois n’en retenir qu’un : **tts_models/multilingual/multi-dataset/xtts_v2**. Multilingue, clonage court, très bon naturel en français.

Dans cet article, je publierai l’audio généré par Coqui  pour que tu puisses juger sur pièces. Prépare tes écouteurs.


Détails pratiques (Windows) — ce que j’ai vraiment installé

Pré‑requis Windows

Outils système :

  • Python 3.10 ou 3.11 (⚠️ évite 3.12+ pour l’instant)

  • Visual Studio Build Tools avec C++ Build Tools

  • Workload : Développement Desktop avec C++

  • Windows 10/11 SDK

  • git (disponible dans le terminal)

  • ffmpeg (pratique pour manipuler WAV/MP3)

🔧 Étapes d’installation (venv conseillé)

1) Crée un dossier de projet

mkdir coquitts && cd coquitts

2) Environnement virtuel

py -3.11 -m venv tts-env

3) Active le venv

:: CMD
tts-env\Scripts\activate
# PowerShell
. .\tts-env\Scripts\Activate.ps1

Deux chemins qui marchent

Selon que tu veux la « vieille » branche stable figée, ou le fork communautaire actif.

Option A — Stable figée (bonne compatibilité XTTS v2)

pip install --upgrade pip setuptools wheel
pip install TTS==0.22.0 torch==2.1.2 transformers==4.39.3 numpy==1.24.4 scipy==1.10.1 librosa==0.10.1 numba==0.56.4

Option B — Maintenue par la communauté (package **coqui-tts**)

pip install --upgrade pip
pip install coqui-tts

(Si tu pars sur B, garde en tête que certaines APIs ont évolué positivement — c’est mon choix quand je démarre un nouveau projet.)

🧾 Fichier audio de référence

Dépose un fr_sample.wav (mono, idéalement 16 kHz) à la racine du projet. Un échantillon propre vaut mieux que 10 bruyants (évite l’écho de cuisine). Si tu ne veux pas tester avec ta voix tu peux en choisir une ici : https://huggingface.co/coqui/XTTS-v2/tree/main/samples la version française parle un peu du nez, mais ça peut faire l’affaire.

Pour cloner ta voix et obtenir une voix de qualité, suis ces instructions.

Texte de référence (≈ 20 s) pour un bon speaker_wav

La Qualité c’est que mieux que la  quantité : vise 15–20 s propres, mono, volume stable. Lis posément, au ton que tu veux obtenir. Cherche à couvrir les phonèmes du français (nasales an/en/in/on/un, voyelles é/è/eu/u/ou/o, consonnes ch/j/z/g/k et liaisons).

Paragraphe prêt à lire

Bonjour, ici Singe Quantique, primate poli mais précis. J’articule tranquillement, sans bruit de fond. Un grand enfant mange un pain chaud ; un petit avion zigzague joyeusement. Je juge que ce zèbre joue du jazz chez le garage. Près de la rue, deux oiseaux bleus chantent ; je parle en français, bien net. Le brun parfum étonne mon nez : peu de sucre, beaucoup d’eu comme dans bleu. Je compte : trois, cinq, sept, vingt‑neuf. Une lune brillante, un feu rouge ; neuf euros, un kilo, un wagon agile. Par exemple, ce message couvre beaucoup de sons… et je conclus.


Script de test (XTTS v2)

Crée coqui.py :

import torch
from torch.serialization import add_safe_globals

from TTS.tts.configs.xtts_config import XttsConfig
from TTS.tts.models.xtts import XttsAudioConfig, XttsArgs
from TTS.config.shared_configs import BaseDatasetConfig

add_safe_globals([XttsConfig, XttsAudioConfig, XttsArgs, BaseDatasetConfig])

from TTS.api import TTS

tts = TTS(model_name="tts_models/multilingual/multi-dataset/xtts_v2").to("cpu")

tts.tts_to_file(
    text="Bonjour à tous, bienvenue dans l'univers de la synthèse vocale libre.",
    speaker_wav="fr_sample.wav",
    language="fr",
    file_path="output.wav"
)

Lance :

py coqui.py

Résultat : un output.wav avec ta phrase, dans une voix proche de fr_sample.wav.

Sur GPU : installe PyTorch CUDA 11.8/12.x selon ta carte, puis .to("cuda"). Sur CPU, ça marche (plus lent) mais ça marche.


Mon agent prosodie (GPT) — ponctuation, onomatopées & rythme

J’ai créé un petit agent GPT qui retouche la prosodie des textes : il peaufine la ponctuation, ajoute des onomatopées et des pauses pour rendre la lecture plus vivante, sans changer le sens (ni le style de fond). Bonus : il ignore les blocs de code pour éviter la lecture robotique des imports et des accolades (personne ne veut entendre pip install chuchoté à l’oreille).

Accès : je propose l’accès à cet agent pour tes propres billets ou juste pour teste. Utile si tu veux une version “prête pour TTS” en un clic, avec un rendu plus naturel. 

Le résultat

Voici le résultat, il lit cet article et non ce n’est pas ma voix, je suis trop pudique pour cela 😁


Dépannage express (ça arrive aux meilleurs)

  • « Module not found / build failed » : vérifie Python 3.10/3.11, mets pip install --upgrade pip, et que les Build Tools C++ sont présents.

  • Bruits/robotisation : nettoie ton speaker_wav (mono, 16 kHz si possible, bruit de fond minimal). Coupe les silences et respire loin du micro.

  • CUDA pas détecté : installe la bonne version PyTorch depuis pytorch.org et teste torch.cuda.is_available().


Le coin des experts (licences, éthique & droit)

je ne vous cache pas que ce n’est la partie la plus fun de l’article, mais bon il est important de savoir ce que l’on peut faire.

  • Code vs. modèles : le code de Coqui TTS est open-source (permissif). Les modèles (comme XTTS v2) peuvent avoir des licences spécifiques : lis la « model card » avant usage commercial.

  • ElevenLabs : super outil, mais pas libre et hébergé. En gratuit, tu testes ; pour l’usage commercial (et le clonage instantané), il faut passer sur une offre payante.

  • Clonage de voix : consentement. En France, la voix est un attribut de la personnalité (comme l’image). Ne clone pas la voix d’une personne sans accord explicite.

  • Deepfakes & transparence : pense à indiquer clairement quand un audio est généré/simulé. C’est une bonne pratique… et c’est en train de devenir une obligation dans de plus en plus de cadres.

  • Risque pénal (France) : publier un montage ou un contenu généré représentant la voix d’une personne sans son consentement et sans mention explicite peut être pénalement sanctionné. Évite les voix connues et le contenu trompeur.

(j’avais prévenu_)_


Alternatives open‑source à connaître

  • Piper : ultra‑léger, très rapide en local, top pour embarqué/domotique — rendu moins expressif que XTTS v2 mais diablement pratique.

  • Bark : génération « texte→audio » plus créative (sons d’ambiance, respirations), mais moins contrôlable pour une narration propre.


Ce que tu vas entendre sur cette page

Je publierai deux versions audio :

  1. Ma voix clonée avec XTTS v2 (extrait court propre).

  2. Une voix « preset » pour comparer.

(Spoiler : la première fois qu’on s’entend, c’est chelou. La deuxième, on se surprend à corriger sa diction. La troisième, on trouve ça pratique.)


Conclusion

Coqui TTS est la solution qui m’offre ce que je cherche : liberté, contrôle, francophonie soignée et durabilité. ElevenLabs reste la référence cloud pour un rendu instantanément premium, mais si tu veux rester maître de ta stack et publier une version audio qui ne dépend de personne, Coqui coche presque toutes les cases.

Prêt·e à faire parler tes articles ?