KOReader Is Amazing. Except for One Thing.
If you own a Kindle, Kobo, PocketBook, or any other e-ink device, there is a good chance you have heard of KOReader. With over 22,700 stars on GitHub, it is the most popular open-source document reader for e-ink hardware. It handles EPUB, PDF, DJVU, MOBI, and CBZ files with a level of customization that no stock firmware can match. Font rendering, page margins, dictionary lookup, progress sync, gesture controls — KOReader gets nearly everything right.
Nearly everything. The one glaring gap is text-to-speech.
GitHub issue #545 was opened in 2015. It is still open. Issue #11931 revisited the question in 2024 with a detailed proposal for Piper integration. Also still open. The comments in both threads tell the same story: KOReader users want TTS, and they have been waiting a long time.
“I would love to be able to listen to my books while cooking or commuting. This is the only reason I still keep the stock Kobo firmware installed alongside KOReader.” — GitHub user, issue #11931
“TTS is probably the most requested feature in KOReader history. Every workaround I have tried sounds terrible.” — Reddit, r/ereader
Why KOReader Does Not Have TTS
It is not for lack of trying. The technical barriers are real:
- E-ink hardware is weak. Most e-readers run ARM processors with limited RAM. Running a neural TTS model locally is not realistic on a Kindle Paperwhite or a Kobo Clara. Even Piper, which is lightweight by TTS standards, would struggle on many devices.
- No consensus on architecture. Should KOReader stream TTS from a server? Bundle a local engine? Pipe text to an external app? Each approach has trade-offs, and the maintainers have not settled on one.
- Audio hardware varies wildly. Some e-readers have speakers. Some have Bluetooth. Some have neither. A TTS feature that only works on a subset of devices is hard to maintain in an open-source project.
- Quality expectations have risen. In 2015, system TTS voices were the norm. In 2026, people expect AI-quality narration. Shipping a robotic voice in KOReader today would disappoint more users than it would satisfy.
The Piper integration proposed in #11931 is the most promising path forward, but it requires significant engineering work and has not been merged. There is no timeline.
The Current Workarounds (and Why They Fall Short)
KOReader users who want TTS today have a few options, none of them great:
- Android TTS on Boox/Onyx devices. If your e-reader runs Android (like Onyx Boox), you can install Google TTS or Samsung TTS and use @Voice Aloud Reader to read your books. The problem: you leave KOReader entirely, lose your reading position, and the voices are generic system voices — flat, monotone, and unmistakably robotic.
- Bluetooth to a phone running a TTS app. Some users keep their phone running a TTS app synced to the same book. This requires managing two devices, two apps, and two reading positions. It works, barely.
- Calibre + desktop TTS. Export the book from KOReader, open it in Calibre on a computer, and use a desktop TTS tool. Functional but defeats the purpose of having a portable reader.
All of these workarounds share the same fundamental problem: the voice quality is not good enough to listen to for an extended period. System TTS voices in 2026 are passable for reading a short notification. They are exhausting for a 10-hour novel.
MimicReader: The KOReader Companion
MimicReader is an ebook-to-audiobook platform built on Chatterbox, an open-source neural TTS engine. It is not a plugin for KOReader (not yet — more on that below). It is a standalone service that handles the full pipeline: text extraction, chapter detection, emotional analysis, speech synthesis on dedicated GPU hardware, Whisper-based quality control, and audio normalization to broadcast standard.
The output is a chapter-marked M4A file in 23 languages. You can stream it in the built-in player or download it to listen anywhere — on your phone, in your car, or on your e-reader's speaker over Bluetooth.
What makes it different from system TTS
- Neural voices, not concatenative. Chatterbox generates speech from scratch rather than stitching together pre-recorded phonemes. The result sounds like a person reading, not a sat-nav giving directions.
- Emotion-aware. MimicReader analyses each passage for emotional content — tension, sadness, excitement, humour — and adjusts the voice accordingly. Dialogue sounds like dialogue. Action scenes pick up pace.
- 23 languages. English, Spanish, French, German, Polish, Japanese, Korean, Arabic, and 15 more. KOReader users read in many languages. MimicReader supports that.
- Voice cloning. Upload a 5-second audio sample and the engine will narrate your book in that voice. Want your audiobook read by a specific narrator? Record a short clip and let the AI do the rest.
How to Use It Today
Until the KOReader plugin ships, here is the workflow:
- Find your book file. On your e-reader, KOReader stores books in a directory you configured (often
/mnt/onboard/or a custom folder). Connect your e-reader to a computer via USB, or use the built-in file manager to locate the EPUB. - Transfer the EPUB. Copy it to your computer or phone. If you manage your library with Calibre, the file is already on your computer.
- Upload to MimicReader. Go to mimicreader.ai/app, create a free account, and upload your EPUB. MimicReader also accepts PDF, TXT, MOBI, and FB2.
- Generate your audiobook. Open the book in your library, tap the generate button, choose a voice and language. The AI pipeline handles the rest. You will receive a notification when it is ready.
- Download the M4A. Transfer it back to your e-reader, phone, or any device. Play it in any audio player that supports M4A (which is essentially all of them).
The free tier gives you 1 credit per month — enough for roughly 1 hour of audio. That is a short novel or several chapters of a longer work. Paid credits are £1 per hour and never expire.
Coming Soon: KOReader Plugin
We are building a Lua plugin for KOReader that will add a “Send to MimicReader” option directly in the reading menu. Select text or an entire book, and the plugin will upload it to MimicReader's API and queue generation. When your audiobook is ready, it downloads to your device automatically.
This is the workflow KOReader users have been asking for: highlight a passage, tap a button, and hear it read back in a human voice — without leaving the app.
The plugin is in development. If you want early access, join the waitlist and vote for KOReader plugin priority.
Voice Quality: Not the Robotic TTS You Are Used To
If your only experience with TTS is Google's system voice or Amazon Polly, the quality gap will surprise you. MimicReader uses Chatterbox, a neural TTS model that was purpose-built for natural, expressive speech.
“In blind preference tests, Chatterbox is preferred over ElevenLabs 63% of the time.” — Chatterbox research paper, Resemble AI
That is not marketing copy — it is from the model's published evaluation. Chatterbox produces speech with natural pauses, appropriate emphasis, and the kind of subtle vocal variation that makes long-form listening comfortable rather than fatiguing.
For KOReader users who have been suffering through system TTS or giving up entirely, this is the difference between “I cannot listen to this for more than five minutes” and “I forgot this was not a human narrator.”
Try MimicReader Free
Upload the EPUB from your KOReader library and hear the difference AI voices make. 1 free hour every month, no credit card required.
Get Started FreeWant the KOReader plugin sooner? Vote for it here — the more votes, the higher the priority.