aufklarer/Silero-VAD-v6.2.1-CoreML

🤗 Hugging Face sourcevoice-activity-detectionmit1 MBother✓ 6 checksumsupdated today
Submit in one command

Run it next to your model folder. It makes the torrent, checks your files against Hugging Face, and submits it. You just start seeding and paste your key from your account. It only reads your files and never changes them. Read the script first if you like.

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo aufklarer/Silero-VAD-v6.2.1-CoreML ./model-folder
Needs a seeder →

Silero VAD v6.2.1 CoreML

CoreML export of Silero VAD v6.2.1 for Apple platforms. The package includes a drop-in 32 ms streaming model and a faster 256 ms aggregate variant.

Model Table

Model Format Precision Input New audio per call Size
silero_vad.mlmodelc CoreML mlprogram Float16 [1, 1, 576] 512 samples / 32 ms 640 KB
silero_vad_256ms.mlmodelc CoreML mlprogram Float16 [1, 1, 4160] 4096 samples / 256 ms 760 KB

Both variants use explicit LSTM state tensors:

Name Shape Description
audio [1, 1, 576] or [1, 1, 4160] 64-sample left context plus current audio
h [1, 1, 128] LSTM hidden state
c [1, 1, 128] LSTM cell state
probability [1] Speech probability
h_out [1, 1, 128] Updated hidden state
c_out [1, 1, 128] Updated cell state

Files

File Description
silero_vad.mlmodelc/ 32 ms streaming CoreML bundle
silero_vad_256ms.mlmodelc/ 256 ms aggregate CoreML bundle using noisy-OR over eight internal 32 ms windows
config.json Runtime metadata, shapes, upstream version, and variant list

Performance

Benchmarked on an Apple Silicon Mac using a 50-file VAD set with 2,445.9 seconds of audio, onset 0.25, offset 0.20, min speech 0.25s, min silence 0.10s.

Model File F1 Span F1 Precision Recall FAR Miss Rate Throughput
v5.1.2 CoreML baseline 100.00% 86.27% 100.00% 75.86% 0.00% 24.14% 410.0xRT
v6.2.1 silero_vad.mlmodelc 98.04% 87.47% 99.98% 77.74% 3.44% 22.26% 412.4xRT
v6.2.1 silero_vad_256ms.mlmodelc 92.59% 93.88% 99.97% 88.49% 7.80% 11.51% 1442.2xRT

The 32 ms variant preserves the existing streaming interface and is the safest drop-in replacement. The 256 ms variant is substantially faster and more recall-oriented, but uses coarser probability frames.

Usage

import CoreML

let config = MLModelConfiguration()
config.computeUnits = .all
let modelURL = Bundle.main.url(forResource: "silero_vad", withExtension: "mlmodelc")!
let model = try MLModel(contentsOf: modelURL, configuration: config)

For a complete Swift runtime, see:

Source

Converted from snakers4/silero-vad, tag v6.2.1.