Spaces:
Running
Running
ruby : Follow source tree change (#2580)
Browse files* Follow whisper.cpp source tree change
* Update whispercpp.gemspec
* Follow whisper.cpp log level change
* Fix paths in GitHub workflow for Ruby bindings
* Use GitHub workflow setting for dependency definition
* Use ternary operator
- .github/workflows/bindings-ruby.yml +30 -50
- bindings/ruby/Rakefile +8 -6
- bindings/ruby/ext/.gitignore +11 -32
- bindings/ruby/ext/cpu.mk +9 -0
- bindings/ruby/ext/extconf.rb +24 -15
- bindings/ruby/ext/metal-embed.mk +16 -13
- bindings/ruby/ext/metal.mk +6 -0
- bindings/ruby/extsources.rb +6 -0
- bindings/ruby/extsources.yaml +0 -31
- bindings/ruby/tests/test_whisper.rb +1 -1
- bindings/ruby/whispercpp.gemspec +5 -5
.github/workflows/bindings-ruby.yml
CHANGED
|
@@ -3,61 +3,41 @@ on:
|
|
| 3 |
push:
|
| 4 |
paths:
|
| 5 |
- bindings/ruby/**
|
| 6 |
-
- src
|
| 7 |
-
-
|
| 8 |
-
-
|
| 9 |
-
-
|
| 10 |
-
-
|
| 11 |
-
-
|
| 12 |
-
-
|
| 13 |
-
-
|
| 14 |
-
-
|
| 15 |
-
-
|
| 16 |
-
- ggml
|
| 17 |
-
- ggml
|
| 18 |
-
- ggml
|
| 19 |
-
- ggml
|
| 20 |
-
- ggml
|
| 21 |
-
- ggml/src/ggml-blas.cpp
|
| 22 |
-
- ggml/include/ggml.h
|
| 23 |
-
- ggml/include/ggml-alloc.h
|
| 24 |
-
- ggml/include/ggml-backend.h
|
| 25 |
-
- ggml/include/ggml-cuda.h
|
| 26 |
-
- ggml/include/ggml-kompute.h
|
| 27 |
-
- ggml/include/ggml-metal.h
|
| 28 |
-
- ggml/include/ggml-sycl.h
|
| 29 |
-
- ggml/include/ggml-vulkan.h
|
| 30 |
-
- ggml/include/ggml-blas.h
|
| 31 |
- scripts/get-flags.mk
|
| 32 |
- examples/dr_wav.h
|
| 33 |
pull_request:
|
| 34 |
paths:
|
| 35 |
- bindings/ruby/**
|
| 36 |
-
- src
|
| 37 |
-
-
|
| 38 |
-
-
|
| 39 |
-
-
|
| 40 |
-
-
|
| 41 |
-
-
|
| 42 |
-
-
|
| 43 |
-
-
|
| 44 |
-
-
|
| 45 |
-
-
|
| 46 |
-
- ggml
|
| 47 |
-
- ggml
|
| 48 |
-
- ggml
|
| 49 |
-
- ggml
|
| 50 |
-
- ggml
|
| 51 |
-
- ggml/src/ggml-blas.cpp
|
| 52 |
-
- ggml/include/ggml.h
|
| 53 |
-
- ggml/include/ggml-alloc.h
|
| 54 |
-
- ggml/include/ggml-backend.h
|
| 55 |
-
- ggml/include/ggml-cuda.h
|
| 56 |
-
- ggml/include/ggml-kompute.h
|
| 57 |
-
- ggml/include/ggml-metal.h
|
| 58 |
-
- ggml/include/ggml-sycl.h
|
| 59 |
-
- ggml/include/ggml-vulkan.h
|
| 60 |
-
- ggml/include/ggml-blas.h
|
| 61 |
- scripts/get-flags.mk
|
| 62 |
- examples/dr_wav.h
|
| 63 |
|
|
|
|
| 3 |
push:
|
| 4 |
paths:
|
| 5 |
- bindings/ruby/**
|
| 6 |
+
- src/**/*.c
|
| 7 |
+
- src/**/*.cpp
|
| 8 |
+
- src/**/*.h
|
| 9 |
+
- src/**/*.m
|
| 10 |
+
- src/**/*.metal
|
| 11 |
+
- include/**/*.c
|
| 12 |
+
- include/**/*.cpp
|
| 13 |
+
- include/**/*.h
|
| 14 |
+
- include/**/*.m
|
| 15 |
+
- include/**/*.metal
|
| 16 |
+
- ggml/**/*.c
|
| 17 |
+
- ggml/**/*.cpp
|
| 18 |
+
- ggml/**/*.h
|
| 19 |
+
- ggml/**/*.m
|
| 20 |
+
- ggml/**/*.metal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
- scripts/get-flags.mk
|
| 22 |
- examples/dr_wav.h
|
| 23 |
pull_request:
|
| 24 |
paths:
|
| 25 |
- bindings/ruby/**
|
| 26 |
+
- src/**/*.c
|
| 27 |
+
- src/**/*.cpp
|
| 28 |
+
- src/**/*.h
|
| 29 |
+
- src/**/*.m
|
| 30 |
+
- src/**/*.metal
|
| 31 |
+
- include/**/*.c
|
| 32 |
+
- include/**/*.cpp
|
| 33 |
+
- include/**/*.h
|
| 34 |
+
- include/**/*.m
|
| 35 |
+
- include/**/*.metal
|
| 36 |
+
- ggml/**/*.c
|
| 37 |
+
- ggml/**/*.cpp
|
| 38 |
+
- ggml/**/*.h
|
| 39 |
+
- ggml/**/*.m
|
| 40 |
+
- ggml/**/*.metal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
- scripts/get-flags.mk
|
| 42 |
- examples/dr_wav.h
|
| 43 |
|
bindings/ruby/Rakefile
CHANGED
|
@@ -1,20 +1,22 @@
|
|
| 1 |
require 'rake/clean'
|
| 2 |
require "bundler/gem_tasks"
|
| 3 |
-
require "pathname"
|
| 4 |
-
require "yaml"
|
| 5 |
require "rake/testtask"
|
|
|
|
| 6 |
|
| 7 |
-
extsources = YAML.load_file("extsources.yaml")
|
| 8 |
SOURCES = FileList[]
|
| 9 |
-
|
|
|
|
| 10 |
basename = src.pathmap("%f")
|
| 11 |
-
dest = basename == "LICENSE" ? basename :
|
|
|
|
| 12 |
file src
|
| 13 |
-
|
|
|
|
| 14 |
cp t.source, t.name
|
| 15 |
end
|
| 16 |
SOURCES.include dest
|
| 17 |
end
|
|
|
|
| 18 |
CLEAN.include SOURCES
|
| 19 |
CLEAN.include FileList[
|
| 20 |
"ext/*.o",
|
|
|
|
| 1 |
require 'rake/clean'
|
| 2 |
require "bundler/gem_tasks"
|
|
|
|
|
|
|
| 3 |
require "rake/testtask"
|
| 4 |
+
require_relative "extsources"
|
| 5 |
|
|
|
|
| 6 |
SOURCES = FileList[]
|
| 7 |
+
|
| 8 |
+
EXTSOURCES.each do |src|
|
| 9 |
basename = src.pathmap("%f")
|
| 10 |
+
dest = basename == "LICENSE" ? basename : src.pathmap("%{../..,ext}p")
|
| 11 |
+
dir = dest.pathmap("%d")
|
| 12 |
file src
|
| 13 |
+
directory dir
|
| 14 |
+
file dest => [src, dir] do |t|
|
| 15 |
cp t.source, t.name
|
| 16 |
end
|
| 17 |
SOURCES.include dest
|
| 18 |
end
|
| 19 |
+
|
| 20 |
CLEAN.include SOURCES
|
| 21 |
CLEAN.include FileList[
|
| 22 |
"ext/*.o",
|
bindings/ruby/ext/.gitignore
CHANGED
|
@@ -1,35 +1,14 @@
|
|
| 1 |
Makefile
|
| 2 |
-
ggml.c
|
| 3 |
-
ggml.h
|
| 4 |
-
ggml-alloc.c
|
| 5 |
-
ggml-alloc.h
|
| 6 |
-
ggml-aarch64.c
|
| 7 |
-
ggml-aarch64.h
|
| 8 |
-
ggml-backend.cpp
|
| 9 |
-
ggml-backend-impl.h
|
| 10 |
-
ggml-backend.c
|
| 11 |
-
ggml-backend.h
|
| 12 |
-
ggml-common.h
|
| 13 |
-
ggml-cpu-impl.h
|
| 14 |
-
ggml-metal.m
|
| 15 |
-
ggml-metal.metal
|
| 16 |
-
ggml-metal-embed.metal
|
| 17 |
-
ggml-blas.cpp
|
| 18 |
-
ggml-cuda.h
|
| 19 |
-
ggml-impl.h
|
| 20 |
-
ggml-kompute.h
|
| 21 |
-
ggml-metal.h
|
| 22 |
-
ggml-opencl.h
|
| 23 |
-
ggml-quants.c
|
| 24 |
-
ggml-quants.h
|
| 25 |
-
ggml-sycl.h
|
| 26 |
-
ggml-vulkan.h
|
| 27 |
-
ggml-blas.h
|
| 28 |
-
get-flags.mk
|
| 29 |
-
whisper.cpp
|
| 30 |
-
whisper.h
|
| 31 |
-
dr_wav.h
|
| 32 |
-
depend
|
| 33 |
-
whisper.bundle
|
| 34 |
whisper.so
|
|
|
|
| 35 |
whisper.dll
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
Makefile
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
whisper.so
|
| 3 |
+
whisper.bundle
|
| 4 |
whisper.dll
|
| 5 |
+
depend
|
| 6 |
+
scripts/get-flags.mk
|
| 7 |
+
*.o
|
| 8 |
+
*.c
|
| 9 |
+
*.cpp
|
| 10 |
+
*.h
|
| 11 |
+
*.m
|
| 12 |
+
*.metal
|
| 13 |
+
!ruby_whisper.cpp
|
| 14 |
+
!ruby_whisper.h
|
bindings/ruby/ext/cpu.mk
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
ggml/src/ggml-cpu/ggml-cpu-cpp.o: \
|
| 2 |
+
ggml/src/ggml-cpu/ggml-cpu.cpp \
|
| 3 |
+
ggml/include/ggml-backend.h \
|
| 4 |
+
ggml/include/ggml.h \
|
| 5 |
+
ggml/include/ggml-alloc.h \
|
| 6 |
+
ggml/src/ggml-backend-impl.h \
|
| 7 |
+
ggml/include/ggml-cpu.h \
|
| 8 |
+
ggml/src/ggml-impl.h
|
| 9 |
+
$(CXX) $(CXXFLAGS) -c $< -o $@
|
bindings/ruby/ext/extconf.rb
CHANGED
|
@@ -35,7 +35,7 @@ if $GGML_METAL
|
|
| 35 |
$GGML_METAL_EMBED_LIBRARY = true
|
| 36 |
end
|
| 37 |
|
| 38 |
-
$MK_CPPFLAGS = ''
|
| 39 |
$MK_CFLAGS = '-std=c11 -fPIC'
|
| 40 |
$MK_CXXFLAGS = '-std=c++11 -fPIC'
|
| 41 |
$MK_NVCCFLAGS = '-std=c++11'
|
|
@@ -123,11 +123,11 @@ end
|
|
| 123 |
|
| 124 |
unless ENV['GGML_NO_ACCELERATE']
|
| 125 |
if $UNAME_S == 'Darwin'
|
| 126 |
-
$MK_CPPFLAGS << ' -DGGML_USE_ACCELERATE -DGGML_USE_BLAS'
|
| 127 |
$MK_CPPFLAGS << ' -DACCELERATE_NEW_LAPACK'
|
| 128 |
$MK_CPPFLAGS << ' -DACCELERATE_LAPACK_ILP64'
|
| 129 |
$MK_LDFLAGS << ' -framework Accelerate'
|
| 130 |
-
$OBJ_GGML << 'ggml-blas.o'
|
| 131 |
end
|
| 132 |
end
|
| 133 |
|
|
@@ -135,20 +135,20 @@ if ENV['GGML_OPENBLAS']
|
|
| 135 |
$MK_CPPFLAGS << " -DGGML_USE_BLAS #{`pkg-config --cflags-only-I openblas`.chomp}"
|
| 136 |
$MK_CFLAGS << " #{`pkg-config --cflags-only-other openblas)`.chomp}"
|
| 137 |
$MK_LDFLAGS << " #{`pkg-config --libs openblas`}"
|
| 138 |
-
$OBJ_GGML << 'ggml-blas.o'
|
| 139 |
end
|
| 140 |
|
| 141 |
if ENV['GGML_OPENBLAS64']
|
| 142 |
$MK_CPPFLAGS << " -DGGML_USE_BLAS #{`pkg-config --cflags-only-I openblas64`.chomp}"
|
| 143 |
$MK_CFLAGS << " #{`pkg-config --cflags-only-other openblas64)`.chomp}"
|
| 144 |
$MK_LDFLAGS << " #{`pkg-config --libs openblas64`}"
|
| 145 |
-
$OBJ_GGML << 'ggml-blas.o'
|
| 146 |
end
|
| 147 |
|
| 148 |
if $GGML_METAL
|
| 149 |
$MK_CPPFLAGS << ' -DGGML_USE_METAL'
|
| 150 |
$MK_LDFLAGS << ' -framework Foundation -framework Metal -framework MetalKit'
|
| 151 |
-
$OBJ_GGML << 'ggml-metal.o'
|
| 152 |
|
| 153 |
if ENV['GGML_METAL_NDEBUG']
|
| 154 |
$MK_CPPFLAGS << ' -DGGML_METAL_NDEBUG'
|
|
@@ -156,20 +156,26 @@ if $GGML_METAL
|
|
| 156 |
|
| 157 |
if $GGML_METAL_EMBED_LIBRARY
|
| 158 |
$MK_CPPFLAGS << ' -DGGML_METAL_EMBED_LIBRARY'
|
| 159 |
-
$OBJ_GGML << 'ggml-metal-embed.o'
|
| 160 |
end
|
| 161 |
end
|
| 162 |
|
| 163 |
$OBJ_GGML <<
|
| 164 |
-
'ggml.o' <<
|
| 165 |
-
'ggml-
|
| 166 |
-
'ggml-alloc.o' <<
|
| 167 |
-
'ggml-backend.o' <<
|
| 168 |
-
'ggml-
|
| 169 |
-
'ggml-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 170 |
|
| 171 |
$OBJ_WHISPER <<
|
| 172 |
-
'whisper.o'
|
| 173 |
|
| 174 |
$objs = $OBJ_GGML + $OBJ_WHISPER + $OBJ_COMMON + $OBJ_SDL
|
| 175 |
$objs << "ruby_whisper.o"
|
|
@@ -184,9 +190,12 @@ $LDFLAGS = "#{$MK_LDFLAGS} #{$LDFLAGS}"
|
|
| 184 |
create_makefile('whisper')
|
| 185 |
|
| 186 |
File.open 'Makefile', 'a' do |file|
|
| 187 |
-
file.puts 'include get-flags.mk'
|
|
|
|
| 188 |
|
| 189 |
if $GGML_METAL
|
|
|
|
|
|
|
| 190 |
if $GGML_METAL_EMBED_LIBRARY
|
| 191 |
file.puts 'include metal-embed.mk'
|
| 192 |
end
|
|
|
|
| 35 |
$GGML_METAL_EMBED_LIBRARY = true
|
| 36 |
end
|
| 37 |
|
| 38 |
+
$MK_CPPFLAGS = '-Iggml/include -Iggml/src -Iinclude -Isrc -Iexamples'
|
| 39 |
$MK_CFLAGS = '-std=c11 -fPIC'
|
| 40 |
$MK_CXXFLAGS = '-std=c++11 -fPIC'
|
| 41 |
$MK_NVCCFLAGS = '-std=c++11'
|
|
|
|
| 123 |
|
| 124 |
unless ENV['GGML_NO_ACCELERATE']
|
| 125 |
if $UNAME_S == 'Darwin'
|
| 126 |
+
$MK_CPPFLAGS << ' -DGGML_USE_ACCELERATE -DGGML_USE_BLAS -DGGML_BLAS_USE_ACCELERATE'
|
| 127 |
$MK_CPPFLAGS << ' -DACCELERATE_NEW_LAPACK'
|
| 128 |
$MK_CPPFLAGS << ' -DACCELERATE_LAPACK_ILP64'
|
| 129 |
$MK_LDFLAGS << ' -framework Accelerate'
|
| 130 |
+
$OBJ_GGML << 'ggml/src/ggml-blas/ggml-blas.o'
|
| 131 |
end
|
| 132 |
end
|
| 133 |
|
|
|
|
| 135 |
$MK_CPPFLAGS << " -DGGML_USE_BLAS #{`pkg-config --cflags-only-I openblas`.chomp}"
|
| 136 |
$MK_CFLAGS << " #{`pkg-config --cflags-only-other openblas)`.chomp}"
|
| 137 |
$MK_LDFLAGS << " #{`pkg-config --libs openblas`}"
|
| 138 |
+
$OBJ_GGML << 'ggml/src/ggml-blas/ggml-blas.o'
|
| 139 |
end
|
| 140 |
|
| 141 |
if ENV['GGML_OPENBLAS64']
|
| 142 |
$MK_CPPFLAGS << " -DGGML_USE_BLAS #{`pkg-config --cflags-only-I openblas64`.chomp}"
|
| 143 |
$MK_CFLAGS << " #{`pkg-config --cflags-only-other openblas64)`.chomp}"
|
| 144 |
$MK_LDFLAGS << " #{`pkg-config --libs openblas64`}"
|
| 145 |
+
$OBJ_GGML << 'ggml/src/ggml-blas/ggml-blas.o'
|
| 146 |
end
|
| 147 |
|
| 148 |
if $GGML_METAL
|
| 149 |
$MK_CPPFLAGS << ' -DGGML_USE_METAL'
|
| 150 |
$MK_LDFLAGS << ' -framework Foundation -framework Metal -framework MetalKit'
|
| 151 |
+
$OBJ_GGML << 'ggml/src/ggml-metal/ggml-metal.o'
|
| 152 |
|
| 153 |
if ENV['GGML_METAL_NDEBUG']
|
| 154 |
$MK_CPPFLAGS << ' -DGGML_METAL_NDEBUG'
|
|
|
|
| 156 |
|
| 157 |
if $GGML_METAL_EMBED_LIBRARY
|
| 158 |
$MK_CPPFLAGS << ' -DGGML_METAL_EMBED_LIBRARY'
|
| 159 |
+
$OBJ_GGML << 'ggml/src/ggml-metal/ggml-metal-embed.o'
|
| 160 |
end
|
| 161 |
end
|
| 162 |
|
| 163 |
$OBJ_GGML <<
|
| 164 |
+
'ggml/src/ggml.o' <<
|
| 165 |
+
'ggml/src/ggml-aarch64.o' <<
|
| 166 |
+
'ggml/src/ggml-alloc.o' <<
|
| 167 |
+
'ggml/src/ggml-backend.o' <<
|
| 168 |
+
'ggml/src/ggml-backend-reg.o' <<
|
| 169 |
+
'ggml/src/ggml-opt.o' <<
|
| 170 |
+
'ggml/src/ggml-quants.o' <<
|
| 171 |
+
'ggml/src/ggml-threading.o' <<
|
| 172 |
+
'ggml/src/ggml-cpu/ggml-cpu.o' <<
|
| 173 |
+
'ggml/src/ggml-cpu/ggml-cpu-cpp.o' <<
|
| 174 |
+
'ggml/src/ggml-cpu/ggml-cpu-aarch64.o' <<
|
| 175 |
+
'ggml/src/ggml-cpu/ggml-cpu-quants.o'
|
| 176 |
|
| 177 |
$OBJ_WHISPER <<
|
| 178 |
+
'src/whisper.o'
|
| 179 |
|
| 180 |
$objs = $OBJ_GGML + $OBJ_WHISPER + $OBJ_COMMON + $OBJ_SDL
|
| 181 |
$objs << "ruby_whisper.o"
|
|
|
|
| 190 |
create_makefile('whisper')
|
| 191 |
|
| 192 |
File.open 'Makefile', 'a' do |file|
|
| 193 |
+
file.puts 'include scripts/get-flags.mk'
|
| 194 |
+
file.puts 'include cpu.mk'
|
| 195 |
|
| 196 |
if $GGML_METAL
|
| 197 |
+
file.puts 'include metal.mk'
|
| 198 |
+
|
| 199 |
if $GGML_METAL_EMBED_LIBRARY
|
| 200 |
file.puts 'include metal-embed.mk'
|
| 201 |
end
|
bindings/ruby/ext/metal-embed.mk
CHANGED
|
@@ -1,14 +1,17 @@
|
|
| 1 |
-
ggml-metal-embed.o: \
|
| 2 |
-
ggml-metal.metal \
|
| 3 |
-
ggml-
|
|
|
|
| 4 |
@echo "Embedding Metal library"
|
| 5 |
-
@sed -e '
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
@echo ".
|
| 9 |
-
@echo "_ggml_metallib_start
|
| 10 |
-
@echo "
|
| 11 |
-
@echo ".
|
| 12 |
-
@echo "_ggml_metallib_end
|
| 13 |
-
|
| 14 |
-
|
|
|
|
|
|
|
|
|
| 1 |
+
ggml/src/ggml-metal/ggml-metal-embed.o: \
|
| 2 |
+
ggml/src/ggml-metal/ggml-metal.metal \
|
| 3 |
+
ggml/src/ggml-metal/ggml-metal-impl.h \
|
| 4 |
+
ggml/src/ggml-common.h
|
| 5 |
@echo "Embedding Metal library"
|
| 6 |
+
@sed -e '/__embed_ggml-common.h__/r ggml/src/ggml-common.h' -e '/__embed_ggml-common.h__/d' < ggml/src/ggml-metal/ggml-metal.metal > ggml/src/ggml-metal/ggml-metal-embed.metal.tmp
|
| 7 |
+
@sed -e '/#include "ggml-metal-impl.h"/r ggml/src/ggml-metal/ggml-metal-impl.h' -e '/#include "ggml-metal-impl.h"/d' < ggml/src/ggml-metal/ggml-metal-embed.metal.tmp > ggml/src/ggml-metal/ggml-metal-embed.metal
|
| 8 |
+
$(eval TEMP_ASSEMBLY=$(shell mktemp -d))
|
| 9 |
+
@echo ".section __DATA, __ggml_metallib" > $(TEMP_ASSEMBLY)/ggml-metal-embed.s
|
| 10 |
+
@echo ".globl _ggml_metallib_start" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
|
| 11 |
+
@echo "_ggml_metallib_start:" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
|
| 12 |
+
@echo ".incbin \"ggml/src/ggml-metal/ggml-metal-embed.metal\"" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
|
| 13 |
+
@echo ".globl _ggml_metallib_end" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
|
| 14 |
+
@echo "_ggml_metallib_end:" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
|
| 15 |
+
$(CC) $(CFLAGS) -c $(TEMP_ASSEMBLY)/ggml-metal-embed.s -o $@
|
| 16 |
+
@rm -f ${TEMP_ASSEMBLY}/ggml-metal-embed.s
|
| 17 |
+
@rmdir ${TEMP_ASSEMBLY}
|
bindings/ruby/ext/metal.mk
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
ggml/src/ggml-metal/ggml-metal.o: \
|
| 2 |
+
ggml/src/ggml-metal/ggml-metal.m \
|
| 3 |
+
ggml/src/ggml-metal/ggml-metal-impl.h \
|
| 4 |
+
ggml/include/ggml-metal.h \
|
| 5 |
+
ggml/include/ggml.h
|
| 6 |
+
$(CC) $(CFLAGS) -c $< -o $@
|
bindings/ruby/extsources.rb
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
require "yaml"
|
| 2 |
+
|
| 3 |
+
sources = `git ls-files -z ../..`.split("\x0")
|
| 4 |
+
paths = YAML.load_file("../../.github/workflows/bindings-ruby.yml")[true]["push"]["paths"]
|
| 5 |
+
paths.delete "bindings/ruby/**"
|
| 6 |
+
EXTSOURCES = (Dir.glob(paths, base: "../..").collect {|path| "../../#{path}"} << "../../LICENSE") & sources
|
bindings/ruby/extsources.yaml
DELETED
|
@@ -1,31 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
- ../../src/whisper.cpp
|
| 3 |
-
- ../../include/whisper.h
|
| 4 |
-
- ../../ggml/src/ggml.c
|
| 5 |
-
- ../../ggml/src/ggml-cpu.c
|
| 6 |
-
- ../../ggml/src/ggml-impl.h
|
| 7 |
-
- ../../ggml/src/ggml-aarch64.h
|
| 8 |
-
- ../../ggml/src/ggml-aarch64.c
|
| 9 |
-
- ../../ggml/src/ggml-alloc.c
|
| 10 |
-
- ../../ggml/src/ggml-backend-impl.h
|
| 11 |
-
- ../../ggml/src/ggml-backend.cpp
|
| 12 |
-
- ../../ggml/src/ggml-common.h
|
| 13 |
-
- ../../ggml/src/ggml-quants.h
|
| 14 |
-
- ../../ggml/src/ggml-quants.c
|
| 15 |
-
- ../../ggml/src/ggml-cpu-impl.h
|
| 16 |
-
- ../../ggml/src/ggml-metal.m
|
| 17 |
-
- ../../ggml/src/ggml-metal.metal
|
| 18 |
-
- ../../ggml/src/ggml-blas.cpp
|
| 19 |
-
- ../../ggml/include/ggml.h
|
| 20 |
-
- ../../ggml/include/ggml-alloc.h
|
| 21 |
-
- ../../ggml/include/ggml-backend.h
|
| 22 |
-
- ../../ggml/include/ggml-cpu.h
|
| 23 |
-
- ../../ggml/include/ggml-cuda.h
|
| 24 |
-
- ../../ggml/include/ggml-kompute.h
|
| 25 |
-
- ../../ggml/include/ggml-metal.h
|
| 26 |
-
- ../../ggml/include/ggml-sycl.h
|
| 27 |
-
- ../../ggml/include/ggml-vulkan.h
|
| 28 |
-
- ../../ggml/include/ggml-blas.h
|
| 29 |
-
- ../../scripts/get-flags.mk
|
| 30 |
-
- ../../examples/dr_wav.h
|
| 31 |
-
- ../../LICENSE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bindings/ruby/tests/test_whisper.rb
CHANGED
|
@@ -107,7 +107,7 @@ class TestWhisper < TestBase
|
|
| 107 |
|
| 108 |
assert logs.length > 30
|
| 109 |
logs.each do |log|
|
| 110 |
-
|
| 111 |
assert_same user_data, log[2]
|
| 112 |
end
|
| 113 |
end
|
|
|
|
| 107 |
|
| 108 |
assert logs.length > 30
|
| 109 |
logs.each do |log|
|
| 110 |
+
assert_include [Whisper::LOG_LEVEL_DEBUG, Whisper::LOG_LEVEL_INFO, Whisper::LOG_LEVEL_WARN], log[0]
|
| 111 |
assert_same user_data, log[2]
|
| 112 |
end
|
| 113 |
end
|
bindings/ruby/whispercpp.gemspec
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
|
| 2 |
|
| 3 |
Gem::Specification.new do |s|
|
| 4 |
s.name = "whispercpp"
|
|
@@ -10,24 +10,24 @@ Gem::Specification.new do |s|
|
|
| 10 |
s.extra_rdoc_files = ['LICENSE', 'README.md']
|
| 11 |
|
| 12 |
s.files = `git ls-files . -z`.split("\x0") +
|
| 13 |
-
|
| 14 |
basename = File.basename(file)
|
| 15 |
if s.extra_rdoc_files.include?(basename)
|
| 16 |
basename
|
| 17 |
else
|
| 18 |
-
|
| 19 |
end
|
| 20 |
}
|
| 21 |
|
| 22 |
s.summary = %q{Ruby whisper.cpp bindings}
|
| 23 |
-
s.test_files =
|
| 24 |
|
| 25 |
s.extensions << 'ext/extconf.rb'
|
| 26 |
|
| 27 |
|
| 28 |
#### Documentation and testing.
|
| 29 |
s.homepage = 'https://github.com/ggerganov/whisper.cpp'
|
| 30 |
-
s.rdoc_options = ['--main', '
|
| 31 |
|
| 32 |
|
| 33 |
s.platform = Gem::Platform::RUBY
|
|
|
|
| 1 |
+
require_relative "extsources"
|
| 2 |
|
| 3 |
Gem::Specification.new do |s|
|
| 4 |
s.name = "whispercpp"
|
|
|
|
| 10 |
s.extra_rdoc_files = ['LICENSE', 'README.md']
|
| 11 |
|
| 12 |
s.files = `git ls-files . -z`.split("\x0") +
|
| 13 |
+
EXTSOURCES.collect {|file|
|
| 14 |
basename = File.basename(file)
|
| 15 |
if s.extra_rdoc_files.include?(basename)
|
| 16 |
basename
|
| 17 |
else
|
| 18 |
+
file.sub("../..", "ext")
|
| 19 |
end
|
| 20 |
}
|
| 21 |
|
| 22 |
s.summary = %q{Ruby whisper.cpp bindings}
|
| 23 |
+
s.test_files = s.files.select {|file| file.start_with? "tests/"}
|
| 24 |
|
| 25 |
s.extensions << 'ext/extconf.rb'
|
| 26 |
|
| 27 |
|
| 28 |
#### Documentation and testing.
|
| 29 |
s.homepage = 'https://github.com/ggerganov/whisper.cpp'
|
| 30 |
+
s.rdoc_options = ['--main', 'README.md']
|
| 31 |
|
| 32 |
|
| 33 |
s.platform = Gem::Platform::RUBY
|