TtsReader is a cross-platform, offline TTS app built with Kotlin Multiplatform and Jetpack Compose, using the Kokoro TTS model through sherpa-onnx via JNI. It offers intelligent sentence-by-sentence speech with real-time highlighting β no internet or cloud required.
---
- π₯οΈ Kotlin Multiplatform Desktop App (Jetpack Compose UI)
- π€ Offline TTS using Kokoro + sherpa-onnx + JNI
- π Smart Sentence Playback: one sentence at a time with buffering
- π¦ Live Highlighting: currently spoken sentence is highlighted
- π Chrome Extension Support:
- Right-click selected text β βPlay with TtsReaderβ
Download the prebuilt .msi
:
- JDK 17+
- Git
- Chrome (for browser extension)
git clone https://github.com/ys-pro-duction/TtsReader.git
cd TtsReader
./gradlew run
(Optional) browser extension for sending selected text to the desktop app.
- Download: chrome-extension.zip
- Extract it
- Open Chrome β
chrome://extensions
- Enable Developer Mode
- Click βLoad unpackedβ β select extracted folder
- Select text on any webpage β right-click β βPlay with TtsReaderβ
https://addons.mozilla.org/en-US/firefox/addon/ttsreader-text-to-speech/
TtsReader desktop app must be running in the background.
-
Text is broken into sentences using punctuation
-
The app:
- Plays 1 sentence at a time
- Buffers the next 2 sentences for seamless delivery
- Highlights the active sentence in the UI
-
Playback uses native Kokoro ONNX models via JNI
First launch will download required models to:
~/.TtsReader/
βββ model.onnx
βββ tokens.txt
βββ config.json
TtsReader β Read your text aloud, smoothly and intelligently, all offline.