Measured, not claimed
Every chart on this page comes from a script in bench/ or the training repository that you can run yourself. Measured on 2026-10-17 and 2026-10-18 on Apple Silicon against @ricky0123/vad-web 0.0.31 and onnxruntime-web 1.30. The full method, caveats and the things that did not work are in docs/COMPARISON.md.
The short version
- 5x less CPU, 20x faster start, 16x smaller, as shipped. Auricle v1 scores a frame in 0.035 to 0.038 ms in Chromium and WebKit against 0.18 ms for vad-web, is ready in 4 to 10 ms against 175 to 215, and downloads 350 KB against 5,520. With vad-web's own Silero weights loaded into Auricle's engine for a like-for-like test, the output matches to 7.8e-7 and the engine is still 3.5x cheaper: no inference runtime is the whole difference.
- The detector that ships ignores the other person in the room. Auricle v1, our own 83k-parameter model and the only one in the npm package, wrongly flags 35% of a background talker's speech where Silero v6 flags 81%. On one person talking it is about a point behind Silero. The whole engine is 350 KB gzipped.
- The agent knows you stopped 1.1 seconds sooner than vad-web's default settings, with the same recall and no false alarms.
Two people talking
This is the case voice agents actually meet: a TV, a colleague, a family member in the same room. The chart sweeps every threshold. For any share of the user's speech you want to keep, read off how much of the other person's speech gets through.

python -m vadtrain.prcurve.One person talking
On clean single-speaker audio with human labels, Silero v6 is still the slightly better detector, by about one F1 point. We say so. If your product needs Silero's exact numbers, the Rust crate builds with its weights behind the silero feature.

Seven languages
The same two-talker test on FLEURS, two hours per language, with a same-language background speaker. Auricle v1 was trained on English only. It transfers, with the biggest gain on English and a 15 to 35 point gain elsewhere.

CPU per frame
The model is hand-written Rust compiled to WebAssembly with SIMD. There is no inference runtime to load or call through. Measured in real browsers by Playwright, 20 timed passes. The middle bar loads vad-web's own Silero v6 weights into Auricle's engine so the comparison is like for like; the first bar is what ships.

Start-up

Download

Knowing when you stopped
Same speech probabilities, different end-of-turn policy. 240 labelled utterances from six voices, five gap lengths, clean and with white noise at 20, 10 and 5 dB.

Same model, same output
Maximum difference in speech probability between the Auricle forward pass and onnxruntime-web over 603 frames of speech: 7.8e-7. With the Silero weights, detection quality is identical by construction. Everything above is about cost and about what sits around the model.
What did not work
- Smoothing the probability (EMA, median, hysteresis): every variant lowered F1. The recurrent state already smooths.
- Scoring overlapped windows every 16 ms to halve onset latency: F1 fell from 93.7% to 89.8%. Removed.
- Post-training Auricle v1 on harder two-talker mixes: the curve above did not move. Reweighting the same data adds no information.
- Adding ten hours each of six non-English languages: every number moved by under 0.3 points.
What is not measured yet
- Firefox and mobile browsers. Playwright could not launch Firefox on the test machine.
- Real meetings with real overlap. The two-talker clips are generated from held-out speakers through measured rooms; a meeting-corpus benchmark is next.
- End-to-end response latency against a live endpoint: run
bench/latency.mjswith your key, or read the timing line under each reply in the demo.
Maturity, plainly
vad-web: 1.58 million npm downloads in the last month, 32 releases since 2023, 26 contributors. Auricle: days old, zero releases. Smaller, faster and better with a second talker is measured; proven in the field is not.
Questions people ask
Is Auricle more accurate than Silero VAD?
On one person talking, Auricle v1 is about one F1 point behind Silero v6 (92.7% vs 93.6% on TEN VAD's human-labelled test set) and far ahead when a second person is talking: it wrongly flags 35% of the background talker's speech where Silero v6 flags 81%.
How much faster is Auricle than vad-web?
As shipped, about 5x less CPU per 32 ms frame in Chromium and WebKit (0.035 to 0.038 ms vs 0.18 ms), about 20x faster start-up (4 to 10 ms vs 175 to 215 ms), and a 16x smaller download (346 KB vs 5,520 KB). With identical Silero v6 weights on both sides the engine alone is still 3.5x cheaper per frame, because the model is hand-written Rust compiled to WebAssembly with no inference runtime.
How fast does Auricle detect the end of a turn?
Median 324 ms after the user stops talking, against 1,432 ms with vad-web's default settings, on 240 labelled utterances with 100% recall and zero false alarms.
Which languages does Auricle v1 work in?
Tested on English, Spanish, German, Arabic, Hindi, Mandarin and Japanese with the FLEURS corpus. In every language Auricle v1 flags 15 to 47 points less of a background talker's speech than Silero v6, with foreground recall within a point.
How do I reproduce the benchmarks?
Every chart comes from a script in the bench/ directory of the repository or from vadtrain.prcurve in the training repository. The curve data is checked in as bench/pr-v1.json and bench/langs-v1.json.