From: Sandro Hanea Date: Tue, 8 Oct 2024 17:08:00 +0000 (+0200) Subject: whisper : add OpenVINO init with state (#2464) X-Git-Tag: upstream/1.7.4~329 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=fdbfb460ed546452a5d53611bba66d10d842e719;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp whisper : add OpenVINO init with state (#2464) * Fixed OpenVino init on state * Removed an empty line * Fixed typo * Replaced tabs with spaces --------- Co-authored-by: Sandro Hanea --- diff --git a/include/whisper.h b/include/whisper.h index 375c1ebc..320cac8c 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -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, diff --git a/src/whisper.cpp b/src/whisper.cpp index 31c6861e..fedd471b 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -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_state * 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); @@ -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 { @@ -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,