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
This commit is contained in:
parent
4ef8d9f44e
commit
d8356a1cc2
@ -41,6 +41,7 @@
|
|||||||
#include <regex>
|
#include <regex>
|
||||||
#include <random>
|
#include <random>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <codecvt>
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#pragma warning(disable: 4244 4267) // possible loss of data
|
#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) {
|
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);
|
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<std::codecvt_utf8<wchar_t>> 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);
|
auto fin = std::ifstream(path_model, std::ios::binary);
|
||||||
|
#endif
|
||||||
if (!fin) {
|
if (!fin) {
|
||||||
WHISPER_LOG_ERROR("%s: failed to open '%s'\n", __func__, path_model);
|
WHISPER_LOG_ERROR("%s: failed to open '%s'\n", __func__, path_model);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user