Browse the docs

Dictate

Listens, turns your speech into text on this Mac, cleans it up, and can type it where you were typing.

Dictate and type what I say

Details #

Listens through the microphone until it is told to stop, finishes recognising, optionally cleans the words up, and with typeResult pastes them into the field you were in. Recognition runs on this Mac (macOS 26's on-device speech model): no audio leaves it, there is no per-minute cost, and the audio is dropped when the step ends.

Stopping. stop is release (the default: when you let go of the hotkey that started the run; the hotkey needs Hold on), silence (after 1.5 seconds of quiet, once you have said something) or toggle (the next press of the same hotkey). A run that did not start from a hotkey, or whose hotkey is not set to hold, stops on silence instead and the trace says so. maxSeconds (default 120) stops it whatever else happens. Esc while listening cancels the dictation and types nothing.

A tap is not a dictation. With release, a key held for less than a quarter of a second cancels the run silently, so a mistaken Fn+Space types nothing.

Cleanup. none types what was recognised. light (the default) runs the on-device model with a fixed instruction: remove fillers and false starts, fix punctuation and capitals, keep your words, add nothing. style also follows your style text ("casual, short, no sign-off"). Cleanup is capped at 1.5 seconds on this Mac: past that, or when Apple Intelligence is off, or when the transcript is longer than the on-device model holds, or when the reply added words you did not say, the words are typed as recognised and the trace says why. Nothing goes to a cloud model unless the step says model: cloud (or haiku, sonnet); then it shows the AI badge and its cost like any cloud run.

Typing. With typeResult the text is pasted into the app that was in front when you started. If you switched apps meanwhile, or secure input is on, nothing is typed: the text is copied to the clipboard and the pill says "Copied: focus moved" or "Copied: secure input is on".

The result. The step puts an object in the variable named by into (default dictation):

FieldWhat it holds
{{dictation.text}}The words after cleanup: what was typed.
{{dictation.raw}}The words as recognised, before cleanup.
{{dictation.seconds}}How long you spoke.
{{dictation.cleanup}}What ran: none, light, style, or skipped.
{{dictation.lagMs}}Milliseconds from letting go to done.

The trace note carries the same timing: key-up → done 412 ms · cleanup light 380 ms. Set SWITCHBOARD_DICTATE_TRACE=1 for the recognise and cleanup times in the engine's log.

Parameters #

ParameterTypeRequiredValuesWhat it does
cleanuptextnone, light or style. Default light.
intotextThe variable that receives the result. Default dictation.
languagetextauto (this Mac's language) or a tag such as en-US. A language the Mac has no speech model for fails with a plain message; the first use of a language downloads its model ("Getting the speech model (once)").
maxSecondsnumberThe longest it listens. Default 120.
modelone ofcloud haiku sonnetcloud, haiku or sonnet to let a cloud model do a style cleanup. Left out, it stays on this Mac.
sampletextWhat a dry run gives back.
stopone ofrelease silence togglerelease, silence or toggle. Default release.
styletextHow the text should read, for cleanup: style. Supports {{ }} values, which is how Settings › Dictation picks a style by app.
typeResultyes / noPaste the text where you were typing. Default off: the text only goes into the variable.
vocabularylist of textNames and product terms. The recogniser favours them and the cleanup is told to spell them as written.

Every step also accepts label, onFailure, timeout and dryRunSafe.

Examples #

Hold Fn+Space, speak, let go: it types
When
  1. Hold fn Space
Do
  1. Dictate and type until you let go, cleaned up
Open in Switchboard to try it
Dictate a to-do into the clipboard
When
  1. Hold ✦T
Do
  1. Dictate until you let go, cleaned up
  2. Copy “{{dictation.text}}” to the clipboard
  3. Show “To-do copied: {{dictation.text}}” for 2 s
Open in Switchboard to try it

Gotchas #

  • Dry run. Nothing is recorded: the step returns its sample (or a short stand-in) so the rest of the macro can be followed.

  • Microphone. The first dictation asks macOS for the microphone for Switchboard Engine. Settings › Permissions shows it and can reopen the pane. Speech recognition itself needs no separate permission.

  • Feed it a file. In a development build, switchboard run "Hold to talk" --input audio=/path/to/clip.wav runs a WAV through the same pipeline instead of the microphone.

  • The macro that uses this step should allow runs side by side (Settings › Dictation does), so a new dictation can start while the last one is still cleaning up.

See also #

Type text, Ask AI to rewrite, Hotkey, Dictation: hold to talk