Files
Vosklet/src/Vosk.patch
2024-08-30 18:38:42 -07:00

98 lines
3.2 KiB
Diff

diff --git a/src/model.cc b/src/model.cc
index 035ffee..18edcd3 100644
--- a/src/model.cc
+++ b/src/model.cc
@@ -23,7 +23,7 @@
#include <fst/register.h>
#include <fst/matcher-fst.h>
#include <fst/extensions/ngram/ngram-fst.h>
-
+#include <emscripten/console.h>
#ifdef HAVE_MKL
// We need to set num threads
@@ -74,38 +74,37 @@ static void KaldiLogHandler(const LogMessageEnvelope &env, const char *message)
#else
static void KaldiLogHandler(const LogMessageEnvelope &env, const char *message)
{
- if (env.severity > GetVerboseLevel())
- return;
+ if (env.severity > GetVerboseLevel())
+ return;
- // Modified default Kaldi logging so we can disable LOG messages.
- std::stringstream full_message;
- if (env.severity > LogMessageEnvelope::kInfo) {
- full_message << "VLOG[" << env.severity << "] (";
- } else {
- switch (env.severity) {
- case LogMessageEnvelope::kInfo:
- full_message << "LOG (";
- break;
- case LogMessageEnvelope::kWarning:
- full_message << "WARNING (";
- break;
- case LogMessageEnvelope::kAssertFailed:
- full_message << "ASSERTION_FAILED (";
- break;
- case LogMessageEnvelope::kError:
- default: // If not the ERROR, it still an error!
- full_message << "ERROR (";
- break;
+ // Modified default Kaldi logging so we can disable LOG messages.
+ std::stringstream full_message;
+ if (env.severity > LogMessageEnvelope::kInfo) {
+ full_message << "VLOG[" << env.severity << "] (";
+ } else {
+ switch (env.severity) {
+ case LogMessageEnvelope::kInfo:
+ full_message << "LOG (";
+ break;
+ case LogMessageEnvelope::kWarning:
+ full_message << "WARNING (";
+ break;
+ case LogMessageEnvelope::kAssertFailed:
+ full_message << "ASSERTION_FAILED (";
+ break;
+ case LogMessageEnvelope::kError:
+ default: // If not the ERROR, it still an error!
+ full_message << "ERROR (";
+ break;
+ }
}
- }
- // Add other info from the envelope and the message text.
- full_message << "VoskAPI" << ':'
- << env.func << "():" << env.file << ':'
- << env.line << ") " << message;
-
- // Print the complete message to stderr.
- full_message << "\n";
- std::cerr << full_message.str();
+ // Add other info from the envelope and the message text.
+ full_message << "VoskAPI" << ':'
+ << env.func << "():" << env.file << ':'
+ << env.line << ") " << message;
+ if(env.severity >= LogMessageEnvelope::kInfo) emscripten_console_log(full_message.str().c_str());
+ else if(env.severity == LogMessageEnvelope::kWarning) emscripten_console_warn(full_message.str().c_str());
+ else emscripten_console_error(full_message.str().c_str());
}
#endif
diff --git a/src/recognizer.cc b/src/recognizer.cc
index 55d9991..4802b92 100644
--- a/src/recognizer.cc
+++ b/src/recognizer.cc
@@ -384,8 +384,9 @@ bool Recognizer::AcceptWaveform(const float *fdata, int len)
{
Vector<BaseFloat> wave;
wave.Resize(len, kUndefined);
- for (int i = 0; i < len; i++)
- wave(i) = fdata[i];
+ for (int i = 0; i < len; i++) {
+ wave(i) = fdata[i] * 32768.0f;
+ }
return AcceptWaveform(wave);
}