Why engines mishear names

A speech engine turns sound into the most likely sequence of words, and "most likely" is measured against the language it was trained on. Your colleague's surname, your product's name, the internal tool everyone calls by an acronym: none of those are likely in that sense, so the engine writes the closest common words instead. "Tailscale" becomes "tail scale", "Ferreyra" becomes "ferreira", "kubectl" becomes anything.

This is not a defect that a bigger model fixes, because the words are yours, not the world's. What fixes it is a layer above the engine that knows your words and the ways they tend to be misheard.

The dictionary: a word and the ways it is misheard

A dictionary entry in DeftNib is the spelling you want plus its aliases: the strings the engine actually produces when you say it. "Tailscale" with the alias "tail scale". "kubectl" with "cube control" and "kube CTL". When the transcript contains an alias, the entry's spelling is inserted, exactly as you saved it, capitals included. That is why a camelCase identifier or a snake_case one comes out right: the pipeline never spells it, it copies it.

You add entries from the app, or from any text field: select a word the engine got wrong, choose "Add selection to dictionary", and the app takes the word plus what it heard as the first alias.

It proposes words on its own

You do not have to predict which words will be a problem. When a word the app does not know shows up three times across two or more dictations, the capsule turns into a chip after the green check: "Add Tailscale to your dictionary?" One click to review it, Esc to skip. The app stores single words and counters to do this, never sentences, and only on the Mac.

The aliases it proposes are the misheard forms it actually saw, so the entry works from the first dictation after you accept it.

Snippets are not vocabulary

A dictionary entry fixes one word. A snippet inserts a block: your signature, your address, a meeting link, the shell one-liner you type ten times a day. You say the snippet's name and the whole block goes in byte for byte, with your capitals and your line breaks. Snippets do not pass through the pipeline at all, which is the point: what you saved is exactly what gets inserted, and a dictated command comes out runnable. Snippets, in the feature tour.

The technical vocabulary that ships in the box

Some words are yours and some are the trade's. The app ships with a vocabulary of git, build and code terms (branch, merge, rebase, deploy, rollback, endpoint, webhook, payload) and their Spanish work forms (mergear, pushear, deployar), so a developer's first dictation already comes out spelled the way the team spells it. What that looks like in a day of prompts.

  • You said

    creá una brunch nueva y después hay que merchear los cambios a main

    It wrote

    Creá una branch nueva y después hay que mergear los cambios a main.

    Work Spanglish, spelled the way it is spelled

Mac with Apple Silicon and macOS 26 or later. Free up to 4,000 words a week, no account.

By downloading you agree to the Terms and the Privacy Policy.

Questions

Does the dictionary store my sentences?

No. It stores single words and counters, in a file in your user folder. Nothing about it leaves the Mac, and there is no copy on our side.

Can one entry have several pronunciations?

Yes. An entry is the spelling you want plus as many aliases as it tends to be misheard as. "Ferreyra" can carry "ferreira" and "ferrera"; any of them writes Ferreyra.

Is the dictionary shared across languages?

Yes. Entries and snippets apply whether you are dictating in English or Spanish, which is what makes "mergear" and "pushear" come out the same in either.