RealtimeVAD is an alpha Python voice-activity detector for voice assistants that aims to reduce the delay between a speaker finishing and downstream speech recognition, language-model, or voice-output work beginning. It retains Silero VAD to identify speech, while adding a 10 ms audio-level check that detects quiet relative to both background noise and the speaker’s own volume. It emits start, pause, and end events, and can provide the current audio segment. In tests on 3,279 real assistant turns, its pause signal arrived a median 100 ms before Silero’s probability fell below its default threshold, and 206 ms before Silero’s standard end event. Its final end event was 70 ms earlier than Silero’s when both used the same silence duration.
The speed comes with a deliberate tradeoff: pause signals often occur during breaths, word gaps, or stop consonants. They were followed by more speech about ten times as often as Silero’s comparable signal, so they are intended to trigger cancellable work, not to declare a turn finished. The project’s revised adaptive quiet threshold also reduces premature cutoffs for quiet speakers, which affected many such turns in an earlier version. However, noisy quiet audio can erase the timing advantage, and phone-line tests show mixed outcomes depending on signal level. The package runs on a CPU with NumPy and ONNX Runtime, bundles its Silero model, and offers a compatibility path for Silero users and a LiveKit plugin.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.