Skip to content

Commit 2204d16

Browse files
Sync with whisper.cpp 🚀
1 parent 90c1b1c commit 2204d16

File tree

91 files changed

+6094
-5258
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+6094
-5258
lines changed

src/whisper/bindings/ruby/test/test_params.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,12 @@ def test_vad
218218

219219
def test_vad_model_path
220220
assert_nil @params.vad_model_path
221-
@params.vad_model_path = "silero-v5.1.2"
222-
assert_equal Whisper::Model.pre_converted_models["silero-v5.1.2"].to_path, @params.vad_model_path
221+
@params.vad_model_path = "silero-v6.2.0"
222+
assert_equal Whisper::Model.pre_converted_models["silero-v6.2.0"].to_path, @params.vad_model_path
223223
end
224224

225225
def test_vad_model_path_with_nil
226-
@params.vad_model_path = "silero-v5.1.2"
226+
@params.vad_model_path = "silero-v6.2.0"
227227
@params.vad_model_path = nil
228228
assert_nil @params.vad_model_path
229229
end
@@ -235,13 +235,13 @@ def test_vad_model_path_with_invalid
235235
end
236236

237237
def test_vad_model_path_with_URI_string
238-
@params.vad_model_path = "https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v5.1.2.bin"
239-
assert_equal @params.vad_model_path, Whisper::Model.pre_converted_models["silero-v5.1.2"].to_path
238+
@params.vad_model_path = "https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v6.2.0.bin"
239+
assert_equal @params.vad_model_path, Whisper::Model.pre_converted_models["silero-v6.2.0"].to_path
240240
end
241241

242242
def test_vad_model_path_with_URI
243-
@params.vad_model_path = URI("https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v5.1.2.bin")
244-
assert_equal @params.vad_model_path, Whisper::Model.pre_converted_models["silero-v5.1.2"].to_path
243+
@params.vad_model_path = URI("https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v6.2.0.bin")
244+
assert_equal @params.vad_model_path, Whisper::Model.pre_converted_models["silero-v6.2.0"].to_path
245245
end
246246

247247
def test_vad_params
@@ -289,7 +289,7 @@ def test_new_with_kw_args_default_values(param)
289289
in [/_user_data\Z/, *]
290290
Object.new
291291
in [:vad_model_path, *]
292-
Whisper::Model.pre_converted_models["silero-v5.1.2"].to_path
292+
Whisper::Model.pre_converted_models["silero-v6.2.0"].to_path
293293
in [:vad_params, *]
294294
Whisper::VAD::Params.new
295295
end

src/whisper/bindings/ruby/test/test_vad.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ def setup
66
vad_params = Whisper::VAD::Params.new
77
@params = Whisper::Params.new(
88
vad: true,
9-
vad_model_path: "silero-v5.1.2",
9+
vad_model_path: "silero-v6.2.0",
1010
vad_params:
1111
)
1212
end

src/whisper/bindings/ruby/test/test_vad_context.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
class TestVADContext < TestBase
44
def test_initialize
5-
context = Whisper::VAD::Context.new("silero-v5.1.2")
5+
context = Whisper::VAD::Context.new("silero-v6.2.0")
66
assert_instance_of Whisper::VAD::Context, context
77
end
88

99
def test_detect
10-
context = Whisper::VAD::Context.new("silero-v5.1.2")
10+
context = Whisper::VAD::Context.new("silero-v6.2.0")
1111
segments = context.detect(AUDIO, Whisper::VAD::Params.new)
1212
assert_instance_of Whisper::VAD::Segments, segments
1313

@@ -32,7 +32,7 @@ def test_detect
3232
assert_equal segment.start_time, start_time
3333
assert_equal segment.end_time, end_time
3434

35-
assert_equal 5, segments.length
35+
assert_equal 4, segments.length
3636
end
3737

3838
def test_invalid_model_type
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
set( CMAKE_SYSTEM_NAME Darwin )
2+
set( CMAKE_SYSTEM_PROCESSOR arm64 )
3+
4+
set( target arm64-apple-darwin-macho )
5+
6+
set( CMAKE_C_COMPILER clang )
7+
set( CMAKE_CXX_COMPILER clang++ )
8+
9+
set( CMAKE_C_COMPILER_TARGET ${target} )
10+
set( CMAKE_CXX_COMPILER_TARGET ${target} )
11+
12+
set( arch_c_flags "-march=armv8.4-a -fvectorize -ffp-model=fast -fno-finite-math-only" )
13+
set( warn_c_flags "-Wno-format -Wno-unused-variable -Wno-unused-function" )
14+
15+
set( CMAKE_C_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" )
16+
set( CMAKE_CXX_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" )
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
set( CMAKE_SYSTEM_NAME Windows )
2+
set( CMAKE_SYSTEM_PROCESSOR arm64 )
3+
4+
set( target arm64-pc-windows-msvc )
5+
6+
set( CMAKE_C_COMPILER clang )
7+
set( CMAKE_CXX_COMPILER clang++ )
8+
9+
set( CMAKE_C_COMPILER_TARGET ${target} )
10+
set( CMAKE_CXX_COMPILER_TARGET ${target} )
11+
12+
set( arch_c_flags "-march=armv8.7-a -fvectorize -ffp-model=fast -fno-finite-math-only" )
13+
set( warn_c_flags "-Wno-format -Wno-unused-variable -Wno-unused-function -Wno-gnu-zero-variadic-macro-arguments" )
14+
15+
set( CMAKE_C_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" )
16+
set( CMAKE_CXX_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" )
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
set(CMAKE_SYSTEM_NAME Linux)
2+
set(CMAKE_SYSTEM_PROCESSOR riscv64)
3+
set(CMAKE_SYSTEM_VERSION 1)
4+
5+
if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(riscv)")
6+
message(STATUS "HOST SYSTEM ${CMAKE_HOST_SYSTEM_PROCESSOR}")
7+
else()
8+
set(GNU_MACHINE riscv64-unknown-linux-gnu CACHE STRING "GNU compiler triple")
9+
if (DEFINED ENV{RISCV_ROOT_PATH})
10+
file(TO_CMAKE_PATH $ENV{RISCV_ROOT_PATH} RISCV_ROOT_PATH)
11+
else()
12+
message(FATAL_ERROR "RISCV_ROOT_PATH env must be defined")
13+
endif()
14+
15+
set(RISCV_ROOT_PATH ${RISCV_ROOT_PATH} CACHE STRING "root path to riscv toolchain")
16+
set(CMAKE_C_COMPILER ${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-gnu-gcc)
17+
set(CMAKE_CXX_COMPILER ${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-gnu-g++)
18+
set(CMAKE_STRIP ${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-gnu-strip)
19+
set(CMAKE_FIND_ROOT_PATH "${RISCV_ROOT_PATH}/riscv64-unknown-linux-gnu")
20+
set(CMAKE_SYSROOT "${RISCV_ROOT_PATH}/sysroot")
21+
endif()
22+
23+
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
24+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
25+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
26+
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
27+
set(CMAKE_C_FLAGS "-march=rv64gcv_zfh_zba_zicbop -mabi=lp64d ${CMAKE_C_FLAGS}")
28+
set(CMAKE_CXX_FLAGS "-march=rv64gcv_zfh_zba_zicbop -mabi=lp64d ${CXX_FLAGS}")
29+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -latomic")
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
set( CMAKE_SYSTEM_NAME Windows )
2+
set( CMAKE_SYSTEM_PROCESSOR x86_64 )
3+
4+
set( CMAKE_C_COMPILER clang )
5+
set( CMAKE_CXX_COMPILER clang++ )

src/whisper/examples/addon.node/vad-example.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const vadParams = {
2323
max_len: 0,
2424
// VAD parameters
2525
vad: true,
26-
vad_model: path.join(__dirname, "../../models/ggml-silero-v5.1.2.bin"), // You need to download this model
26+
vad_model: path.join(__dirname, "../../models/ggml-silero-v6.2.0.bin"), // You need to download this model
2727
vad_threshold: 0.5,
2828
vad_min_speech_duration_ms: 250,
2929
vad_min_silence_duration_ms: 100,
@@ -63,7 +63,7 @@ async function runVADExample() {
6363
const fs = require('fs');
6464
if (!fs.existsSync(vadParams.vad_model)) {
6565
console.log("⚠️ VAD model not found. Please download the VAD model first:");
66-
console.log(" ./models/download-vad-model.sh silero-v5.1.2");
66+
console.log(" ./models/download-vad-model.sh silero-v6.2.0");
6767
console.log(" Or run: python models/convert-silero-vad-to-ggml.py");
6868
console.log("\n Falling back to traditional transcription without VAD...\n");
6969

src/whisper/examples/talk-llama/llama-arch.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ static const std::map<llm_arch, const char *> LLM_ARCH_NAMES = {
9090
{ LLM_ARCH_BAILINGMOE2, "bailingmoe2" },
9191
{ LLM_ARCH_DOTS1, "dots1" },
9292
{ LLM_ARCH_ARCEE, "arcee" },
93+
{ LLM_ARCH_AFMOE, "afmoe" },
9394
{ LLM_ARCH_ERNIE4_5, "ernie4_5" },
9495
{ LLM_ARCH_ERNIE4_5_MOE, "ernie4_5-moe" },
9596
{ LLM_ARCH_HUNYUAN_MOE, "hunyuan-moe" },
@@ -333,6 +334,36 @@ static const std::map<llm_arch, std::map<llm_tensor, const char *>> LLM_TENSOR_N
333334
{ LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
334335
},
335336
},
337+
{
338+
LLM_ARCH_AFMOE,
339+
{
340+
{ LLM_TENSOR_TOKEN_EMBD, "token_embd" },
341+
{ LLM_TENSOR_OUTPUT_NORM, "output_norm" },
342+
{ LLM_TENSOR_OUTPUT, "output" },
343+
{ LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
344+
{ LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
345+
{ LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
346+
{ LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
347+
{ LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
348+
{ LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
349+
{ LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
350+
{ LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
351+
{ LLM_TENSOR_ATTN_GATE, "blk.%d.attn_gate" },
352+
{ LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
353+
{ LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
354+
{ LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
355+
{ LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
356+
{ LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
357+
{ LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
358+
{ LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
359+
{ LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
360+
{ LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
361+
{ LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
362+
{ LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
363+
{ LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
364+
{ LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" },
365+
},
366+
},
336367
{
337368
LLM_ARCH_LLAMA4,
338369
{
@@ -2444,6 +2475,7 @@ static const std::map<llm_tensor, llm_tensor_info> LLM_TENSOR_INFOS = {
24442475
{LLM_TENSOR_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
24452476
{LLM_TENSOR_ATTN_QKV, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
24462477
{LLM_TENSOR_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2478+
{LLM_TENSOR_ATTN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
24472479
{LLM_TENSOR_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
24482480
{LLM_TENSOR_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
24492481
{LLM_TENSOR_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},

src/whisper/examples/talk-llama/llama-arch.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ enum llm_arch {
9494
LLM_ARCH_BAILINGMOE2,
9595
LLM_ARCH_DOTS1,
9696
LLM_ARCH_ARCEE,
97+
LLM_ARCH_AFMOE,
9798
LLM_ARCH_ERNIE4_5,
9899
LLM_ARCH_ERNIE4_5_MOE,
99100
LLM_ARCH_HUNYUAN_MOE,
@@ -312,6 +313,7 @@ enum llm_tensor {
312313
LLM_TENSOR_ATTN_POST_NORM,
313314
LLM_TENSOR_ATTN_ROT_EMBD,
314315
LLM_TENSOR_ATTN_SINKS,
316+
LLM_TENSOR_ATTN_GATE,
315317
LLM_TENSOR_FFN_GATE_INP,
316318
LLM_TENSOR_FFN_GATE_INP_SHEXP,
317319
LLM_TENSOR_FFN_NORM,

0 commit comments

Comments
 (0)