mirror of
https://github.com/ggml-org/whisper.cpp.git
synced 2025-09-15 13:28:35 +08:00
* Fix type signature for Whisper.log_set
* Use cache file for model when offline
* Extract ruby_whisper_transcribe() into a file
* Extract Whisper::Error
* Use FileList for ext/*.{c,cpp,h}
* Extract Whisper::Segment
* Extract Whisper::Model
* Extract Whisper::Params
* Extract Whisper::Context
* Extract log_callback function
* Write base code in C rather than C++
* Use chdir instead of Dir.chdir in Rakefile
* Define alloc func for Whisper::Model
* Define Whisper::Params' calback and user data reader
* Add test for Whisper::Params.new with keyword arguments
* Make Whisper::Params.new accept keyword arguments
* Update type signatures
* Update README
* Update CLEAN targets
* Fix document comment for Whisper::Params#new_segment_callback=
* Use macro to define params
* Fix dependency of build task
* Set Whisper.finalize_log_callback visibility to private
* Make Whisper::Context#full and full_parallel return self
* Add test for Whisper::Context#full_get_segment
* Add Whisper::Context#full_get_segment
* Update signatures
* Update README
* Fix signature
* Resplace #initialize with .new in signature file [skip ci]
* Fix potential overflow
53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
#include <ruby.h>
|
|
|
|
extern VALUE eError;
|
|
|
|
VALUE ruby_whisper_error_initialize(VALUE self, VALUE code)
|
|
{
|
|
const int c_code = NUM2INT(code);
|
|
const char *raw_message;
|
|
switch (c_code) {
|
|
case -2:
|
|
raw_message = "failed to compute log mel spectrogram";
|
|
break;
|
|
case -3:
|
|
raw_message = "failed to auto-detect language";
|
|
break;
|
|
case -4:
|
|
raw_message = "too many decoders requested";
|
|
break;
|
|
case -5:
|
|
raw_message = "audio_ctx is larger than the maximum allowed";
|
|
break;
|
|
case -6:
|
|
raw_message = "failed to encode";
|
|
break;
|
|
case -7:
|
|
raw_message = "whisper_kv_cache_init() failed for self-attention cache";
|
|
break;
|
|
case -8:
|
|
raw_message = "failed to decode";
|
|
break;
|
|
case -9:
|
|
raw_message = "failed to decode";
|
|
break;
|
|
default:
|
|
raw_message = "unknown error";
|
|
break;
|
|
}
|
|
const VALUE message = rb_str_new2(raw_message);
|
|
rb_call_super(1, &message);
|
|
rb_iv_set(self, "@code", code);
|
|
|
|
return self;
|
|
}
|
|
|
|
void
|
|
init_ruby_whisper_error(VALUE *mWhisper)
|
|
{
|
|
eError = rb_define_class_under(*mWhisper, "Error", rb_eStandardError);
|
|
|
|
rb_define_attr(eError, "code", true, false);
|
|
rb_define_method(eError, "initialize", ruby_whisper_error_initialize, 1);
|
|
}
|