The open-source (AGPL-3.0) Android keyboard you can talk to.
English & emoji typing, plus push-to-talk dictation that runs on your phone or in the cloud.
|
The mic sits in the top bar of the keyboard. One tap and the keys give way to a single, big talk button. |
Your words stream live into the top strip as you talk. Want to go hands-free? A short tap locks it on. |
Release, and polished text lands where your cursor is: punctuated, capitalised, with the ums and uhs gone. |
|
🔒 Private by default |
⚡ Built for speed |
|
🎛️ Your engine, your call |
⌨️ A real keyboard, too |
|
🌗 Light, dark, or both |
🫧 Keyboard only, always |
| Engine | Runs | Model | |
|---|---|---|---|
| 🟣 | Parakeet Ultra (default) | on-device · offline | Moondream's upgrade of NVIDIA parakeet-tdt-0.6b-v3, int8 via sherpa-onnx |
| 🟣 | NVIDIA Parakeet TDT 0.6B v2 | on-device · offline | parakeet-tdt-0.6b-v2, int8 via sherpa-onnx |
| ⚫ | ElevenLabs | realtime WebSocket | scribe_v2_realtime |
| ⚫ | Cartesia | realtime WebSocket | ink-2 |
| ⚫ | Smallest AI | realtime WebSocket | pulse |
| ⚫ | Sarvam | realtime WebSocket (beta) | saaras:v3-realtime |
Full benchmark numbers
Measured on one Snapdragon 8 Elite Gen 5 phone running Android 16. Each engine got the same 8.6 s utterance, streamed at real-time pace through the same code path the mic uses (BenchReceiver). These are single runs on one device, so treat them as indicative rather than a distribution; cloud numbers also depend on the network.
| Engine | First partial | Release → final | Transcript |
|---|---|---|---|
| Parakeet Ultra (warm) | 0.81 s | 0.49 s | exact |
| Parakeet Ultra (cold, model load 2.7 s) | 3.5 s | 0.97 s | exact |
| Parakeet TDT v2 (warm) | 0.82 s | 0.50 s | exact |
| Cartesia ink-2 | 1.71 s | 0.11 s | exact |
| Smallest pulse | 1.08 s | 0.19 s | missed one sentence break |
| ElevenLabs scribe_v2_realtime | 2.29 s | 0.47 s | exact |
| Sarvam | — | — | not benchmarked yet |
Real-mic check (audio played from a speaker into the phone's mic): Parakeet Ultra transcribed 10.9 s of speech in 650 ms, word for word.
- Build & install the APK (see Build from source below).
- Open Reev and complete the three setup steps: enable it, switch to it, and allow the microphone.
- Choose a voice engine. Download Parakeet Ultra in the app (~630 MB, one time, resumable), or paste an API key for ElevenLabs, Cartesia, Smallest or Sarvam.
- In any text field, tap the mic and talk.
Build from source
# JDK 21 · Android SDK 36 · AGP 8.13 · Gradle 9
./tools/fetch_deps.sh # one-time: sherpa-onnx AAR → app/libs (pinned + SHA-256 checked)
./gradlew assembleDebug # or: ./tools/deploy.sh to build + install over USB
# release builds need your own upload key; they refuse to fall back to the debug key
REEV_KEYSTORE=/path/to/upload.jks REEV_KEYSTORE_PASSWORD=... ./gradlew bundleRelease
# optional (debug builds): push API keys from env vars instead of typing them
REEV_CARTESIA_KEY=... python3 tools/inject_keys.pyBenchmark any engine on a connected phone:
adb push test.wav /sdcard/Android/data/com.asis.reev/files/test.wav
adb shell am broadcast -n com.asis.reev/.BenchReceiver --es engine local \
--es wav /sdcard/Android/data/com.asis.reev/files/test.wav
adb logcat -s ReevBenchDownload models from inside the app. If you adb push them into Android/data/com.asis.reev, they end up owned by the shell user and the app can't read them.
Is "Parakeet Ultra" an NVIDIA model?
It's built on one. Parakeet Ultra is Moondream's further-trained version of NVIDIA's
parakeet-tdt-0.6b-v3: same 0.6B architecture, lower error rate. If you want NVIDIA's own weights, Reev also ships NVIDIA's English-only Parakeet TDT v2.
Does my voice leave the phone?
Not with the Parakeet engines; they're fully offline. With a cloud engine, audio streams directly from your phone to the provider you picked. There's no Reev server in between.
Where are my API keys stored?
In the app's private storage on your phone, encrypted with an AES-256-GCM key that never leaves the Android Keystore. They're excluded from backups, hidden from screenshots of the settings screen, and only sent to the matching provider. Clear the field to delete a key. Encryption at rest doesn't protect against a rooted or compromised phone, so use a scoped, spend-limited key where your provider offers one.
Which phones does it support?
Android 8.0+ phones on arm64 or armv7. On-device dictation works best on recent flagship chips; older phones may prefer a cloud engine.
- Parakeet isn't a streaming model. Live text comes from re-decoding the growing buffer every 0.7 s, which costs battery on long dictations. Reev doesn't use the phone's NPU yet.
- English only (with optional Hinglish suggestions); no other languages yet.
- Cloud engines use your own long-lived provider key on the device. There's no token broker, by design (no Reev server).
- The benchmark is from a single phone; there's no automated on-device performance suite yet.
- Emoji come without skin-tone variants for now.
Ideas for dictation polish (keeping the model warm, removing fillers, detecting a silent mic, windowing long audio) came from studying Spokenly. The flow was inspired by Wispr Flow.
- sherpa-onnx (Apache-2.0): on-device inference
- Glide typing decoder: adapted from FlorisBoard's statistical classifier and AnySoftKeyboard (Apache-2.0), using the SHARK2 shape + location method
- Parakeet Ultra by Moondream (CC-BY-4.0); int8 ONNX export by
mldecode - NVIDIA Parakeet TDT 0.6B v2 (CC-BY-4.0)
- Word frequencies: hermitdave/FrequencyWords (CC-BY-SA-4.0)
- Everyday English sentences: Tatoeba (CC-BY 2.0 FR), for contractions and word-pair context
- Hinglish vocabulary and word pairs: Hinglish Everyday Conversations 1M by Abhishek Khatri (MIT; synthetic GPT-4o-mini conversations)
- Emoji data: Unicode
emoji-test.txtv18
Models are downloaded at runtime from a pinned commit, with every file checked against its SHA-256. They aren't bundled. Full notices and licence texts: THIRD_PARTY_NOTICES.md.
Reev's source code is licensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only). You can read, run, modify and share it. If you distribute Reev or a modified version, or offer a modified version to users over a network, you must release your complete source under the same licence. The lexicon data in app/src/main/assets/lexicon/ is licensed under CC BY-SA 4.0. Third-party components keep their own licences; see THIRD_PARTY_NOTICES.md.
Made in Bangalore · speak freely


