Audiobook Reader CLI: Command-Line TTS Tool
I started experimenting with audiobook generation using AI voice models as a response to the terrifying results of trying to estimate more or less how many books i will be able to read over the course of my life.
If you enjoy reading or do work that requires it, you might have already done this thought experiment. If you haven’t, just count how many books (or how many words if you want to be precise) you read in the last year, or whichever year made you feel good about the amount you read. Then look up the average life expectations for your cohort, and see how much reading you have left.
The first time I thought this through, I could already come up with more texts I wanted to read at some point than what I could expect to have time for. Audiobooks tip the scale, but there are not that many good ones, even in English, not to mention other languages.
I looked into text to speech and AI voice models, expecting to find a free tool like Audiobook Reader, which will allowed me to efficiently convert text files to mp3 without reading them out first. To my surprise, I did not. At the time of writing this, the mainstream TTS landscape consists mostly of a number of very well developed tools that read text in real-time, many of them integrated into operating systems or browsers as accessibility features. I found only a few tools that generate audio files, and I was disappointed with the voice quality, lack of mp3 conversion, lack of interrupt handling, and general slow performance. Most of them work around real-time reading speed, which makes them useless for long texts, since these can take 10 hours or more to read.
So I decided to make my own solution and see if I can make it fast and stable enough to be useful.
Features
- Around 10x real-time conversion speed: The backend automatically detects NPU/GPU/CPU configs and uses appropriate hardware optimization for speed and parallel processing
- 54 voices in 9 languages: Female, male and androgynous sounding voices in all languages
- Voice blending: Mix voices to create new ones
- Format support: EPUB, PDF, TXT, Markdown, RST → MP3, WAV, M4A, M4B
- Progress visualization: Visual progress bars with time estimates and conversion speed
- Character voices (beta, in development): Different voices per characters or have it done automatically
- Pause/resume: Interrupt and continue conversions
- Batch queue: Add multiple books, process sequentially or in parallel
Please note that I don’t have the resources to support and test all the distributions at the same level. CLI is always the best if you are not afraid of typing, and where I roll out new features first. Mac is tested regularly but inherently more complex. Win and Linux are in beta, QA help is welcome.

Installation
Install via pip (Python 3.9+ required):
pip install audiobook-reader
PyPI Package: https://pypi.org/project/audiobook-reader/
GitHub Repository: https://github.com/danielcorsano/reader
Requirements
- Python 3.10-3.13
- FFmpeg (automatic download available via CLI flag)
- Kokoro voice models (~310MB, downloads automatically on first use to system cache)
- Supports macOS, Windows, Linux
Features
- 54 voices in 9 languages (English, Spanish, French, German, Italian, Portuguese, Polish, Korean, Japanese)
- Voice blending: Mix multiple voices for unique characteristics
- Format support: EPUB, PDF, TXT, Markdown, RST input → MP3, WAV, M4A, M4B output
- Performance optimization: Hardware detection for NPU/GPU/CPU acceleration (approximately 10x real-time on Apple Silicon with Neural Engine)
- Batch processing: Glob patterns for converting multiple files
- Scriptable: Integrate into automation workflows
- Checkpoint resumption: Resume interrupted conversions
- Chapter detection: Automatically identifies chapters in input files
- Progress tracking: Real-time conversion status in terminal
- NEW FEATURE: Text stripping: use the strip command to automatically detect and remove non-content like bibliography, table of contents etc. Then use the automatic content parser to choose which sections of the text you want to have read. Available only in CLI for now.
Usage Examples
Basic conversion:
audiobook-reader book.epub audiobook.mp3
Specify voice:
audiobook-reader book.pdf --voice af_sky output.mp3
Batch conversion:
audiobook-reader "books/*.epub" output_dir/ --voice bf_emma
Custom speed and format:
audiobook-reader novel.txt --speed 1.2 --format m4b --voice am_adam
List available voices:
audiobook-reader --list-voices
FFmpeg auto-install:
audiobook-reader --install-ffmpeg
Strip unnecessary sections from a book:
audiobook-reader strip mybook.epub
Advanced Usage
Configuration file support:
Create a config.yaml for complex setups:
voice: bf_emma
speed: 1.1
format: m4b
output_dir: ~/audiobooks/
Then run:
audiobook-reader book.epub --config config.yaml
Character voices (beta): Assign different voices to characters in dialogue. See documentation for syntax.
Consider Supporting
I created this alone, and it will be free and open source forever. For issues and feature requests please use GitHub. If you find it useful, please consider supporting me so I can improve this tool and create more.
Copyright Notice
IMPORTANT: This software is a tool for converting text to audio. Users are solely responsible for:
- Ensuring they have the legal right to convert any text to audio
- Obtaining necessary permissions for copyrighted materials
- Complying with all applicable copyright laws and licensing terms
- Understanding that creating audiobooks from copyrighted text without authorization may constitute copyright infringement
Recommended Use Cases:
✅ Your own original content ✅ Public domain works ✅ Content you have explicit permission to convert ✅ Educational materials you legally own ✅ Open-source or Creative Commons licensed texts (per their terms)
I do not condone or support copyright infringement. By using this software, you agree to use it only for content you have the legal right to convert.