← Selected work

Native macOS · Local inference

Local Dictation

Native Mac dictation with on-device speech recognition, local correction, and guarded text placement.

My roleBuilt the Swift/AppKit app, Whisper and Qwen pipeline, editor guards, and recoverable installation workflow.

Released · v1.3.0

Explore the workflow

Interactive walkthrough

From speech to the right field.

Follow local recognition, correction, and guarded placement. Move the cursor to test the editor checks.

Editor after recording
Local correction

Select a stage to inspect its role in the workflow.

Step 4: Place. Place text once at the verified destination.

Scripted speech

Let’s meet on Thursday, sorry, Friday at three.

WhisperQwen + validationApp: on-device
Accepted result

Let’s meet on Friday at three.

Clear self-correction
Demo editorPlaced once

Original cursor verified

Step 04 / Inspect

Place text once at the verified destination.

The original editor and cursor still match. The app dispatches one paste and observes the result; it does not automatically repeat an unconfirmed paste.

origin unchanged: true
state: placed
automatic retry: disabled

The verified original field receives the text once.

Scripted phrase and demo editor. No microphone, live model, or clipboard access.

Read the placement validation

Results

  • v1.3.0 ships as a native Mac DMG with published checksums and passing macOS CI.
  • 47 AppKit, WebKit, and Electron insertion checks, plus correction, vocabulary, shortcut, and installer regressions.
  • Installed-app dictation verified in Chrome, including full-screen mode.
Engineering details

Dictation needs accurate corrections and reliable placement in the intended editor, with speech processed locally.

01

On-device inference

Whisper transcribes in-memory audio; local Qwen correction cleans fillers and clear self-corrections while preserving the original transcript.

02

Guarded placement

Editor and cursor checks determine whether text is pasted once or held for explicit placement.

03

Recoverable setup

Installation verifies the app before replacement; model downloads support pause, resume, and SHA-256 validation.