]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
vad : Silero VAD v6.2.0 (#3524)
authorKITAITI Makoto <redacted>
Mon, 17 Nov 2025 13:26:17 +0000 (22:26 +0900)
committerGitHub <redacted>
Mon, 17 Nov 2025 13:26:17 +0000 (22:26 +0900)
* Add ggml-silero-v6.2.0 to download candidates

* Make default VAD model ggml-silero-v6.2.0

* Make VAD model in documentations ggml-silero-v6.2.0

12 files changed:
README.md
bindings/ruby/README.md
bindings/ruby/lib/whisper/model/uri.rb
bindings/ruby/test/test_params.rb
bindings/ruby/test/test_vad.rb
bindings/ruby/test/test_vad_context.rb
examples/addon.node/README.md
examples/addon.node/vad-example.js
examples/vad-speech-segments/README.md
models/download-vad-model.cmd
models/download-vad-model.sh
tests/earnings21/README.md

index f197c93401d3985dd49f4e0dbb909098bfd93044..4f9137aa496640ed286195eabe4bf491258a039e 100644 (file)
--- a/README.md
+++ b/README.md
@@ -755,23 +755,23 @@ written in Python that is fast and accurate.
 
 Models can be downloaded by running the following command on Linux or MacOS:
 ```console
-$ ./models/download-vad-model.sh silero-v5.1.2
-Downloading ggml model silero-v5.1.2 from 'https://huggingface.co/ggml-org/whisper-vad' ...
-ggml-silero-v5.1.2.bin        100%[==============================================>] 864.35K  --.-KB/s    in 0.04s
-Done! Model 'silero-v5.1.2' saved in '/path/models/ggml-silero-v5.1.2.bin'
+$ ./models/download-vad-model.sh silero-v6.2.0
+Downloading ggml model silero-v6.2.0 from 'https://huggingface.co/ggml-org/whisper-vad' ...
+ggml-silero-v6.2.0.bin        100%[==============================================>] 864.35K  --.-KB/s    in 0.04s
+Done! Model 'silero-v6.2.0' saved in '/path/models/ggml-silero-v6.2.0.bin'
 You can now use it like this:
 
-  $ ./build/bin/whisper-cli -vm /path/models/ggml-silero-v5.1.2.bin --vad -f samples/jfk.wav -m models/ggml-base.en.bin
+  $ ./build/bin/whisper-cli -vm /path/models/ggml-silero-v6.2.0.bin --vad -f samples/jfk.wav -m models/ggml-base.en.bin
 
 ```
 And the following command on Windows:
 ```console
-> .\models\download-vad-model.cmd silero-v5.1.2
-Downloading vad model silero-v5.1.2...
-Done! Model silero-v5.1.2 saved in C:\Users\danie\work\ai\whisper.cpp\ggml-silero-v5.1.2.bin
+> .\models\download-vad-model.cmd silero-v6.2.0
+Downloading vad model silero-v6.2.0...
+Done! Model silero-v6.2.0 saved in C:\Users\danie\work\ai\whisper.cpp\ggml-silero-v6.2.0.bin
 You can now use it like this:
 
-C:\path\build\bin\Release\whisper-cli.exe -vm C:\path\ggml-silero-v5.1.2.bin --vad -m models/ggml-base.en.bin -f samples\jfk.wav
+C:\path\build\bin\Release\whisper-cli.exe -vm C:\path\ggml-silero-v6.2.0.bin --vad -m models/ggml-base.en.bin -f samples\jfk.wav
 
 ```
 
@@ -783,7 +783,7 @@ This model can be also be converted manually to ggml using the following command
 $ python3 -m venv venv && source venv/bin/activate
 $ (venv) pip install silero-vad
 $ (venv) $ python models/convert-silero-vad-to-ggml.py --output models/silero.bin
-Saving GGML Silero-VAD model to models/silero-v5.1.2-ggml.bin
+Saving GGML Silero-VAD model to models/silero-v6.2.0-ggml.bin
 ```
 And it can then be used with whisper as follows:
 ```console
@@ -791,7 +791,7 @@ $ ./build/bin/whisper-cli \
    --file ./samples/jfk.wav \
    --model ./models/ggml-base.en.bin \
    --vad \
-   --vad-model ./models/silero-v5.1.2-ggml.bin
+   --vad-model ./models/silero-v6.2.0-ggml.bin
 ```
 
 ### VAD Options
index 2b586ef34d2ca1e3d0acca83c9a690dda69f0552..45218667d9613a0fc3c6759ac7fe211bdeafea90 100644 (file)
@@ -134,20 +134,20 @@ Support for Voice Activity Detection (VAD) can be enabled by setting `Whisper::P
 ```ruby
 Whisper::Params.new(
   vad: true,
-  vad_model_path: "silero-v5.1.2",
+  vad_model_path: "silero-v6.2.0",
   # other arguments...
 )
 ```
 
-When you pass the model name (`"silero-v5.1.2"`) or URI (`https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v5.1.2.bin`), it will be downloaded automatically.
-Currently, "silero-v5.1.2" is registered as pre-converted model like ASR models. You also specify file path or URI of model.
+When you pass the model name (`"silero-v6.2.0"`) or URI (`https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v6.2.0.bin`), it will be downloaded automatically.
+Currently, "silero-v6.2.0" is registered as pre-converted model like ASR models. You also specify file path or URI of model.
 
 If you need configure VAD behavior, pass params for that:
 
 ```ruby
 Whisper::Params.new(
   vad: true,
-  vad_model_path: "silero-v5.1.2",
+  vad_model_path: "silero-v6.2.0",
   vad_params: Whisper::VAD::Params.new(
     threshold: 1.0, # defaults to 0.5
     min_speech_duration_ms: 500, # defaults to 250
@@ -330,7 +330,7 @@ Using VAD separately from ASR
 VAD feature itself is useful. You can use it separately from ASR:
 
 ```ruby
-vad = Whisper::VAD::Context.new("silero-v5.1.2")
+vad = Whisper::VAD::Context.new("silero-v6.2.0")
 vad
   .detect("path/to/audio.wav", Whisper::VAD::Params.new)
   .each_with_index do |segment, index|
index 9cb9085523d64f0f681b3ac9c7f009770182ff53..765f78652c2f9b620c90e6343df7f460025b6d16 100644 (file)
@@ -206,6 +206,7 @@ module Whisper
 
     %w[
       silero-v5.1.2
+      silero-v6.2.0
     ].each do |name|
       @pre_converted_models[name] = URI.new("https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-#{name}.bin")
     end
index 4dd9780de7d28918a3af0483a6f92cad951228dc..094dba6f48e46898baf612d11557e3f019e7c045 100644 (file)
@@ -218,12 +218,12 @@ class TestParams < TestBase
 
   def test_vad_model_path
     assert_nil @params.vad_model_path
-    @params.vad_model_path = "silero-v5.1.2"
-    assert_equal Whisper::Model.pre_converted_models["silero-v5.1.2"].to_path, @params.vad_model_path
+    @params.vad_model_path = "silero-v6.2.0"
+    assert_equal Whisper::Model.pre_converted_models["silero-v6.2.0"].to_path, @params.vad_model_path
   end
 
   def test_vad_model_path_with_nil
-    @params.vad_model_path = "silero-v5.1.2"
+    @params.vad_model_path = "silero-v6.2.0"
     @params.vad_model_path = nil
     assert_nil @params.vad_model_path
   end
@@ -235,13 +235,13 @@ class TestParams < TestBase
   end
 
   def test_vad_model_path_with_URI_string
-    @params.vad_model_path = "https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v5.1.2.bin"
-    assert_equal @params.vad_model_path, Whisper::Model.pre_converted_models["silero-v5.1.2"].to_path
+    @params.vad_model_path = "https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v6.2.0.bin"
+    assert_equal @params.vad_model_path, Whisper::Model.pre_converted_models["silero-v6.2.0"].to_path
   end
 
   def test_vad_model_path_with_URI
-    @params.vad_model_path = URI("https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v5.1.2.bin")
-    assert_equal @params.vad_model_path, Whisper::Model.pre_converted_models["silero-v5.1.2"].to_path
+    @params.vad_model_path = URI("https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v6.2.0.bin")
+    assert_equal @params.vad_model_path, Whisper::Model.pre_converted_models["silero-v6.2.0"].to_path
   end
 
   def test_vad_params
@@ -289,7 +289,7 @@ class TestParams < TestBase
             in [/_user_data\Z/, *]
               Object.new
             in [:vad_model_path, *]
-              Whisper::Model.pre_converted_models["silero-v5.1.2"].to_path
+              Whisper::Model.pre_converted_models["silero-v6.2.0"].to_path
             in [:vad_params, *]
               Whisper::VAD::Params.new
             end
index cb5e3c79d4b7ca93083ecf8754fc6c6536f6b4d9..3b0aedd061adf1d95c16d0366c65daaa7520a221 100644 (file)
@@ -6,7 +6,7 @@ class TestVAD < TestBase
     vad_params = Whisper::VAD::Params.new
     @params = Whisper::Params.new(
       vad: true,
-      vad_model_path: "silero-v5.1.2",
+      vad_model_path: "silero-v6.2.0",
       vad_params:
     )
   end
index bfc83adfdf8c83d438b441c9abc95de584353ae1..704916db6de5adc17e7984e71032b2bda625b60e 100644 (file)
@@ -2,12 +2,12 @@ require_relative "helper"
 
 class TestVADContext < TestBase
   def test_initialize
-    context = Whisper::VAD::Context.new("silero-v5.1.2")
+    context = Whisper::VAD::Context.new("silero-v6.2.0")
     assert_instance_of Whisper::VAD::Context, context
   end
 
   def test_detect
-    context = Whisper::VAD::Context.new("silero-v5.1.2")
+    context = Whisper::VAD::Context.new("silero-v6.2.0")
     segments = context.detect(AUDIO, Whisper::VAD::Params.new)
     assert_instance_of Whisper::VAD::Segments, segments
 
@@ -32,7 +32,7 @@ class TestVADContext < TestBase
     assert_equal segment.start_time, start_time
     assert_equal segment.end_time, end_time
 
-    assert_equal 5, segments.length
+    assert_equal 4, segments.length
   end
 
   def test_invalid_model_type
index ffd7720f9e511fb92ab201c1180e24f0f450660a..bb09ba104c6733ee5ac2df8d8bdc8799383eb972 100644 (file)
@@ -54,7 +54,7 @@ Before using VAD, download a VAD model:
 
 ```shell
 # From the whisper.cpp root directory
-./models/download-vad-model.sh silero-v5.1.2
+./models/download-vad-model.sh silero-v6.2.0
 ```
 
 ### VAD Parameters
@@ -85,7 +85,7 @@ const vadParams = {
   model: path.join(__dirname, "../../models/ggml-base.en.bin"),
   fname_inp: path.join(__dirname, "../../samples/jfk.wav"),
   vad: true,
-  vad_model: path.join(__dirname, "../../models/ggml-silero-v5.1.2.bin"),
+  vad_model: path.join(__dirname, "../../models/ggml-silero-v6.2.0.bin"),
   vad_threshold: 0.5,
   progress_callback: (progress) => console.log(`Progress: ${progress}%`)
 };
index a9e0dae7adf79d961f5218899eda7be9f7712515..bdbb5ec540d8dc220ab51accb93e8eb873ad2fce 100644 (file)
@@ -23,7 +23,7 @@ const vadParams = {
   max_len: 0,
   // VAD parameters
   vad: true,
-  vad_model: path.join(__dirname, "../../models/ggml-silero-v5.1.2.bin"), // You need to download this model
+  vad_model: path.join(__dirname, "../../models/ggml-silero-v6.2.0.bin"), // You need to download this model
   vad_threshold: 0.5,
   vad_min_speech_duration_ms: 250,
   vad_min_silence_duration_ms: 100,
@@ -63,7 +63,7 @@ async function runVADExample() {
     const fs = require('fs');
     if (!fs.existsSync(vadParams.vad_model)) {
       console.log("⚠️  VAD model not found. Please download the VAD model first:");
-      console.log("   ./models/download-vad-model.sh silero-v5.1.2");
+      console.log("   ./models/download-vad-model.sh silero-v6.2.0");
       console.log("   Or run: python models/convert-silero-vad-to-ggml.py");
       console.log("\n   Falling back to traditional transcription without VAD...\n");
       
index d9c3e74bb44bf65be906e7e6cd75bb69daa90b9f..7dea6985617d50a692ea7d00f3d15130e898888b 100644 (file)
@@ -15,7 +15,7 @@ The examples can be run using the following command, which uses a model
 that we use internally for testing:
 ```console
 ./build/bin/vad-speech-segments \
-    -vad-model models/for-tests-silero-v5.1.2-ggml.bin \
+    -vad-model models/for-tests-silero-v6.2.0-ggml.bin \
     --file samples/jfk.wav \
     --no-prints
 
index a2fa71f7c91e80cfc642297cf6e7731b630b2562..15b4c295a72c5fc29fe19a34d8e0e638ca7fd7e6 100644 (file)
@@ -25,7 +25,7 @@ rem Count number of arguments passed to script
 set argc=0
 for %%x in (%*) do set /A argc+=1
 
-set models=silero-v5.1.2
+set models=silero-v5.1.2 silero-v6.2.0
 
 rem If argc is not equal to 1 or 2, print usage information and exit
 if %argc% NEQ 1 (
index ef32289e612a77baf96ff1734c94f977d4ee4dc1..a4ac5203b249b59d1a14ee0f9f525dd56c24b4c3 100755 (executable)
@@ -30,7 +30,7 @@ esac
 models_path="${2:-$default_download_path}"
 
 # Whisper VAD models
-models="silero-v5.1.2"
+models="silero-v5.1.2 silero-v6.2.0"
 
 # list available models
 list_models() {
index 4d08ec2ffc32ee4c1d73066ec851668fb9408508..8836483daf63cb1668e0ac269e12d6b726a68c33 100644 (file)
@@ -77,11 +77,11 @@ First, you need to download a VAD model:
 
 ```
 $ # Execute the commands below in the project root dir.
-$ ./models/download-vad-model.sh silero-v5.1.2
+$ ./models/download-vad-model.sh silero-v6.2.0
 ```
 
 Create `eval.conf` with the following content:
 
 ```
-WHISPER_FLAGS = --no-prints --language en --output-txt --vad --vad-model ../../models/ggml-silero-v5.1.2.bin
+WHISPER_FLAGS = --no-prints --language en --output-txt --vad --vad-model ../../models/ggml-silero-v6.2.0.bin
 ```