Voice activity detection (VAD) sits in front of almost every streaming speech recognizer, yet the choice of detector is often made by feel rather than by measurement. We report a frame-level offline benchmark of three detectors on the test-clean split of LibriVAD-small: the neural TEN VAD, the neural Silero VAD and a simple RMS energy baseline. The evaluation covers 2,214 noisy utterances (about 7.1 hours) built from LibriSpeech, nine noise families and six SNR levels from -5 to 20 dB. At a 16 ms hop, TEN VAD reaches a ROC AUC of 0.917, an average precision of 0.968 and an F1 of 0.913. A sweep over 20, 30, 40 and 50 ms windows shows TEN to be almost insensitive to frame length (AUC 0.916 to 0.919), while RMS stays near 0.75 to 0.77. Silero matches TEN only near its native 32 ms input size and drops to 0.63 at 20 ms. We hypothesize that this is likely caused by our fixed-frame protocol rather than by the model itself. Zero padding, sub-chunk averaging and unreset model state are the likely factors, but we have not ablated them. In a per-condition breakdown of TEN, babble noise at low SNR stays close to chance. We also show that F1 at a fixed 0.5 threshold is a weak metric on this data, because a trivial all-speech detector already scores 0.854. All settings needed to reproduce the results are given in the paper.
Figures & tables
Fig. 1: Data generation and evaluation pipeline. Clean speech is mixed with noise at six SNR levels. Labels come from forced alignment of the clean speech. Each detector scores non-overlapping frames of size H .
Item
Value
Benchmark
LibriVAD [ 10 ] , small variant
Source speech
LibriSpeech [ 11 ] , English
Split
test-clean
Files
2,214 noisy WAVs (0 skipped)
Duration
about 7.1 h
Sample rate
16 kHz, 16-bit PCM
TABLE I: Evaluation Data
TEN VAD
Silero VAD
RMS
Type
Neural, pretrained
Neural, pretrained
Signal energy
Score
Speech prob.
Speech prob.
Mapped dBFS
Input size
Any hop H
≥ 512 samples
Any hop H
Documented hop
160 or 256
512
n/a
Hops run here
256 to 800 a
320 to 800
320 to 800
State reset
n/a
Never
n/a
TABLE II: Detector Configuration in the Evaluation Harness
Metric
Value
Files scored
2,214
Frames
1,608,606
Speech prior
0.745
ROC AUC
0.917
Average precision
0.968
F1 @ 0.5
0.913
TABLE III: TEN VAD at Hop 256 (16 ms), LibriVAD-small test-clean
SNR (dB)
ROC AUC
AP
−5
0.509
0.834
0
0.555
0.859
5
0.657
0.907
10
0.766
0.945
15
0.854
0.969
20
0.916
0.983
TABLE IV: TEN VAD on Babble Noise by SNR (LibriSpeech Style, 16 ms)
TABLE V: Window Sweep on 2,214 Files (Pooled Frame-Level Metrics)
Fig. 2: Per-file ROC AUC by detector and window size (boxes) with pooled AUC overlaid (lines). TEN is in green, RMS in blue and Silero in orange. TEN stays near 0.92 pooled AUC at every window. Silero peaks at 30 ms.
Fig. 3: Pooled frame-level ROC curves for window sizes of 20, 30, 40 and 50 ms. The dashed diagonal is chance. TEN curves overlap almost exactly. Silero curves separate widely.
TEN VAD [ 8 ]
Silero VAD [ 9 ]
Design goal
Conversational agents, fast speech and pause transitions
General purpose, many domains
Training data
Not disclosed
Large corpora, 6,000+ languages, varied noise
Input unit
Hop of 160 or 256 samples
Fixed chunk of 30 ms or more
Sample rate
16 kHz
8 and 16 kHz
Explicit voicing cue
Pitch estimator in source
None documented
Intended output
Per-frame probability
Speech timestamps after post-processing
TABLE VI: TEN VAD and Silero VAD as Documented by Their Authors
Detector
20 ms
30 ms
40 ms
50 ms
TEN
+0.059
+0.059
+0.060
+0.061
RMS
+0.002
+0.000
+0.002
+0.001
Silero
−0.501
+0.056
−0.571
−0.321
TABLE VII: [email protected] Gain Over a Trivial All-Speech Detector (F1 = 0.854)