diff --git a/bindings/ruby/Rakefile b/bindings/ruby/Rakefile index 7b521b3bd..2327651a0 100644 --- a/bindings/ruby/Rakefile +++ b/bindings/ruby/Rakefile @@ -84,6 +84,21 @@ else end end +TEST_PARAKEET_MODEL = "test/fixtures/for-tests-ggml-parakeet-tdt.bin" +TEST_PARAKEET_MODEL_SRC = File.expand_path(File.join(__dir__, "..", "..", "models", "for-tests-ggml-parakeet-tdt.bin")) +TEST_PARAKEET_MODEL_DIR = TEST_PARAKEET_MODEL.pathmap("%d") +directory TEST_PARAKEET_MODEL_DIR +if File.exist? TEST_PARAKEET_MODEL_SRC + file TEST_PARAKEET_MODEL => [TEST_PARAKEET_MODEL_SRC, TEST_PARAKEET_MODEL_DIR] do |t| + symlink t.source, t.name + end +else + require "open-uri" + file TEST_PARAKEET_MODEL => TEST_PARAKEET_MODEL_DIR do |t| + File.write t.name, URI("https://github.com/ggml-org/whisper.cpp/raw/refs/heads/master/models/for-tests-ggml-parakeet-tdt.bin").read + end +end + TEST_MEMORY_VIEW = "test/jfk_reader/jfk_reader.#{RbConfig::CONFIG['DLEXT']}" file TEST_MEMORY_VIEW => "test/jfk_reader/jfk_reader.c" do |t| chdir "test/jfk_reader" do @@ -93,4 +108,4 @@ file TEST_MEMORY_VIEW => "test/jfk_reader/jfk_reader.c" do |t| end CLEAN.include TEST_MEMORY_VIEW -task test: [LIB_FILE, TEST_MEMORY_VIEW, TEST_FIXTURE_AUDIO] +task test: [LIB_FILE, TEST_MEMORY_VIEW, TEST_FIXTURE_AUDIO, TEST_PARAKEET_MODEL] diff --git a/bindings/ruby/test/test_parakeet.rb b/bindings/ruby/test/test_parakeet.rb index 97e9cc7e1..cc656dc90 100644 --- a/bindings/ruby/test/test_parakeet.rb +++ b/bindings/ruby/test/test_parakeet.rb @@ -8,7 +8,7 @@ class TestParakeet < TestBase $stdout = StringIO.new Parakeet.log_set proc {|level, message, _| puts [level, message].join(": ")}, nil - Parakeet::Context.new("parakeet-tdt-0.6b-v3") + Parakeet::Context.new("test/fixtures/for-tests-ggml-parakeet-tdt.bin") sleep 0.1 $stdout.rewind logs = $stdout.string diff --git a/bindings/ruby/test/test_parakeet_callback.rb b/bindings/ruby/test/test_parakeet_callback.rb index 1c2d7e47f..dfec13799 100644 --- a/bindings/ruby/test/test_parakeet_callback.rb +++ b/bindings/ruby/test/test_parakeet_callback.rb @@ -2,6 +2,8 @@ require_relative "helper" class TestParakeetCallback < TestBase def setup + omit "Skip not to download large model" if ENV["CI"] + Whisper.instance_variable_set "@whisper", nil GC.start @params = Parakeet::Params.new diff --git a/bindings/ruby/test/test_parakeet_context.rb b/bindings/ruby/test/test_parakeet_context.rb index c5b464c7e..c5e151b52 100644 --- a/bindings/ruby/test/test_parakeet_context.rb +++ b/bindings/ruby/test/test_parakeet_context.rb @@ -3,6 +3,8 @@ require "stringio" class TestParakeetContext < TestBase def setup + omit "Skip not to download large model" if ENV["CI"] + Whisper.instance_variable_set "@whisper", nil GC.start diff --git a/bindings/ruby/test/test_parakeet_segment.rb b/bindings/ruby/test/test_parakeet_segment.rb index b342fed3e..37b5806d9 100644 --- a/bindings/ruby/test/test_parakeet_segment.rb +++ b/bindings/ruby/test/test_parakeet_segment.rb @@ -2,6 +2,8 @@ require_relative "helper" class TestParakeetSegment < TestBase def setup + omit "Skip not to download large model" if ENV["CI"] + @parakeet = Parakeet::Context.new("parakeet-tdt-0.6b-v3") @parakeet.transcribe AUDIO, Parakeet::Params.new end diff --git a/bindings/ruby/test/test_parakeet_token.rb b/bindings/ruby/test/test_parakeet_token.rb index c6b5e0fc0..4e1455662 100644 --- a/bindings/ruby/test/test_parakeet_token.rb +++ b/bindings/ruby/test/test_parakeet_token.rb @@ -15,6 +15,8 @@ class TestParakeetToken < TestBase ] def setup + omit "Skip not to download large model" if ENV["CI"] + Whisper.instance_variable_set "@whisper", nil GC.start