Skip to content

Commit f552a76

Browse files
authored
Provide npm package for 32-bit Windows x86 (k2-fsa#1141)
1 parent 565f335 commit f552a76

File tree

12 files changed

+383
-66
lines changed

12 files changed

+383
-66
lines changed

.github/scripts/node-addon/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"sherpa-onnx-darwin-x64": "^SHERPA_ONNX_VERSION",
5050
"sherpa-onnx-linux-x64": "^SHERPA_ONNX_VERSION",
5151
"sherpa-onnx-linux-arm64": "^SHERPA_ONNX_VERSION",
52-
"sherpa-onnx-win-x64": "^SHERPA_ONNX_VERSION"
52+
"sherpa-onnx-win-x64": "^SHERPA_ONNX_VERSION",
53+
"sherpa-onnx-win-ia32": "^SHERPA_ONNX_VERSION"
5354
}
5455
}

.github/scripts/node-addon/run.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,23 @@ platform=$(node -p "require('os').platform()")
99

1010
arch=$(node -p "require('os').arch()")
1111

12+
echo "platform: $platform"
13+
echo "arch: $arch"
14+
15+
# ia32 for win x86
16+
1217
platform2=$platform
1318

19+
1420
if [[ $platform == win32 ]]; then
1521
platform2=win
1622
fi
1723

24+
1825
SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2)
1926
echo "SHERPA_ONNX_VERSION $SHERPA_ONNX_VERSION"
2027

21-
# SHERPA_ONNX_VERSION=1.0.28
28+
# SHERPA_ONNX_VERSION=1.0.31
2229

2330
if [ -z $owner ]; then
2431
owner=k2-fsa

.github/scripts/test-nodejs-addon-npm.sh

Lines changed: 79 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,66 @@ d=nodejs-addon-examples
66
echo "dir: $d"
77
cd $d
88

9+
arch=$(node -p "require('os').arch()")
10+
platform=$(node -p "require('os').platform()")
11+
node_version=$(node -p "process.versions.node.split('.')[0]")
12+
13+
echo "----------asr----------"
14+
15+
if [[ $arch != "ia32" && $platform != "win32" ]]; then
16+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k.tar.bz2
17+
tar xvf sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k.tar.bz2
18+
rm sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k.tar.bz2
19+
20+
node ./test_asr_non_streaming_nemo_ctc.js
21+
rm -rf sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k
22+
23+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2
24+
tar xvf sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2
25+
rm sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2
26+
27+
node ./test_asr_non_streaming_paraformer.js
28+
29+
rm -f itn*
30+
31+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn_zh_number.fst
32+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn-zh-number.wav
33+
34+
node ./test_asr_non_streaming_paraformer_itn.js
35+
36+
rm -rf sherpa-onnx-paraformer-zh-2023-09-14
37+
fi
38+
39+
echo "----------tts----------"
40+
41+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_GB-cori-medium.tar.bz2
42+
tar xf vits-piper-en_GB-cori-medium.tar.bz2
43+
rm vits-piper-en_GB-cori-medium.tar.bz2
44+
45+
node ./test_tts_non_streaming_vits_piper_en.js
46+
rm -rf vits-piper-en_GB-cori-medium
47+
48+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-coqui-de-css10.tar.bz2
49+
tar xvf vits-coqui-de-css10.tar.bz2
50+
rm vits-coqui-de-css10.tar.bz2
51+
52+
node ./test_tts_non_streaming_vits_coqui_de.js
53+
rm -rf vits-coqui-de-css10
54+
55+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/sherpa-onnx-vits-zh-ll.tar.bz2
56+
tar xvf sherpa-onnx-vits-zh-ll.tar.bz2
57+
rm sherpa-onnx-vits-zh-ll.tar.bz2
58+
59+
node ./test_tts_non_streaming_vits_zh_ll.js
60+
rm -rf sherpa-onnx-vits-zh-ll
61+
62+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-icefall-zh-aishell3.tar.bz2
63+
tar xvf vits-icefall-zh-aishell3.tar.bz2
64+
rm vits-icefall-zh-aishell3.tar.bz2
65+
66+
node ./test_tts_non_streaming_vits_zh_aishell3.js
67+
rm -rf vits-icefall-zh-aishell3
68+
969
echo "----------keyword spotting----------"
1070

1171
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/kws-models/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01.tar.bz2
@@ -15,14 +75,23 @@ rm sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01.tar.bz2
1575
node ./test_keyword_spotter_transducer.js
1676
rm -rf sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01
1777

18-
echo "----------add punctuations----------"
78+
if [[ $arch != "ia32" && $platform != "win32" && $node_version != 21 ]]; then
79+
# The punctuation model is so large that it cause memory allocation failure on windows x86
80+
# 2024-07-17 03:24:34.2388391 [E:onnxruntime:, inference_session.cc:1981
81+
# onnxruntime::InferenceSession::Initialize::<lambda_d603a8c74863bd6b58a1c7996295ed04>::operator ()]
82+
# Exception during initialization: bad allocation
83+
# Error: Process completed with exit code 127.
84+
#
85+
# Node 21 does not have such an issue
86+
echo "----------add punctuations----------"
1987

20-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/punctuation-models/sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
21-
tar xvf sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
22-
rm sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
88+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/punctuation-models/sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
89+
tar xvf sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
90+
rm sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
2391

24-
node ./test_punctuation.js
25-
rm -rf sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12
92+
node ./test_punctuation.js
93+
rm -rf sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12
94+
fi
2695

2796
echo "----------audio tagging----------"
2897

@@ -75,9 +144,10 @@ rm -f itn*
75144
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn_zh_number.fst
76145
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn-zh-number.wav
77146

78-
node test_asr_streaming_transducer_itn.js
79-
80-
node test_asr_streaming_transducer.js
147+
if [[ $arch != "ia32" && $platform != "win32" ]]; then
148+
node test_asr_streaming_transducer_itn.js
149+
node test_asr_streaming_transducer.js
150+
fi
81151

82152
rm -rf sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20
83153

@@ -114,56 +184,6 @@ rm sherpa-onnx-whisper-tiny.en.tar.bz2
114184
node ./test_asr_non_streaming_whisper.js
115185
rm -rf sherpa-onnx-whisper-tiny.en
116186

117-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k.tar.bz2
118-
tar xvf sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k.tar.bz2
119-
rm sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k.tar.bz2
120-
121-
node ./test_asr_non_streaming_nemo_ctc.js
122-
rm -rf sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k
123-
124-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2
125-
tar xvf sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2
126-
rm sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2
127-
128-
node ./test_asr_non_streaming_paraformer.js
129-
130-
rm -f itn*
131-
132-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn_zh_number.fst
133-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn-zh-number.wav
134-
135-
node ./test_asr_non_streaming_paraformer_itn.js
136187

137-
rm -rf sherpa-onnx-paraformer-zh-2023-09-14
138-
139-
echo "----------tts----------"
140-
141-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_GB-cori-medium.tar.bz2
142-
tar xvf vits-piper-en_GB-cori-medium.tar.bz2
143-
rm vits-piper-en_GB-cori-medium.tar.bz2
144-
145-
node ./test_tts_non_streaming_vits_piper_en.js
146-
rm -rf vits-piper-en_GB-cori-medium
147-
148-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-coqui-de-css10.tar.bz2
149-
tar xvf vits-coqui-de-css10.tar.bz2
150-
rm vits-coqui-de-css10.tar.bz2
151-
152-
node ./test_tts_non_streaming_vits_coqui_de.js
153-
rm -rf vits-coqui-de-css10
154-
155-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/sherpa-onnx-vits-zh-ll.tar.bz2
156-
tar xvf sherpa-onnx-vits-zh-ll.tar.bz2
157-
rm sherpa-onnx-vits-zh-ll.tar.bz2
158-
159-
node ./test_tts_non_streaming_vits_zh_ll.js
160-
rm -rf sherpa-onnx-vits-zh-ll
161-
162-
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-icefall-zh-aishell3.tar.bz2
163-
tar xvf vits-icefall-zh-aishell3.tar.bz2
164-
rm vits-icefall-zh-aishell3.tar.bz2
165-
166-
node ./test_tts_non_streaming_vits_zh_aishell3.js
167-
rm -rf vits-icefall-zh-aishell3
168188

169189
ls -lh

.github/workflows/npm-addon-linux-x64.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@ jobs:
108108
shell: bash
109109
run: |
110110
ls -lh ./sherpa-onnx-node
111+
tar cjvf ./sherpa-onnx-node.tar.bz2 ./sherpa-onnx-node
112+
113+
- uses: actions/upload-artifact@v4
114+
with:
115+
name: sherpa-onnx-linux-x64
116+
path: ./sherpa-onnx-node.tar.bz2
111117

112118
- name: Publish
113119
shell: bash

.github/workflows/npm-addon-macos.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ jobs:
102102
shell: bash
103103
run: |
104104
ls -lh ./sherpa-onnx-node
105+
tar cjvf ./sherpa-onnx-node.tar.bz2 ./sherpa-onnx-node
106+
107+
- uses: actions/upload-artifact@v4
108+
with:
109+
name: sherpa-onnx-${{ matrix.os }}
110+
path: ./sherpa-onnx-node.tar.bz2
105111

106112
- name: Publish
107113
shell: bash

.github/workflows/npm-addon-win-x64.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
strategy:
2121
fail-fast: false
2222
matrix:
23-
os: [windows-latest]
23+
os: [windows-2019]
2424
python-version: ["3.8"]
2525

2626
steps:
@@ -54,6 +54,8 @@ jobs:
5454
-DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \
5555
-DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \
5656
-DSHERPA_ONNX_ENABLE_BINARY=OFF \
57+
-DBUILD_ESPEAK_NG_EXE=OFF \
58+
-DSHERPA_ONNX_BUILD_C_API_EXAMPLES=OFF \
5759
..
5860
5961
ls -lh _deps/onnxruntime-src/lib/
@@ -65,6 +67,7 @@ jobs:
6567
echo "----------"
6668
6769
cp -v _deps/onnxruntime-src/lib/*.lib ./install/lib
70+
cp -v _deps/onnxruntime-src/lib/*.dll ./install/lib
6871
6972
echo "----------"
7073
@@ -100,6 +103,12 @@ jobs:
100103
shell: bash
101104
run: |
102105
ls -lh ./sherpa-onnx-node
106+
tar cjvf ./sherpa-onnx-node.tar.bz2 ./sherpa-onnx-node
107+
108+
- uses: actions/upload-artifact@v4
109+
with:
110+
name: sherpa-onnx-win-x64
111+
path: ./sherpa-onnx-node.tar.bz2
103112

104113
- name: Publish
105114
shell: bash

0 commit comments

Comments
 (0)