GitHub - AxelVandenHeuvel/speak-ez: Free, open-source, fully-local dictation for macOS. Hold a key, speak, release: clean text at your cursor. A Wispr Flow alternative that never touches the cloud. · GitHub
/" data-turbo-transient="true" />
Skip to content
Type / to search
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
AxelVandenHeuvel
speak-ez
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>15 Commits<br>15 Commits
.github/workflows
.github/workflows
Assets
Assets
Resources
Resources
Scripts
Scripts
Sources
Sources
Tests
Tests
.gitignore
.gitignore
CLAUDE.md
CLAUDE.md
LICENSE
LICENSE
NOTICE
NOTICE
Package.resolved
Package.resolved
Package.swift
Package.swift
README.md
README.md
install.sh
install.sh
View all files
Repository files navigation
speak-ez
Hold a key, talk, let go.<br>Clean text shows up wherever your cursor is.
The point of this app is the cleanup, not just the transcription.<br>Here is what that looks like:
The first line is refinement turned off: exactly what was said, ums included.<br>The second line is the same sentence dictated again with refinement on.
Everything runs on your Mac.<br>No account, no subscription, no telemetry, and nothing is ever uploaded.
Install
brew install --cask axelvandenheuvel/tap/speakez
That installs a signed and notarized build.<br>If you would rather compile it yourself:
curl -fsSL https://raw.githubusercontent.com/AxelVandenHeuvel/speak-ez/main/install.sh | sh
The script builds from source (about 2 minutes, needs the Xcode Command Line Tools and offers to install them) and puts speakEZ.app in /Applications.<br>No Gatekeeper warnings either way; the source route just means you are not trusting a prebuilt binary.
On first launch you grant three permissions (Microphone, Input Monitoring, Accessibility), hit "Relaunch speakEZ" in the menu so macOS applies them, and let the speech model download once (~1 GB).
How it works
Speech-to-text is NVIDIA's Parakeet v3 running on the Neural Engine, via FluidAudio.<br>It transcribes at roughly 50x real time on Apple Silicon: a normal dictation lands well under a second after you release the key, and even a full five-minute recording takes only a few seconds.
Cleanup has three levels, switchable from the menu bar:
Off : you get the raw transcript.
Basic : deterministic rules strip "um"/"uh" and stutters ("the the"), fix the punctuation seams, and apply your vocabulary. Adds zero latency.
AI : Basic, then Apple's on-device foundation model fixes grammar and phrasing. This is the model that ships with Apple Intelligence, so there is nothing extra to download or configure. Needs macOS 26; otherwise it quietly falls back to Basic.
The refiner is told to clean, not rewrite.<br>If the model is slow or returns something that is not recognizably your sentence, you get the rules-based result instead.
Vocabulary
Speech models mangle jargon.<br>Mine kept hearing "tea mux" for tmux, which is why this exists.
Menu bar -> "Add Vocabulary Term…", type the real spelling and optionally the mishearings:
term: tmux, sound-alikes: tea mux, teemux
term: PostgreSQL, sound-alikes: postgres sequel
Terms are also matched fuzzily (one edit away, same first letter), so "herder" becomes "herdr" without an alias.<br>Matching is deliberately conservative so ordinary words never get turned into your jargon.<br>It is all stored as plain JSON in ~/Library/Application Support/speakEZ/ if you would rather edit the file.
Trigger key
Default is holding Right Option.<br>Held alone it triggers nothing in macOS, and if you press another key while holding it, the recording cancels and your shortcut goes through, so it cannot eat your keybinds.
You can change it in the menu: presets, or press any key or two-key combo (like ⌃S) after clicking "Set Custom Trigger Key…".<br>There is also a tap-to-toggle mode if you would rather not hold the key while talking.<br>Esc cancels a recording, and recordings cap at five minutes.
Compared to similar projects
OpenSuperWhisper, VoiceInk, and Handy are all good local transcription apps, and some do things this one does not: more engines, more languages, transcribing audio files.
The difference here is the output.<br>Those tools give you what you said; this one gives you what you meant to type, and the AI pass uses the model already on your Mac instead of asking you to set up ollama or an API key.<br>If you want a transcription tool, use one of those.<br>If you want dictation that does not need manual cleanup afterwards, that is this.
Requirements
Apple Silicon Mac, macOS 14 or later.
AI...