Speech-to-text is remarkably good at common vocabulary. It stumbles on everything else: your name, your colleague's name, your product, the framework you use at work. A custom dictionary fixes this by teaching Hovor the exact spellings you need, and it feeds those entries to the AI cleanup pass, so the model corrects on the fly throughout your session.
Dictation mishears names and jargon because speech models are trained on text where common words vastly outnumber rare proper nouns. A model that has seen "Cyril" thousands of times and "Кирило" a fraction as often will default to the familiar spelling even when the audio is clearly the less common one. The fix is not better audio; it's telling the model, explicitly, which spelling you want.
A few common failure modes:
The problem is not that the model is broken: it is doing what it was trained to do, which is to produce the most probable output given the audio signal. Your job is to shift those probabilities for your specific vocabulary.
Hovor's custom dictionary maps a list of variant misspellings to one canonical form, applied in two stages: first as a direct text replacement on the raw transcription, then again as a vocabulary hint injected into the system prompt the cleanup model reads. That second stage means the AI is told which spellings to preserve, not just handed already-corrected text. The syntax: list every incorrect variant separated by |, then an arrow, then the correct form.
For example:
Кирило|Кирилл|Cyril → Кирило: no matter how the model transcribes your name, it lands as the Ukrainian spelling.Київ|Киев → Київ: the Ukrainian capital is always spelled correctly, even when the model reaches for the Soviet-era form.kubernetes|cube ornetes|cube ornate is → Kubernetes: both the phonetic mishear and the capitalisation are fixed.postgresql|post gres|post-gres-sequel → PostgreSQL: common mangling of the database name is caught.oauth|oh auth|o-auth → OAuth: the authentication standard is spelled consistently.Тімʼєй|Тімей|Timay → Тімʼєй: less common Ukrainian names with apostrophes are preserved exactly.The replacement is applied after transcription, before the AI cleanup step. This two-stage design matters: the raw transcription from the speech model is corrected first, and then the LLM cleanup receives already-fixed text. As a result, the AI sees the correct terms and reinforces them through the formatting pass rather than working against them.
Beyond replacement, dictionary entries also serve as hints to the LLM. When Hovor builds the system prompt for the cleanup model, it includes your dictionary entries as vocabulary context. This means the model is aware of your preferred spellings from the very start of a session and applies them consistently throughout, not just as post-processing substitutions but as part of how the model interprets and formats everything you say.
Adding an entry takes five steps: open Dictionary in settings, tap add, enter every variant the model tends to produce separated by |, enter the exact canonical spelling you want, and save. The entry applies immediately on that device and reaches your other signed-in devices via background sync within seconds — no export, import, or restart required.
|. You can add as many variants as you like. Three or four covers most cases. If you are unsure which variants the model generates, dictate the word a few times without any dictionary entry and check the raw transcription.You can edit or delete entries at any time from the same Dictionary screen. Changes sync across devices automatically.
The dictionary is case-insensitive on the variant side by default. If your term has mixed-case variants that mean different things (unlikely, but possible), create separate entries.
Every dictionary change (add, edit, delete) is recorded as a timestamped event on Hovor's server, and each of your other signed-in devices pulls new events in the background. Add an entry on your iPhone during a commute and it's waiting on your Mac by the time you sit down. Sync runs in the background and never interrupts an active dictation session.
The AI learning aspect deserves a closer look. Hovor's cleanup pass uses an LLM (gpt-4o-mini on the server, or Apple Foundation Models for on-device processing) to fix punctuation, capitalisation, and phrasing after the raw transcription. The system prompt for that model is built fresh for each session, and it includes your dictionary entries as context. This means:
The effect compounds: a well-populated dictionary means fewer corrections after dictation, which means faster writing, which means more dictation, which reveals more missing entries to add.
The dictionary applies the same way regardless of category: developer jargon, brand names, and multilingual proper nouns all use the identical variant-list-to-canonical-form syntax. What changes is which variants are worth listing first. Below are the categories that save the most correction time, in priority order for most professional users.
If you dictate code-adjacent content (documentation, technical blog posts, design documents, Slack messages about your stack), a small set of entries covers a large fraction of the errors. Start with the names of technologies, frameworks, and tools you use every day. Common entries for developers include database names, cloud provider services, framework names, and the names of internal projects or microservices that have unusual spellings.
Examples that save significant correction time: docker|doc ker → Docker, github|git hub → GitHub, typescript|type script → TypeScript, graphql|graph ql|graph queue el → GraphQL.
Many brand names are just common words with unusual capitalisation that speech models cannot infer from audio alone. apple|Apple → Apple is a no-op in most sentences, but iphone|I phone|I-phone → iPhone is immediately useful. The pattern is the same: list the phonetically-plausible mangled versions alongside the lowercase version, and set the canonical to the official casing.
If you dictate in more than one language, the same dictionary applies across all of them. This is an advantage: if you have both English and Ukrainian names in your vocabulary (as most professionals in technology do), you add them once and they are covered regardless of which language you are currently dictating in.
For Ukrainian-speaking users specifically, the most valuable entries tend to be proper nouns that have well-known Russian or Soviet-era transliterations: city names, personal names with Ukrainian-specific spelling, and terminology that diverged between Ukrainian and Russian after independence. An entry like Харків|Харьков → Харків ensures the Ukrainian spelling is always used.
Professionals who dictate within a specialised domain benefit most from the dictionary. Medical practitioners can map phonetic mishearings of drug names, anatomical terms, and procedure names. Legal professionals can ensure jurisdiction-specific terminology is spelled consistently. Researchers can lock in the exact form of technical terms, gene names, or citation-style abbreviations they use repeatedly.
The dictionary has no semantic limit on what it can contain: if a speech model can mishear it, you can fix it.
The free tier caps the dictionary at 20 replacement rules, with a separate 20-item cap on snippets. That's enough for most personal setups but will feel tight for a developer maintaining an extensive jargon list or a professional with a large domain vocabulary. Any one of Pro Monthly, Pro Yearly, Local Unlock, or BYOK Unlock removes both caps — it isn't limited to a single upgrade path.
Dictionary, snippets, and workflows solve different problems and are capped differently:
| Feature | What it does | Free-tier cap | Syncs across devices |
|---|---|---|---|
| Dictionary | Corrects mistranscribed words/names and feeds them to the AI as vocabulary context | 20 entries | Yes |
| Snippets | Expands a short trigger name into a longer stored block of text | 20 snippets | Yes |
| Workflows | Configures the tone/translation/formatting pipeline for a whole session | Depends on provider (server tone requires Pro; Apple Foundation and BYOK have their own gates) | Yes |
Pro Monthly ($11.99), Pro Yearly ($89.99), Local Unlock ($49.99 / 1999 UAH, one-time, family-shareable), and BYOK Unlock ($24.99 / 999 UAH, one-time, family-shareable) each lift the dictionary and snippet caps to unlimited; the Local + BYOK Bundle ($69.99 / 2799 UAH) covers both one-time unlocks together.
The free tier caps custom dictionary entries at 20 replacement rules. The same 20-entry cap applies separately to snippets. Any one of Pro Monthly, Pro Yearly, Local Unlock ($49.99 / 1999 UAH), or BYOK Unlock ($24.99 / 999 UAH) removes both caps, so you don't need Local Unlock specifically just to lift the dictionary limit.
Both. Replacement happens first: the raw transcription is corrected against your variant list before anything else touches it. Separately, your dictionary entries are also inserted into the system prompt sent to the cleanup model (gpt-4o-mini on the server, or Apple Foundation Models on-device) as a line of known vocabulary to preserve exactly. So the model both receives already-corrected text and is told which terms in it must not be touched during formatting.
No, matching on the variant side is case-insensitive by default. Each entry can individually opt into exact-match-only mode if you need a variant to match only in one specific casing; that setting is stored per entry, not globally.
Yes. Every add, edit, and delete is recorded as an event on Hovor's server and pulled by your other signed-in devices in the background, so an entry added on iPhone reaches your Mac without any manual export or import step. Sync does not interrupt an active dictation session.
The dictionary corrects how individual words and names are transcribed and feeds them to the AI as vocabulary context. Snippets expand a short trigger name into a longer stored block of text, useful for boilerplate you repeat often. Workflows configure which tone, translation, and formatting pipeline runs on a whole dictation session. All three sync across devices; the dictionary and snippets each have a separate 20-item free-tier cap, while workflow availability depends on which formatting provider (server, Apple Foundation, or BYOK) the workflow uses.
Set up your custom dictionary in Hovor and let the AI cleanup pass learn your vocabulary. Available on iOS and macOS. Free tier includes 20 dictionary entries; Pro, Local Unlock, or BYOK Unlock removes the cap.
Get Hovor