firered_vad
Source Location
How It Works
- Incoming LINEAR16 bytes are converted to
int16samples and buffered - Complete frames are extracted: 400 samples (25 ms) with 160-sample shift (10 ms)
- For each frame: fbank features are extracted, CMVN normalization is applied, ONNX inference produces a raw speech probability
- The postprocessor smooths probabilities (moving average, window size 5) and runs a 4-state machine:
- Speech onset is confirmed only after
MinSpeechFrameconsecutive frames above threshold — this filters out short noise bursts - Same packet emission:
InterruptionPacketon confirmed onset,VadSpeechActivityPacketheartbeats during confirmed speech
Parameters
Internal Postprocessor Defaults
These are not configurable via assistant options — they are hardcoded inDefaultPostprocessorConfig():