Skip to content

Commit 5e17987

Browse files
committed
Add model-related APIs
1 parent d2f6f68 commit 5e17987

File tree

1 file changed

+132
-0
lines changed

1 file changed

+132
-0
lines changed

bindings/ruby/ext/ruby_whisper.cpp

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,126 @@ static VALUE ruby_whisper_transcribe(int argc, VALUE *argv, VALUE self) {
389389
return self;
390390
}
391391

392+
/*
393+
* call-seq:
394+
* model_n_vocab -> Integer
395+
*/
396+
VALUE ruby_whisper_model_n_vocab(VALUE self) {
397+
ruby_whisper *rw;
398+
Data_Get_Struct(self, ruby_whisper, rw);
399+
return INT2NUM(whisper_model_n_vocab(rw->context));
400+
}
401+
402+
/*
403+
* call-seq:
404+
* model_n_audio_ctx -> Integer
405+
*/
406+
VALUE ruby_whisper_model_n_audio_ctx(VALUE self) {
407+
ruby_whisper *rw;
408+
Data_Get_Struct(self, ruby_whisper, rw);
409+
return INT2NUM(whisper_model_n_audio_ctx(rw->context));
410+
}
411+
412+
/*
413+
* call-seq:
414+
* model_n_audio_state -> Integer
415+
*/
416+
VALUE ruby_whisper_model_n_audio_state(VALUE self) {
417+
ruby_whisper *rw;
418+
Data_Get_Struct(self, ruby_whisper, rw);
419+
return INT2NUM(whisper_model_n_audio_state(rw->context));
420+
}
421+
422+
/*
423+
* call-seq:
424+
* model_n_audio_head -> Integer
425+
*/
426+
VALUE ruby_whisper_model_n_audio_head(VALUE self) {
427+
ruby_whisper *rw;
428+
Data_Get_Struct(self, ruby_whisper, rw);
429+
return INT2NUM(whisper_model_n_audio_head(rw->context));
430+
}
431+
432+
/*
433+
* call-seq:
434+
* model_n_audio_layer -> Integer
435+
*/
436+
VALUE ruby_whisper_model_n_audio_layer(VALUE self) {
437+
ruby_whisper *rw;
438+
Data_Get_Struct(self, ruby_whisper, rw);
439+
return INT2NUM(whisper_model_n_audio_layer(rw->context));
440+
}
441+
442+
/*
443+
* call-seq:
444+
* model_n_text_ctx -> Integer
445+
*/
446+
VALUE ruby_whisper_model_n_text_ctx(VALUE self) {
447+
ruby_whisper *rw;
448+
Data_Get_Struct(self, ruby_whisper, rw);
449+
return INT2NUM(whisper_model_n_text_ctx(rw->context));
450+
}
451+
452+
/*
453+
* call-seq:
454+
* model_n_text_state -> Integer
455+
*/
456+
VALUE ruby_whisper_model_n_text_state(VALUE self) {
457+
ruby_whisper *rw;
458+
Data_Get_Struct(self, ruby_whisper, rw);
459+
return INT2NUM(whisper_model_n_text_state(rw->context));
460+
}
461+
462+
/*
463+
* call-seq:
464+
* model_n_text_head -> Integer
465+
*/
466+
VALUE ruby_whisper_model_n_text_head(VALUE self) {
467+
ruby_whisper *rw;
468+
Data_Get_Struct(self, ruby_whisper, rw);
469+
return INT2NUM(whisper_model_n_text_head(rw->context));
470+
}
471+
472+
/*
473+
* call-seq:
474+
* model_n_text_layer -> Integer
475+
*/
476+
VALUE ruby_whisper_model_n_text_layer(VALUE self) {
477+
ruby_whisper *rw;
478+
Data_Get_Struct(self, ruby_whisper, rw);
479+
return INT2NUM(whisper_model_n_text_layer(rw->context));
480+
}
481+
482+
/*
483+
* call-seq:
484+
* model_n_mels -> Integer
485+
*/
486+
VALUE ruby_whisper_model_n_mels(VALUE self) {
487+
ruby_whisper *rw;
488+
Data_Get_Struct(self, ruby_whisper, rw);
489+
return INT2NUM(whisper_model_n_mels(rw->context));
490+
}
491+
492+
/*
493+
* call-seq:
494+
* model_ftype -> Integer
495+
*/
496+
VALUE ruby_whisper_model_ftype(VALUE self) {
497+
ruby_whisper *rw;
498+
Data_Get_Struct(self, ruby_whisper, rw);
499+
return INT2NUM(whisper_model_ftype(rw->context));
500+
}
501+
502+
/*
503+
* call-seq:
504+
* model_type -> String
505+
*/
506+
VALUE ruby_whisper_model_type(VALUE self) {
507+
ruby_whisper *rw;
508+
Data_Get_Struct(self, ruby_whisper, rw);
509+
return rb_str_new2(whisper_model_type_readable(rw->context));
510+
}
511+
392512
/*
393513
* Number of segments.
394514
*
@@ -1207,6 +1327,18 @@ void Init_whisper() {
12071327
rb_define_method(cContext, "initialize", ruby_whisper_initialize, -1);
12081328

12091329
rb_define_method(cContext, "transcribe", ruby_whisper_transcribe, -1);
1330+
rb_define_method(cContext, "model_n_vocab", ruby_whisper_model_n_vocab, 0);
1331+
rb_define_method(cContext, "model_n_audio_ctx", ruby_whisper_model_n_audio_ctx, 0);
1332+
rb_define_method(cContext, "model_n_audio_state", ruby_whisper_model_n_audio_state, 0);
1333+
rb_define_method(cContext, "model_n_audio_head", ruby_whisper_model_n_audio_head, 0);
1334+
rb_define_method(cContext, "model_n_audio_layer", ruby_whisper_model_n_audio_layer, 0);
1335+
rb_define_method(cContext, "model_n_text_ctx", ruby_whisper_model_n_text_ctx, 0);
1336+
rb_define_method(cContext, "model_n_text_state", ruby_whisper_model_n_text_state, 0);
1337+
rb_define_method(cContext, "model_n_text_head", ruby_whisper_model_n_text_head, 0);
1338+
rb_define_method(cContext, "model_n_text_layer", ruby_whisper_model_n_text_layer, 0);
1339+
rb_define_method(cContext, "model_n_mels", ruby_whisper_model_n_mels, 0);
1340+
rb_define_method(cContext, "model_ftype", ruby_whisper_model_ftype, 0);
1341+
rb_define_method(cContext, "model_type", ruby_whisper_model_type, 0);
12101342
rb_define_method(cContext, "full_n_segments", ruby_whisper_full_n_segments, 0);
12111343
rb_define_method(cContext, "full_lang_id", ruby_whisper_full_lang_id, 0);
12121344
rb_define_method(cContext, "full_get_segment_t0", ruby_whisper_full_get_segment_t0, 1);

0 commit comments

Comments
 (0)