Convierte un EPUB en
un audiolibro

Convierte un ebook EPUB en un MP3 por capítulo, desde la línea de comandos o una página web local. Una voz narra el libro, y cada personaje que habla entre comillas tiene su propia voz. Cada capítulo incluye además tiempos por palabra y subtítulos, para que puedas seguir el texto mientras suena.
La app web Audiobook tras una vista previa de alice_sample.epub: Preview only está marcado, el modo de reparto es Per speaker con Archie como narrador e inglés como idioma, y el registro indica unos 15065 créditos de Cartesia, las voces Alice = Maya y Mouse = Leo, y los dos capítulos procesados

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

  1. 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 --preview no genera audio ni necesita clave. Divide el libro de ejemplo en capítulos, cuenta 15.065 caracteres (unos 15.000 créditos) y escribe out/cast.json, que indica la voz elegida para cada personaje.

    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 de entorno
    CARTESIA_API_KEY
    play.cartesia.ai/keys. No hace falta para --preview
  2. Genera el audio

    Copia .env.example en un nuevo archivo .env. Añade en él tu CARTESIA_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.

  3. Usa la app web

    Ejecuta uv run python main_ui.py. Después abre http://127.0.0.1:7860. La CARTESIA_API_KEY tiene 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.

  4. Lee mientras escuchas

    Abre en un navegador el readalong.html del proyecto. Elige el MP3 de un capítulo y luego el archivo .timings.json que 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

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.

Cómo funciona

EPUBSe divide en capítulos y párrafos
RepartoAverigua quién dice cada cita y le asigna una voz
Sonic 3.6Transmite /tts/sse con marcas de tiempo por palabra, hasta 1.500 caracteres por petición
ffmpegUne el PCM y codifica MP3 con etiquetas ID3
Lectura sincronizadaUn archivo .timings.json y otro .vtt por capítulo

Por 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.

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.

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.

Contactar con ventas

Empieza a crear.

Accede a nuestros modelos mediante API y lleva un agente de voz a producción en minutos.

Probar Cartesia