Cookbook / Ebook en livre audio
Transformez un EPUB
en livre audio

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
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
--previewne 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 écritout/cast.json, qui indique la voix choisie pour chaque personnage.Variables d'environnement - CARTESIA_API_KEY
play.cartesia.ai/keys. Inutile pour--preview
Générez l'audio
Copiez
.env.exampledans un nouveau fichier.env. Ajoutez-y votreCARTESIA_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.Utilisez l'app web
Lancez
uv run python main_ui.py.Ouvrez ensuitehttp://127.0.0.1:7860. LaCARTESIA_API_KEYdoit ê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.Lisez en écoutant
Ouvrez le fichier
readalong.htmldu projet dans un navigateur. Choisissez le MP3 d'un chapitre, puis le fichier .timings.jsonqui 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
Convert an EPUB into an audiobook with Cartesia. Start from https:/ 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:/ to get one.
Comment ça marche
/tts/sse en streaming avec l'horodatage des mots, jusqu'à 1 500 caractères par requêtetimings.json et un fichier .vtt par chapitrePourquoi ç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.
Rejoignez les équipes qui passent à Cartesia
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.
Plus d'exemples du cookbook
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.
Commencez à développer.
Accédez à nos modèles via l'API et mettez un agent vocal en production en quelques minutes.

