Dev.to
7/28/2026

Why I measure interview silence with WebAudio, not the Speech API
Short summary
A practical explanation of why speech-to-text event timing is unreliable for detecting silence in browser voice apps, and how to measure it acoustically with a WebAudio graph instead. STT timings are polluted by network latency, buffering, and interim-result churn, producing false silence signals. The solution: read RMS loudness from the raw waveform, calibrate a noise floor per room, and apply hysteresis with two thresholds to distinguish thinking pauses from finished answers.
- •STT event timings are unreliable for silence detection due to network latency, buffering, and interim-result churn
- •Measure silence acoustically via WebAudio RMS on the raw microphone waveform instead of inferring from transcription events
- •Calibrate a per-room noise floor and use hysteresis with dual thresholds to separate thinking pauses from done-answering signals
Generated with AI, which can make mistakes.
Is this a good recommendation for you?



