mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2025-02-22 17:42:38 +00: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);
|
|
}
|