Why dictation breaks first
On a standard Android phone, a lot of voice typing is provided by Google's own components. The keyboard you are looking at is not doing that part. Take those away and the microphone key either disappears or stops doing anything.
That surprises people, because typing carries on working perfectly. The keyboard is still a keyboard; it simply no longer has a recogniser behind it.
The fix is not to find a keyboard that works around the gap. It is to use one that carries its own recognition, and that is what this whole category of software was built to do.
What you need to look for
Three properties, and they are all checkable before you install anything.
The recognition has to be in the app. A keyboard that calls out to a system speech service will fail on a phone without one. What you want is a model file the app downloads and runs itself.
It has to be installable from where you install things. If you run without the Play Store, the app has to exist on F-Droid, on another store, or as a direct download from the project.
It must not require Google services for anything else. Some apps are fine for their core function and still fail at startup because of a dependency elsewhere.
The options that fit
Whisper IME. Runs Whisper on the device, MIT licensed, free, and available through F-Droid, which makes it the most straightforward answer for a phone without Google services. It downloads its model before first use and caps recordings at roughly half a minute.
Transcribro. On-device recognition using whisper.cpp, ISC licensed, free, distributed through Accrescent and its own repository. It provides a keyboard and also registers as a system speech recognition service, which is useful precisely because your phone no longer has one. English.
FUTO Voice Input. On-device, open source, paid once, no account, and available outside the Play Store. It works as a recognition service behind a keyboard of your choosing.
An open-source keyboard to pair with those. AnySoftKeyboard or HeliBoard for the typing half, with one of the above providing the voice half.
That combination is the standard answer for a de-Googled phone, it works, and it costs nothing.
Where LocalType does and does not fit
LocalType comes from the Play Store. If you have removed Google's services precisely to avoid that, then this is not the app for you and the list above is where to look.
We also have not tested LocalType on Android builds without Google services, so this page makes no claim that it runs there. Not "it does not work", but "we do not know", which is the difference between a claim and a gap in the testing.
Where LocalType does fit is the adjacent case, and it is a large one: people who still use the Play Store but want the recognition itself off Google's infrastructure. Wanting that is not the same as removing Google entirely, and it is a much more common wish.
For that reader: the model is a file on the handset, kept in storage only this app can reach, and it is the only thing that ever hears you. Internet access is requested for exactly one purpose, collecting the model you chose. Nothing needs registering, advertising is absent, no behavioural tracking runs inside the product, no archive of your recordings is kept, and Android's cloud backup is deliberately denied the app's data. In a password field the microphone key does not appear.
Three model sizes, at 60, 190 and 539 MB, and eighteen languages from one multilingual model identified from the recording. For scale, the 190 MB middle setting needed 4.1 seconds to write out 6.9 seconds of speech on the 4 GB phone used for testing. Underneath it is an ordinary keyboard, with autocorrect, next-word suggestions, the standard layouts and room for your own vocabulary, which stays on the device and is handed to the speech model as context.
The test that settles any of this
Whichever app you end up with, do not take anyone's word for it. Test it.
Install it, let the model download finish, then switch off mobile data and Wi-Fi and dictate a sentence. If words appear, the recognition happened on the handset and no service was involved. If it stalls, something outside the app was doing the work, which on a de-Googled phone usually means it will never work.
That check takes under a minute and it is more reliable than any description, including this one.
What you are actually giving up
The de-Googled path has real costs, and they are concrete.
Language coverage is the main one. The open-source on-device options are frequently English-only, because multilingual models are larger and a small project sensibly picks one language and does it properly. If you write in something else, that narrows the field considerably.
Polish is the second. These are careful projects with small teams, not products refined against millions of handsets, so unusual devices and edge cases turn up behaviour nobody has hit before.
And support happens in a repository instead of at a support address, which for this audience is usually fine and occasionally is not.
Why this category exists at all on a de-Googled phone
Dictation is solvable here when several other gaps are not.
Removing Google's services removes a set of shared components that many apps lean on: push messaging, location, in-app payments, and speech. Most of those are hard to replace, because they depend on infrastructure, and infrastructure is not something you can download. Push notifications need somebody running a service.
Speech recognition is the exception, and it became one recently. Once useful models could be downloaded and run on ordinary hardware, the dependency stopped being a service and became a file. A small project can now offer something a de-Googled phone genuinely lacks. Five years ago no amount of effort would have made that possible.
It also explains the pattern in the list above: nearly everything on it is built on the same generation of downloadable models, by small teams, in the last couple of years.
Where the gaps still are
Two of them, so nobody sets off expecting parity.
Language detection and multilingual coverage are the weakest point, for the size reasons already described. If you switch between languages daily, the open-source options will frustrate you and there is no way around that today.
And integration varies. A voice service that registers itself system-wide is excellent when it works and confusing when a particular app declines to use it. Expect to test which of your apps actually pick it up. Do not assume all of them will.
Two different requirements
If your phone has no Google services, use one of the open-source on-device options and pair it with an open-source keyboard. That is a working stack and it is free.
If you kept the Play Store but wanted your voice off somebody's servers, that is a different requirement, and it is the one LocalType was built for.