Skip to content

Releases: sam-pop/WhisperDictation

WhisperDictation v1.1.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 11:53
v1.1.0
268c56f

A reliability, privacy, and performance overhaul — every subsystem reviewed, fixed, and now covered by a 112-test suite that runs in CI.

Reliability

  • The microphone picker in Settings now actually selects your mic (previously it silently used the system default)
  • Transcription failures, download failures, and mic disconnects surface as menu bar alerts instead of failing silently
  • Model downloads are verified against pinned SHA256 hashes, with per-model progress and cancel
  • Recordings cap at 5 minutes (memory-bounded) and still transcribe what was captured
  • Cancel a stuck transcription with the hotkey (tap in push-to-talk, hold in toggle mode)

Privacy

  • Dictated text is never logged in release builds — verify yourself: strings the binary and find no transcript output
  • Docs and audit commands on the website corrected to match the source layout

Performance

  • ~3.4× faster text correction (one compiled regex instead of ~230 recompiled per dictation)
  • Typing no longer delays decoding; inference no longer blocks the app's thread pool

New

  • First-launch onboarding: permissions walkthrough + recommended 181 MB Q5 model (existing users never see it)
  • Emoji and other astral characters are no longer mangled mid-typing (surrogate-pair chunking fix)
  • whisper.cpp upgraded to v1.9.1
  • Supply-chain hardening: GitHub Actions SHA-pinned, least-privilege CI token

Install

Download the DMG, drag to /Applications, right-click → Open on first launch (ad-hoc signed).

SHA256 WhisperDictation.dmg:

76de1835922e2f6f4031483b0fa52a8e5c7e576dd0c3edf4a371dc31f39aaeaa

v1.0.9

Choose a tag to compare

@github-actions github-actions released this 13 Apr 19:39
v1.0.9
9ca90a3

v1.0.9 — Toggle hotkey mode (carpal-tunnel friendly)

A second hotkey mode alongside push-to-talk: press once to start, press once to stop, gated by a configurable hold-to-activate duration so it won't trigger by accident or in shortcut combos.

Built as a universal binary — works on both Apple Silicon and Intel Macs.

What's new

  • Toggle mode — press to start, press to stop. No need to hold the key while you talk. Built for long-form dictation and anyone managing carpal tunnel / RSI.
  • Configurable hold-to-activate — set anywhere from 0.5s to 3.0s (default 1.5s). Long enough to prevent accidental activation, short enough to feel responsive.
  • Symmetric hold-to-stop — same hold gates both starting and stopping. The trailing silent hold is automatically trimmed from the audio so Whisper doesn't hallucinate punctuation.
  • Pulsing menu bar indicator — orange circle.dotted confirms the hold is being registered.
  • Settings UI — single merged "Hotkey" card with mode picker and conditional duration slider.

Default mode remains push-to-talk, so existing users see no behavior change unless they opt in.

Reliability fixes

  • HotkeyMonitor watchdog now synthesizes the missed key-up when macOS silently disables the event tap mid-press, so DictationEngine recovers cleanly instead of getting stuck in .recording.
  • Restored AVAudioConverter.reset() before each conversion (the converter expects a continuous stream across discrete tap-callback buffers).

Install

Download WhisperDictation.dmg below. Universal binary — runs natively on both Apple Silicon and Intel.

Verify download integrity

shasum -a 256 WhisperDictation.dmg

Expected SHA256: see WhisperDictation.dmg.sha256 attached to this release.

Full Changelog: v1.0.8...v1.0.9

WhisperDictation v1.0.8

Choose a tag to compare

@sam-pop sam-pop released this 12 Apr 18:55

Custom Names & Terms Vocabulary

Add your own names, places, and frequently used terms for better recognition.

What's New

  • Names & Terms section in Settings → Vocabulary — add personal terms with correct casing
  • Terms bias Whisper recognition AND get casing corrected post-transcription
  • Flow-wrapped pill UI with add/delete
  • Thread-safe cached single combined regex (one string scan regardless of term count)
  • 100-term limit with word budget enforcement to stay under Whisper's token limit
  • 56 tests passing (5 new)

Install

  1. Download WhisperDictation.dmg
  2. Open DMG, drag to Applications
  3. If macOS blocks it: System Settings > Privacy & Security > Open Anyway, or run xattr -cr /Applications/WhisperDictation.app
  4. Open WhisperDictation
  5. Grant Microphone + Accessibility permissions
  6. Settings > Model > download Small Q5 (181 MB, recommended)

Requires macOS 14 (Sonoma) or later.

Build from Source

git clone --recurse-submodules https://github.com/sam-pop/WhisperDictation.git
cd WhisperDictation
make whisper && make model && make run

Full Changelog: v1.0.7...v1.0.8

WhisperDictation v1.0.7 — Polished Release

Choose a tag to compare

@sam-pop sam-pop released this 12 Apr 02:38

WhisperDictation v1.0.7

Polished, stable release with all tests passing and expanded developer vocabulary.

Quality

  • 51 tests passing — settings, state machine, models, TextCorrector (numbers, acronyms, capitalization, punctuation), audio devices, WhisperBridge
  • All XcodeGen/xcodebuild issues resolved
  • Comprehensive CLAUDE.md documenting all gotchas and patterns

Streaming Output

Text appears at your cursor as each segment is decoded — grammar correction applied per-segment in real time.

Speed

  • GPU pre-warming (no first-use lag)
  • Adaptive decoding (greedy for short clips, beam search for longer)
  • VAD trims silence before inference

Accuracy

  • 500-word developer vocabulary covering:
    • Frontend: React hooks, SSR/SSG, accessibility, design systems, CSS, animations, PWA
    • Backend: middleware, caching, auth, message brokers, circuit breakers, queues
    • DevOps: CI/CD, canary deploys, SLAs, feature flags, monitoring
    • UI: tooltip, dropdown, modal, accordion, carousel, pagination
    • AI/ML: LLM, RAG, embeddings, PyTorch, transformers
    • Languages & frameworks: 30+ languages, 50+ frameworks
  • Hallucination suppression, independent transcription context
  • 100+ term auto-casing (api->API, javascript->JavaScript)
  • Number word conversion (three hundred->300, eighty eighty->8,080)

Install

  1. Download WhisperDictation.dmg
  2. Open DMG, drag to Applications
  3. If macOS blocks it: xattr -cr /Applications/WhisperDictation.app
  4. Open WhisperDictation
  5. Grant Microphone + Accessibility permissions
  6. Settings > Model > download Small Q5 (181 MB, recommended)

Requires macOS 14 (Sonoma) or later.

Build from Source

git clone --recurse-submodules https://github.com/sam-pop/WhisperDictation.git
cd WhisperDictation
make whisper && make model && make run

Full Changelog: v1.0.6...v1.0.7

WhisperDictation v1.0.6 — Streaming, Speed & Accuracy

Choose a tag to compare

@sam-pop sam-pop released this 12 Apr 02:07

WhisperDictation v1.0.6

Major update focused on speed, accuracy, and developer experience.

Streaming Output

Text now appears at your cursor as Whisper decodes each segment — no more waiting for the full transcription to finish. Grammar correction is applied per-segment in real time.

Speed Improvements

  • GPU pre-warming — dummy inference at model load eliminates first-use lag
  • Adaptive decoding — greedy for short clips (<2s), beam search for longer recordings
  • VAD (Voice Activity Detection) — Silero model trims silence before inference

Accuracy Improvements

  • Fixed hallucination carry-over — each transcription is now independent (no_context=true)
  • Fixed vocabulary prompt overflow — previous 1200-token prompt exceeded Whisper's 1024 limit, degrading accuracy
  • 500-word developer vocabulary — covers frontend (React hooks, SSR, accessibility, design systems), backend (middleware, caching, message brokers, circuit breakers), DevOps (canary deploys, SLAs, feature flags), databases, APIs, AI/ML, algorithms, and more

Bug Fixes

  • Fixed audio capture producing 0 samples (converter state + engine lifecycle)
  • Grammar/number correction now applied in streaming callback
  • Per-engine mic selection (no longer changes system-wide default)
  • TextInjector on dedicated serial queue (was starving cooperative thread pool)
  • NSSound dispatched to main thread (was crashing on background)
  • State machine guaranteed to return to idle on all code paths
  • Comprehensive test suite (50+ tests)

Developer Tools

  • /release skill — build DMG, tag, and publish in one command
  • /review skill — launch parallel code review agents
  • regression-tester agent — verifies changes against CLAUDE.md gotchas

Install

  1. Download WhisperDictation.dmg below
  2. Open DMG, drag WhisperDictation to Applications
  3. If macOS blocks it, run: xattr -cr /Applications/WhisperDictation.app
  4. Open WhisperDictation
  5. Grant Microphone and Accessibility permissions
  6. Settings > Model > download Small Q5 (recommended, 181 MB)

Requires macOS 14 (Sonoma) or later.

Full Changelog: v1.0.5...v1.0.6

WhisperDictation v1.0.5

Choose a tag to compare

@sam-pop sam-pop released this 12 Apr 00:18

WhisperDictation v1.0.5

New

  • Number word to digit conversion: "three hundred" → 300, "eighty eighty" → 8,080
  • Microphone selector in Settings
  • macOS 14+ support (Sonoma and later)
  • No restart needed after granting permissions — hotkey monitor auto-restarts when Accessibility is granted

Fixed

  • Number conversion handles zero, digit sequences, and compounds correctly
  • No trailing periods after numbers
  • Deployment target matches macOS 14.0 for broad compatibility

Install

  1. Download WhisperDictation.dmg
  2. Drag to Applications
  3. First launch: System Settings > Privacy & Security > Open Anyway
  4. Grant Microphone + Accessibility permissions — hotkey works immediately, no restart needed
  5. Download a model in Settings > Model (Small Q5 recommended)

Requires macOS 14 (Sonoma) or later.

Full Changelog: v1.0.4...v1.0.5

WhisperDictation v1.0.4

Choose a tag to compare

@sam-pop sam-pop released this 11 Apr 23:43

WhisperDictation v1.0.4

New

  • Microphone selector in Settings > General — pick which input device to use for recording
  • Lists all available audio input devices via CoreAudio

Fixed

  • Menu bar dropdown no longer wraps text ("WhisperDictation" and status text stay on one line)
  • Model badge shows friendly name ("Small Q5") instead of raw filename
  • Hotkey label shortened to fit ("R⌥" instead of "Right ⌥")
  • Wider dropdown (320px) for better readability

Install

  1. Download WhisperDictation.dmg
  2. Drag to Applications
  3. First launch: System Settings > Privacy & Security > Open Anyway
  4. Grant Microphone + Accessibility permissions
  5. Download a model in Settings > Model

Full Changelog: v1.0.3...v1.0.4

WhisperDictation v1.0.3

Choose a tag to compare

@sam-pop sam-pop released this 11 Apr 23:32

WhisperDictation v1.0.3

Bug fix release addressing issues found in code review.

Bug Fixes

  • Fixed race condition in AudioCapture between audio tap thread and stopRecording()
  • Fixed dead code in TextCorrector that allocated and discarded regex results every transcription
  • Fixed memory safety in WhisperBridge — strdup pointers tracked separately to avoid freeing static C strings
  • Fixed thread safety in HotkeyMonitor — isKeyHeld now protected with os_unfair_lock
  • Fixed NSEvent monitor leak — onDisappear moved to correct view in hotkey recorder
  • Fixed concurrent download guard in ModelManager
  • Fixed launch-at-login — now reconciles UserDefaults with actual SMAppService status on startup
  • Fixed fresh clone buildmake app now auto-triggers whisper.cpp build if needed
  • Fixed CI cache key — was hashing non-existent submodule path, now uses .gitmodules + CMakeLists.txt
  • Fixed build-whisper.sh — checks for initialized submodule before running cmake

Install

  1. Download WhisperDictation.dmg below
  2. Drag to Applications
  3. First launch: System Settings > Privacy & Security > Open Anyway
  4. Grant Microphone + Accessibility permissions
  5. Download a model in Settings > Model (Small Q5 recommended)

Full Changelog: v1.0.2...v1.0.3

WhisperDictation v1.0.2

Choose a tag to compare

@sam-pop sam-pop released this 11 Apr 23:19

WhisperDictation v1.0.2

Speed Improvements

  • Quantized models (Q5): 2-3x smaller and faster with near-identical accuracy
    • Small Q5: 181 MB (vs 466 MB full) -- recommended default
    • Base Q5: 57 MB -- fastest option
    • Medium Q5: 515 MB -- best accuracy
  • Voice Activity Detection (VAD): Silero VAD model auto-trims silence before inference
  • Adaptive decoding: Beam search on Apple Silicon (GPU), greedy on Intel (CPU)

Accuracy Improvements

  • Temperature fallback: Retries with higher temperature on low-confidence results
  • Hallucination suppression: Regex filter blocks common Whisper artifacts ("Thank you", etc.)
  • Context carry-over: Uses previous transcription context for better multi-sentence accuracy
  • Grammar correction: 100+ developer term auto-casing (api->API, javascript->JavaScript)

Install

  1. Download WhisperDictation.dmg below
  2. Drag to Applications
  3. Right-click > Open on first launch
  4. Grant Microphone + Accessibility permissions
  5. Download a model in Settings > Model (Small Q5 recommended)

Full Changelog: v1.0.1...v1.0.2

WhisperDictation v1.0.1

Choose a tag to compare

@sam-pop sam-pop released this 11 Apr 22:59

WhisperDictation v1.0.1

Local, private voice-to-text for macOS. No cloud, no API keys, no subscriptions.

Install

  1. Download WhisperDictation.dmg below
  2. Open the DMG and drag WhisperDictation to Applications
  3. Right-click > Open on first launch (required for unsigned apps)
  4. Grant Microphone and Accessibility permissions when prompted
  5. The app will download a Whisper model on first launch (~466 MB)

Features

  • Push-to-talk dictation (hold Right Option, speak, release)
  • Works in any app (Terminal, VS Code, Claude Code, browsers)
  • Powered by whisper.cpp with Metal GPU acceleration
  • Developer-optimized vocabulary (400+ technical terms)
  • Smart grammar correction (capitalization, acronyms, punctuation)
  • Multiple Whisper models (Base/Small/Medium)
  • Configurable hotkey, sound feedback, dark & light mode

Requirements

  • macOS 14 (Sonoma) or later
  • ~500 MB disk space (app + model)

Full Changelog: v1.0.0...v1.0.1