Voice capture
Last modified: 25 July 2026
What capture does
Voice activity detection runs on your server and turns a continuous microphone stream into utterances — one phrase per clip — before anything is transcribed. Its settings decide what counts as speech.
Capture follows engine.mode: it is on for sidecar and
embedded, and off for none.
Settings
capture:
vad:
rms-threshold: 450
hangover-ms: 600
minimum-utterance-ms: 250
maximum-utterance-ms: 8000
| Setting | Default | What it does |
|---|---|---|
rms-threshold | 450 | Energy gate for the start of speech. Lower picks up quieter talkers, and more keyboard and fan noise. |
hangover-ms | 600 | Trailing silence kept after speech stops. |
minimum-utterance-ms | 250 | Clips shorter than this are dropped as non-speech. |
maximum-utterance-ms | 8000 | Hard cap per clip. A long monologue is cut into several. |
Why these numbers
They ship tuned. Two of them were moved deliberately after live testing, and moving them back breaks things in ways that are hard to spot:
- Hangover 600 ms, up from 300. At 300 ms a single sentence split into fragments, and a phrase rule cannot match a phrase it only sees half of — "kill your self" across two clips is a miss.
- Minimum utterance 250 ms, up from 100. At 100 ms the pipeline admitted clicks, coughs and breaths; transcription invents text for those, and invented text can false-positive against fuzzy slur matching. A fast single spoken word is around 300 ms, so 250 still catches every real word.
Change these only with a reason and a way to measure the result.