Same bet, and the long list we do not argue about
Transcribro runs Whisper on the Android device itself, using whisper.cpp with voice activity detection so it knows when you have started and stopped. You get a keyboard, and it also registers itself as a system speech recognition service, so other apps can hand it work. The project is open source under the ISC licence, it is free, and it handles English.
LocalType makes the same architectural bet, transcribing on the phone with nothing leaving it, and differs mainly in reach: eighteen languages instead of one, and one product where Transcribro ships a keyboard plus a separate service. LocalType is a separate product with no affiliation to Transcribro or its developers.
On the question that brought most readers here, then, there is no argument between these two products. Audio becomes text on the hardware in your hand. Neither app wants an account. Neither needs a connection once the model is installed, so flights, tunnels, basements and trips abroad with data switched off are unremarkable for both.
The tidying-up that follows from that position looks much the same on our side. The model sits in storage that no other app can open. Backups skip the app on purpose, with the awkward consequence that a new handset starts blank and you fetch the model again. Over a password field no microphone key is offered. There is no advertising and no behavioural tracking inside the product, no recording archive is kept by either app, and the network request happens once, because the app asks for internet access for exactly one purpose and has no second use for it. Words you teach it stay taught, on that device only.
Two projects arrived at that list separately, from different starting points and under different licences, which is worth more than either of us claiming it as a differentiator.
Eighteen against one
If you write only in English, none of this decides anything and you should keep using Transcribro. It is free, the code is there to read, and it does the job.
If you do not, it decides everything.
Eighteen languages sit inside one multilingual model, which LocalType downloads once. It works out which of them you are speaking from each recording, so you never declare a language in advance and a Dutch message followed by an English one needs nothing from you in between. Pin it to a specific language instead and the keyboard layout, the dictionary and the dictation language all move together, which matters the moment a switch involves a different alphabet or different accent keys and not just different words.
That capability is not free in engineering terms. Multilingual models are larger than single-language ones, which is exactly why a project can reasonably choose English and ship something excellent within it. The trade is legitimate in both directions, and this is simply the side of it LocalType picked.
Accuracy across the eighteen is not uniform, and the gaps are wide. Some languages had far more training material than others, and it shows in the results.
Code you can read, against behaviour you can test
Transcribro's licence lets you read every line, build it yourself and satisfy yourself that the claims are true. That is a genuinely strong position and LocalType cannot match it. Our source is not published.
What we can offer instead is verification by behaviour. You cannot read the code, so make the app prove itself: install it, download a model, put the phone in airplane mode and keep dictating. If the audio needed to go somewhere, it would stop working there and then. It does not.
That is a weaker guarantee than source access, and not an equal one. If inspectable code is your requirement, the choice is already made and Transcribro is it.
Where you get the app from belongs to the same question. Transcribro is distributed outside the Play Store, through Accrescent and the project's own repository, which is a feature in itself for anyone deliberately avoiding Google's store or running a phone without Play Services at all. We distribute LocalType through Google Play, which makes installing and updating it ordinary and means the payment side is handled by Google rather than by us, so no card details ever reach LocalType. Apps on Play also pass through Google's own checks, which some readers count as reassurance and others as precisely the dependency they were trying to escape.
Everything there depends on which part of the stack you are trying to get away from: the cloud doing the listening, or the platform underneath the whole phone. LocalType addresses the first and does not pretend to address the second.
One product, or a keyboard plus a service
Transcribro's split has a real advantage. Because it registers as a system speech recognition service, other apps can call it, and you are not limited to dictating through its own keyboard.
We do not offer LocalType to other apps that way. It is the keyboard, and dictation happens through it. The upside is that the two halves were designed against each other. One language setting drives layout, dictionary and dictation at once. A name you add to your personal dictionary improves typing suggestions and is handed to the speech model as context, so it starts being spelled correctly when you dictate it too. There is no pairing step and no question of which component is currently holding the microphone.
That integration shows up most on the days you never dictate at all, which for most people is most days. Typing is the main event: corrections as you go, the next word offered before you reach it, and a word list matched to whichever of the eighteen languages you have selected. The layouts people expect are there, including the German and French arrangements in the countries that use them. Emoji are sorted properly, with whatever you reached for recently at the front. Names and technical terms you enter by hand feed the typing suggestions and the recogniser from the same list, so you build that vocabulary once. None of it reaches for the network, on phones or tablets running Android 8.0 and upwards.
Which arrangement is better depends on whether you want a component you can wire up yourself or a finished thing that works out of the box.
Choosing how hard the phone works
Three model sizes ship with the app, so the speed and accuracy trade is yours to make, on the hardware you actually own rather than the hardware a reviewer had.
Compact is 60 MB and returns text quickest, which is what an older or memory-constrained phone needs. Standard is 190 MB and is what the app proposes for most devices. Large is 539 MB and handles accents, fast speech and background noise best, in exchange for patience: on a test phone with 4 GB of memory, Standard turned 6.9 seconds of speech into text in 4.1 seconds, while Large takes roughly double the time you spent speaking.
The phone keeps one at a time. Moving up or down replaces that file and nothing else stacks up beside it, so experimenting costs you nothing permanent and you can settle on a size after a week of using each rather than guessing from the numbers.
English and readable, or eighteen and supported
Transcribro is free, open source, and correct about the thing that matters. For an English writer who wants to read the code, it is the better answer, and that is where they should go.
LocalType is for the eighteen-language case, and for people who want one supported product instead of parts to assemble, with the same principle underneath: the recognition happens on your phone, because there is nowhere else in the product for it to happen.