Skip to main content
The Dictionary page has two tabs: Your words and Replacements. Custom words live on the first tab. Text replacements have their own page. Open it from the sidebar.

Adding a word

Type a name, term, or spelling into the input at the top and press Add. Add Kokoro if it keeps writing “Coco row”. Entries are capped at 50 characters. The characters <, >, " and ' are stripped, and duplicates are rejected regardless of case. Each word appears as a chip you can remove with a click.

How custom words reach the model

Which mechanism fires depends on the engine running your speech model. The Whisper route tends to be more accurate, because the model hears the bias before it decides. Every other engine gets a post-hoc rewrite, which is still good but has to guess.

Cloud speech-to-text

When you dictate through a cloud provider, custom words are forwarded as provider-native biasing if Send my custom words is on (it is by default). ElevenLabs receives them as key terms, OpenAI and Groq as a prompt, and Deepgram as key terms. When the words are sent to the cloud, the app’s own fuzzy correction pass is skipped, because running a second pass over text the model already biased can only corrupt it. If your provider accepts the field but ignores it, turn the setting off so the local pass takes over instead.
Custom words help most with non-Western names and specialized vocabulary. If you dictate Nepali, Indian, or other South Asian names often, pair a Whisper model with a custom-word list.

Word correction threshold

Settings → Debug → Word correction threshold. Range 0.0 to 1.0. Default: 0.18. This controls how aggressively the fuzzy pass rewrites your transcript. Lower is stricter. Raise it if a term you added is being ignored. Lower it if unrelated words are being replaced. The Debug tab only appears once debug mode is on: press Ctrl+Shift+D (or Cmd+Shift+D on macOS).
An over-eager threshold rewrites ordinary words into your custom vocabulary. That is far more annoying than an occasional miss, so the default is deliberately tight.
It combines Levenshtein edit distance with Soundex phonetic matching, and checks runs of one, two, and three words at a time. That is how “Charge B” becomes ChargeBee.A candidate has to be within about 25% of the custom word’s length before it is even considered, so openai cannot swallow “openaigpt”.The case pattern of the first word carries over (HELLO gives WORLD, Hello gives World), and leading or trailing punctuation is preserved. A word containing & gets a second matching form with the ampersand spelled out, so R&D matches whether you say “R and D” or it comes back as “R&D”.
When Generate with Flow is on, SpeakoFlow is added to the recognition list automatically.The activation phrase itself is left out of the fuzzy pass on purpose. Correction runs over the whole transcript, and “Hey Flow” would rewrite ordinary speech like “hey flaw”. Flow matches its own leading phrase separately.

Learn words I correct

Below the word list, a toggle called Learn words I correct teaches SpeakoFlow from your own edits. When it is on, the app reads only the field it just typed into, for about a minute after each paste. If you fix a word SpeakoFlow got wrong, that correction appears in a Learned from your corrections list on the same page. Learned words are guesses. Each one has two actions:
  • Tick to promote it into your own custom words, where it stays permanently.
  • Remove to forget it.
The oldest entries are dropped past 200. Clearing the whole list is one click.
Learning from corrections is only available on Windows. macOS and Linux show a note instead of the toggle. You can still add words by hand.
The feature uses Windows UI Automation to read the focused control. It never enumerates windows, never reads a control the app did not just write to, and never sends anything anywhere.

Text replacements

Map a spoken phrase to text you type often.

Languages

Which model for which languages.
Last modified on August 30, 2026