Local AI Voice Typing for Windows, macOS & Linux
Real-time, private, on-device speech-to-text. Press F10, speak, and text flows directly into your active app.
- 100% On-Device AI: Speech recognition runs locally on your CPU. No cloud inference, no API key, no account, and zero audio uploads.
- Native OS Text Injection: Injects transcribed text directly into any focused editor, browser, terminal, or app without copy-pasting.
- Powered by Local AI: Runs the X-ASR bilingual Zipformer streaming speech model entirely on CPU, seamlessly recognizing mixed Chinese/English and developer terminology (e.g., "Check 这个 Docker 容器的 logs").
- Real-Time Streaming & Diff Correction: Words stream onto the screen as you speak, with instant diff-based backtracking and automatic corrections.
- Cross-Platform: Lightweight background utility with system tray integration on Windows, macOS, and Linux.
Download the latest pre-built package for your operating system from GitHub Releases.
| Platform | Package | Architecture |
|---|---|---|
| Windows | echolet-windows-x64.zip |
x86_64 |
| macOS | echolet-macos-arm64.zip |
Apple Silicon (M1/M2/M3/M4) |
| macOS | echolet-macos-x64.zip |
Intel x86_64 |
| Linux | echolet-linux-x64.tar.gz |
x86_64 |
| Linux | echolet-linux-arm64.tar.gz |
ARM64 |
- Launch: Run
echolet. It starts minimized in your system tray / menu bar. - Focus: Click into any text field (VS Code, browser, terminal, Slack, Notepad, etc.).
- Voice Type:
- Press F10 (or click the tray menu) to Start Listening.
- Speak naturally.
- Press F10 again (or click tray) to Stop Listening.
Echolet uses uinput for low-latency keystroke injection across X11 and Wayland sessions.
- Initial Setup: Run the setup command once to configure uinput permissions:
(Follow the prompt to add your user to the
echolet setup-uinput
inputgroup and reload udev rules, then re-login if required). - Foreground Mode: To run with live terminal logs:
echolet -f
- When launched for the first time, grant Microphone and Accessibility permissions under System Settings → Privacy & Security.
- Echolet lives in your macOS Menu Bar.
- For early releases, you may need to click More info → Run anyway on Windows Defender SmartScreen.
- Echolet runs silently in the Windows system tray notification area.
Echolet supports control via system tray or command-line interface:
# Toggle recording on / off
echolet toggle
# Check running status
echolet status
# Gracefully quit Echolet
echolet stop
# Run in foreground with detailed debug logging (Linux)
echolet -f[ Microphone ] ──> [ sherpa-onnx / X-ASR ] ──> [ Diff Correction Engine ] ──> [ OS Keystroke Injection ]
- Core Engine: Written in Rust for memory safety, instant startup, and minimal CPU footprint.
- Inference Runtime: Powered by sherpa-onnx using ONNX Runtime.
- Acoustic Model: X-ASR bilingual Zipformer streaming model (480ms chunk), optimized for mixed Chinese/English speech and coding terminology.
- Diff Correction: Live real-time diff tracker that emits dynamic backspaces and character insertions to adjust partial recognitions on the fly.
- Audio Privacy: Audio data is processed strictly in memory and discarded immediately after transcription. No audio is ever stored or uploaded.
- Configuration: Stored at
~/.echolet/config.json. - History Storage: Transcription history is disabled by default. You can opt-in via tray menu settings or configuration.
- Rust (1.75+ recommended)
- CMake, Git, and build tools
# Clone the repository
git clone https://github.com/SentimentalK/echolet.git
cd echolet
# Acquire official base model and build release binary
./scripts/acquire-base-model.sh
cargo build --releaseEcholet is released under the Apache License 2.0.
Special thanks to the following open-source projects and communities:
- k2-fsa/sherpa-onnx - Next-generation speech recognition framework.
- GilgameshWind / X-ASR - Bilingual Zipformer streaming speech recognition models.
- Microsoft ONNX Runtime - High-performance cross-platform ML engine.