purposeos

Voice

Two local services: one listens for your wake word, one turns speech into text while you are still talking.

Wake word

You choose the phrase. Say it and the launcher opens, listens for a few seconds and fills the search box. Pressing Enter is still yours.

purpose-wake set "okay computer"
purpose-wake sensitivity high

Live dictation

Words appear as you speak, then settle into Whisper's text with punctuation and proper nouns. By the time you stop, only the last fragment is left to refine.

  1. voiced captures the microphone itself into a 120 second ring buffer in memory. The shell never touches audio.
  2. A streaming engine (sherpa-onnx Zipformer) decodes as audio arrives and detects pauses.
  3. When a pause ends a segment, that slice goes to Whisper on a worker thread while you keep talking. The grey live text is replaced when Whisper answers.
  4. The shell polls about every 170 ms and draws the partial text, the finished segments and the waveform.
one poll reply
{ "seq": 41, "state": "speech", "elapsed_ms": 4200,
  "partial": "i want the registry",
  "segments": [ { "id": 0, "text": "Spent the evening on the design.", "final": true } ],
  "level": [0.1, 0.4, 0.8],
  "text": "Spent the evening on the design. i want the registry" }

Say a setting

Every setting has spoken phrases: “volume up”, “mute”, “set volume to 30”, “next wallpaper”, “set wake word to computer”. Matching is plain text matching, with no language model and no network. The launcher lists the explicit command, and Enter runs it.

Open files by name

A file opens only when the spoken name matches exactly. Looser matches are offered as a list and never opened. Several exact matches also produce a list. Low-confidence results are not shown.