|
|
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 |
|
|
@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 |
|
|
|