Minor changes
This commit is contained in:
@@ -80,17 +80,38 @@ index 035ffee..18edcd3 100644
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
diff --git a/src/recognizer.cc b/src/recognizer.cc
|
diff --git a/src/recognizer.cc b/src/recognizer.cc
|
||||||
index 55d9991..4802b92 100644
|
index 55d9991..8671b71 100644
|
||||||
--- a/src/recognizer.cc
|
--- a/src/recognizer.cc
|
||||||
+++ b/src/recognizer.cc
|
+++ b/src/recognizer.cc
|
||||||
@@ -384,8 +384,9 @@ bool Recognizer::AcceptWaveform(const float *fdata, int len)
|
@@ -17,6 +17,7 @@
|
||||||
{
|
#include "fstext/fstext-utils.h"
|
||||||
|
#include "lat/sausages.h"
|
||||||
|
#include "language_model.h"
|
||||||
|
+#include "wasm_simd128.h"
|
||||||
|
|
||||||
|
using namespace fst;
|
||||||
|
using namespace kaldi::nnet3;
|
||||||
|
@@ -379,13 +380,20 @@ bool Recognizer::AcceptWaveform(const short *sdata, int len)
|
||||||
|
wave(i) = sdata[i];
|
||||||
|
return AcceptWaveform(wave);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
bool Recognizer::AcceptWaveform(const float *fdata, int len)
|
||||||
|
-{
|
||||||
|
+{
|
||||||
|
+ static v128_t _32768fx4{wasm_f32x4_const_splat(32768.0f)};
|
||||||
Vector<BaseFloat> wave;
|
Vector<BaseFloat> wave;
|
||||||
wave.Resize(len, kUndefined);
|
wave.Resize(len, kUndefined);
|
||||||
- for (int i = 0; i < len; i++)
|
- for (int i = 0; i < len; i++)
|
||||||
- wave(i) = fdata[i];
|
- wave(i) = fdata[i];
|
||||||
+ for (int i = 0; i < len; i++) {
|
+ float* dst{wave.Data()};
|
||||||
+ wave(i) = fdata[i] * 32768.0f;
|
+ int x4Len{len >> 2 << 2};
|
||||||
|
+ int i{};
|
||||||
|
+ for(;i < x4Len; i += 4, dst += 4, fdata += 4) {
|
||||||
|
+ wasm_v128_store(dst, wasm_f32x4_mul(wasm_v128_load(fdata), _32768fx4));
|
||||||
|
+ }
|
||||||
|
+ for(i = x4Len; i < len; ++i, ++fdata, ++dst) {
|
||||||
|
+ *dst = *fdata * 32768.0f;
|
||||||
+ }
|
+ }
|
||||||
return AcceptWaveform(wave);
|
return AcceptWaveform(wave);
|
||||||
}
|
}
|
||||||
|
|||||||
6
src/make
6
src/make
@@ -71,6 +71,12 @@ if [ ! -d "$VOSK" ]; then
|
|||||||
emar -rcs vosk.a ${VOSK_FILES//.cc/.o}
|
emar -rcs vosk.a ${VOSK_FILES//.cc/.o}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cd "$VOSK"/src
|
||||||
|
VOSK_FILES="recognizer.cc language_model.cc model.cc spk_model.cc vosk_api.cc" &&
|
||||||
|
em++ -O3 -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -Wno-deprecated -I. -I"$KALDI"/src -I"$OPENFST"/include recognizer.cc -c &&
|
||||||
|
emar -rcs vosk.a ${VOSK_FILES//.cc/.o}
|
||||||
|
echo "GOod"
|
||||||
|
|
||||||
cd "$SRC" &&
|
cd "$SRC" &&
|
||||||
em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O3 -std=c++23 -fno-rtti -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js --closure 1 -o ../Vosklet.js
|
em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O3 -std=c++23 -fno-rtti -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js --closure 1 -o ../Vosklet.js
|
||||||
cd .. &&
|
cd .. &&
|
||||||
|
|||||||
4
test
4
test
@@ -24,8 +24,8 @@ if [ "$EMSDK" = emsdk ] && [ ! -d "$EMSDK" ]; then
|
|||||||
echo "Installing emsdk + Emscripten..."
|
echo "Installing emsdk + Emscripten..."
|
||||||
git clone --depth=1 https://github.com/emscripten-core/emsdk.git ../emsdk &&
|
git clone --depth=1 https://github.com/emscripten-core/emsdk.git ../emsdk &&
|
||||||
cd ../emsdk &&
|
cd ../emsdk &&
|
||||||
./emsdk install 3.1.65 &&
|
./emsdk install 3.1.67 &&
|
||||||
./emsdk activate 3.1.65
|
./emsdk activate 3.1.67
|
||||||
fi
|
fi
|
||||||
. $(realpath "$EMSDK")/emsdk_env.sh &&
|
. $(realpath "$EMSDK")/emsdk_env.sh &&
|
||||||
export PATH=:$PATH:$(realpath "$EMSDK")/upstream/bin
|
export PATH=:$PATH:$(realpath "$EMSDK")/upstream/bin
|
||||||
|
|||||||
Reference in New Issue
Block a user