Skip to content
Halopen

fundamentals

Why your dictation app rewrites what you said

Most dictation runs a silent cleanup pass after transcription. It is usually helpful, and it quietly costs you the words you actually chose.

Halopen · · 6 min read

You dictate a sentence. What appears on screen is not quite the sentence you said — a contraction expanded, a hedge removed, a comma inserted where you paused. Nothing is wrong, exactly. It reads better than you spoke. And you did not ask for any of it.

Here is the mechanism, because it is not mysterious once you see it.

Dictation is usually two steps, and the second one is invisible

The first step is transcription: audio in, text out. That part is now genuinely very good.

The second step is a cleanup pass. Depending on the tool, it removes disfluency, expands contractions, normalises punctuation, and nudges the register toward something more formal. It runs between the transcription and your cursor, and nothing on screen announces it. You see one result and have no way to compare it against what the transcriber actually heard.

That second step is a product decision, and for a lot of writing it is the right one. If you are dictating an email while walking, having “um, so, like, can we maybe move it” arrive as “Can we move it?” is a gift.

The problem is that it is a default rather than a choice, and defaults get applied to the cases they were never meant for.

What the cleanup pass actually costs

Four things, in roughly increasing order of annoyance.

Contractions. You said “it’s not working.” The tidied version says “it is not working.” Slightly more formal, slightly less you. On its own, trivial — but it is the register drifting away from the one you chose.

Intensifiers and hedges. “This is really broken” becomes “This is broken.” “I think we should probably wait” becomes “We should wait.” Cleanup treats those words as noise. They are not noise: one is you signalling severity, the other is you signalling uncertainty. Deleting them does not tighten the sentence, it changes what the sentence claims.

Code-switching. Bilingual speakers move between languages mid-clause constantly and deliberately. A normalising pass tends to resolve that toward one language, because a single-language sentence looks more like well-formed text.

Technical tokens. This is the one that turns dictation from imperfect to unusable. You say --watch and get “dash dash watch.” You say useEffect and get “use effect.” A cleanup pass optimises for prose, and a flag is not prose. The moment you dictate into a terminal or an editor, the thing designed to make you sound better is actively working against you.

Why this got worse the moment we started talking to agents

When you write a prompt for a coding agent, the words you chose are the context.

A hedge is a constraint. “I think this might be a race condition” tells the model your confidence level, which changes what it does with the claim. A specific noun rules out a whole branch of interpretations. Even a false start is often you narrowing the problem in real time, and it is worth the model seeing.

So a tool that smooths your prompt on the way out is putting back exactly the thing you avoided by speaking. You skipped the self-editing that happens while you type, and it performed one for you anyway. What lands is a well-formed sentence that means slightly the wrong thing — and nothing about it looks wrong, which is why it costs you a round trip instead of an eyebrow raise.

How to tell if it is happening to you

Say this, in whatever you currently use:

“It’s really not working — run it with dash dash watch.”

Then look at what arrived. Three tells:

  1. “It’s” became “It is” → a normalising pass ran.
  2. “really” is gone → the pass is removing intensifiers.
  3. The flag arrived as words rather than --watch → the pass is optimising for prose, and any technical dictation is going to fight it.

If all three survive, you have a verbatim tool. If none do, you have a very polite one.

What verbatim actually means

Verbatim dictation means the transcription is what reaches your cursor. No second pass, no silent improvement, no register correction.

That is Halopen’s default. Contractions, intensifiers, the rhythm of how you actually build a sentence, and code-switching all survive to the text. Polish and Editorial modes exist and they are good — but they are opt-in, and Halopen will show you what the model wanted to change so the choice stays yours.

It also knows where it is. In Terminal, iTerm2, Warp, Ghostty, VS Code, Cursor, Zed and Xcode it drops any cleanup mode to verbatim automatically, because a shell command is not a sentence that benefits from being improved. In Terminal, iTerm2 and Warp specifically it goes further and tells the transcription engine to expect shell commands and file paths, and in VS Code and Cursor to expect code identifiers as recognition hints rather than relying only on ordinary English.

Move the cursor into Mail or Notes and your chosen mode applies again. You configure none of it.

The honest counter-argument

Verbatim is not automatically better. It is unedited, and unedited is worse for some things — a customer-facing email, a landing page, anything where the polish is the point.

The useful distinction is not verbatim-versus-polished, it is default-versus-choice. Polish applied after you have seen what you said is an edit. Polish applied before you see anything is a guess about what you meant, made by something that was not in the room.

You can always tidy a verbatim transcript. You cannot recover the word that was replaced before you saw it.


Halopen is native macOS dictation, verbatim by default. Try the time-limited no-card trial — halopen.com.

Current trial duration and paid plans

Pass it on

Try Halopen

Hold the function key. Speak.

Halopen is free for 14 days, no credit card. Pro is $19/mo or $179/yr — unlimited.

Questions

Answered here.

Why does my dictation app change the words I said?
Because most dictation is two steps, not one. Speech is transcribed, and then a second pass tidies the result — fixing disfluency, expanding contractions, normalising punctuation and register. That pass is usually invisible and often helpful. It is also where the words you actually chose get replaced with more conventional ones.
Is there a Mac dictation app that doesn't rewrite what I said?
Halopen is verbatim by default: what you said is what lands at the cursor, contractions and intensifiers included. Cleanup exists as Polish and Editorial modes, but they are something you turn on rather than something you turn off, and Halopen can show you the difference before it commits.
How do I tell whether my dictation is being cleaned up?
Say a sentence with something a tidying pass would want to fix: a contraction, an intensifier, and a technical token — for example, 'it's really not working, run it with dash dash watch'. If the contraction expands, the intensifier vanishes, or the flag arrives as prose, a cleanup pass ran.
Does verbatim dictation mean worse writing?
It means unedited writing, which is different. For a finished document you may well want polish. For a prompt to a coding agent, a Slack reply, or a note to yourself, the version you actually said is usually the more useful one — and you can always polish afterwards, which is not true in reverse.

Power-user cheat sheet

Take Halopen with you.

The Halopen power-user cheat sheet by email — hotkeys, the right mode for each app, dictionary tips, voice patterns for prompting. Four short notes over two weeks can follow, only if you ask for them. Unsubscribe in one click.