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 the configured
start_secsduration above the confidence threshold — this filters out short noise bursts - Same packet emission:
InterruptionPacketstart/end events on confirmed speech onset and offset
Parameters
Internally, FireRed converts
start_secs and stop_secs into its postprocessor frame counts. Each FireRed postprocessor frame represents 10 ms.
Internal Postprocessor Defaults
These are not configurable via assistant options — they are hardcoded inDefaultPostprocessorConfig():