Personal Jarvis / docs ← Back to site GitHub

Core Concepts

Voice Pipeline

From wake word to spoken answer — the path every utterance takes, and the sub-second Ack that hides the latency.


A single spoken command travels a fixed path. Each stage is a swappable provider behind a protocol, but the order never changes.

The path

Wake word  →  VAD  →  Speech-to-text  →  Router-Brain  →  Harness / Brain  →  Text-to-speech
  1. Wake word — a lightweight always-on detector listens for the trigger phrase. Throughout these docs, [wake word] is used as a neutral placeholder rather than as a fixed product phrase.
  2. VAD (voice activity detection) — Silero decides where your speech starts and ends, so Jarvis knows when you’ve finished a turn.
  3. Speech-to-text — faster-whisper locally, or a cloud STT, transcribes the turn.
  4. Router-Brain — a fast classifier decides where the command goes (see harness dispatch).
  5. Execution — small talk is answered directly; real work is dispatched to a background worker.
  6. Text-to-speech — the answer is spoken back, streamed token by token.

The sub-second Ack

You never wait in silence. Before the deep brain has an answer, an Ack-Brain emits a short spoken confirmation — “Geht klar.” — within a second. If the deep brain turns out to be fast anyway, a suppression gate keeps the Ack out of the way. The dead air that makes most voice assistants feel broken is gone by design.

The voice output filter

Everything on its way to the speakers passes through a scrubber that strips tool names, jargon, markdown, and self-references — regex only, no extra model call, because latency is a hard budget. A small whitelist of everyday words (Datei, Email, Browser, Terminal, Notiz, Termin, Kalender) is never touched.

Latency budgets

These are gated, not aspirational:

StageTarget (p95)
Wake → Ack< 1.2 s
Intent → Ack< 3.0 s
Router decision< 150 ms

Turn-boundary corrections

If a background worker fails or needs to course-correct, Jarvis never barges in mid-sentence. The correction waits for the next natural turn boundary (detected by the VAD), then is spoken through the same output filter. One uninterrupted conversation — even when things go wrong.