2024-11-14 04:52:56 +09:00
|
|
|
require_relative "helper"
|
2024-10-28 22:43:27 +09:00
|
|
|
|
2024-11-14 04:52:56 +09:00
|
|
|
class TestSegment < TestBase
|
2024-10-28 22:43:27 +09:00
|
|
|
def test_iteration
|
|
|
|
whisper.each_segment do |segment|
|
|
|
|
assert_instance_of Whisper::Segment, segment
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_enumerator
|
|
|
|
enum = whisper.each_segment
|
|
|
|
assert_instance_of Enumerator, enum
|
|
|
|
enum.to_a.each_with_index do |segment, index|
|
|
|
|
assert_instance_of Whisper::Segment, segment
|
|
|
|
assert_kind_of Integer, index
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_start_time
|
|
|
|
i = 0
|
|
|
|
whisper.each_segment do |segment|
|
|
|
|
assert_equal 0, segment.start_time if i == 0
|
|
|
|
i += 1
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_end_time
|
|
|
|
i = 0
|
|
|
|
whisper.each_segment do |segment|
|
|
|
|
assert_equal whisper.full_get_segment_t1(i) * 10, segment.end_time
|
|
|
|
i += 1
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2024-12-22 04:52:06 +09:00
|
|
|
def test_no_speech_prob
|
|
|
|
no_speech_prob = nil
|
|
|
|
whisper.each_segment do |segment|
|
|
|
|
no_speech_prob = segment.no_speech_prob
|
|
|
|
end
|
|
|
|
assert no_speech_prob > 0.0
|
|
|
|
end
|
|
|
|
|
2024-10-28 22:43:27 +09:00
|
|
|
def test_on_new_segment
|
|
|
|
params = Whisper::Params.new
|
|
|
|
seg = nil
|
|
|
|
index = 0
|
|
|
|
params.on_new_segment do |segment|
|
|
|
|
assert_instance_of Whisper::Segment, segment
|
|
|
|
if index == 0
|
|
|
|
seg = segment
|
|
|
|
assert_equal 0, segment.start_time
|
|
|
|
assert_match /ask not what your country can do for you, ask what you can do for your country/, segment.text
|
|
|
|
end
|
|
|
|
index += 1
|
|
|
|
end
|
2024-11-14 04:52:56 +09:00
|
|
|
whisper.transcribe(AUDIO, params)
|
2024-10-28 22:43:27 +09:00
|
|
|
assert_equal 0, seg.start_time
|
|
|
|
assert_match /ask not what your country can do for you, ask what you can do for your country/, seg.text
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_on_new_segment_twice
|
|
|
|
params = Whisper::Params.new
|
|
|
|
seg = nil
|
|
|
|
params.on_new_segment do |segment|
|
|
|
|
seg = segment
|
|
|
|
return
|
|
|
|
end
|
|
|
|
params.on_new_segment do |segment|
|
|
|
|
assert_same seg, segment
|
|
|
|
return
|
|
|
|
end
|
2024-11-14 04:52:56 +09:00
|
|
|
whisper.transcribe(AUDIO, params)
|
2024-10-28 22:43:27 +09:00
|
|
|
end
|
|
|
|
end
|