mirror of
https://github.com/ggerganov/whisper.cpp
synced 2026-04-05 14:35:25 +02:00
* Define and use macro to get context safely * Add test to check SEGV * Move installation guid after usage * [skip ci]Change doc slightly * [skip ci]Fix a typo in README * [skip ci]Add carry_initial_prompt option in README * Define GetVADSegments and use it * Use GetContext * Fix download URI of small.en-tdrz * Fix URI of CoreML models corresponding to quantized models * Cache computed string * Remove unused argument * Add Whisper::Token * Add document comments * Rename function: rb_whisper_token_s_new -> ruby_whisper_token_s_init * Fix size of token * Insert _get into function names * Add Whisper::Token#text * Add test for Whisper::Token#text * Declare static if possible * Change method names * Add Whisper::Token#deconstruct_keys * Add tests for Whisper::Token#deconstruct_keys * Add signatures for Whisper::Token * Complete signature * [skip ci]Add n_tokens to document of Segment
80 lines
1.9 KiB
C
80 lines
1.9 KiB
C
#ifndef RUBY_WHISPER_H
|
|
#define RUBY_WHISPER_H
|
|
|
|
#include "whisper.h"
|
|
|
|
typedef struct {
|
|
VALUE *context;
|
|
VALUE user_data;
|
|
VALUE callback;
|
|
VALUE callbacks;
|
|
} ruby_whisper_callback_container;
|
|
|
|
typedef struct {
|
|
struct whisper_context *context;
|
|
} ruby_whisper;
|
|
|
|
typedef struct {
|
|
struct whisper_full_params params;
|
|
bool diarize;
|
|
ruby_whisper_callback_container *new_segment_callback_container;
|
|
ruby_whisper_callback_container *progress_callback_container;
|
|
ruby_whisper_callback_container *encoder_begin_callback_container;
|
|
ruby_whisper_callback_container *abort_callback_container;
|
|
VALUE vad_params;
|
|
} ruby_whisper_params;
|
|
|
|
typedef struct {
|
|
struct whisper_vad_params params;
|
|
} ruby_whisper_vad_params;
|
|
|
|
typedef struct {
|
|
VALUE context;
|
|
int index;
|
|
} ruby_whisper_segment;
|
|
|
|
typedef struct {
|
|
whisper_token_data *token_data;
|
|
const char *text;
|
|
} ruby_whisper_token;
|
|
|
|
typedef struct {
|
|
VALUE context;
|
|
} ruby_whisper_model;
|
|
|
|
typedef struct {
|
|
struct whisper_vad_segments *segments;
|
|
} ruby_whisper_vad_segments;
|
|
|
|
typedef struct {
|
|
VALUE segments;
|
|
int index;
|
|
} ruby_whisper_vad_segment;
|
|
|
|
typedef struct {
|
|
struct whisper_vad_context *context;
|
|
} ruby_whisper_vad_context;
|
|
|
|
#define GetContext(obj, rw) do { \
|
|
TypedData_Get_Struct((obj), ruby_whisper, &ruby_whisper_type, (rw)); \
|
|
if ((rw)->context == NULL) { \
|
|
rb_raise(rb_eRuntimeError, "Not initialized"); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define GetToken(obj, rwt) do { \
|
|
TypedData_Get_Struct((obj), ruby_whisper_token, &ruby_whisper_token_type, (rwt)); \
|
|
if ((rwt)->token_data == NULL) { \
|
|
rb_raise(rb_eRuntimeError, "Not initialized"); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define GetVADSegments(obj, rwvss) do { \
|
|
TypedData_Get_Struct((obj), ruby_whisper_vad_segments, &ruby_whisper_vad_segments_type, (rwvss)); \
|
|
if ((rwvss)->segments == NULL) { \
|
|
rb_raise(rb_eRuntimeError, "Not initialized"); \
|
|
} \
|
|
} while (0)
|
|
|
|
#endif
|