Upgrade to Emscripten 3.1.64, fix broken openfst,
Turn on memory growth with warnings.
This commit is contained in:
8
API.md
8
API.md
@@ -57,7 +57,7 @@ Pthread worker construction must be from a blob (see [Emscripten issue](https://
|
|||||||
Model response from ```fetch()``` must be an uncompressed model. Set your ```Content-Encoding``` response header and ```Accept-Encoding``` request header appropriately so browers can decompress.
|
Model response from ```fetch()``` must be an uncompressed model. Set your ```Content-Encoding``` response header and ```Accept-Encoding``` request header appropriately so browers can decompress.
|
||||||
|
|
||||||
# Compilation
|
# Compilation
|
||||||
- Requires all Autotools commands in PATH, ```make```, and ```pkg-config```. Install with ```apt```, for example:
|
- Requires all Autotools commands in PATH, ```make```, and ```pkg-config```. Installing with ```apt```, for example:
|
||||||
|
|
||||||
```sudo apt install autotools-dev autoconf libtool make pkg-config```
|
```sudo apt install autotools-dev autoconf libtool make pkg-config```
|
||||||
- Changing any option to non-default values requires recompilation
|
- Changing any option to non-default values requires recompilation
|
||||||
@@ -66,11 +66,11 @@ Model response from ```fetch()``` must be an uncompressed model. Set your ```Con
|
|||||||
git clone --depth=1 https://github.com/msqr1/Vosklet &&
|
git clone --depth=1 https://github.com/msqr1/Vosklet &&
|
||||||
cd Vosklet/src &&
|
cd Vosklet/src &&
|
||||||
[Options] ./make
|
[Options] ./make
|
||||||
# Example: MAX_MEMORY=350mb MAX_THREADS=3 ./make
|
# Example: INITIAL_MEMORY=350mb MAX_THREADS=3 ./make
|
||||||
```
|
```
|
||||||
| Option | Description | Default value |
|
| Option | Description | Default value |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| MAX_MEMORY | Set max memory, valid suffixes: kb, mb, gb, tb or none (bytes) | ```300mb``` as [recommended](https://alphacephei.com/vosk/models) |
|
| INITIAL_MEMORY | Set inital memory, valid suffixes: kb, mb, gb, tb or none (bytes) | ```300mb``` as [recommended](https://alphacephei.com/vosk/models). This memory will grow if usage exceeds this value, but can [affect performance](https://emscripten.org/docs/porting/pthreads.html#special-considerations:~:text=memory%20support%20available.-,Pthreads,-%2B%20memory%20growth%20(). |
|
||||||
| MAX_THREADS | Set the max number of threads (>=1), this should be equal to the number of model or speaker model that is used in the program | ```1``` (1 recognizer, 1 model, no speaker model) |
|
| MAX_THREADS | Set the max number of threads (>=1), this should be equal to the number of model and speaker model that is used in the program | ```1``` (1 recognizer, 1 model, no speaker model) |
|
||||||
| JOBS | Set the number of jobs (threads) when building | ```$(nproc)``` |
|
| JOBS | Set the number of jobs (threads) when building | ```$(nproc)``` |
|
||||||
| EMSDK | Set EMSDK's path (will install EMSDK in root folder if unset) | ```../emsdk``` |
|
| EMSDK | Set EMSDK's path (will install EMSDK in root folder if unset) | ```../emsdk``` |
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
13
src/make
13
src/make
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
MAX_MEMORY=${MAX_MEMORY:-300mb}
|
INITIAL_MEMORY=${INITIAL_MEMORY:-300mb}
|
||||||
MAX_THREADS=${MAX_THREADS:-1}
|
MAX_THREADS=${MAX_THREADS:-1}
|
||||||
EMSDK=${EMSDK:-../emsdk}
|
EMSDK=${EMSDK:-../emsdk}
|
||||||
JOBS=${JOBS:-$(nproc)}
|
JOBS=${JOBS:-$(nproc)}
|
||||||
@@ -16,16 +16,16 @@ if [ $JOBS -lt 1 ]; then
|
|||||||
echo "JOBS must be greater than or equal to 1"
|
echo "JOBS must be greater than or equal to 1"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! [[ $MAX_MEMORY =~ ^[0-9]+([kmgt]b)?$ ]]; then
|
if ! [[ $INITIAL_MEMORY =~ ^[0-9]+([kmgt]b)?$ ]]; then
|
||||||
echo "MAX_MEMORY valid suffixes are kb, mb, gb, tb, none (bytes)"
|
echo "INITIAL_MEMORY valid suffixes are kb, mb, gb, tb, none (bytes)"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ $EMSDK = ../emsdk ] && [ ! -d $EMSDK ]; then
|
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.59 &&
|
./emsdk install 3.1.64 &&
|
||||||
./emsdk activate 3.1.59
|
./emsdk activate 3.1.64
|
||||||
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 &&
|
||||||
@@ -41,6 +41,7 @@ if [ ! -d $OPENFST ]; then
|
|||||||
rm -rf /tmp/openfst &&
|
rm -rf /tmp/openfst &&
|
||||||
git clone --depth=1 https://github.com/alphacep/openfst /tmp/openfst &&
|
git clone --depth=1 https://github.com/alphacep/openfst /tmp/openfst &&
|
||||||
cd /tmp/openfst &&
|
cd /tmp/openfst &&
|
||||||
|
git apply $SRC/openfst.patch
|
||||||
autoreconf -is &&
|
autoreconf -is &&
|
||||||
CXXFLAGS="-r -O3 -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals" LDFLAGS="-O3 -flto" emconfigure ./configure --prefix=$OPENFST --enable-static --disable-shared --enable-lookahead-fsts --enable-ngram-fsts --disable-bin &&
|
CXXFLAGS="-r -O3 -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals" LDFLAGS="-O3 -flto" emconfigure ./configure --prefix=$OPENFST --enable-static --disable-shared --enable-lookahead-fsts --enable-ngram-fsts --disable-bin &&
|
||||||
emmake make -j$JOBS install &&
|
emmake make -j$JOBS install &&
|
||||||
@@ -72,7 +73,7 @@ if [ ! -d $VOSK ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
cd $SRC &&
|
cd $SRC &&
|
||||||
em++ util.cc genericModel.cc recognizer.cc bindings.cc -O3 -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sINITIAL_MEMORY=$MAX_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -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 -pthread -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js wrapper.js -o ../Vosklet.js &&
|
em++ util.cc genericModel.cc recognizer.cc bindings.cc -O3 -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sALLOW_MEMORY_GROWTH -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sINITIAL_MEMORY=$INITIAL_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -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 -pthread -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js wrapper.js -o ../Vosklet.js &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
rm -f Vosklet.worker.js
|
rm -f Vosklet.worker.js
|
||||||
|
|
||||||
|
|||||||
28
src/openfst.patch
Normal file
28
src/openfst.patch
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
diff --git a/src/include/fst/bi-table.h b/src/include/fst/bi-table.h
|
||||||
|
index 7c5be23..4527001 100644
|
||||||
|
--- a/src/include/fst/bi-table.h
|
||||||
|
+++ b/src/include/fst/bi-table.h
|
||||||
|
@@ -327,7 +327,7 @@ class VectorHashBiTable {
|
||||||
|
}
|
||||||
|
|
||||||
|
VectorHashBiTable(const VectorHashBiTable<I, T, S, FP, H, HS> &table)
|
||||||
|
- : selector_(table.s_),
|
||||||
|
+ : selector_(table.selector_),
|
||||||
|
fp_(table.fp_),
|
||||||
|
h_(table.h_),
|
||||||
|
id2entry_(table.id2entry_),
|
||||||
|
diff --git a/src/include/fst/fst.h b/src/include/fst/fst.h
|
||||||
|
index 80e3948..57cf1fd 100644
|
||||||
|
--- a/src/include/fst/fst.h
|
||||||
|
+++ b/src/include/fst/fst.h
|
||||||
|
@@ -701,8 +701,8 @@ class FstImpl {
|
||||||
|
properties_.store(impl.properties_.load(std::memory_order_relaxed),
|
||||||
|
std::memory_order_relaxed);
|
||||||
|
type_ = impl.type_;
|
||||||
|
- isymbols_ = impl.isymbols_ ? impl.isymbols_->Copy() : nullptr;
|
||||||
|
- osymbols_ = impl.osymbols_ ? impl.osymbols_->Copy() : nullptr;
|
||||||
|
+ isymbols_.reset(impl.isymbols_ ? impl.isymbols_->Copy() : nullptr);
|
||||||
|
+ osymbols_.reset(impl.osymbols_ ? impl.osymbols_->Copy() : nullptr);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@ recognizer::recognizer(int index, float sampleRate, genericModel* model) : index
|
|||||||
recognizer::recognizer(int index, float sampleRate, genericModel* model, genericModel* spkModel) : index{index}, rec{vosk_recognizer_new_spk(std::get<VoskModel*>(model->mdl), sampleRate, std::get<VoskSpkModel*>(spkModel->mdl))} {
|
recognizer::recognizer(int index, float sampleRate, genericModel* model, genericModel* spkModel) : index{index}, rec{vosk_recognizer_new_spk(std::get<VoskModel*>(model->mdl), sampleRate, std::get<VoskSpkModel*>(spkModel->mdl))} {
|
||||||
finishConstruction(model, spkModel);
|
finishConstruction(model, spkModel);
|
||||||
}
|
}
|
||||||
recognizer::recognizer(int index, float sampleRate, genericModel* model, const std::string& grm, int dummy) : index{index}, rec{vosk_recognizer_new_grm(std::get<VoskModel*>(model->mdl), sampleRate, grm.c_str())} {
|
recognizer::recognizer(int index, float sampleRate, genericModel* model, const std::string& grm, int) : index{index}, rec{vosk_recognizer_new_grm(std::get<VoskModel*>(model->mdl), sampleRate, grm.c_str())} {
|
||||||
finishConstruction(model);
|
finishConstruction(model);
|
||||||
}
|
}
|
||||||
recognizer::~recognizer() {
|
recognizer::~recognizer() {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ struct recognizer {
|
|||||||
std::queue<audioData> dataQ{};
|
std::queue<audioData> dataQ{};
|
||||||
recognizer(int index, float sampleRate, genericModel* model);
|
recognizer(int index, float sampleRate, genericModel* model);
|
||||||
recognizer(int index, float sampleRate, genericModel* model, genericModel* spkModel);
|
recognizer(int index, float sampleRate, genericModel* model, genericModel* spkModel);
|
||||||
recognizer(int index, float sampleRate, genericModel* model, const std::string& grm, int dummy);
|
recognizer(int index, float sampleRate, genericModel* model, const std::string& grm, int);
|
||||||
~recognizer();
|
~recognizer();
|
||||||
void finishConstruction(genericModel* model, genericModel* spkModel = nullptr);
|
void finishConstruction(genericModel* model, genericModel* spkModel = nullptr);
|
||||||
void pushData(int start, int len);
|
void pushData(int start, int len);
|
||||||
|
|||||||
14
test
14
test
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
MAX_MEMORY=${MAX_MEMORY:-800mb}
|
INITIAL_MEMORY=${INITIAL_MEMORY:-100mb}
|
||||||
MAX_THREADS=${MAX_THREADS:-2}
|
MAX_THREADS=${MAX_THREADS:-2}
|
||||||
EMSDK=${EMSDK:-emsdk}
|
EMSDK=${EMSDK:-emsdk}
|
||||||
JOBS=${JOBS:-$(nproc)}
|
JOBS=${JOBS:-$(nproc)}
|
||||||
@@ -16,8 +16,8 @@ if [ $JOBS -lt 1 ]; then
|
|||||||
echo "JOBS must be greater than or equal to 1"
|
echo "JOBS must be greater than or equal to 1"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! [[ $MAX_MEMORY =~ ^[0-9]+([kmgt]b)?$ ]]; then
|
if ! [[ $INITIAL_MEMORY =~ ^[0-9]+([kmgt]b)?$ ]]; then
|
||||||
echo "MAX_MEMORY valid suffixes are kb, mb, gb, tb, none (bytes)"
|
echo "INITIAL_MEMORY valid suffixes are kb, mb, gb, tb, none (bytes)"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ $EMSDK = emsdk ] && [ ! -d $EMSDK ]; then
|
if [ $EMSDK = emsdk ] && [ ! -d $EMSDK ]; then
|
||||||
@@ -36,14 +36,14 @@ OPENFST=$(realpath openfst)
|
|||||||
CLAPACK_WASM=$(realpath clapack-wasm)
|
CLAPACK_WASM=$(realpath clapack-wasm)
|
||||||
|
|
||||||
cd src &&
|
cd src &&
|
||||||
MODE=0 && # 0: Ultra debug info, 1: Optimized release, else custom
|
MODE=1 && # 0: Ultra debug info, 1: Optimized release, else custom
|
||||||
echo "Mode = $MODE" &&
|
echo "Mode = $MODE" &&
|
||||||
if [ $MODE = 0 ]; then
|
if [ $MODE = 0 ]; then
|
||||||
em++ util.cc genericModel.cc recognizer.cc bindings.cc -O0 -Wall -Werror -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sRUNTIME_DEBUG -sSTACK_OVERFLOW_CHECK=2 -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sASSERTIONS=2 -sINITIAL_MEMORY=$MAX_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sDISABLE_EXCEPTION_CATCHING=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sPOLYFILL=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -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 -pthread -flto -fsanitize=undefined -fsanitize=address -fsanitize=leak -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -g3 --pre-js wrapper.js -o ../test.js
|
em++ util.cc genericModel.cc recognizer.cc bindings.cc -O0 -Wall -Werror -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sRUNTIME_DEBUG -sALLOW_MEMORY_GROWTH -sSTACK_OVERFLOW_CHECK=2 -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sASSERTIONS=2 -sINITIAL_MEMORY=$INITIAL_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sDISABLE_EXCEPTION_CATCHING=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sPOLYFILL=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -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 -pthread -flto -fsanitize=undefined -fsanitize=address -fsanitize=leak -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -g3 --pre-js wrapper.js -o ../test.js
|
||||||
elif [ $MODE = 1 ]; then
|
elif [ $MODE = 1 ]; then
|
||||||
em++ util.cc genericModel.cc recognizer.cc bindings.cc -O3 -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sINITIAL_MEMORY=$MAX_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -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 -pthread -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js wrapper.js -o ../test.js
|
em++ util.cc genericModel.cc recognizer.cc bindings.cc -O3 -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sINITIAL_MEMORY=$INITIAL_MEMORY -sALLOW_MEMORY_GROWTH -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -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 -pthread -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js wrapper.js -o ../test.js
|
||||||
else
|
else
|
||||||
em++ util.cc genericModel.cc recognizer.cc bindings.cc -O0 -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sINITIAL_MEMORY=$MAX_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -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 -pthread -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js wrapper.js -o ../test.js
|
em++ util.cc genericModel.cc recognizer.cc bindings.cc -O0 -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sINITIAL_MEMORY=$INITIAL_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -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 -pthread -flto -msimd128 -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js wrapper.js -o ../test.js
|
||||||
fi
|
fi
|
||||||
sed -i 's/res.body/new Response(res.body.pipeThrough(new DecompressionStream("gzip"))).body/' ../test.js
|
sed -i 's/res.body/new Response(res.body.pipeThrough(new DecompressionStream("gzip"))).body/' ../test.js
|
||||||
rm -f ../test.worker.js
|
rm -f ../test.worker.js
|
||||||
Reference in New Issue
Block a user