From d8356a1cc2b95218a808425b50734007fd13aa00 Mon Sep 17 00:00:00 2001 From: thewh1teagle <61390950+thewh1teagle@users.noreply.github.com> Date: Tue, 14 May 2024 09:43:41 +0300 Subject: [PATCH] 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 --- whisper.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/whisper.cpp b/whisper.cpp index bdcf3de..ff4223d 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;