VoicePop

Push-to-talk dictation for macOS. Hold FN, speak, release β€” the text types itself into whatever app you were in.

The VoicePop HUD reacting to speech, then collapsing to a Transcribing capsule

Apple Silicon Β· macOS 13+ Β· free and open source

Local speech recognition No subscription No account MIT licensed

01Why it exists

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.

02What it does

Hold FN, talk, release

Text lands in the focused app. Esc cancels.

Local speech

NVIDIA Parakeet tdt-0.6b-v3-int8 by default, Whisper Tiny through Large-turbo as fallbacks. Audio and speech recognition remain on the Mac.

A HUD that reacts to you

Kernel physics driven by real mic amplitude at 60 fps, then a Transcribing capsule, then gone. Honors Reduce Motion.

Writing style per app

Automatic, Casual, or Formal, with per-app overrides β€” Messages to Casual, Mail to Formal. Terminals are never restyled.

Corrections that stick

Fix the last thing typed, hit Save & Learn, and the substitution applies from then on. Plain JSON on disk.

Optional on-device polish

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.

03It shows you it is listening

The same scene at four microphone levels. Kernel count and motion follow your actual voice, not a canned animation.

HUD at a quiet speaking level, few kernels
Quiet
HUD at a normal speaking level
Normal
HUD at a loud speaking level, kernels filling the frame
Loud
HUD settling during silence
Silence

04Install

  1. Download the latest .dmg from Releases, open it, and drag VoicePop onto Applications.
  2. Open VoicePop. First launch installs the speech engine, pulls the Parakeet model (about 2.4 GB, once), and walks you through the three macOS permissions Voxtype needs: Accessibility, Input Monitoring, and Microphone.
  3. Set System Settings β†’ Keyboard β†’ Press 🌐 key to: Do Nothing so Globe does not steal the key.

Signed and notarized. Releases are signed with a Developer ID certificate and notarized by Apple, so Gatekeeper opens them without an override. Minimum macOS 13 on Apple Silicon; hands-on testing so far has been on macOS 26 only.

05How it works

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).

06What it keeps, and where

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.