@@ -50,20 +50,17 @@ EMSCRIPTEN_BINDINGS(whisper) {
50
50
}));
51
51
52
52
emscripten::function (" full_default" , emscripten::optional_override ([](size_t index , const emscripten::val & audio, const std::string &lang, int nthreads, bool translate) {
53
- printf (" [danbev] lang from emscripten: %s\n " , lang.c_str ());
54
53
if (g_worker.joinable ()) {
55
54
g_worker.join ();
56
55
}
57
56
58
57
--index ;
59
58
60
59
if (index >= g_contexts.size ()) {
61
- printf (" [danbev] index out of range: %zu\n " , index );
62
60
return -1 ;
63
61
}
64
62
65
63
if (g_contexts[index ] == nullptr ) {
66
- printf (" [danbev] context is null: %zu\n " , index );
67
64
return -2 ;
68
65
}
69
66
@@ -74,10 +71,7 @@ EMSCRIPTEN_BINDINGS(whisper) {
74
71
params.print_timestamps = true ;
75
72
params.print_special = false ;
76
73
params.translate = translate;
77
-
78
-
79
- params.language = whisper_is_multilingual (g_contexts[index ]) ? lang.c_str () : " en" ;
80
- printf (" [danbev] lang from emscripten setting params.language: %s\n " , params.language );
74
+ params.language = whisper_is_multilingual (g_contexts[index ]) ? strdup (lang.c_str ()) : " en" ;
81
75
params.n_threads = std::min (nthreads, std::min (16 , mpow2 (std::thread::hardware_concurrency ())));
82
76
params.offset_ms = 0 ;
83
77
@@ -112,6 +106,10 @@ EMSCRIPTEN_BINDINGS(whisper) {
112
106
whisper_reset_timings (g_contexts[index ]);
113
107
whisper_full (g_contexts[index ], params, pcmf32.data (), pcmf32.size ());
114
108
whisper_print_timings (g_contexts[index ]);
109
+
110
+ if (params.language != nullptr && strcmp (params.language , " en" ) != 0 ) {
111
+ free ((void *)params.language );
112
+ }
115
113
});
116
114
}
117
115
0 commit comments