A Python app that converts books into chapter-wise audiobook files with expressive TTS.
.txt.docx.epub.pdf.azw, .azw3, .mobi (via Calibre conversion)manifest.json for generated chaptersparlerparler-tts/parler-tts-mini-v1--style), no fixed voice listkokorohexgrad/Kokoro-82M (through kokoro package)af_heart, af_bella, af_nicole, af_saraham_adam, am_eric, am_michaelbf_emma, bf_isabellabm_george, bm_lewisxttstts_models/multilingual/multi-dataset/xtts_v2en), Spanish (es), German (de), Hungarian (hu)Ana Florence, Claribel Dervla, Daisy Studious, Gracie Wise, Tammie EmaAlfie, Albert, Andrew, Brandon, ManuelNotes:
book2speech --list-models
book2speech --engine kokoro --list-voices
book2speech --engine xtts --list-voices
cd /home/asura/repos/tts
- `.mobi` *(via pure Python library, no installation needed)*
- `.azw`, `.azw3` *(via Calibre conversion, optional)*
Optional package install:
pip install -e .
Yes.
After dependency install, run directly from source:
python -m book2speech.cli ./my_book.epub --output ./audiobooks
python -m book2speech.web
Basic:
book2speech ./my_book.epub --output ./audiobooks
Export only selected chapters:
book2speech ./books/dune.epub --chapters 1,3,5-8 --output ./audiobooks
Export only selected PDF pages (then chapter-split inside that subset):
book2speech ./books/scan.pdf --pages 10-40,55 --output ./audiobooks
Expressive Parler (English):
book2speech ./books/dune.epub \
--engine parler \
--style "A warm, immersive narrator, expressive but controlled, clear diction, subtle dramatic emphasis." \
--max-chars 850 \
--format mp3 \
--output ./audiobooks
Kokoro:
book2speech ./my_book.txt \
--engine kokoro \
--voice af_heart \
--speed 1.0 \
--format wav \
--output ./audiobooks
Spanish (XTTS):
book2speech ./books/novela.epub \
--engine xtts \
--language es \
--voice "Ana Florence" \
--format mp3 \
--output ./audiobooks
German (XTTS):
book2speech ./books/roman.epub \
--engine xtts \
--language de \
--voice "Albert" \
--format mp3 \
--output ./audiobooks
Hungarian (XTTS):
book2speech ./books/regeny.epub \
--engine xtts \
--language hu \
--voice "Gracie Wise" \
--format mp3 \
--output ./audiobooks
Start:
book2speech-web
Open http://localhost:7860, then:
parler, kokoro, or xtts)en, es, de, hu) when using XTTSwav or mp3)1,3,5-8)1-20,25)For a book titled My Story:
output/my-story/001_Chapter 1.wav (or .mp3)output/my-story/002_Chapter 2.wav (or .mp3)output/my-story/manifest.jsonAZW-family formats are converted via Calibre ebook-convert first.
Install Calibre and ensure ebook-convert is available in shell PATH.
DRM-protected books generally cannot be processed.
parler or kokoro.xtts with --language es|de|hu.--max-chars for cadence.ffmpeg in system PATH.1 commits
1 commits
Python
89.5%
Jupyter Notebook
10.5%
A Python app that converts books into chapter-wise audiobook files with expressive TTS.
.txt.docx.epub.pdf.azw, .azw3, .mobi (via Calibre conversion)manifest.json for generated chaptersparlerparler-tts/parler-tts-mini-v1--style), no fixed voice listkokorohexgrad/Kokoro-82M (through kokoro package)af_heart, af_bella, af_nicole, af_saraham_adam, am_eric, am_michaelbf_emma, bf_isabellabm_george, bm_lewisxttstts_models/multilingual/multi-dataset/xtts_v2en), Spanish (es), German (de), Hungarian (hu)Ana Florence, Claribel Dervla, Daisy Studious, Gracie Wise, Tammie EmaAlfie, Albert, Andrew, Brandon, ManuelNotes:
book2speech --list-models
book2speech --engine kokoro --list-voices
book2speech --engine xtts --list-voices
cd /home/asura/repos/tts
- `.mobi` *(via pure Python library, no installation needed)*
- `.azw`, `.azw3` *(via Calibre conversion, optional)*
Optional package install:
pip install -e .
Yes.
After dependency install, run directly from source:
python -m book2speech.cli ./my_book.epub --output ./audiobooks
python -m book2speech.web
Basic:
book2speech ./my_book.epub --output ./audiobooks
Export only selected chapters:
book2speech ./books/dune.epub --chapters 1,3,5-8 --output ./audiobooks
Export only selected PDF pages (then chapter-split inside that subset):
book2speech ./books/scan.pdf --pages 10-40,55 --output ./audiobooks
Expressive Parler (English):
book2speech ./books/dune.epub \
--engine parler \
--style "A warm, immersive narrator, expressive but controlled, clear diction, subtle dramatic emphasis." \
--max-chars 850 \
--format mp3 \
--output ./audiobooks
Kokoro:
book2speech ./my_book.txt \
--engine kokoro \
--voice af_heart \
--speed 1.0 \
--format wav \
--output ./audiobooks
Spanish (XTTS):
book2speech ./books/novela.epub \
--engine xtts \
--language es \
--voice "Ana Florence" \
--format mp3 \
--output ./audiobooks
German (XTTS):
book2speech ./books/roman.epub \
--engine xtts \
--language de \
--voice "Albert" \
--format mp3 \
--output ./audiobooks
Hungarian (XTTS):
book2speech ./books/regeny.epub \
--engine xtts \
--language hu \
--voice "Gracie Wise" \
--format mp3 \
--output ./audiobooks
Start:
book2speech-web
Open http://localhost:7860, then:
parler, kokoro, or xtts)en, es, de, hu) when using XTTSwav or mp3)1,3,5-8)1-20,25)For a book titled My Story:
output/my-story/001_Chapter 1.wav (or .mp3)output/my-story/002_Chapter 2.wav (or .mp3)output/my-story/manifest.jsonAZW-family formats are converted via Calibre ebook-convert first.
Install Calibre and ensure ebook-convert is available in shell PATH.
DRM-protected books generally cannot be processed.
parler or kokoro.xtts with --language es|de|hu.--max-chars for cadence.ffmpeg in system PATH.1 commits
1 commits
Python
89.5%
Jupyter Notebook
10.5%