#4547·openwork

Local dictation mode — free, private alternative to OpenAI Realtime voice

Author: radicaxCreated Sep 6, 2026Updated Sep 14, 2026

Feature request: Add a local, offline dictation mode as an alternative to the built-in Voice Mode (which requires OpenAI Realtime + API key).

Why: Voice Mode is hardcoded to OpenAI Realtime — it needs an API key, costs per minute, and sends audio to OpenAI. Many users (especially outside the US, or with privacy concerns) want speech-to-text that runs 100% locally, works with any model, and costs nothing.

What I built as a proof of concept: A small script that does exactly this on Linux:

  • Mic capture via PortAudio (16 kHz)
  • Silero VAD (neural voice-activity detection, ~1ms/block CPU) — robust in noisy rooms, unlike energy-based VAD
  • faster-whisper (CTranslate2) transcription, fully local, cached models
  • Pushes text into the OpenWork composer via the local bridge (composer.set_text)

It works today: talk → pause → text appears in the composer. No API key, no cloud, ~1GB RAM, runs on CPU.

Suggested implementation: a "Local dictation" option in Voice Mode settings that swaps the OpenAI Realtime backend for a local whisper pipeline (or exposes a pluggable STT backend). Happy to share the full script and the gotchas I hit (Silero chunk size 512@16kHz, PortAudio buffer reuse, ctranslate2/OpenMPI segfault workaround) with whoever picks this up.

Benefits: free, private, offline, works with any model/provider, no per-minute cost.