Cookbook / De ebook a audiolibro
Convierte un EPUB en
un audiolibro

Captura de pantalla. La plantilla ejecutándose en local.
- Modelos
- sonic-3.6
- Idiomas
- Inglés por defecto, otros con --language
- Licencia
- MIT
- Stack
- PythonGradioEbookLibffmpeguv
- Productos de Cartesia
- Sonic 3.6
Qué hace
La herramienta de línea de comandos y la app web hacen la misma conversión. El proyecto es un fork de epub_to_audiobook, el proyecto de código abierto de p0n1.
Una página incluida para leer mientras escuchas resalta cada palabra mientras suena, y al hacer clic en una palabra saltas a ella. Los archivos de subtítulos funcionan en la mayoría de los reproductores.
Ejecútalo tú mismo
Vista previa sin clave
Ejecuta los comandos de abajo. Necesitas Python 3.10 a 3.12, con uv y ffmpeg instalados. La ejecución con
--previewno genera audio ni necesita clave. Divide el libro de ejemplo en capítulos, cuenta 15.065 caracteres (unos 15.000 créditos) y escribeout/cast.json, que indica la voz elegida para cada personaje.Variables de entorno - CARTESIA_API_KEY
play.cartesia.ai/keys. No hace falta para--preview
Genera el audio
Copia
.env.exampleen un nuevo archivo.env. Añade en él tuCARTESIA_API_KEY. Cárgalo en tu shell con set -a; ../.env; set +a. Luego ejecuta el mismo comando sin--preview. En scripts, añade -y para saltarte la pregunta sobre el coste.Usa la app web
Ejecuta
uv run python main_ui.py.Después abrehttp://127.0.0.1:7860. LaCARTESIA_API_KEYtiene que estar definida en esa shell. Mantén el host local por defecto, porque la app no tiene inicio de sesión y gasta tus créditos para cualquiera que pueda acceder a ella.Lee mientras escuchas
Abre en un navegador el
readalong.htmldel proyecto. Elige el MP3 de un capítulo y luego el archivo .timings.jsonque lo acompaña. La palabra actual se ilumina mientras suena.
Créalo con tu agente de programación
Un prompt que le dice a tu agente de programación por dónde empezar y qué leer primero.
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.
Cómo funciona
/tts/sse con marcas de tiempo por palabra, hasta 1.500 caracteres por peticióntimings.json y otro .vtt por capítuloPor qué funciona así
El streaming da los tiempos de cada palabra
El endpoint de voz simple de Cartesia solo devuelve audio. Los archivos para leer mientras escuchas necesitan el momento de cada palabra, y solo los endpoints de streaming lo devuelven. La app también usa use_normalized_timestamps=False, que deja las palabras tal como están escritas, como $5, para que el resaltado coincida con el libro.
Las voces se fijan antes de cualquier capítulo
El reparto se decide una vez, antes de empezar la conversión, para que los procesos en paralelo y las nuevas ejecuciones coincidan en quién lee a cada personaje. Una cita sin etiqueta de hablante, como dijo Alicia, va al último que habló, o a la otra persona cuando dos personajes alternan frases en párrafos seguidos.
Las acotaciones del diálogo fijan la emoción
En los diálogos en inglés, una palabra como whispered, shouted o sobbed junto a una cita le dice a Sonic que la lea en tono tranquilo, enfadado o triste. Laughed añade una risa antes de la frase.
Adáptalo a ti
Elige las voces
Edita out/cast.json y vuelve a ejecutar. Para reutilizar un reparto, pasa tu propio archivo con --cast_file. Cada valor es el nombre de una voz incluida, como Archie. También puede ser cualquier id de voz de play.cartesia.ai/voices.
Usa una sola voz
Ejecuta con --cast_mode narrator para leer todo el libro, diálogos incluidos, con una sola voz. Elige esa voz con --voice_name.
Convierte otro idioma
Pasa --language fr o cualquier otro código de idioma de Sonic. Cada personaje sigue teniendo su voz. Las indicaciones de emoción y risa solo funcionan en inglés.
Únete a los equipos que dan el salto a Cartesia
Preguntas
¿Cuánto cuesta convertir un libro?
Sonic cobra alrededor de un crédito por carácter, y las pausas entre párrafos se añaden en local sin coste. Ejecuta primero con --preview para saber el número de caracteres. Lo que cuesta un crédito depende de tu plan, así que la herramienta no muestra ninguna cantidad en dólares.
¿Pone la voz correcta a cada personaje?
Casi siempre, en libros que marcan el diálogo con dijo Alicia y similares. Se le escapan los hablantes que solo se insinúan, y un intercambio sin etiquetas entre dos personas puede invertirse. Revisa el archivo de reparto tras una vista previa y corrígelo, o lee todo el libro con una sola voz.
¿Puedo escucharlo en una app de audiolibros como Audiobookshelf?
Sí. Cada MP3 lleva etiquetas de título, autor, álbum y pista, así que Audiobookshelf y servidores parecidos agrupan los capítulos en un solo libro.
¿Puedo convertir cualquier libro?
Convierte solo libros que sean tuyos o sobre los que tengas derechos, e indica que el resultado publicado es audio generado con IA. La plantilla incluye para pruebas dos capítulos de dominio público de Alice's Adventures in Wonderland.
¿Hay una guía paso a paso de esta plantilla?
Sí. La receta recorre el código, el README explica la instalación, las variables de entorno y el despliegue, y la referencia de TTS por server-sent events explica la parte de Cartesia.
Más del cookbook
Empieza hoy
Habla con un experto.
Habla con nuestro equipo y descubre cómo puede ayudarte Cartesia a crear experiencias de voz de primer nivel.
Empieza a crear.
Accede a nuestros modelos mediante API y lleva un agente de voz a producción en minutos.

