The short answer Open Dashboard ▸ Personalize, add the names and jargon you say most, and turn AI cleanup on — the dictionary only applies during cleanup, so with it set to None your entries do nothing. Ten minutes now saves months of retyping the same three names.

Every dictation tool eventually hits the same wall: it's fluent on ordinary prose and unreliable on the words that make your work yours — your name, your coworker's name, your product, the command you type fifty times a day. That's not a bug to route around with a bigger model. It's a gap only you can fill, and it takes about as long as reading this article.

Why this happens at every model size

Speech recognition models, Whisper included, don't transcribe sound so much as predict the most statistically likely sequence of words given what they heard. That works beautifully for language the model has seen a lot of. It fails predictably for language it hasn't: a name like "Anaïs" or a tool like kubectl has no common, learned spelling to fall back on, so the model reaches for something that sounds close and is more frequent in its training data — "an eyes," "cube control," whatever's nearby in probability space.

Scaling up the model does not fix this, and it's worth saying plainly because it's the most common misconception we hear. A bigger model is better at robustness to accents and background noise, and better at rare-but-attested words. It is not a database of your team's Slack handles. If names are your accuracy problem, a dictionary is the fix — at any model size.

What a dictionary entry actually does

In OpenVoiceFlow, the dictionary isn't a find-and-replace pass sitting after transcription — that approach is brittle, because a misheard word rarely comes back as one consistent wrong spelling. Instead, your entries are supplied to the AI cleanup model as explicit instructions: use these exact spellings, here's a list. The cleanup model then corrects a misheard variant in context, which is why it can fix a name even when the raw transcript only loosely resembles it.

Entries can also carry aliases — known mishearings you've noticed — passed along as "may be misheard as…". That's useful for words that get mangled a specific, repeatable way rather than randomly.

One condition matters more than any other: the dictionary is applied during AI cleanup. With cleanup set to None — the shipping default — there's no stage left to apply it in, so entries sit inert. If the dictionary is the reason you want the feature, turn cleanup on first; local Ollama backends keep the whole pass on-device if that's the concern.

Ten minutes, done properly

  1. List your top offenders. Don't try to be exhaustive on day one. Write down the five to ten words you've hand-corrected more than twice: your name if it's uncommon, your manager's, your product, your company, your most-used CLI tool.
  2. Add them under Dashboard ▸ Personalize. Type each word the way it should be spelled and add it. There's no meaningful cap, but resist the urge to dump in a whole glossary — every entry is context the cleanup model has to weigh on every request, so a focused list actually performs better than a sprawling one.
  3. Add aliases for the specific, repeatable misses. If "kubectl" reliably comes back as "cube cuddle," attach that as an alias rather than hoping the base entry alone catches it.
  4. Run the Know-Me interview if you haven't. It seeds names and technical terms you mention into the dictionary automatically, without overwriting anything you've added by hand — the fastest way to get a useful starting set beyond your manual list.
  5. Dictate a real paragraph and check it. Not a test sentence — an actual message you'd send. Add whatever still trips it, and stop when nothing does.

Where it lives, and who sees it

Entries are stored at ~/Library/Application Support/OpenVoiceFlow/dictionary.json on your Mac. They never leave the machine except as part of the cleanup prompt sent to whichever provider you've chosen — and if that provider is a local Ollama model, they never leave at all. Duplicate entries (case-insensitive) merge automatically rather than creating clutter, and any entry can be deleted from its row when it stops being useful.

Maintaining it

A dictionary is a living list, not a one-time setup. The honest workflow: whenever you catch yourself correcting the same word twice, that's the signal to add it — not a bigger vocabulary project, just one more line. Revisit it after a role change, a new project name, or a new teammate. Prune entries for people or projects that are no longer part of your work; a shorter, current list beats a longer, stale one.

FAQ

Why does dictation software keep misspelling names?

Because the model predicts likely word sequences, and a name absent from its training data has no likely spelling to fall back on — it substitutes something statistically closer instead. This happens at every model size.

Does the dictionary require AI cleanup to be on?

Yes. Entries are applied during the cleanup pass; with cleanup set to None there's no stage to apply them in.

Is it just find-and-replace?

No — entries are passed to the cleanup model as spelling instructions, so it corrects a misheard variant in context rather than blindly substituting text.

How big should my dictionary get?

As big as it needs to be and no bigger. A focused list of words you actually say outperforms an exhaustive glossary, since every entry adds context the model has to weigh each time.

Teach it your words, free

The dictionary ships in every install of OpenVoiceFlow — no account, no per-seat pricing, no cap on entries. Set it up once and stop retyping the same three names.

More from the blog