Dictionary
Teach WinSTT the names, jargon, and brands it keeps mishearing — corrected in context by your LLM cleanup pass, or by an on-device language model when cleanup is off.
The Dictionary tab is where you fix the words WinSTT gets wrong — proper nouns, product names, and domain jargon — so the right spelling lands every time.
Context-aware — and it works with or without LLM cleanup
Telling a real word from a mis-transcription needs meaning and context — "I watched a video" must stay "video", while "I use veet for builds" should become "Vite". WinSTT uses a language model for that judgement either way:
- LLM cleanup ON → your dictation cleanup model applies the dictionary.
- LLM cleanup OFF → a small on-device model (mmBERT) does it instead. It downloads once (~310 MB) in the background the first time you dictate with a dictionary; until it's ready, terms are simply left untouched.
Either way there's no blind string replacement — a correctly-heard everyday word is never swapped for a look-alike term.

Two ways to fix a word
Every entry is either a vocabulary word or a replacement pair. Both are folded into the LLM cleanup prompt as structured blocks; the difference is how strongly the model is told to act.
| Mode | Entry | What it does |
|---|---|---|
| Vocabulary word | Term only | Lists your canonical spelling as a preferred term. The LLM fixes a mis-transcribed near-miss to it — using context, so a real word that merely sounds similar is left alone. |
| Replacement pair | Term → Replace with | A find→replace rule the LLM is told to apply verbatim, preserving your exact casing, whenever it sees a whole-word match of the term. |
A vocabulary word is a single canonical spelling — a name, brand, or term — with no
"Replace with" value. It's listed in the cleanup prompt's <preferred-terms> block so the model
nudges a clear mis-hearing toward your spelling. Because the model reads the surrounding words, it
only swaps when the dictation genuinely sounds like the term — it won't turn a correctly-heard
common word into a look-alike. Use it when the model hears roughly the right sounds but spells
them wrong.
A replacement pair adds a "Replace with" value. The Term is a mis-transcription you
keep seeing; the replacement is what it should always become. It's listed in the prompt's
<replacement-pairs> block as a mechanical find→replace rule, so it's the right tool when a
vocabulary word is too soft (e.g. an acronym the model spells out, or a phrase you want rewritten
verbatim).
Why a language model does the matching
Earlier builds used a server-side fuzzy string matcher. It was removed: by letter-distance "video" is actually closer to "Vite" than a genuine mis-hearing like "veet" is, so no string-similarity rule can accept one and reject the other — only a model that understands the sentence can. So the matching always runs through a language model: your cleanup LLM when it's on, or a small on-device encoder (mmBERT) when it's off. The encoder is conservative by design (it favors leaving a word alone over a wrong replacement), so it fixes most mis-hearings and never clobbers a correctly-heard word.
Adding and managing entries
—settings.dictionaryThe canonical word, name, or brand. Required and trimmed; the Add button stays disabled until you type something. Case-sensitive — type it exactly the way you want it to appear ("PyTorch", not "pytorch"). Each entry gets a stable id automatically.
—settings.dictionaryOptional. Leave it empty for a vocabulary-only entry; fill it in to make a replacement pair where the Term is always rewritten to this value.
The table lists every entry in the order you added them — there's no sorting or inline editing. To change an entry, delete it (the trash icon, no confirmation) and re-add it. Delete All wipes the whole dictionary at once.
Delete All cannot be undone
Delete All permanently removes every dictionary entry after a confirmation dialog. There is no undo. Individual deletes are instant and also unrecoverable.
Suggested terms
When LLM cleanup is on, WinSTT watches your dictations for proper nouns — people's names, product names, distinctive acronyms, unusual places — and offers them as one-tap additions in the suggestion strip at the top of the tab.
——Up to 5 candidate nouns per dictation, shown newest-first and capped at 20 pills. Add saves a pill as a vocabulary word (persisted immediately); Dismiss drops it for now. Anything already in your dictionary is filtered out so you only see new candidates.
Dismissed isn't forever
The strip lives only in the panel's local state. Dismissing a pill forgets it for this session — if the model surfaces the word again on a later dictation, it reappears. Closing or refreshing the settings panel clears any pending suggestions. The strip is hidden entirely when there's nothing to suggest. It only appears when LLM cleanup is enabled, since the suggestions come from that pipeline.
Getting good results
Because the dictionary rides on the LLM cleanup pass, the quality of corrections tracks the quality of your cleanup model. A few tips:
- Pick a capable cleanup model. A small local model handles obvious mis-hearings; subtler ones (a foreign brand pronounced unlike its spelling) reward a stronger model.
- Spell the term the way you want it to appear — casing and all ("PyTorch", "GitHub"). The model is told to preserve it.
- Reach for a replacement pair when a vocabulary word is too soft. If the model keeps
spelling an acronym out or won't pick up a particular mis-hearing, a
Term → Replace withpair states the rule mechanically. - One spelling per entry. The model maps any close-sounding dictation onto it; you don't need to enumerate every mis-spelling.
Suggested terms need the LLM
The proper-noun suggestion strip is driven by the LLM cleanup pipeline. With LLM cleanup off, no suggestions are generated — add terms by hand instead. Turn cleanup on in LLM settings.
Related
Snippets
Expand a short spoken phrase into longer text — addresses, signatures, boilerplate.
LLM cleanup
Tone presets, custom modifiers, and the pass that powers term suggestions.
Choose a model
Pick the STT model whose spellings the dictionary nudges into shape.
Dictation
The full speak-to-paste loop the dictionary corrects on its way to your cursor.
Transcription History
A local dashboard of everything you've dictated — an Overall Stats hero, usage breakdowns, a daily-activity contribution graph, a Voice Profile, a searchable log, and karaoke playback of saved recordings.
Snippets
Expand a short spoken trigger into a longer block of text — addresses, signatures, boilerplate — applied to every transcription.