Aller au contenu principal
AudioReader : transformer vos Markdown en audiobooks professionnels
Retour au blog
IA

AudioReader : transformer vos Markdown en audiobooks professionnels

Patrice Huetz10 janvier 202513 min

847 euros. C'est ce que j'ai dépensé en un an sur ElevenLabs pour convertir trois romans en audiobooks. Pas parce que le service est mauvais --- ElevenLabs est excellent. Mais quand tu as 12 livres à convertir et que chaque roman de 80 000 mots coûte entre 50 et 100 euros, l'addition devient salée. Et surtout, tu dépends d'une API externe dont les prix peuvent changer du jour au lendemain.

Alors j'ai fait ce que tout développeur fait dans cette situation : j'ai construit mon propre outil. Et puis je l'ai mis en open-source, parce que je ne suis probablement pas le seul auteur-développeur à avoir ce problème.

Le problème réel : pourquoi les auteurs indépendants n'ont pas d'audiobooks

Le marché de l'audiobook explose. En 2025, il représente plus de 10 milliards de dollars dans le monde, avec une croissance annuelle de 25 %. Audible, Kobo, BookBeat --- les plateformes se multiplient. Mais pour un auteur indépendant, la barrière d'entrée reste énorme.

Les options traditionnelles :

  • Un narrateur professionnel : 200 à 500 euros par heure finie. Pour un roman de 10 heures, compte 2 000 à 5 000 euros. Irréaliste pour un indie.
  • Les services TTS commerciaux (ElevenLabs, Play.ht, Amazon Polly) : 50 à 150 euros par roman, qualité variable, dépendance à une API, et souvent des restrictions de licence sur l'usage commercial.
  • Les TTS gratuits (pyttsx3, espeak) : qualité robotique, inutilisable pour de la fiction.
⚠️
Attention aux licences TTS ! Certains services comme ElevenLabs interdisent l'usage commercial de certaines voix dans leurs formules d'entrée de gamme. Vérifie toujours les conditions avant de publier sur Audible ou Kobo.

Résultat : la grande majorité des auteurs indépendants n'ont simplement pas d'audiobook. C'est un canal de distribution entier qui leur est fermé.

AudioReader : la solution 100 % locale et open-source

AudioReader est un convertisseur qui transforme tes fichiers Markdown, PDF ou EPUB en audiobooks de qualité professionnelle --- entièrement en local, sans API externe, sans coût récurrent.

Le coeur du système repose sur Kokoro-82M, un modèle neural text-to-speech sous licence Apache 2.0 (donc libre pour un usage commercial). Avec seulement 82 millions de paramètres, il tourne confortablement sur un CPU moderne --- pas besoin de GPU dédié.

Le repository : github.com/phuetz/AudioReader

bash
# Installation
git clone https://github.com/phuetz/AudioReader.git
cd AudioReader
pip install -r requirements.txt

# Conversion basique
python audioreader.py convert mon-roman.md --output audiobook.mp3

# Avec détection de personnages et multi-voix
python audioreader.py convert mon-roman.md --multi-voice --output audiobook.m4b
💡
Le format M4B (MPEG-4 Audio Book) supporte nativement les chapitres et les métadonnées de livre. C'est le format privilégié par Apple Books et la plupart des lecteurs d'audiobooks.

Les fonctionnalités qui changent tout

AudioReader n'est pas un simple wrapper autour d'un modèle TTS. C'est un pipeline complet pensé pour la fiction.

Détection automatique des personnages et multi-voix

C'est la fonctionnalité dont je suis le plus fier. AudioReader analyse ton texte Markdown, détecte les dialogues (guillemets français « » ou anglais " "), identifie les personnages qui parlent, et leur attribue automatiquement des voix différentes.

Pour L'Algorithme de Babel, ça donne : une voix grave et posée pour Elias, une voix plus aiguë et rapide pour Elena, une voix synthétique avec un léger traitement pour BABEL. Le narrateur a sa propre voix, neutre et fluide.

markdown
# Chapitre 12 — Friction

Elias posa le carnet sur la table.

« On ne peut pas continuer comme ça, Elena. BABEL apprend trop vite. »

Elena ne leva pas les yeux de son écran.

« C'est exactement ce qu'on voulait, non ? »

*« Je confirme que ma vitesse d'apprentissage est dans les paramètres prévus »*, intervint BABEL.

Trois voix différentes, détectées et attribuées automatiquement. Pas de balisage manuel requis (mais tu peux overrider si tu veux).

Prosodie émotionnelle

Le module de prosodie analyse le contenu émotionnel du texte --- exclamations, questions, passages tendus, moments calmes --- et ajuste le ton, le rythme et les pauses en conséquence. Une scène d'action sera lue plus vite, avec des pauses plus courtes. Un dialogue intime sera lu plus lentement, avec des silences plus longs.

Ce n'est pas parfait --- on est loin d'un narrateur humain professionnel --- mais c'est considérablement mieux qu'un TTS monotone.

Respirations naturelles et bio-acoustique

Un détail qui fait toute la différence : AudioReader insère des micro-respirations aux points naturels du texte (fins de phrases, virgules longues, changements de paragraphe). Le modèle bio-acoustique simule le pattern respiratoire d'un lecteur humain.

Sans ces respirations, même un bon TTS sonne « robotique ». Avec, ton cerveau accepte la voix comme naturelle. C'est un effet psycho-acoustique bien documenté.

Normalisation broadcast EBU R128

Toutes les sorties sont normalisées à -19 LUFS (EBU R128), le standard broadcast européen. Ça garantit un volume constant et confortable sur tous les appareils --- que l'auditeur soit au casque dans le métro ou sur les enceintes de sa voiture.

ℹ️
La normalisation LUFS est indispensable pour Audible/ACX. Si tu soumets un audiobook avec des niveaux incohérents, il sera rejeté au contrôle qualité. AudioReader gère ça automatiquement.

La stack technique : ce qui tourne sous le capot

Pour les curieux (et je sais que tu l'es, sinon tu ne lirais pas ce blog) :

  • Python 3.10+ pour le pipeline principal
  • Kokoro-82M (Apache 2.0) pour la synthèse vocale de base
  • XTTS-v2 (optionnel) pour le voice cloning --- 6 secondes d'audio suffisent pour cloner une voix
  • PyTorch + ONNX Runtime pour l'inférence (GPU ou CPU)
  • FFmpeg pour l'encodage audio, le chapitrage M4B, et la normalisation
  • Gradio pour l'interface web (optionnelle)
  • FastAPI pour le serveur REST (optionnel)
  • MCP Server pour l'intégration directe avec Claude Desktop ou ChatGPT

Le serveur MCP est particulièrement intéressant : tu peux demander à Claude « Convertis le chapitre 12 en audio avec la voix d'Elias » directement dans ta conversation. Claude appelle AudioReader via MCP, et tu récupères le fichier audio sans quitter ton IDE.

python
# Exemple d'utilisation programmatique
from audioreader import AudioReader

reader = AudioReader(
    model="kokoro-82m",
    multi_voice=True,
    emotion=True,
    breathing=True,
)

# Conversion d'un fichier Markdown
reader.convert(
    input_path="chapitre-12.md",
    output_path="chapitre-12.m4b",
    format="m4b",
    normalize=True,  # EBU R128
)

Voice cloning : ta voix (ou celle que tu veux)

La fonctionnalité la plus demandée. Avec le modèle XTTS-v2, AudioReader peut cloner une voix à partir de seulement 6 secondes d'audio de référence.

Les usages :

  • Ta propre voix : enregistre-toi en lisant un paragraphe, et AudioReader synthétise tout le roman avec ta voix
  • Voix de personnage : crée des voix distinctes et cohérentes pour chaque personnage
  • Voix de narrateur : utilise la voix d'un narrateur professionnel (avec sa permission, évidemment)
⚠️
Le voice cloning pose des questions éthiques évidentes. AudioReader inclut un avertissement au premier usage et n'est fourni que pour des usages légitimes (ta propre voix, voix libres de droits, voix avec consentement). Ne clone jamais la voix de quelqu'un sans son autorisation explicite.

La qualité est bluffante pour 6 secondes de référence. Pas parfaite --- un sample de 30 secondes à 1 minute donne des résultats nettement meilleurs --- mais suffisante pour un prototype rapide.

Performances et benchmarks : combien de temps pour un roman ?

La question que tout le monde pose : combien de temps faut-il pour convertir un roman entier ? Voici les chiffres réels, mesurés sur mes propres livres :

LivreMotsDurée audioTemps de conversion (CPU)Temps de conversion (GPU)
L'Algorithme de Babel107 000~12h~8h~45 min
Les Échos de Kepler-44272 000~8h~5h~30 min
Synchronisation Charnelle80 000~9h~6h~35 min

Sur CPU (un Ryzen 7 5800X), c'est lent mais gérable --- tu lances le soir, tu récupères le matin. Sur GPU (une RTX 3070), c'est quasi temps réel. Le goulot d'étranglement n'est pas le TTS lui-même mais le post-traitement FFmpeg (normalisation, chapitrage, encodage M4B).

💡
Pour les gros volumes, lance la conversion par chapitres en parallèle (un processus par chapitre), puis assemble avec FFmpeg. Ça divise le temps total par le nombre de coeurs disponibles.

La qualité audio brute de Kokoro-82M se situe dans un MOS (Mean Opinion Score) de 3.8 à 4.1 sur 5, selon les langues. Pour le français, c'est dans la fourchette haute --- le modèle gère bien les liaisons, les élisions, et les particularités phonétiques du français littéraire. Ce n'est pas ElevenLabs (MOS ~4.5), mais c'est nettement au-dessus de tout ce qui est gratuit et local.

Pourquoi open-source ?

La réponse courte : parce que les auteurs indépendants n'ont pas les moyens des maisons d'édition. Les Big Five ont des budgets audiobooks à six chiffres. Nous, on a notre temps et nos compétences techniques.

La réponse longue : je crois que les outils de création doivent être accessibles. L'écriture est déjà un acte solitaire et souvent non rémunéré. Si la technologie peut réduire la barrière entre un manuscrit et un audiobook publié, elle doit le faire.

Mon propre parcours illustre le problème. J'ai écrit une douzaine de livres --- romans et guides techniques. Chacun représente des mois de travail. Mais sans version audio, ils restent invisibles pour toute une catégorie de lecteurs : ceux qui « lisent » en conduisant, en courant, en cuisinant. Le marché audiobook croît de 25 % par an, et les auteurs indépendants en sont largement exclus par les coûts.

AudioReader ne remplacera pas un Morgan Freeman narrant ton roman. Mais il permet à n'importe quel auteur indépendant de proposer une version audio de son livre --- gratuitement, sans dépendance externe, avec une qualité suffisante pour la distribution commerciale.

L'Algorithme de Babel
L'Algorithme de Babel

Quand le monde parle trop, quelqu'un finit par l'écouter.

Découvrir →

C'est d'ailleurs avec AudioReader que je prépare les versions audio de mes propres livres. Si tu veux voir (ou plutôt entendre) le résultat, les premiers extraits audio seront disponibles sur mon Patreon.

🔒

Soutenez mon travail sur Patreon

Accès anticipé aux articles, contenu exclusif, et la satisfaction de soutenir un auteur indépendant.

Rejoindre — à partir de 3€/mois

Le projet est actif --- les contributions sont bienvenues. Que ce soit du code, des rapports de bugs, ou simplement un retour sur la qualité audio, tout aide. Le repository est sur GitHub, la licence est permissive, et la documentation est en français et en anglais.

AudioReader sur GitHub

Commentaires

Chargement des commentaires...

Laisser un commentaire