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
SettingDefaultWhat it does
rms-threshold450Energy gate for the start of speech. Lower picks up quieter talkers, and more keyboard and fan noise.
hangover-ms600Trailing silence kept after speech stops.
minimum-utterance-ms250Clips shorter than this are dropped as non-speech.
maximum-utterance-ms8000Hard 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.

Copied