A navigator for places where GPS fails often also has no mobile internet. So the voice assistant had one hard requirement: everything on the phone, nothing sent anywhere.
Three models, one sentence
- Whisper large-v3-turbo turns speech into text. It handles the way people actually talk in Ukraine — Ukrainian with English names and the odd Russian word.
- Gemma 4 E2B turns the text into one command: route, search, “I'm here”, a question about the route. Its answer is constrained by a grammar to exactly one of our commands, and our code checks it before anything happens.
- Vosk listens for the wake phrase “Привіт, навігатор” — cheaply, and only while something is heard.
Choosing the model honestly
We wrote 160 real commands — Ukrainian, surzhyk, Russian, English, with filler words — and gave them to several small models. Sixty of them we wrote only after the instructions were final, so they could not be tuned for. Gemma 4 E2B understood 88 % of those; the larger E4B all of them, but at two and a half times the time. A rules layer handles the obvious phrases (“додому”, “mute”, “how long”) instantly, without any model, so the small model is enough.
Fast enough to use while driving
On a Galaxy S25 Ultra the first numbers were bad: 17.8 seconds to recognise a three-second phrase. The causes were mundane. The assistant ran on the phone's little cores, because we had given it low priority so the system would sacrifice it before navigation. The most compressed Whisper unpacked slowly on ARM. And Whisper was working on a 30-second window for a 3-second phrase. Fixed, a command now takes about 1.4 s to recognise and under a second to understand.
Never in the way of navigation
The models live in a separate process. If one hangs, overheats the phone or runs it out of memory, Android ends that process — navigation and the trip recording carry on, and the next command starts the assistant again. Models load while you speak and unload a couple of minutes after the last command, or at once when the phone is hot or short of memory.
What it does not do
No chat, no internet, no actions outside navigation. It does not record audio; the recognised text goes into the trip recording on the phone, for the beta. “Home is here” only works when GPS is verified — a spoofed position would otherwise become your home for good.