Push-to-talk dictation for macOS. Hold FN, speak, release β the text types itself into whatever app you were in.
Apple Silicon Β· macOS 13+ Β· free and open source
VoicePop brings hold-to-talk dictation, a responsive visual indicator, per-app writing styles, and learned corrections to macOS. It uses local speech recognition and offers optional text polishing through a loopback-only Ollama connection.
It is a menu-bar app wrapping a local speech engine (Voxtype, MIT, by peteonrails) plus a HUD driven by live mic amplitude, per-app writing styles, and corrections that stick.
Text lands in the focused app. Esc cancels.
NVIDIA Parakeet tdt-0.6b-v3-int8 by default, Whisper Tiny through Large-turbo as fallbacks. Audio and speech recognition remain on the Mac.
Kernel physics driven by real mic amplitude at 60 fps, then a Transcribing capsule, then gone. Honors Reduce Motion.
Automatic, Casual, or Formal, with per-app overrides β Messages to Casual, Mail to Formal. Terminals are never restyled.
Fix the last thing typed, hit Save & Learn, and the substitution applies from then on. Plain JSON on disk.
Formal style can send transcript text to Ollama over a loopback-only connection. VoicePop blocks remote endpoints and non-loopback redirects; the Ollama service and model remain under your control.
The same scene at four microphone levels. Kernel count and motion follow your actual voice, not a canned animation.
.dmg from Releases, open it, and drag VoicePop onto Applications.FN keypress βββΊ Voxtype daemon βββΊ ASR (Parakeet / Whisper, Metal)
β β
mic amplitude raw transcript
(unix socket) β
βΌ βΌ
PopcornHUD (SwiftUI) voxtype-clean βββΊ style rules βββΊ learned
60 fps kernel sim (post-process) (per-app) replacements
β β
ββββββββββββββΊ "Transcribingβ¦" βββββββββββββββββββββββ
β
Voxtype types it βββΊ focused app
Swift packages: PopcornCore (audio framing, physics, text clean, style, corrections β the tested part), PopcornArt (renderers), PopcornHUD (menu bar, windows, watchers), and VoxtypeClean (the post-processor Voxtype shells out to).
State is plain JSON in ~/.config/voicepop/ β style.json, history.jsonl, retained rotation history.1.jsonl, corrections.jsonl, and replacements.json. The directory and files are owner-only. Settingsβ¦ β General β Privacy β Save transcript history turns transcript recording off without deleting anything; Clear Transcript Historyβ¦ removes both history files while keeping corrections and learned replacements. If typing into an app fails (for example, without Accessibility permission), Voxtype copies the text to the system clipboard instead, silently. Details in SECURITY.md.