Your voice, right where you type.
macOS 14 or later on Apple Silicon · Release notes and checksum
Speak is a small macOS menu bar app that turns speech into text with OpenAI GPT-Live-Transcribe. Hold fn to dictate. Release it to paste your words into the active app.
You need an Apple Silicon Mac running macOS 14 or later, internet access, and an OpenAI API key. You do not need Xcode.
- Click the download link above and open the Speak
.dmginstaller. - Drag Speak into Applications. Open Speak.
- In Preferences, add your OpenAI API key.
- Allow Microphone and Accessibility access.
OpenAI API usage is billed separately from ChatGPT subscriptions. The published installer is Developer ID signed and notarized by Apple.
| Shortcut | Action |
|---|---|
| Hold fn | Record your voice. Release to paste. |
| fn + space | Start or stop hands-free dictation. |
| esc | Cancel without pasting. |
In Preferences, you can choose Control + Option, add vocabulary hints, or move the pill from the bottom of the screen to the left or right edge, where it stands upright. Turn off “Show live text above pill” to hide the transcript while recording.
Speak hears your microphone on any input of an audio interface. It raises quiet speech and keeps listening for a moment after you release the shortcut, so your last word isn’t cut off. A “No speech was detected” message clears itself after a couple of seconds. If Speak says your microphone sent no sound, choose the right input in System Settings > Sound and check that it isn’t muted.
Speak counts silence from the actual audio samples so that short buffers do not end capture too early. If microphone channels nearly cancel each other out, Speak uses the strongest channel.
Speak formats English dictation on your Mac before it pastes. Say “comma,” “period,” “question mark,” “exclamation point,” “colon,” “new line,” or “new paragraph” to add punctuation. Say “open parentheses” and “close parentheses” to add parentheses. Say “open bracket” and “close bracket” to add square brackets.
Speak writes numbers of 10 or more, times, dates, prices, percentages, and versions as digits. For example, “three thirty pm” becomes “3:30 PM” and “twenty five dollars” becomes “$25.” Small counts in ordinary sentences, such as “two options,” stay as words. Spoken email addresses like “nader at example dot com” become “nader@example.com.” Numeric times such as “3 30 PM” also become “3:30 PM.” Speak also removes “um” and “uh.”
Exact vocabulary matches, including letter case, stay as words instead of becoming punctuation or numbers. They can still form spoken email addresses and domains. Duplicate vocabulary hints use only one slot when letter case or spacing differs.
Smart correction is on by default and uses GPT-4.1 nano. It fixes likely misheard words and punctuation. It also applies corrections you make while speaking. For example, “Let’s meet at 3, no wait, 4” becomes “Let’s meet at 4.” It allows up to 350 ms of extra wait, or 1 second when you correct yourself. After that, it falls back to the formatted text. Choose “Copy original dictation” from the menu bar to recover the unedited transcript. Turn off “Smart correction” in Preferences to skip AI edits. Add names and product terms under “Your vocabulary” to help Speak hear and spell them correctly.
Before it accepts an edit, smart correction compares decimal values, signs, currency, units, and AM/PM. It also keeps existing line and paragraph breaks unless you make a spoken revision. These safeguards can reject unsafe edits, but they do not guarantee that every correction preserves meaning.
If Speak gets a name or term wrong, choose “Fix last dictation” from the menu bar, correct the word, and click Learn. Speak remembers the spelling and uses it the next time you say that word. If the wrong spelling isn’t a real word, such as “Superbase” for “Supabase,” Speak also replaces it automatically. Turn on “Learn from my corrections” in Preferences to learn from fixes you make in other apps right after Speak pastes. Learned words appear in Preferences, where you can remove them.
Learned replacements leave existing quotations, email addresses, and web addresses unchanged. They also do not combine words from different lines or paragraphs.
Speak stores your API key in macOS Keychain. Audio streams directly to OpenAI during dictation. Smart correction also sends transcript text, vocabulary, and the active app name to OpenAI, with extra text API charges. Speak keeps only the last original and corrected transcripts in memory, with no recordings or history saved to disk. Learned words are saved on your Mac and sent with your vocabulary. When “Learn from my corrections” is on, Speak reads the text field it pasted into for up to a minute and keeps that text in memory only.
OpenAI’s API data policies still apply.
Building from source requires Xcode with Swift 6 or later. The build selects your installed Developer ID certificate. If several certificates exist, set CODE_SIGN_IDENTITY to choose one.
For temporary local builds, use CODE_SIGN_IDENTITY=- bash scripts/build.sh. This changes the app identity on each rebuild and can break existing Accessibility approval.
bash scripts/build.sh
open build/artifacts.noindex/Speak.appRun tests with swift test. After building the app, create an installer with bash scripts/package-dmg.sh. The script writes the DMG to build/.
New builds need their own Apple notarization before public distribution. Submit the DMG with notarytool, attach its approval with stapler, and regenerate the checksum. Packaging alone does not notarize a release. After publishing a GitHub release, update the DMG filename in the download link at the top of this README.