doing.
All guides
5 min read·By Brian Ellin

Words and Dictionaries: Fix Voice Transcription Mistakes Automatically

Voice transcription engines — including Apple's on-device foundation model — are trained on general speech. They're great at everyday English, but they weren't built for developer vocabulary. "Claude Code" becomes "clawed code." "Supabase" becomes "super base." "Vercel" becomes "versatile."

Doing fixes this with two layers: dictionary packs full of pre-mapped corrections for developer terminology, and personal words where you add your own. Every transcription runs through both before the text reaches your clipboard.

How it works

After Doing transcribes your speech, it runs three processing steps before pasting:

  1. Filler word removal — strips out "um," "uh," "er," and other filler words automatically
  2. Word replacement — swaps known misspellings and variants with the correct word (e.g., "clawed code" becomes "Claude Code")
  3. Capitalization fix — ensures proper casing for all dictionary words, so "react" becomes "React" and "typescript" becomes "TypeScript"

This all happens in milliseconds. You speak, and the corrected text appears — no manual editing needed for terms that are already in your dictionaries.

Dictionary packs

Doing ships with three built-in dictionary packs, each covering a different professional domain:

AI Engineering (180+ words)

AI, ML, and LLM terminology. Covers models (GPT, Claude, Llama, Mistral, Gemini), frameworks (LangChain, PyTorch, TensorFlow, Hugging Face), infrastructure (CUDA, Kubernetes, Ollama), and concepts (RAG, embeddings, fine-tuning, tokenization).

Software Engineering (260+ words)

Programming languages, frameworks, tools, and developer jargon. Everything from JavaScript and TypeScript to PostgreSQL, Redis, Docker, Terraform, ESLint, webpack, and OAuth. If you've said it in a standup, it's probably here.

Product & Business (220+ words)

Product management and startup vocabulary. Tools (Jira, Figma, Notion, Linear, Amplitude), metrics (ARR, MRR, NPS, churn), methodologies (scrum, kanban, OKR), and platforms (Stripe, Salesforce, Snowflake, PostHog).

All three are enabled by default. Each pack maps the correct spelling of a term to common transcription mistakes, so the replacements happen automatically.

Tip

You can disable any pack you don't need in Settings > Words. If you never talk about AI models, turning off the AI Engineering pack keeps your replacement list lean.

Personal words (My Words)

Dictionary packs cover common terminology, but they can't know your company's product names, your coworkers' names, or your internal project codenames. That's what personal words are for.

Adding a word

  1. Open Settings > Words
  2. In the My Words card, type the correct spelling of the word (e.g., "Datadog")
  3. Press Enter

The word is now in your dictionary. Doing will automatically fix its capitalization in transcriptions.

Adding corrections (variants)

Most words also need variant spellings — the wrong versions that transcription engines produce. For each word:

  1. Click the word in your list
  2. Click + correction
  3. Type the misspelling you've seen (e.g., "data dog" or "date a dog")
  4. Press Enter

You can add as many variants as you need. Each one maps to the correct spelling.

Example:

  • Word: Claude Code
  • Corrections: "clawed code", "Club code", "cloud code"

Now any time the transcription engine produces "clawed code," Doing silently replaces it with "Claude Code" before pasting.

Tip

Pay attention to recurring mistakes for a day or two, then add them as corrections. After a week, most of your common terms will be covered and you'll rarely need to fix transcriptions manually.

Filler words

Doing removes filler words automatically. The default list includes: um, uh, er, ah, hmm, hm, erm, mm, mmm, and eh.

You can customize this list in Settings > Words under the Filler Words card — add words you want stripped, or remove ones you want to keep. Some people use "yeah" meaningfully in conversation and prefer to keep it; others want "like" and "so" removed too.

How personal words and packs interact

When the same word appears in both a dictionary pack and your personal words, your personal words take priority. This means you can override a pack's corrections if they don't match how your team uses a term.

The merge order is:

  1. Dictionary packs load first (in order)
  2. Personal words load last and override any conflicts

Editing words outside the app

Personal words are stored as a plain YAML file at ~/.config/doing/words.yaml:

Claude Code:
  - clawed code
  - Club code
Supabase:
  - super base
  - super bass

Dictionary packs live in ~/.config/doing/dictionaries/ as YAML files:

name: AI Engineering
description: AI, ML, and LLM terminology for engineers and researchers
words:
  LLM:
    - LOM
    - LLOM
    - alum
  GPT:
    - GBT
    - GPD

Doing watches these files in real time. Edit them in any text editor — VS Code, vim, whatever — and changes take effect immediately without restarting the app.

Note

This is useful for bulk-adding words. If you're setting up Doing for a new project with lots of custom terminology, editing the YAML directly is faster than adding words one at a time through the UI.

Creating and sharing dictionary packs

If you've built up a solid personal word list for a specific domain, you can export it as a reusable dictionary pack:

  1. Go to Settings > Words
  2. Click Export as Dictionary... in the My Words card
  3. Save the YAML file

Share the file with teammates or keep it as a backup. To import a pack, click Import... in the Dictionaries card and select the YAML file. Imported packs are automatically enabled.

This is particularly useful for teams — create a pack with your company's product names, internal tools, and project codenames, then distribute it so everyone's transcriptions are consistent from day one.

FAQ

Do I need to add every programming term manually?

No. The built-in dictionary packs cover 660+ terms across AI, software engineering, and product/business domains. You only need to add words that are specific to you — company names, project names, coworker names, internal jargon.

Can I use Doing dictionaries with Apple Dictation?

No. Doing dictionaries only work with Doing's own transcription pipeline. Apple Dictation has its own Text Replacements system (System Settings > Keyboard > Text Replacements), which works differently — it's a simple find-and-replace that doesn't understand word boundaries or capitalization the way Doing does.

What's the difference between a word and a correction?

A word is the correct spelling (e.g., "TypeScript"). A correction (variant) is a common misspelling that the transcription engine produces (e.g., "type script"). Doing replaces corrections with the word automatically.

Are replacements case-sensitive?

Corrections are matched case-insensitively, so "clawed code," "Clawed Code," and "CLAWED CODE" all get replaced. The replacement always uses the exact casing you defined for the correct word.


Start with the mistakes you already know

You don't need to set up a perfect dictionary before using Doing. Start transcribing, notice which words get mangled, and add corrections as you go. The built-in packs handle the common stuff. Your personal words handle the rest. After a week of light tuning, most transcriptions come through clean.

doing.

Fast voice transcription for Mac

Developer-tuned dictation with AI post-processing, transcript history, and everything running locally. No subscription.

100 free transcriptions · macOS only · $49 once
doing. Voice transcription for Mac