Hey guys. I recently watched the latency reports for my local voice assistant, which show a waveform plus silero probability for voice activity. I noticed silero lags visibly on the speech off signal.There had to be a method to get this signal closer to what I felt is optimal. My idea was to use a 10 ms energy detector with a threshold that adapts to environment or room noise. Which worked amazingly well. It created more false positives but in my speculative generation pipeline that would not matter. If it's wrong and the user continues speaking I can abort the pipeline fast.I benchmarked my solution over ~3200 turns from my assistant logs and it came out ~110 ms faster initially. Still 100 ms now after some a fix which was needed for quiet speech.I made it public if you want to have a look. If you measure it on your data I really appreciate any feedback. There's a benchmark script in the repo.Thx for reading, have a good day folks.
Show HN: RealtimeVAD – trading false positives for 110ms earlier end-of-speech
Faster speech off signals for spec gen voice pipelines - KoljaB/RealtimeVAD
Key takeaways
RealtimeVAD is a tool that detects end-of-speech 110 ms earlier than standard detectors by combining Silero VAD with a faster audio-level check. It provides a demo for testing on local microphones and offers API methods for handling speech segments.
- The system compares audio levels every 10 ms against room noise and speaker levels to trigger early end-of-speech events.
- A demo video using synthetic voice shows a median lead of 92 ms, while real voice-assistant turns show a 100 ms median lead.
- The vad.audio() method returns running segments starting about 0.3 s before speech, and vad.feed() supports playback handling.
Summarised automatically by AI from the original article by Hacker News. AI can make mistakes, so check the original for details.
Story details
- Published
- By
- koljab
- Format
- Article
- Original
- github.com ↗
Related reporting
3 stories on this topic from 2 sources, oldest first.
- Hacker News Show HN: RealtimeVAD – trading false positives for 110ms earlier end-of-speech (this story)





