A self-contained AI-powered TTS player with 28 human-sounding neural voices, based on Kokoro's 82M-param model — no cloud, no downloads, works entirely offline
- Kokoro TTS Engine - Open-weight neural TTS model (82M params) for natural-sounding speech
- 28 English Voices - American/British, male/female, selectable at runtime
- Clipboard Monitoring - Automatically detects when you copy text
- Global Shortcut - Press
Cmd+Shift+Rto play/pause from anywhere - Speed Control - Adjustable speech rate (0.5x to 2.0x)
- Voice Selection - Choose from 28 voices in the dropdown below controls
- Self-Contained - Model and voices embedded in the binary, no external files needed
- Minimal UI - Tiny floating player that doesn't get in the way
Download the latest release:
Note: application only works for MacOS and Linux, future support for Windows is planned.
- Copy text or Select text anywhere on your Mac/Linux (select text +
Cmd+C) - Click Play or press
Cmd+Shift+Rto start listening - Adjust speed with the
<<and>>buttons - Select Voice - Choose from 28 voices in the dropdown below the controls
- Click Stop to stop playback
- Rust (install via rustup)
- Dioxus CLI
cargo install dioxus-cli# Clone the repository
git clone https://github.com/yourusername/tts-reader.git
cd tts-reader
# Run in development mode
cargo run -p tts-reader
# Or
cd packages/desktop && cargo run# Note: Build release binary (includes embedded model, ~310MB)
# Create a .app bundle for macOS
dx bundle --platform macos --package-types app
# Or create a .dmg installer for macOS
dx bundle --platform macos --package-types dmg
# Or create a .deb installer for linux
dx bundle --platform linux --package-types deb --package tts-reader
# And .exe for windows
dx bundle --platform windows --package-types nsis --package tts-reader- Dioxus 0.7 - Cross-platform UI framework
- Tokio - Async runtime
- Kokoro TTS - Open-weight neural TTS model
- ort - ONNX Runtime for model inference
- rodio - Audio playback
- macOS
saycommand - Fallback TTS - Linux
espeakcommand - Fallback TTS pbpasteorxclip- Clipboard monitoring
The default voice can be configured via a .env file in the project root:
KOKORO_VOICE=af_heart # Default voice (American Female)
# KOKORO_MODEL_DIR=/path/to/models # Optional: override model path
# KOKORO_VOICE_DIR=/path/to/voices # Optional: override voice dirAvailable voices:
- American Female: Heart, Alloy, Aoede, Bella, Jessica, Kore, Nicole, Nova, River, Sarah, Sky
- American Male: Adam, Echo, Eric, Fenrir, Liam, Michael, Onyx, Puck, Santa
- British Female: Alice, Emma, Isabella, Lily
- British Male: Daniel, Fable, George, Lewis
Listen to all 28 voice samples on the Kokoro-82M-v1.0-ONNX HuggingFace page.
MIT
