Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions include/whisper.h
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,13 @@ extern "C" {
// GPU, by caching compiled 'blobs' there.
// Set to nullptr if not used.
// Returns 0 on success. If OpenVINO is not enabled in build, this simply returns 1.
WHISPER_API int whisper_ctx_init_openvino_encoder_with_state(
struct whisper_context * ctx,
struct whisper_state * state,
const char * model_path,
const char * device,
const char * cache_dir);

WHISPER_API int whisper_ctx_init_openvino_encoder(
struct whisper_context * ctx,
const char * model_path,
Expand Down
16 changes: 13 additions & 3 deletions src/whisper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3492,13 +3492,15 @@ struct whisper_state * whisper_init_state(whisper_context * ctx) {
return state;
}

int whisper_ctx_init_openvino_encoder(
int whisper_ctx_init_openvino_encoder_with_state(
struct whisper_context * ctx,
struct whisper_sate * state,
const char * model_path,
const char * device,
const char * cache_dir) {
#ifndef WHISPER_USE_OPENVINO
(void)(ctx);
(void)(state);
(void)(model_path);
(void)(device);
(void)(cache_dir);
Expand Down Expand Up @@ -3529,8 +3531,8 @@ int whisper_ctx_init_openvino_encoder(
WHISPER_LOG_INFO("%s: loading OpenVINO model from '%s'\n", __func__, path_encoder.c_str());
WHISPER_LOG_INFO("%s: first run on a device may take a while ...\n", __func__);

ctx->state->ctx_openvino = whisper_openvino_init(path_encoder.c_str(), device, path_cache.c_str());
if (!ctx->state->ctx_openvino) {
state->ctx_openvino = whisper_openvino_init(path_encoder.c_str(), device, path_cache.c_str());
if (!state->ctx_openvino) {
WHISPER_LOG_ERROR("%s: failed to init OpenVINO encoder from '%s'\n", __func__, path_encoder.c_str());
return 1;
} else {
Expand All @@ -3541,6 +3543,14 @@ int whisper_ctx_init_openvino_encoder(
#endif
}

int whisper_ctx_init_openvino_encoder(
struct whisper_context * ctx,
const char * model_path,
const char * device,
const char * cache_dir) {
return whisper_ctx_init_openvino_encoder_with_state(ctx, ctx->state, model_path, device, cache_dir);
}

struct whisper_context_params whisper_context_default_params() {
struct whisper_context_params result = {
/*.use_gpu =*/ true,
Expand Down
Loading