From: thewh1teagle Date: Tue, 14 May 2024 06:43:41 +0000 (+0300) Subject: whisper : fix model path encoding in windows (#2086) X-Git-Tag: upstream/1.7.4~757 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=d8356a1cc2b95218a808425b50734007fd13aa00;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp whisper : fix model path encoding in windows (#2086) * fix: model path encoding in windows * fix: convert model path to wide string only for MSVC compiler --- diff --git a/whisper.cpp b/whisper.cpp index bdcf3de4..ff4223da 100644 --- a/whisper.cpp +++ b/whisper.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #if defined(_MSC_VER) #pragma warning(disable: 4244 4267) // possible loss of data @@ -3362,8 +3363,14 @@ struct whisper_context_params whisper_context_default_params() { struct whisper_context * whisper_init_from_file_with_params_no_state(const char * path_model, struct whisper_context_params params) { WHISPER_LOG_INFO("%s: loading model from '%s'\n", __func__, path_model); - +#ifdef _MSC_VER + // Convert UTF-8 path to wide string (UTF-16) for Windows, resolving character encoding issues. + std::wstring_convert> converter; + std::wstring path_model_wide = converter.from_bytes(path_model); + auto fin = std::ifstream(path_model_wide, std::ios::binary); +#else auto fin = std::ifstream(path_model, std::ios::binary); +#endif if (!fin) { WHISPER_LOG_ERROR("%s: failed to open '%s'\n", __func__, path_model); return nullptr;