On-Device Push-to-Talk Dictation without Cloud Latency

Published: August 15, 2026 · Read Time: 4 min read · Category: DSP & Audio

Author: Abhishek Shivakumar (Systems & Audio Engineering)

Designing a zero-latency audio pipeline for Whisper models on macOS using local ring buffers, voice activity detection, and Core ML.

Local Audio Pipeline

Cloud dictation services transmit audio payloads over network connections, introducing variable latency and external data dependencies. WhisperGo processes speech locally on Apple Silicon devices.

The audio capture layer runs a high-priority CoreAudio input callback writing into a lock-free circular ring buffer. When the push-to-talk shortcut activates, the recording window opens without blocking the UI thread.

Voice Activity Detection

Energy estimation and spectral flatness metrics determine speech boundaries. Background room noise is estimated continuously while the key is depressed, allowing the speech segment to be windowed with precise start and end margins.

{
  "capture": {
    "sample_rate_hz": 16000,
    "ring_buffer_capacity_sec": 30.0,
    "vad_threshold_db": -42.0
  },
  "model": {
    "engine": "coreml_ane",
    "checkpoint": "whisper_base_en_q8.mlmodelc",
    "compute_units": "all"
  }
}

Core ML Transcription

Audio frames are converted to log-Mel spectrograms and dispatched to a quantized Whisper model compiled for the Apple Neural Engine and GPU. Decoding begins within 12 ms of key release.

Generated tokens are piped through text post-processing, resolving punctuation, numbers, and system voice commands before inserting characters into the active frontmost application.

Execution Profile

Transcription of a five-second speech snippet completes in approximately 95 ms on an M3 Pro processor.

Casing and Vocabulary Cache

A local database tracks custom programming terminology, acronyms, and proper nouns. Frequently spoken phrases receive boosted priority during greedy token selection, preventing repeated correction cycles.

Back to Quilio Blog