PDF, EPUB, and pasted text
Open a PDF or EPUB or paste a passage directly; EPUB headings, lists, superscripts, subscripts, MathML equations, and printed page numbers keep their structure.
Requires a Mac with Apple silicon (M1 or later).
Listen to your PDFs, EPUBs, and pasted text with a local Kokoro neural voice and synchronized word and line highlighting.
Requires a Mac with Apple silicon (M1 or later).
It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. However little known the feelings or views of such a man may be on his first entering a neighbourhood, this truth is so well fixed in the minds of the surrounding families, that he is considered the rightful property of some one or other of their daughters.
Open a PDF or EPUB or paste a passage directly; EPUB headings, lists, superscripts, subscripts, MathML equations, and printed page numbers keep their structure.
Word and line highlighting follows the audio in real time, and clicking any passage starts reading right from that spot.
Your exact position is anchored in a local SQLite database and resumes where you left off across restarts and changes to narration settings.
Select a Kokoro-82M voice and adjust playback speed for your book while upcoming segments preload and cache in the background.
Skip 15 seconds forward or backward seamlessly across segment boundaries, or jump straight to any chapter or printed page.
Automatically skips running headers, footers, and page numbers, with optional toggles to include footnotes, captions, and sidebars.
The initial download needs a connection. The app downloads Kokoro’s configuration, model weights, and selected voice files from Hugging Face (hexgrad/Kokoro-82M) when they aren’t already cached. After that, speech generation runs completely offline.
The library and reading progress anchors live in reader.db; generated WAV audio and JSON timing cues live in cache/; pasted texts live in pasted-texts/. The audio cache has a configurable size limit and can be cleared on demand in Settings while keeping your library and reading positions.
%LOCALAPPDATA%\BookTTSReader (installer defaults to %LOCALAPPDATA%\Programs\BookTTSReader)~/Library/Application Support/BookTTSReader$XDG_DATA_HOME/BookTTSReader (or ~/.local/share/BookTTSReader)Model and voice downloads are stored in the Hugging Face cache, normally ~/.cache/huggingface/hub (or HF_HOME / HUGGINGFACE_HUB_CACHE). Preferences use Qt’s settings storage under BookTTS / BookTTSReader.
Running from source clears generated audio on exit by default. Set BOOKTTS_KEEP_CACHE=1 to keep it across development runs.
Free and open source. Choose your platform to get started.
Open the disk image and drag Book TTS Reader to /Applications.
Requires a Mac with Apple silicon (M1 or later). Intel Macs: run from source.
Download for macOSThe macOS application is code-signed and notarized.
Run the installer (BookTTSReader-Setup.exe). It installs into %LOCALAPPDATA%\Programs\BookTTSReader for your user without administrator privileges.
The Windows installer is not yet code-signed. Microsoft Defender SmartScreen may show an unknown-publisher warning on first run.
Clone the repository, create a Python 3.12 virtual environment, install requirements.txt, and run python main.py.
Works on Linux, Intel Macs, Apple silicon Macs, and Windows. Requires Python 3.12.
SHA-256 checksums are published with every release. Verify your download before running it.