Outbound AI calling systems must distinguish voicemail greetings from live human answers in real time to avoid wasted agent interactions and dropped calls. We present a lightweight approach that extracts 15 temporal features from the speech activity pattern of a pre-trained neural voice activity detector (VAD), then classifies with a shallow tree-based ensemble. Across two evaluation sets totaling 764 telephony recordings, the system achieves a combined 96.1% accuracy (734/764), with 99.3% (139/140) on an expert-labeled test set and 95.4% (595/624) on a held-out production set. In production validation over 77,000 calls, it maintained a 0.3% false positive rate and 1.3% false negative rate. End-to-end inference completes in 46 ms on a commodity dual-core CPU with no GPU, supporting 380+ concurrent WebSocket calls. In our search over 3,780 model, feature, and threshold combinations, feature importance was concentrated in three temporal variables. Adding transcription keywords or beep-based features did not improve the best real-time configuration and increased latency substantially. Our results suggest that temporal speech patterns are a strong signal for distinguishing voicemail greetings from live human answers.
Figures & tables
#
Feature
Description
1
speech_ratio
Total speech duration divided by W
2
num_segments
Number of distinct speech segments N
3
mean_seg_ms
Mean segment duration: N1∑i(ei−si)
4
longest_seg_ms
Maximum segment duration: maxi(ei−si)
5
first_onset_ms
Time to first speech: s1
6
first_seg_ms
Duration of first segment: e1−s1
Table 1: The 15 temporal speech activity features. All features are computed from VAD speech timestamps within the detection window W .
Dataset
Size
VM
NVM
Labeling Method
Training
24,812
∼ 14,887
∼ 9,925
Pseudo-labeled (cross-model agreement)
Eval-A (Test-140)
140
70
70
Hand-labeled by domain expert
Eval-B (Held-out 624)
624
434
190
41% expert-verified, 59% MLM-validated
Table 2: Dataset summary. All audio is 8 kHz stereo telephony.
Model
Feat.
W
τ
Eval-A
Eval-B
Comb.
Lat.
Clf. A (boost, d=2 , n=50 )
VAD-15
5s
0.50
139/140
595/624
96.1%
46ms
Clf. B (bagged, n=50 )
VAD-15
3s
0.30
136/140
596/624
95.8%
29ms
Cross-channel (stereo)
Eng.-8
5s
—
137/140
—
—
< 10ms
OR Ensemble (A ∨ C)
Mixed
5s
var.
129/140
508/624
83.4%
92ms
Clf. A + Transcript
VAD+KW
5s
—
138/140
608/624
97.6%
∼ 500ms
Table 3: Top model configurations. Combined = weighted accuracy across both evaluation sets (764 files). Latency excludes the W -second audio buffer.
Rank
Feature
Importance
Cumulative
1
speech_first_half_ratio
54.6%
54.6%
2
first_seg_ms
20.0%
74.6%
3
first_onset_ms
11.0%
85.6%
4
speech_ratio
7.6%
93.2%
5
mean_seg_ms
5.0%
98.2%
6–15
(remaining 10 features)
1.8%
100%
Table 4: Feature importance for Classifier A (5-second window). Top 3 features account for 85.6% of total importance.
Feature Set
Best Test-140
Finding
VAD-15 (temporal only)
139/140 (99.3%)
Best overall
Beep-8 (frequency)
71/140 (50.7%)
Near-random; beeps on wrong channel
Combined-23 (VAD + beep)
139/140 (99.3%)
No improvement over VAD-15
VAD + Transcript-25
138/140; 97.4% HF
+2% HF but 10 × slower
Engineered-46
127/140 (90.7%)
Overfitting with more features
Table 5: Ablation: best accuracy per feature set (5-second window, optimal model and threshold).
Method
Accuracy
Time-to-Decision
False Positives
GPU Required
Ours (temporal VAD features)
96.1%
5.05 s
0.3%
No
Beep detection (DESA-2)
50.7%
10–30 s
23.2%
No
Industry AMD (silence heuristics)
70–85% ∗
3–5 s
10–15% ∗
No
Transcription keywords
97.6%
∼ 5.5 s
< 1%
Yes
∗ Estimated from vendor documentation [ 1 ] ; not independently verified.
Table 6: Our temporal approach vs. industry-standard beep detection.