Transformez un EPUB
en livre audio

Transformez un ebook EPUB en un MP3 par chapitre, en ligne de commande ou dans une page web locale. Une voix narre le livre, et chaque personnage qui parle entre guillemets a sa propre voix. Chaque chapitre reçoit aussi le minutage de chaque mot et des sous-titres, pour suivre le texte pendant l'écoute.
L'app web Audiobook après un aperçu de alice_sample.epub : Preview only est coché, le mode de distribution est Per speaker avec Archie comme narrateur et l'anglais comme langue, et le journal indique environ 15065 crédits Cartesia, les voix Alice = Maya et Mouse = Leo, et les deux chapitres traités

Capture d'écran. Le modèle lancé en local.

Modèles
sonic-3.6
Langues
Anglais par défaut, d'autres avec --language
Licence
MIT
Stack technique
PythonGradioEbookLibffmpeguv
Produits Cartesia
Sonic 3.6

Ce qu'il fait

L'outil en ligne de commande et l'app web font la même conversion. Le projet est un fork d'epub_to_audiobook, le projet open source de p0n1.

Une page de lecture suivie, fournie avec le projet, surligne chaque mot pendant la lecture, et un clic sur un mot y saute. Les fichiers de sous-titres fonctionnent dans la plupart des lecteurs.

Lancez-le vous-même

  1. Faites un aperçu sans clé

    Lancez les commandes ci-dessous. Il vous faut Python 3.10 à 3.12, avec uv et ffmpeg installés. L'exécution avec --preview ne produit pas d'audio et ne demande pas de clé. Elle découpe le livre d'exemple en chapitres, compte 15 065 caractères (environ 15 000 crédits) et écrit out/cast.json, qui indique la voix choisie pour chaque personnage.

    npx degit cartesia-ai/cookbook/examples/audiobook audiobook
    cd audiobook
    uv sync
    uv run python main.py samples/alice_sample.epub out --preview --no_prompt
    

    Variables d'environnement
    CARTESIA_API_KEY
    play.cartesia.ai/keys. Inutile pour --preview
  2. Générez l'audio

    Copiez .env.example dans un nouveau fichier .env. Ajoutez-y votre CARTESIA_API_KEY. Chargez-le dans votre shell avec set -a; . ./.env; set +a. Relancez ensuite la même commande sans --preview. Dans un script, ajoutez -y pour sauter la question sur le coût.

  3. Utilisez l'app web

    Lancez uv run python main_ui.py. Ouvrez ensuite http://127.0.0.1:7860. La CARTESIA_API_KEY doit être définie dans ce shell. Gardez l'hôte local par défaut, car l'app n'a pas de connexion et dépense vos crédits pour quiconque peut l'atteindre.

  4. Lisez en écoutant

    Ouvrez le fichier readalong.html du projet dans un navigateur. Choisissez le MP3 d'un chapitre, puis le fichier .timings.json qui l'accompagne. Le mot en cours s'allume pendant la lecture.

Créez-le avec votre agent de code

Un prompt qui indique à votre agent de code par où commencer et quoi lire en premier.

Prompt

Claude CodeCursorCodex

Convert an EPUB into an audiobook with Cartesia. Start from https://github.com/cartesia-ai/cookbook/tree/main/examples/audiobook and follow its AGENTS.md for the commands, files and rules. It uses the cartesia Python SDK to stream sonic-3.6 from /tts/sse with add_timestamps and use_normalized_timestamps=False, joins the raw PCM with ffmpeg into one MP3 per chapter, and writes .timings.json and .vtt files for read-along. Run a --preview first, which needs no key, to check the character count and out/cast.json. If I don't have a Cartesia API key yet, follow https://www.cartesia.ai/agent-quickstart.md to get one.

Comment ça marche

EPUBDécoupé en chapitres et en paragraphes
DistributionTrouve qui prononce chaque citation et lui attribue une voix
Sonic 3.6Appelle /tts/sse en streaming avec l'horodatage des mots, jusqu'à 1 500 caractères par requête
ffmpegJoint le PCM et encode en MP3 avec des balises ID3
Lecture suivieUn fichier .timings.json et un fichier .vtt par chapitre

Pourquoi ça fonctionne ainsi

Le streaming donne le minutage des mots

L'endpoint vocal simple de Cartesia ne renvoie que l'audio. Les fichiers de lecture suivie ont besoin du moment de chaque mot, et seuls les endpoints de streaming le renvoient. L'app règle aussi use_normalized_timestamps=False, qui garde les mots tels qu'écrits, comme $5, pour que le surlignage corresponde au livre.

Les voix sont fixées avant le premier chapitre

La distribution est fixée une fois, avant le début de la conversion, pour que les processus en parallèle et les nouvelles exécutions s'accordent sur qui lit quel personnage. Une réplique sans incise, comme dit Alice, va au dernier personnage qui a parlé, ou à l'autre quand deux personnages échangent des répliques dans des paragraphes qui se suivent.

Les indications du dialogue règlent l'émotion

Dans les dialogues en anglais, un mot comme whispered, shouted ou sobbed à côté d'une réplique demande à Sonic de la lire sur un ton calme, en colère ou triste. Laughed ajoute un rire avant la réplique.

Personnalisez-le

Choisissez les voix

Modifiez out/cast.json et relancez. Pour réutiliser une distribution, passez votre propre fichier avec --cast_file. Chaque valeur est le nom d'une voix intégrée, comme Archie. Ce peut aussi être n'importe quel id de voix de play.cartesia.ai/voices.

Utilisez une seule voix

Lancez avec --cast_mode narrator pour lire tout le livre, dialogues compris, d'une seule voix. Choisissez cette voix avec --voice_name.

Convertissez une autre langue

Passez --language fr ou tout autre code de langue de Sonic. Chaque personnage garde sa voix. Les indications d'émotion et de rire ne marchent qu'en anglais.

Questions

Combien coûte la conversion d'un livre ?

Sonic facture environ un crédit par caractère, et les pauses entre les paragraphes sont ajoutées localement, gratuitement. Lancez d'abord avec --preview pour obtenir le nombre de caractères. Le prix d'un crédit dépend de votre forfait, l'outil n'affiche donc aucun montant en dollars.

Donne-t-il la bonne voix à chaque personnage ?

La plupart du temps, dans les livres qui marquent le dialogue avec dit Alice et autres incises. Il rate les personnages seulement sous-entendus, et un échange sans incises entre deux personnes peut s'inverser. Vérifiez le fichier de distribution après un aperçu et corrigez-le, ou lisez tout le livre d'une seule voix.

Puis-je l'écouter dans une app de livres audio comme Audiobookshelf ?

Oui. Chaque MP3 porte des tags de titre, d'auteur, d'album et de piste, donc Audiobookshelf et les serveurs du même genre regroupent les chapitres en un seul livre.

Puis-je convertir n'importe quel livre ?

Ne convertissez que des livres que vous possédez ou pour lesquels vous avez les droits, et signalez tout résultat publié comme de l'audio généré par IA. Le modèle inclut deux chapitres d'Alice au pays des merveilles, dans le domaine public, pour les tests.

Existe-t-il un guide pas à pas pour ce modèle ?

Oui. La recette explique le code, le README couvre l'installation, les variables d'environnement et le déploiement, et la référence de la TTS en server-sent events détaille le côté Cartesia.

Commencer aujourd'hui

Parlez à un expert.

Échangez avec notre équipe et découvrez comment Cartesia peut vous aider à créer des expériences vocales de premier plan.

Contacter les ventes

Commencez à développer.

Accédez à nos modèles via l'API et mettez un agent vocal en production en quelques minutes.

Essayer Cartesia