Why people search for this at all
Whisper is a speech recognition model. What made it matter is not that it was the most accurate thing ever built, but that it could be downloaded and run on ordinary hardware. Before that, decent transcription meant sending audio to a company that owned the model.
Once people had run it on a laptop, the obvious next thought followed: my phone is where I actually write, so why is my phone still sending my voice to a server?
That is the question underneath the search. It is not a review, and nothing here is a criticism of the projects mentioned. Several of them are open-source work done carefully by small teams, and they got there first.
A phone is not a laptop
Whisper comes in sizes, and the ones people praise on desktops are large. Those sizes are fine when there is a graphics card, plenty of memory and a fan.
A phone has a few gigabytes of memory shared with every other app, no active cooling, and a battery it is trying to protect. So any Whisper-on-Android project is making the same set of compromises, whether it says so or not:
- A smaller model, so accuracy sits somewhat below the desktop results people quote online.
- A wait after you stop speaking, because the work starts once there is something to work on.
- Storage, because the model file has to live on the device.
- Fewer languages, since multilingual capability costs size.
Anyone claiming phone transcription identical to a workstation is describing something other than what the hardware does. The interesting question is which compromises a given app picked.
What exists today
Whisper IME runs Whisper on the device and works as an input method, so it can be used from the keyboard. It is MIT licensed and free, it needs Android 9 or newer, and it downloads its model before first use. Recordings are capped at roughly half a minute at a time, which suits sentences and short messages more than long dictation.
Transcribro also runs on the device, using whisper.cpp, and provides both a keyboard and a system speech recognition service so other apps can call it. It is ISC licensed and free. It handles English.
Both are open source, both keep audio on the phone, and both are the work of people who wanted this to exist. If free and inspectable is what matters most to you, start there and stop reading.
A keyboard first
LocalType makes a different set of choices with the same starting principle.
It is a full keyboard first, not a voice input attached to one. Autocorrect, next-word suggestions, a dictionary per language, QWERTY, QWERTZ and AZERTY where those are the national standard, an emoji set, your own added vocabulary. The microphone is a key on that keyboard, so dictation is not a separate thing you switch into.
Three model sizes ship with it, and you decide the compromise. The app does not decide for you: 60 MB for speed on tired hardware, 190 MB as the balanced default, 539 MB when accuracy is worth waiting for. The numbers behind that, measured on a phone with 4 GB of memory: the 190 MB model turned 6.9 seconds of speech into text in 4.1 seconds, while the largest takes roughly twice as long as you spent speaking. One model is kept at a time, so switching swaps one file for the other and never stacks them up.
Eighteen languages come from a single multilingual model, and it works out which one you are speaking from the recording. A settings screen never enters into it. That is the compromise LocalType spent its size budget on, and it is the clearest practical difference from the English-only options.
Somebody supports it as a product, and it is not a side project, which matters when something breaks on a phone model nobody tested.
Android 8.0 and newer will run it, which reaches further back than some alternatives.
What that costs you
LocalType is not open source, and it is not free. Those are real disadvantages against the projects above, and they weigh most for exactly the people those projects were built for.
What you get in exchange is one product doing the whole job: a keyboard you can use all day without touching the microphone, dictation in eighteen languages built into it, and someone to complain to when it misbehaves.
The thing all of these share
Whichever you choose, one property is the same across all of them, and it is the reason to pick any of them.
Your audio does not leave the device. Recognition is a file on your phone doing work on your phone. There is no account, nothing is uploaded, and once the model is in place a connection is irrelevant: aeroplanes, tunnels, basements and foreign trips with data off all behave identically.
For LocalType specifically, the model sits in the app's private storage, the app's data is deliberately excluded from Android's cloud backup, the microphone switches itself off in password fields, and there is no advertising or behavioural tracking inside the product. Internet access is requested for one purpose only, and that is fetching the model you chose. No archive of your recordings is kept at any point: the audio becomes text in the field you were typing in, and nothing survives the transaction. Words you add to the dictionary stay on the handset too.
How to check whether an app really runs on the device
Plenty of apps describe themselves as private, local or secure without being specific about where the audio is processed. There is a test that settles it in under a minute and needs no technical knowledge.
Install the app and let it finish any first-run download it wants. Then put the phone into airplane mode, with Wi-Fi off as well, and dictate a sentence.
If words appear, the recognition happened on the handset. There is no way around that: nothing was reachable. If it stalls, times out, or shows an error about a connection, then the audio was going somewhere, whatever the description on the listing page said.
Some apps download their model on first use, so a failure before you have let that finish proves nothing. And an app can be genuinely on-device and still talk to a server for other reasons, such as licence checks or updates, which is a different question from where your voice goes.
Run that test on anything in this list, LocalType included. We would rather you checked than took our word for it.
Which one to look at
If you want to inspect the code and pay nothing, Whisper IME and Transcribro are where to look, and English-only is not a problem if you write in English.
If you want dictation in eighteen languages inside a keyboard you would use anyway, without assembling it from parts, that is what LocalType is for. Same principle underneath, packaged as a finished product and not as a component.