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
- 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. - VAD (voice activity detection) — Silero decides where your speech starts and ends, so Jarvis knows when you’ve finished a turn.
- Speech-to-text — faster-whisper locally, or a cloud STT, transcribes the turn.
- Router-Brain — a fast classifier decides where the command goes (see harness dispatch).
- Execution — small talk is answered directly; real work is dispatched to a background worker.
- 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:
| Stage | Target (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.