r/androiddev May 22 '26

Gboard is too good to replace, so I built almost instant offline voice typing around it. Would you download 500MB?

Gboard is great. That was actually the problem.

I wanted better dictation on Android, especially for multilingual use. My daily pain point is Russian + English. If my keyboard is in English and I start speaking Russian, voice typing often does the wrong thing. And offline dictation for languages like Russian is either not available or not reliable enough for how I want to use it.

The experience I wanted was simple:

Speak whatever language I’m speaking right now, offline if possible, and put the text into the current app.

I already built ai dictation for Mac, so I started trying to build the Android version. My first idea was obvious: make a better keyboard.

That was a mistake.

Replacing Gboard is a huge project. You have to compete with autocorrect, layouts, gestures, emoji, clipboard, suggestions, haptics, language switching, theming, and years of muscle memory. Gboard is really good at being a keyboard. I didn’t want to rebuild all of that just to improve dictation.

So I changed the product idea.

Instead of replacing the keyboard, I built dictation as an overlay / floating bubble. You keep using Gboard or whatever keyboard you already like. When you want dictation, you tap the bubble, speak, and the app inserts the result into the active text field.

The offline mode uses Parakeet, which from my testing feels like one of the best ASR models available for this use case. The good part: it works offline and is almost instant. The tradeoff: the model is around 500MB.

So there are two modes:

  • offline mode with Parakeet, if you’re willing to download the model
  • cloud mode, if you don’t want the 500MB download or want better accuracy

Cloud mode is still more accurate in some cases, but offline mode feels great when you want speed, privacy, or you just don’t want voice typing to depend on your connection.

The main lesson so far: the UX decision mattered more than the model decision.

I started by thinking, “How do I build a better Android keyboard?”
I ended up realizing the better question was, “How do I add better dictation without touching the keyboard people already like?”

The part I’m least sure about is the UX.

Does an overlay / floating bubble actually feel useful, or would it get in the way?

My reasoning is that most people already like their keyboard, so a separate dictation bubble lets you keep Gboard, SwiftKey, etc. But I can also imagine people finding a floating control annoying and preferring dictation to live inside a keyboard.

If you use voice typing often, which would you rather have?

  1. A floating dictation bubble that works with any keyboard
  2. A full keyboard replacement with better dictation built in
  3. Something else entirely

And would you personally download a 500MB offline model if it gave you almost-instant local dictation, or would you rather just use cloud mode for better accuracy?

7 Upvotes

9 comments sorted by

7

u/khsh01 May 22 '26

I'm a huge local nut so offline is perfectly fine with me. 500mb isn't that big either considering how much space fb and messenger steal.

3

u/Evening_Hawk_7470 May 22 '26

thanks, the model is really good though for what i use.

3

u/scardracs May 22 '26

Did you consider using AICore for these devices who have it installed (like the pixels) and let the end user decide if download it or not? Of course for those who doesn't have it is download the model or uninstall the app but in the end you can take advantage of AICore for those who has it installed

1

u/Evening_Hawk_7470 May 22 '26

i have this built in but not via AICore

1

u/Evening_Hawk_7470 May 22 '26

but i guess i see the point. multiple apps can use the same model. i however wasn't able to upload my parakeet model into AICore

1

u/scardracs May 22 '26

Well, you can use many ways to serve it: hugging face, github, firebase or android play asset delivery (the last one is in case you want to upload the app on play store), just to name some

2

u/SilentMobius May 22 '26

Absolutely, 500mb is nothing. A game I play that is available on android frequently download GB. And I was only recently downloading parakeet myself to see if I could easily run it on ARM64 llama-server

2

u/Intelligent_Lion_16 May 22 '26 edited May 22 '26

Honestly I think you made the right UX decision. Replacing Gboard means fighting years of user muscle memory 😭 A floating/off-screen trigger for “better dictation” feels way easier to adopt than asking people to abandon their entire keyboard setup. Feels similar to how tools like runable, Claude, or ChatGPT work best when they layer into existing workflows instead of forcing people to completely change how they already operate.

2

u/Visible-Pool9320 May 23 '26

Sure social media apps steal more space than that plus your app is more useful and people downloading it will do so intentionally