mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2025-06-01 07:25:49 +02:00
* Add VAD models * Extract function to normalize model path from ruby_whisper_initialize() * Define ruby_whisper_vad_params struct * Add VAD-related features to Whisper::Params * Add tests for VAD-related features * Define Whisper::VADParams * Add Whisper::VAD::Params attributes * Add test suite for VAD::Params * Make older test to follow namespace change * Add test for transcription with VAD * Add assertion for test_vad_params * Add signatures for VAD-related methods * Define VAD::Params#== * Add test for VAD::Params#== * Fix Params#vad_params * Add test for Params#vad_params * Fix signature of Params#vad_params * Use macro to define VAD::Params params * Define VAD::Params#initialize * Add tests for VAD::Params#initialize * Add signature for VAD::Params.new * Add documentation on VAD in README * Wrap register_callbask in prepare_transcription for clear meanings * Set whisper_params.vad_params just before transcription * Don't touch NULL * Define ruby_whisper_params_type * Use TypedData_XXX for ruby_whisper_params instead of Data_XXX * Remove unused functions * Define rb_whisper_model_data_type * Use TypedData_XXX for ruby_whisper_model instead of Data_XXX * Define ruby_whisper_segment_type * Use TypedData_XXX for ruby_whisper_segment instead of Data_XXX * Define ruby_whisper_type * Use TypedData_XXX for ruby_whisper instead of Data_XXX * Qualify with const
104 lines
2.5 KiB
Ruby
104 lines
2.5 KiB
Ruby
require_relative "helper"
|
|
|
|
class TestVADParams < TestBase
|
|
PARAM_NAMES = [
|
|
:threshold,
|
|
:min_speech_duration_ms,
|
|
:min_silence_duration_ms,
|
|
:max_speech_duration_s,
|
|
:speech_pad_ms,
|
|
:samples_overlap
|
|
]
|
|
|
|
def setup
|
|
@params = Whisper::VAD::Params.new
|
|
end
|
|
|
|
def test_new
|
|
params = Whisper::VAD::Params.new
|
|
assert_kind_of Whisper::VAD::Params, params
|
|
end
|
|
|
|
def test_threshold
|
|
assert_in_delta @params.threshold, 0.5
|
|
@params.threshold = 0.7
|
|
assert_in_delta @params.threshold, 0.7
|
|
end
|
|
|
|
def test_min_speech_duration
|
|
pend
|
|
end
|
|
|
|
def test_min_speech_duration_ms
|
|
assert_equal 250, @params.min_speech_duration_ms
|
|
@params.min_speech_duration_ms = 500
|
|
assert_equal 500, @params.min_speech_duration_ms
|
|
end
|
|
|
|
def test_min_silence_duration_ms
|
|
assert_equal 100, @params.min_silence_duration_ms
|
|
@params.min_silence_duration_ms = 200
|
|
assert_equal 200, @params.min_silence_duration_ms
|
|
end
|
|
|
|
def test_max_speech_duration
|
|
pend
|
|
end
|
|
|
|
def test_max_speech_duration_s
|
|
assert @params.max_speech_duration_s >= 10e37 # Defaults to FLT_MAX
|
|
@params.max_speech_duration_s = 60.0
|
|
assert_equal 60.0, @params.max_speech_duration_s
|
|
end
|
|
|
|
def test_speech_pad_ms
|
|
assert_equal 30, @params.speech_pad_ms
|
|
@params.speech_pad_ms = 50
|
|
assert_equal 50, @params.speech_pad_ms
|
|
end
|
|
|
|
def test_samples_overlap
|
|
assert_in_delta @params.samples_overlap, 0.1
|
|
@params.samples_overlap = 0.5
|
|
assert_in_delta @params.samples_overlap, 0.5
|
|
end
|
|
|
|
def test_equal
|
|
assert_equal @params, Whisper::VAD::Params.new
|
|
end
|
|
|
|
def test_new_with_kw_args
|
|
params = Whisper::VAD::Params.new(threshold: 0.7)
|
|
assert_in_delta params.threshold, 0.7
|
|
assert_equal 250, params.min_speech_duration_ms
|
|
end
|
|
|
|
def test_new_with_kw_args_non_existent
|
|
assert_raise ArgumentError do
|
|
Whisper::VAD::Params.new(non_existent: "value")
|
|
end
|
|
end
|
|
|
|
data(PARAM_NAMES.collect {|param| [param, param]}.to_h)
|
|
def test_new_with_kw_args_default_values(param)
|
|
default_value = @params.send(param)
|
|
value = default_value + 1
|
|
params = Whisper::VAD::Params.new(param => value)
|
|
if Float === value
|
|
assert_in_delta value, params.send(param)
|
|
else
|
|
assert_equal value, params.send(param)
|
|
end
|
|
|
|
PARAM_NAMES.reject {|name| name == param}.each do |name|
|
|
expected = @params.send(name)
|
|
actual = params.send(name)
|
|
if Float === expected
|
|
assert_in_delta expected, actual
|
|
else
|
|
assert_equal expected, actual
|
|
end
|
|
end
|
|
end
|
|
end
|