mirror of
https://github.com/ggerganov/whisper.cpp
synced 2026-03-07 07:29:21 +01:00
* ruby : Bump version to 1.3.6 * Fix code in example * Add sample code to transcribe from MemoryView * Define GetVADContext macro * Use GetVADContext * Extract parse_full_args function * Use parse_full_args in ruby_whisper_full_parallel * Free samples after use * Check return value of parse_full_args() * Define GetVADParams macro * Add VAD::Context#segments_from_samples * Add tests for VAD::Context#segments_from_samples * Add signature for VAD::Context#segments_from_samples * Add sample code for VAD::Context#segments_from_samples * Add test for Whisper::Context#transcribe with Pathname * Make Whisper::Context#transcribe and Whisper::VAD::Context#detect accept Pathname * Update signature of Whisper::Context#transcribe * Fix variable name * Don't free memory view * Make parse_full_args return struct * Fallback when failed to get MemoryView * Add num of samples when too long * Check members of MemoryView * Fix a typo * Remove unnecessary include * Fix a typo * Fix a typo * Care the case of MemoryView doesn't fit spec * Add TODO comment * Add optimazation option to compiler flags * Use ALLOC_N instead of malloc * Add description to sample code * Rename and change args: parse_full_args -> parse_samples * Free samples when exception raised * Assign type check result to a variable * Define wrapper function of whisper_full * Change signature of parse_samples for rb_ensure * Ensure release MemoryView * Extract fill_samples function * Free samples memory when filling it failed * Free samples memory when transcription failed * Prepare transcription in wrapper funciton * Change function name * Simplify function boundary
24 lines
765 B
Ruby
24 lines
765 B
Ruby
require "mkmf"
|
|
require_relative "options"
|
|
require_relative "dependencies"
|
|
|
|
cmake = find_executable("cmake") || abort
|
|
options = Options.new(cmake).to_s
|
|
have_library("gomp") rescue nil
|
|
libs = Dependencies.new(cmake, options).to_s
|
|
|
|
$CFLAGS << " -O3 -march=native"
|
|
$INCFLAGS << " -Isources/include -Isources/ggml/include -Isources/examples"
|
|
$LOCAL_LIBS << " #{libs}"
|
|
$cleanfiles << " build #{libs}"
|
|
|
|
create_makefile "whisper" do |conf|
|
|
conf << <<~EOF
|
|
$(TARGET_SO): #{libs}
|
|
#{libs}: cmake-targets
|
|
cmake-targets:
|
|
#{"\t"}#{cmake} -S sources -B build -D BUILD_SHARED_LIBS=OFF -D CMAKE_ARCHIVE_OUTPUT_DIRECTORY=#{__dir__} -D CMAKE_POSITION_INDEPENDENT_CODE=ON #{options}
|
|
#{"\t"}#{cmake} --build build --config Release --target common whisper
|
|
EOF
|
|
end
|