The read
Most dictation tools either live behind closed workflows, depend on cloud transcription, or hide quality tradeoffs until someone tries to use them for real work. I wanted a local-first build that could be tightened through repeated spoken testing on my own machine.
Game plan
- Build a Windows desktop shell in Tauri with global hotkeys for hold-to-talk and toggle dictation.
- Use a local `faster-whisper` pipeline with a stronger CPU profile, clipboard-safe paste, and microphone selection instead of defaulting to a cloud backend.
- Run repeated phrase testing on real spoken inputs, then tighten the model profile, cleanup layer, and term-hinting based on observed misses.
- Keep the build practical and shareable, with public-safe framing around what is working now rather than pretending it is already a polished commercial product.
Final score
The current build already handles hotkeys, local transcription, paste, phrase hints, and saved settings.
- The live build now supports local hotkeys, local transcription, clipboard-safe paste, and persisted dictation settings
- A stronger `small.en` CPU profile corrected earlier phrase misses that the lighter path was getting wrong
- Phrase-hint support was added specifically to improve uncommon names and brand terms such as `Moviefone`
- The workflow now includes repeated human dictation checks instead of treating one clean sample as good enough
What it is
SpeakFree is a practical local dictation build. Press a hotkey, speak naturally, and get text inserted where the cursor already is without routing the workflow through a cloud transcription product.
What’s working now
- A Windows desktop shell built in Tauri
- Hold-to-talk and toggle dictation modes with global hotkeys
- Local transcription through a
faster-whisperworker - Clipboard-safe paste into the active app
- Persisted microphone selection and phrase hints for tricky terms
- A stronger CPU-first transcription profile based on real QA outcomes
Why it matters
- It turns dictation quality into something observable and improvable instead of abstract
- It is a useful example of desktop product shaping, model tradeoff decisions, and human-in-the-loop QA
- It shows how an internal personal tool can become a cleaner public-facing build without pretending it is already a finished SaaS product