Lexo
← All writing

Offline voice dictation on Android: what the options actually do

Last updated:

"Offline dictation" gets used for at least four different things on the Play Store: recognition that runs on the phone, recognition that runs on a server but caches text when you lose signal, an app that bundles a downloadable model but still calls home for other reasons, and an app that just says "private" on the listing. This is a rundown of the real options and what each one does with your audio. I make one of them, so read the part about where mine falls down.

Lexo is the keyboard this pipeline ships in. Thirty days free, then $9.99 once. Get it on Google Play

Everything below about someone else's product is quoted from that product's own documentation, read on 2026-07-26, with the page named. Where their docs don't say, I say they don't say instead of filling it in. Test on your own phone before betting anything on this.

What "offline" should mean

Three separate questions hide under the word, and products answer them differently:

Google's on-device recognition and Gboard voice typing

Android has a built-in on-device speech recognizer with per-language packs you download. Google's support instructions route you through Settings > System > Languages & region > Speech > On-device recognition > Add a language.

Google's advanced voice typing page (read 2026-07-26) is more precise about the boundary than most third-party summaries are, and it deserves credit for that. It says: "The text you speak stays on your device and isn't sent to Google servers except when you use the 'Fix it' or detailed edits features." For those edit features it adds that "both your voice command transcript and the full text from the input field are sent to Google servers to process your request. No audio data is sent." The same page says advanced voice typing requires "Pixel 6 or up," and lists English, French, German, Italian, Japanese and Spanish.

Separately, Google's "Learn how Gboard gets better" page (read 2026-07-26) describes an opt-in donation program where "snippets of your audio input on Gboard are sent to and stored by Google to improve speech recognition."

What this adds up to: on a recent Pixel, in a supported language, Google's dictation is genuinely on-device and genuinely good. Off that path, on an older phone or a language without a pack, what happens is device-dependent and the docs don't promise you anything. That's the real caveat, not a conspiracy. Test yours with the network off.

FUTO Voice Input

A standalone voice input app that any keyboard can call. Its site (voiceinput.futo.tech, read 2026-07-26) says it is "designed to work entirely on-device with no data stored," links its source on GitLab, and sells a license as a one-time payment that also covers FUTO Keyboard, while the app is available free.

Their page does not name the underlying model, so I won't guess at it here. If you want an offline recognizer whose source you can read, this is the obvious first stop, and it pairs with keyboards that have no network access of their own, like HeliBoard.

Whisper-based apps

Whisper is OpenAI's speech recognition model, released with open weights under an MIT license, and it's the reason a wave of "offline transcription" apps exists at all. It runs fine on a modern phone through whisper.cpp and similar runtimes.

Two things to know before you pick one:

Lexo

Lexo (com.lexo.keyboard) is a keyboard with dictation built in, so there's no second app and no handoff. Being straight about the price: dictation is not the free tier. It sits behind the same one-time $9.99 unlock as the neural typing suggestions, after a 30-day free trial that starts when you finish setup. When the trial runs out, the keyboard keeps working on its word-frequency tier and the mic key stops until you buy.

The pipeline: 16 kHz audio through a silero voice-activity gate, then an NVIDIA Parakeet transducer (int8 ONNX) decoded through sherpa-onnx. It's an offline model run in a pseudo-streaming loop, re-decoding a trailing window about once a second and committing text behind a short lag, which gives you live-feeling transcription without the accuracy cost of a true frame-synchronous streaming model. On a Pixel 9 Pro XL the decode runs at roughly a 0.05 real-time factor, so about half a second of compute for a ten-second window.

Cleanup is where I want to be exact, because this is the step people assume is an LLM. It isn't. A small ELECTRA-based tagger with three heads (int8 ONNX, around 3 ms per turn) labels each token for deletion, casing and punctuation, catching fillers, stutters and self-corrections. Then a deterministic rule pass handles spoken punctuation, acronyms, number formatting, and register detection so it doesn't force capital letters and full stops into a terminal window. The whole stage fails open: if it's slow or unsure, you get the raw transcript rather than a mangled one.

Nothing about the audio path touches the network. The app declares INTERNET for three things and none of them is your speech: a one-time model download of about 1.2 GB on first run, Google Play billing, and anonymous crash reporting through Firebase Crashlytics. Crash reporting is off unless you turn it on, with a toggle at Settings > Advanced > Other > Send crash reports. Crash reports carry stack traces, device model and app version, never audio or transcripts.

The cleanup step is the whole experience

People compare dictation tools on word error rate and then pick based on something else entirely. What actually decides whether dictation feels usable is what happens to the transcript after recognition, and there are three levels:

If you're comparing products, work out which of the three you're getting. A tool doing level three over a network will beat a level-two on-device tool on how the output reads, every time. It just isn't the same product.

How to test any of this in about a minute

Where Lexo loses

Picking one

On a recent Pixel in a supported language, Google's on-device voice typing is good and it's already installed. If you want an offline recognizer whose source you can read, or you're on a custom ROM, FUTO Voice Input. If you want offline dictation and an on-device suggestion model in one keyboard, with no second app in the chain, that's Lexo on Google Play.

Related: private and offline Android keyboards compared, and running a 0.5B language model inside an Android keyboard.