@runanywhere/web 0.1.0-beta.6 → 0.1.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/Foundation/ErrorTypes.d.ts +1 -0
  2. package/dist/Foundation/ErrorTypes.d.ts.map +1 -1
  3. package/dist/Foundation/ErrorTypes.js +3 -0
  4. package/dist/Foundation/ErrorTypes.js.map +1 -1
  5. package/dist/Foundation/EventBus.d.ts +0 -1
  6. package/dist/Foundation/EventBus.d.ts.map +1 -1
  7. package/dist/Foundation/StructOffsets.d.ts +5 -37
  8. package/dist/Foundation/StructOffsets.d.ts.map +1 -1
  9. package/dist/Foundation/StructOffsets.js +6 -157
  10. package/dist/Foundation/StructOffsets.js.map +1 -1
  11. package/dist/Foundation/WASMBridge.d.ts +8 -236
  12. package/dist/Foundation/WASMBridge.d.ts.map +1 -1
  13. package/dist/Foundation/WASMBridge.js +7 -388
  14. package/dist/Foundation/WASMBridge.js.map +1 -1
  15. package/dist/Infrastructure/DeviceCapabilities.d.ts.map +1 -1
  16. package/dist/Infrastructure/DeviceCapabilities.js +1 -3
  17. package/dist/Infrastructure/DeviceCapabilities.js.map +1 -1
  18. package/dist/Infrastructure/ExtensionPoint.d.ts +114 -0
  19. package/dist/Infrastructure/ExtensionPoint.d.ts.map +1 -0
  20. package/dist/Infrastructure/ExtensionPoint.js +178 -0
  21. package/dist/Infrastructure/ExtensionPoint.js.map +1 -0
  22. package/dist/Infrastructure/LocalFileStorage.d.ts +134 -0
  23. package/dist/Infrastructure/LocalFileStorage.d.ts.map +1 -0
  24. package/dist/Infrastructure/LocalFileStorage.js +428 -0
  25. package/dist/Infrastructure/LocalFileStorage.js.map +1 -0
  26. package/dist/Infrastructure/ModelDownloader.d.ts +21 -5
  27. package/dist/Infrastructure/ModelDownloader.d.ts.map +1 -1
  28. package/dist/Infrastructure/ModelDownloader.js +79 -7
  29. package/dist/Infrastructure/ModelDownloader.js.map +1 -1
  30. package/dist/Infrastructure/ModelFileInference.d.ts +39 -0
  31. package/dist/Infrastructure/ModelFileInference.d.ts.map +1 -0
  32. package/dist/Infrastructure/ModelFileInference.js +119 -0
  33. package/dist/Infrastructure/ModelFileInference.js.map +1 -0
  34. package/dist/Infrastructure/ModelLoaderTypes.d.ts +91 -12
  35. package/dist/Infrastructure/ModelLoaderTypes.d.ts.map +1 -1
  36. package/dist/Infrastructure/ModelLoaderTypes.js +7 -1
  37. package/dist/Infrastructure/ModelLoaderTypes.js.map +1 -1
  38. package/dist/Infrastructure/ModelManager.d.ts +31 -104
  39. package/dist/Infrastructure/ModelManager.d.ts.map +1 -1
  40. package/dist/Infrastructure/ModelManager.js +207 -568
  41. package/dist/Infrastructure/ModelManager.js.map +1 -1
  42. package/dist/Infrastructure/ModelRegistry.d.ts +6 -8
  43. package/dist/Infrastructure/ModelRegistry.d.ts.map +1 -1
  44. package/dist/Infrastructure/ModelRegistry.js +11 -4
  45. package/dist/Infrastructure/ModelRegistry.js.map +1 -1
  46. package/dist/Infrastructure/OPFSStorage.d.ts +8 -0
  47. package/dist/Infrastructure/OPFSStorage.d.ts.map +1 -1
  48. package/dist/Infrastructure/OPFSStorage.js +37 -0
  49. package/dist/Infrastructure/OPFSStorage.js.map +1 -1
  50. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts +12 -4
  51. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts.map +1 -1
  52. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js +23 -51
  53. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js.map +1 -1
  54. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts +42 -10
  55. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts.map +1 -1
  56. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js +63 -161
  57. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js.map +1 -1
  58. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +3 -29
  59. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +1 -1
  60. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js +26 -42
  61. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js.map +1 -1
  62. package/dist/Public/Extensions/VoicePipelineTypes.d.ts +28 -37
  63. package/dist/Public/Extensions/VoicePipelineTypes.d.ts.map +1 -1
  64. package/dist/Public/Extensions/VoicePipelineTypes.js +4 -1
  65. package/dist/Public/Extensions/VoicePipelineTypes.js.map +1 -1
  66. package/dist/Public/RunAnywhere.d.ts +29 -85
  67. package/dist/Public/RunAnywhere.d.ts.map +1 -1
  68. package/dist/Public/RunAnywhere.js +169 -211
  69. package/dist/Public/RunAnywhere.js.map +1 -1
  70. package/dist/index.d.ts +19 -39
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +15 -31
  73. package/dist/index.js.map +1 -1
  74. package/dist/types/index.d.ts +0 -1
  75. package/dist/types/index.d.ts.map +1 -1
  76. package/dist/types/index.js +1 -0
  77. package/dist/types/index.js.map +1 -1
  78. package/package.json +4 -10
  79. package/dist/Foundation/PlatformAdapter.d.ts +0 -101
  80. package/dist/Foundation/PlatformAdapter.d.ts.map +0 -1
  81. package/dist/Foundation/PlatformAdapter.js +0 -417
  82. package/dist/Foundation/PlatformAdapter.js.map +0 -1
  83. package/dist/Foundation/SherpaONNXBridge.d.ts +0 -147
  84. package/dist/Foundation/SherpaONNXBridge.d.ts.map +0 -1
  85. package/dist/Foundation/SherpaONNXBridge.js +0 -345
  86. package/dist/Foundation/SherpaONNXBridge.js.map +0 -1
  87. package/dist/Infrastructure/AudioCapture.d.ts +0 -99
  88. package/dist/Infrastructure/AudioCapture.d.ts.map +0 -1
  89. package/dist/Infrastructure/AudioCapture.js +0 -264
  90. package/dist/Infrastructure/AudioCapture.js.map +0 -1
  91. package/dist/Infrastructure/AudioPlayback.d.ts +0 -53
  92. package/dist/Infrastructure/AudioPlayback.d.ts.map +0 -1
  93. package/dist/Infrastructure/AudioPlayback.js +0 -117
  94. package/dist/Infrastructure/AudioPlayback.js.map +0 -1
  95. package/dist/Infrastructure/VLMWorkerBridge.d.ts +0 -211
  96. package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +0 -1
  97. package/dist/Infrastructure/VLMWorkerBridge.js +0 -264
  98. package/dist/Infrastructure/VLMWorkerBridge.js.map +0 -1
  99. package/dist/Infrastructure/VLMWorkerRuntime.d.ts +0 -38
  100. package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +0 -1
  101. package/dist/Infrastructure/VLMWorkerRuntime.js +0 -503
  102. package/dist/Infrastructure/VLMWorkerRuntime.js.map +0 -1
  103. package/dist/Infrastructure/VideoCapture.d.ts +0 -130
  104. package/dist/Infrastructure/VideoCapture.d.ts.map +0 -1
  105. package/dist/Infrastructure/VideoCapture.js +0 -236
  106. package/dist/Infrastructure/VideoCapture.js.map +0 -1
  107. package/dist/Public/Extensions/DiffusionTypes.d.ts +0 -64
  108. package/dist/Public/Extensions/DiffusionTypes.d.ts.map +0 -1
  109. package/dist/Public/Extensions/DiffusionTypes.js +0 -28
  110. package/dist/Public/Extensions/DiffusionTypes.js.map +0 -1
  111. package/dist/Public/Extensions/EmbeddingsTypes.d.ts +0 -33
  112. package/dist/Public/Extensions/EmbeddingsTypes.d.ts.map +0 -1
  113. package/dist/Public/Extensions/EmbeddingsTypes.js +0 -13
  114. package/dist/Public/Extensions/EmbeddingsTypes.js.map +0 -1
  115. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts +0 -44
  116. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts.map +0 -1
  117. package/dist/Public/Extensions/RunAnywhere+Diffusion.js +0 -189
  118. package/dist/Public/Extensions/RunAnywhere+Diffusion.js.map +0 -1
  119. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts +0 -56
  120. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts.map +0 -1
  121. package/dist/Public/Extensions/RunAnywhere+Embeddings.js +0 -240
  122. package/dist/Public/Extensions/RunAnywhere+Embeddings.js.map +0 -1
  123. package/dist/Public/Extensions/RunAnywhere+STT.d.ts +0 -97
  124. package/dist/Public/Extensions/RunAnywhere+STT.d.ts.map +0 -1
  125. package/dist/Public/Extensions/RunAnywhere+STT.js +0 -417
  126. package/dist/Public/Extensions/RunAnywhere+STT.js.map +0 -1
  127. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts +0 -69
  128. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts.map +0 -1
  129. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js +0 -196
  130. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js.map +0 -1
  131. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts +0 -55
  132. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts.map +0 -1
  133. package/dist/Public/Extensions/RunAnywhere+TTS.js +0 -253
  134. package/dist/Public/Extensions/RunAnywhere+TTS.js.map +0 -1
  135. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts +0 -80
  136. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts.map +0 -1
  137. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js +0 -470
  138. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js.map +0 -1
  139. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts +0 -82
  140. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts.map +0 -1
  141. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js +0 -576
  142. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js.map +0 -1
  143. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts +0 -70
  144. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts.map +0 -1
  145. package/dist/Public/Extensions/RunAnywhere+VAD.js +0 -231
  146. package/dist/Public/Extensions/RunAnywhere+VAD.js.map +0 -1
  147. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts +0 -58
  148. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts.map +0 -1
  149. package/dist/Public/Extensions/RunAnywhere+VLM.js +0 -262
  150. package/dist/Public/Extensions/RunAnywhere+VLM.js.map +0 -1
  151. package/dist/Public/Extensions/STTTypes.d.ts +0 -61
  152. package/dist/Public/Extensions/STTTypes.d.ts.map +0 -1
  153. package/dist/Public/Extensions/STTTypes.js +0 -16
  154. package/dist/Public/Extensions/STTTypes.js.map +0 -1
  155. package/dist/Public/Extensions/TTSTypes.d.ts +0 -31
  156. package/dist/Public/Extensions/TTSTypes.d.ts.map +0 -1
  157. package/dist/Public/Extensions/TTSTypes.js +0 -3
  158. package/dist/Public/Extensions/TTSTypes.js.map +0 -1
  159. package/dist/Public/Extensions/ToolCallingTypes.d.ts +0 -78
  160. package/dist/Public/Extensions/ToolCallingTypes.d.ts.map +0 -1
  161. package/dist/Public/Extensions/ToolCallingTypes.js +0 -8
  162. package/dist/Public/Extensions/ToolCallingTypes.js.map +0 -1
  163. package/dist/Public/Extensions/VADTypes.d.ts +0 -30
  164. package/dist/Public/Extensions/VADTypes.d.ts.map +0 -1
  165. package/dist/Public/Extensions/VADTypes.js +0 -8
  166. package/dist/Public/Extensions/VADTypes.js.map +0 -1
  167. package/dist/Public/Extensions/VLMTypes.d.ts +0 -56
  168. package/dist/Public/Extensions/VLMTypes.d.ts.map +0 -1
  169. package/dist/Public/Extensions/VLMTypes.js +0 -24
  170. package/dist/Public/Extensions/VLMTypes.js.map +0 -1
  171. package/dist/types/LLMTypes.d.ts +0 -48
  172. package/dist/types/LLMTypes.d.ts.map +0 -1
  173. package/dist/types/LLMTypes.js +0 -8
  174. package/dist/types/LLMTypes.js.map +0 -1
  175. package/dist/workers/vlm-worker.d.ts +0 -9
  176. package/dist/workers/vlm-worker.d.ts.map +0 -1
  177. package/dist/workers/vlm-worker.js +0 -10
  178. package/dist/workers/vlm-worker.js.map +0 -1
  179. package/wasm/racommons-webgpu.js +0 -156
  180. package/wasm/racommons-webgpu.wasm +0 -0
  181. package/wasm/racommons.js +0 -126
  182. package/wasm/racommons.wasm +0 -0
  183. package/wasm/sherpa/sherpa-onnx-asr.js +0 -1538
  184. package/wasm/sherpa/sherpa-onnx-glue-original.js +0 -19
  185. package/wasm/sherpa/sherpa-onnx-glue.js +0 -17
  186. package/wasm/sherpa/sherpa-onnx-tts.js +0 -657
  187. package/wasm/sherpa/sherpa-onnx-vad.js +0 -337
  188. package/wasm/sherpa/sherpa-onnx-wave.js +0 -88
  189. package/wasm/sherpa/sherpa-onnx.wasm +0 -0
@@ -1,1538 +0,0 @@
1
- function freeConfig(config, Module) {
2
- if ('buffer' in config) {
3
- Module._free(config.buffer);
4
- }
5
-
6
- if ('config' in config) {
7
- freeConfig(config.config, Module)
8
- }
9
-
10
- if ('transducer' in config) {
11
- freeConfig(config.transducer, Module)
12
- }
13
-
14
- if ('paraformer' in config) {
15
- freeConfig(config.paraformer, Module)
16
- }
17
-
18
- if ('zipformer2Ctc' in config) {
19
- freeConfig(config.zipformer2Ctc, Module)
20
- }
21
-
22
- if ('feat' in config) {
23
- freeConfig(config.feat, Module)
24
- }
25
-
26
- if ('model' in config) {
27
- freeConfig(config.model, Module)
28
- }
29
-
30
- if ('nemoCtc' in config) {
31
- freeConfig(config.nemoCtc, Module)
32
- }
33
-
34
- if ('toneCtc' in config) {
35
- freeConfig(config.toneCtc, Module)
36
- }
37
-
38
- if ('whisper' in config) {
39
- freeConfig(config.whisper, Module)
40
- }
41
-
42
- if ('fireRedAsr' in config) {
43
- freeConfig(config.fireRedAsr, Module)
44
- }
45
-
46
- if ('dolphin' in config) {
47
- freeConfig(config.dolphin, Module)
48
- }
49
-
50
- if ('zipformerCtc' in config) {
51
- freeConfig(config.zipformerCtc, Module)
52
- }
53
-
54
- if ('wenetCtc' in config) {
55
- freeConfig(config.wenetCtc, Module)
56
- }
57
-
58
- if ('omnilingual' in config) {
59
- freeConfig(config.omnilingual, Module)
60
- }
61
-
62
- if ('moonshine' in config) {
63
- freeConfig(config.moonshine, Module)
64
- }
65
-
66
- if ('tdnn' in config) {
67
- freeConfig(config.tdnn, Module)
68
- }
69
-
70
- if ('senseVoice' in config) {
71
- freeConfig(config.senseVoice, Module)
72
- }
73
-
74
- if ('canary' in config) {
75
- freeConfig(config.canary, Module)
76
- }
77
-
78
- if ('lm' in config) {
79
- freeConfig(config.lm, Module)
80
- }
81
-
82
- if ('ctcFstDecoder' in config) {
83
- freeConfig(config.ctcFstDecoder, Module)
84
- }
85
-
86
- if ('hr' in config) {
87
- freeConfig(config.hr, Module)
88
- }
89
-
90
- Module._free(config.ptr);
91
- }
92
-
93
- // The user should free the returned pointers
94
- function initSherpaOnnxOnlineTransducerModelConfig(config, Module) {
95
- const encoderLen = Module.lengthBytesUTF8(config.encoder || '') + 1;
96
- const decoderLen = Module.lengthBytesUTF8(config.decoder || '') + 1;
97
- const joinerLen = Module.lengthBytesUTF8(config.joiner || '') + 1;
98
-
99
- const n = encoderLen + decoderLen + joinerLen;
100
-
101
- const buffer = Module._malloc(n);
102
-
103
- const len = 3 * 4; // 3 pointers
104
- const ptr = Module._malloc(len);
105
-
106
- let offset = 0;
107
- Module.stringToUTF8(config.encoder || '', buffer + offset, encoderLen);
108
- offset += encoderLen;
109
-
110
- Module.stringToUTF8(config.decoder || '', buffer + offset, decoderLen);
111
- offset += decoderLen;
112
-
113
- Module.stringToUTF8(config.joiner || '', buffer + offset, joinerLen);
114
-
115
- offset = 0;
116
- Module.setValue(ptr, buffer + offset, 'i8*');
117
- offset += encoderLen;
118
-
119
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
120
- offset += decoderLen;
121
-
122
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
123
-
124
- return {
125
- buffer: buffer, ptr: ptr, len: len,
126
- }
127
- }
128
-
129
- function initSherpaOnnxOnlineParaformerModelConfig(config, Module) {
130
- const encoderLen = Module.lengthBytesUTF8(config.encoder || '') + 1;
131
- const decoderLen = Module.lengthBytesUTF8(config.decoder || '') + 1;
132
-
133
- const n = encoderLen + decoderLen;
134
- const buffer = Module._malloc(n);
135
-
136
- const len = 2 * 4; // 2 pointers
137
- const ptr = Module._malloc(len);
138
-
139
- let offset = 0;
140
- Module.stringToUTF8(config.encoder || '', buffer + offset, encoderLen);
141
- offset += encoderLen;
142
-
143
- Module.stringToUTF8(config.decoder || '', buffer + offset, decoderLen);
144
-
145
- offset = 0;
146
- Module.setValue(ptr, buffer + offset, 'i8*');
147
- offset += encoderLen;
148
-
149
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
150
-
151
- return {
152
- buffer: buffer, ptr: ptr, len: len,
153
- }
154
- }
155
-
156
- function initSherpaOnnxOnlineZipformer2CtcModelConfig(config, Module) {
157
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
158
- const buffer = Module._malloc(n);
159
-
160
- const len = 1 * 4; // 1 pointer
161
- const ptr = Module._malloc(len);
162
-
163
- Module.stringToUTF8(config.model || '', buffer, n);
164
-
165
- Module.setValue(ptr, buffer, 'i8*');
166
-
167
- return {
168
- buffer: buffer, ptr: ptr, len: len,
169
- }
170
- }
171
-
172
- function initSherpaOnnxOnlineNemoCtcModelConfig(config, Module) {
173
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
174
- const buffer = Module._malloc(n);
175
-
176
- const len = 1 * 4; // 1 pointer
177
- const ptr = Module._malloc(len);
178
-
179
- Module.stringToUTF8(config.model || '', buffer, n);
180
-
181
- Module.setValue(ptr, buffer, 'i8*');
182
-
183
- return {
184
- buffer: buffer, ptr: ptr, len: len,
185
- }
186
- }
187
-
188
- function initSherpaOnnxOnlineToneCtcModelConfig(config, Module) {
189
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
190
- const buffer = Module._malloc(n);
191
-
192
- const len = 1 * 4; // 1 pointer
193
- const ptr = Module._malloc(len);
194
-
195
- Module.stringToUTF8(config.model || '', buffer, n);
196
-
197
- Module.setValue(ptr, buffer, 'i8*');
198
-
199
- return {
200
- buffer: buffer, ptr: ptr, len: len,
201
- }
202
- }
203
-
204
- function initSherpaOnnxOnlineModelConfig(config, Module) {
205
- if (!('transducer' in config)) {
206
- config.transducer = {
207
- encoder: '',
208
- decoder: '',
209
- joiner: '',
210
- };
211
- }
212
-
213
- if (!('paraformer' in config)) {
214
- config.paraformer = {
215
- encoder: '',
216
- decoder: '',
217
- };
218
- }
219
-
220
- if (!('zipformer2Ctc' in config)) {
221
- config.zipformer2Ctc = {
222
- model: '',
223
- };
224
- }
225
-
226
- if (!('nemoCtc' in config)) {
227
- config.nemoCtc = {
228
- model: '',
229
- };
230
- }
231
-
232
- if (!('toneCtc' in config)) {
233
- config.toneCtc = {
234
- model: '',
235
- };
236
- }
237
-
238
- if (!('tokensBuf' in config)) {
239
- config.tokensBuf = '';
240
- }
241
-
242
- if (!('tokensBufSize' in config)) {
243
- config.tokensBufSize = 0;
244
- }
245
-
246
- const transducer =
247
- initSherpaOnnxOnlineTransducerModelConfig(config.transducer, Module);
248
-
249
- const paraformer =
250
- initSherpaOnnxOnlineParaformerModelConfig(config.paraformer, Module);
251
-
252
- const zipformer2Ctc = initSherpaOnnxOnlineZipformer2CtcModelConfig(
253
- config.zipformer2Ctc, Module);
254
-
255
- const nemoCtc =
256
- initSherpaOnnxOnlineNemoCtcModelConfig(config.nemoCtc, Module);
257
-
258
- const toneCtc =
259
- initSherpaOnnxOnlineToneCtcModelConfig(config.toneCtc, Module);
260
-
261
- const len = transducer.len + paraformer.len + zipformer2Ctc.len + 9 * 4 +
262
- nemoCtc.len + toneCtc.len;
263
-
264
- const ptr = Module._malloc(len);
265
-
266
- let offset = 0;
267
- Module._CopyHeap(transducer.ptr, transducer.len, ptr + offset);
268
- offset += transducer.len;
269
-
270
- Module._CopyHeap(paraformer.ptr, paraformer.len, ptr + offset);
271
- offset += paraformer.len;
272
-
273
- Module._CopyHeap(zipformer2Ctc.ptr, zipformer2Ctc.len, ptr + offset);
274
- offset += zipformer2Ctc.len;
275
-
276
- const tokensLen = Module.lengthBytesUTF8(config.tokens || '') + 1;
277
- const providerLen = Module.lengthBytesUTF8(config.provider || 'cpu') + 1;
278
- const modelTypeLen = Module.lengthBytesUTF8(config.modelType || '') + 1;
279
- const modelingUnitLen = Module.lengthBytesUTF8(config.modelingUnit || '') + 1;
280
- const bpeVocabLen = Module.lengthBytesUTF8(config.bpeVocab || '') + 1;
281
- const tokensBufLen = Module.lengthBytesUTF8(config.tokensBuf || '') + 1;
282
-
283
- const bufferLen = tokensLen + providerLen + modelTypeLen + modelingUnitLen +
284
- bpeVocabLen + tokensBufLen;
285
- const buffer = Module._malloc(bufferLen);
286
-
287
- offset = 0;
288
- Module.stringToUTF8(config.tokens || '', buffer, tokensLen);
289
- offset += tokensLen;
290
-
291
- Module.stringToUTF8(config.provider || 'cpu', buffer + offset, providerLen);
292
- offset += providerLen;
293
-
294
- Module.stringToUTF8(config.modelType || '', buffer + offset, modelTypeLen);
295
- offset += modelTypeLen;
296
-
297
- Module.stringToUTF8(
298
- config.modelingUnit || '', buffer + offset, modelingUnitLen);
299
- offset += modelingUnitLen;
300
-
301
- Module.stringToUTF8(config.bpeVocab || '', buffer + offset, bpeVocabLen);
302
- offset += bpeVocabLen;
303
-
304
- Module.stringToUTF8(config.tokensBuf || '', buffer + offset, tokensBufLen);
305
- offset += tokensBufLen;
306
-
307
- offset = transducer.len + paraformer.len + zipformer2Ctc.len;
308
- Module.setValue(ptr + offset, buffer, 'i8*'); // tokens
309
- offset += 4;
310
-
311
- Module.setValue(ptr + offset, config.numThreads || 1, 'i32');
312
- offset += 4;
313
-
314
- Module.setValue(ptr + offset, buffer + tokensLen, 'i8*'); // provider
315
- offset += 4;
316
-
317
- Module.setValue(ptr + offset, config.debug ?? 1, 'i32');
318
- offset += 4;
319
-
320
- Module.setValue(
321
- ptr + offset, buffer + tokensLen + providerLen, 'i8*'); // modelType
322
- offset += 4;
323
-
324
- Module.setValue(
325
- ptr + offset, buffer + tokensLen + providerLen + modelTypeLen,
326
- 'i8*'); // modelingUnit
327
- offset += 4;
328
-
329
- Module.setValue(
330
- ptr + offset,
331
- buffer + tokensLen + providerLen + modelTypeLen + modelingUnitLen,
332
- 'i8*'); // bpeVocab
333
- offset += 4;
334
-
335
- Module.setValue(
336
- ptr + offset,
337
- buffer + tokensLen + providerLen + modelTypeLen + modelingUnitLen +
338
- bpeVocabLen,
339
- 'i8*'); // tokens_buf
340
- offset += 4;
341
-
342
- Module.setValue(ptr + offset, config.tokensBufSize || 0, 'i32');
343
- offset += 4;
344
-
345
- Module._CopyHeap(nemoCtc.ptr, nemoCtc.len, ptr + offset);
346
- offset += nemoCtc.len;
347
-
348
- Module._CopyHeap(toneCtc.ptr, toneCtc.len, ptr + offset);
349
- offset += toneCtc.len;
350
-
351
- return {
352
- buffer: buffer, ptr: ptr, len: len, transducer: transducer,
353
- paraformer: paraformer, zipformer2Ctc: zipformer2Ctc, nemoCtc: nemoCtc,
354
- toneCtc: toneCtc,
355
- }
356
- }
357
-
358
- function initSherpaOnnxFeatureConfig(config, Module) {
359
- const len = 2 * 4; // 2 pointers
360
- const ptr = Module._malloc(len);
361
-
362
- Module.setValue(ptr, config.sampleRate || 16000, 'i32');
363
- Module.setValue(ptr + 4, config.featureDim || 80, 'i32');
364
- return {ptr: ptr, len: len};
365
- }
366
-
367
- function initSherpaOnnxHomophoneReplacerConfig(config, Module) {
368
- const len = 3 * 4;
369
- const ptr = Module._malloc(len);
370
-
371
- const dictDir = '';
372
-
373
- const dictDirLen = Module.lengthBytesUTF8(dictDir) + 1;
374
- const lexiconLen = Module.lengthBytesUTF8(config.lexicon || '') + 1;
375
- const ruleFstsLen = Module.lengthBytesUTF8(config.ruleFsts || '') + 1;
376
-
377
- const bufferLen = dictDirLen + lexiconLen + ruleFstsLen;
378
-
379
- const buffer = Module._malloc(bufferLen);
380
- let offset = 0
381
- Module.stringToUTF8(dictDir, buffer + offset, dictDirLen);
382
- offset += dictDirLen;
383
-
384
- Module.stringToUTF8(config.lexicon || '', buffer + offset, lexiconLen);
385
- offset += lexiconLen;
386
-
387
- Module.stringToUTF8(config.ruleFsts || '', buffer + offset, ruleFstsLen);
388
- offset += ruleFstsLen;
389
-
390
- Module.setValue(ptr, buffer, 'i8*');
391
- Module.setValue(ptr + 4, buffer + dictDirLen, 'i8*');
392
- Module.setValue(ptr + 8, buffer + dictDirLen + lexiconLen, 'i8*');
393
-
394
- return {ptr: ptr, len: len, buffer: buffer};
395
- }
396
-
397
- function initSherpaOnnxOnlineCtcFstDecoderConfig(config, Module) {
398
- const len = 2 * 4;
399
- const ptr = Module._malloc(len);
400
-
401
- const graphLen = Module.lengthBytesUTF8(config.graph || '') + 1;
402
- const buffer = Module._malloc(graphLen);
403
- Module.stringToUTF8(config.graph, buffer, graphLen);
404
-
405
- Module.setValue(ptr, buffer, 'i8*');
406
- Module.setValue(ptr + 4, config.maxActive || 3000, 'i32');
407
- return {ptr: ptr, len: len, buffer: buffer};
408
- }
409
-
410
- function initSherpaOnnxOnlineRecognizerConfig(config, Module) {
411
- if (!('featConfig' in config)) {
412
- config.featConfig = {
413
- sampleRate: 16000,
414
- featureDim: 80,
415
- };
416
- }
417
-
418
- if (!('ctcFstDecoderConfig' in config)) {
419
- config.ctcFstDecoderConfig = {
420
- graph: '',
421
- maxActive: 3000,
422
- };
423
- }
424
-
425
- if (!('hotwordsBuf' in config)) {
426
- config.hotwordsBuf = '';
427
- }
428
-
429
- if (!('hotwordsBufSize' in config)) {
430
- config.hotwordsBufSize = 0;
431
- }
432
-
433
- if (!('hr' in config)) {
434
- config.hr = {
435
- lexicon: '',
436
- ruleFsts: '',
437
- };
438
- }
439
-
440
- const feat = initSherpaOnnxFeatureConfig(config.featConfig, Module);
441
- const model = initSherpaOnnxOnlineModelConfig(config.modelConfig, Module);
442
- const ctcFstDecoder = initSherpaOnnxOnlineCtcFstDecoderConfig(
443
- config.ctcFstDecoderConfig, Module)
444
- const hr = initSherpaOnnxHomophoneReplacerConfig(config.hr, Module);
445
-
446
- const len = feat.len + model.len + 8 * 4 + ctcFstDecoder.len + 5 * 4 + hr.len;
447
- const ptr = Module._malloc(len);
448
-
449
- let offset = 0;
450
- Module._CopyHeap(feat.ptr, feat.len, ptr + offset);
451
- offset += feat.len;
452
-
453
- Module._CopyHeap(model.ptr, model.len, ptr + offset);
454
- offset += model.len;
455
-
456
- const decodingMethodLen =
457
- Module.lengthBytesUTF8(config.decodingMethod || 'greedy_search') + 1;
458
- const hotwordsFileLen = Module.lengthBytesUTF8(config.hotwordsFile || '') + 1;
459
- const ruleFstsFileLen = Module.lengthBytesUTF8(config.ruleFsts || '') + 1;
460
- const ruleFarsFileLen = Module.lengthBytesUTF8(config.ruleFars || '') + 1;
461
- const hotwordsBufLen = Module.lengthBytesUTF8(config.hotwordsBuf || '') + 1;
462
- const bufferLen = decodingMethodLen + hotwordsFileLen + ruleFstsFileLen +
463
- ruleFarsFileLen + hotwordsBufLen;
464
- const buffer = Module._malloc(bufferLen);
465
-
466
- offset = 0;
467
- Module.stringToUTF8(
468
- config.decodingMethod || 'greedy_search', buffer, decodingMethodLen);
469
- offset += decodingMethodLen;
470
-
471
- Module.stringToUTF8(
472
- config.hotwordsFile || '', buffer + offset, hotwordsFileLen);
473
- offset += hotwordsFileLen;
474
-
475
- Module.stringToUTF8(config.ruleFsts || '', buffer + offset, ruleFstsFileLen);
476
- offset += ruleFstsFileLen;
477
-
478
- Module.stringToUTF8(config.ruleFars || '', buffer + offset, ruleFarsFileLen);
479
- offset += ruleFarsFileLen;
480
-
481
- Module.stringToUTF8(
482
- config.hotwordsBuf || '', buffer + offset, hotwordsBufLen);
483
- offset += hotwordsBufLen;
484
-
485
- offset = feat.len + model.len;
486
- Module.setValue(ptr + offset, buffer, 'i8*'); // decoding method
487
- offset += 4;
488
-
489
- Module.setValue(ptr + offset, config.maxActivePaths || 4, 'i32');
490
- offset += 4;
491
-
492
- Module.setValue(ptr + offset, config.enableEndpoint || 0, 'i32');
493
- offset += 4;
494
-
495
- Module.setValue(ptr + offset, config.rule1MinTrailingSilence || 2.4, 'float');
496
- offset += 4;
497
-
498
- Module.setValue(ptr + offset, config.rule2MinTrailingSilence || 1.2, 'float');
499
- offset += 4;
500
-
501
- Module.setValue(ptr + offset, config.rule3MinUtteranceLength || 20, 'float');
502
- offset += 4;
503
-
504
- Module.setValue(ptr + offset, buffer + decodingMethodLen, 'i8*');
505
- offset += 4;
506
-
507
- Module.setValue(ptr + offset, config.hotwordsScore || 1.5, 'float');
508
- offset += 4;
509
-
510
- Module._CopyHeap(ctcFstDecoder.ptr, ctcFstDecoder.len, ptr + offset);
511
- offset += ctcFstDecoder.len;
512
-
513
- Module.setValue(
514
- ptr + offset, buffer + decodingMethodLen + hotwordsFileLen, 'i8*');
515
- offset += 4;
516
-
517
- Module.setValue(
518
- ptr + offset,
519
- buffer + decodingMethodLen + hotwordsFileLen + ruleFstsFileLen, 'i8*');
520
- offset += 4;
521
-
522
- Module.setValue(ptr + offset, config.blankPenalty || 0, 'float');
523
- offset += 4;
524
-
525
- Module.setValue(
526
- ptr + offset,
527
- buffer + decodingMethodLen + hotwordsFileLen + ruleFstsFileLen +
528
- ruleFarsFileLen,
529
- 'i8*');
530
- offset += 4;
531
-
532
- Module.setValue(ptr + offset, config.hotwordsBufSize || 0, 'i32');
533
- offset += 4;
534
-
535
- Module._CopyHeap(hr.ptr, hr.len, ptr + offset);
536
- offset += hr.len;
537
-
538
- return {
539
- buffer: buffer, ptr: ptr, len: len, feat: feat, model: model,
540
- ctcFstDecoder: ctcFstDecoder, hr: hr,
541
- }
542
- }
543
-
544
- function createOnlineRecognizer(Module, myConfig) {
545
- const onlineTransducerModelConfig = {
546
- encoder: '',
547
- decoder: '',
548
- joiner: '',
549
- };
550
-
551
- const onlineParaformerModelConfig = {
552
- encoder: '',
553
- decoder: '',
554
- };
555
-
556
- const onlineZipformer2CtcModelConfig = {
557
- model: '',
558
- };
559
-
560
- const onlineNemoCtcModelConfig = {
561
- model: '',
562
- };
563
-
564
- const onlineToneCtcModelConfig = {
565
- model: '',
566
- };
567
-
568
- let type = 0;
569
-
570
- switch (type) {
571
- case 0:
572
- // transducer
573
- onlineTransducerModelConfig.encoder = './encoder.onnx';
574
- onlineTransducerModelConfig.decoder = './decoder.onnx';
575
- onlineTransducerModelConfig.joiner = './joiner.onnx';
576
- break;
577
- case 1:
578
- // paraformer
579
- onlineParaformerModelConfig.encoder = './encoder.onnx';
580
- onlineParaformerModelConfig.decoder = './decoder.onnx';
581
- break;
582
- case 2:
583
- // zipformer2Ctc
584
- onlineZipformer2CtcModelConfig.model = './encoder.onnx';
585
- break;
586
- case 3:
587
- // nemoCtc
588
- onlineNemoCtcModelConfig.model = './nemo-ctc.onnx';
589
- break;
590
- case 4:
591
- // toneCtc
592
- onlineToneCtcModelConfig.model = './tone-ctc.onnx';
593
- break;
594
- }
595
-
596
-
597
- const onlineModelConfig = {
598
- transducer: onlineTransducerModelConfig,
599
- paraformer: onlineParaformerModelConfig,
600
- zipformer2Ctc: onlineZipformer2CtcModelConfig,
601
- nemoCtc: onlineNemoCtcModelConfig,
602
- toneCtc: onlineToneCtcModelConfig,
603
- tokens: './tokens.txt',
604
- numThreads: 1,
605
- provider: 'cpu',
606
- debug: 1,
607
- modelType: '',
608
- modelingUnit: 'cjkchar',
609
- bpeVocab: '',
610
- };
611
-
612
- const featureConfig = {
613
- sampleRate: 16000, // it is ignored when toneCtc is used
614
- featureDim: 80, // it is ignored when toneCtc is used
615
- };
616
-
617
- let recognizerConfig = {
618
- featConfig: featureConfig,
619
- modelConfig: onlineModelConfig,
620
- decodingMethod: 'greedy_search',
621
- maxActivePaths: 4,
622
- enableEndpoint: 1,
623
- rule1MinTrailingSilence: 2.4,
624
- rule2MinTrailingSilence: 1.2,
625
- rule3MinUtteranceLength: 20,
626
- hotwordsFile: '',
627
- hotwordsScore: 1.5,
628
- ctcFstDecoderConfig: {
629
- graph: '',
630
- maxActive: 3000,
631
- },
632
- ruleFsts: '',
633
- ruleFars: '',
634
- };
635
- if (myConfig) {
636
- recognizerConfig = myConfig;
637
- }
638
-
639
- return new OnlineRecognizer(recognizerConfig, Module);
640
- }
641
-
642
- function initSherpaOnnxOfflineTransducerModelConfig(config, Module) {
643
- const encoderLen = Module.lengthBytesUTF8(config.encoder || '') + 1;
644
- const decoderLen = Module.lengthBytesUTF8(config.decoder || '') + 1;
645
- const joinerLen = Module.lengthBytesUTF8(config.joiner || '') + 1;
646
-
647
- const n = encoderLen + decoderLen + joinerLen;
648
-
649
- const buffer = Module._malloc(n);
650
-
651
- const len = 3 * 4; // 3 pointers
652
- const ptr = Module._malloc(len);
653
-
654
- let offset = 0;
655
- Module.stringToUTF8(config.encoder || '', buffer + offset, encoderLen);
656
- offset += encoderLen;
657
-
658
- Module.stringToUTF8(config.decoder || '', buffer + offset, decoderLen);
659
- offset += decoderLen;
660
-
661
- Module.stringToUTF8(config.joiner || '', buffer + offset, joinerLen);
662
-
663
- offset = 0;
664
- Module.setValue(ptr, buffer + offset, 'i8*');
665
- offset += encoderLen;
666
-
667
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
668
- offset += decoderLen;
669
-
670
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
671
-
672
- return {
673
- buffer: buffer, ptr: ptr, len: len,
674
- }
675
- }
676
-
677
- function initSherpaOnnxOfflineParaformerModelConfig(config, Module) {
678
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
679
-
680
- const buffer = Module._malloc(n);
681
-
682
- const len = 1 * 4; // 1 pointer
683
- const ptr = Module._malloc(len);
684
-
685
- Module.stringToUTF8(config.model || '', buffer, n);
686
-
687
- Module.setValue(ptr, buffer, 'i8*');
688
-
689
- return {
690
- buffer: buffer, ptr: ptr, len: len,
691
- }
692
- }
693
-
694
- function initSherpaOnnxOfflineNemoEncDecCtcModelConfig(config, Module) {
695
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
696
-
697
- const buffer = Module._malloc(n);
698
-
699
- const len = 1 * 4; // 1 pointer
700
- const ptr = Module._malloc(len);
701
-
702
- Module.stringToUTF8(config.model || '', buffer, n);
703
-
704
- Module.setValue(ptr, buffer, 'i8*');
705
-
706
- return {
707
- buffer: buffer, ptr: ptr, len: len,
708
- }
709
- }
710
-
711
- function initSherpaOnnxOfflineDolphinModelConfig(config, Module) {
712
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
713
-
714
- const buffer = Module._malloc(n);
715
-
716
- const len = 1 * 4; // 1 pointer
717
- const ptr = Module._malloc(len);
718
-
719
- Module.stringToUTF8(config.model || '', buffer, n);
720
-
721
- Module.setValue(ptr, buffer, 'i8*');
722
-
723
- return {
724
- buffer: buffer, ptr: ptr, len: len,
725
- }
726
- }
727
-
728
- function initSherpaOnnxOfflineZipformerCtcModelConfig(config, Module) {
729
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
730
-
731
- const buffer = Module._malloc(n);
732
-
733
- const len = 1 * 4; // 1 pointer
734
- const ptr = Module._malloc(len);
735
-
736
- Module.stringToUTF8(config.model || '', buffer, n);
737
-
738
- Module.setValue(ptr, buffer, 'i8*');
739
-
740
- return {
741
- buffer: buffer, ptr: ptr, len: len,
742
- }
743
- }
744
-
745
- function initSherpaOnnxOfflineWenetCtcModelConfig(config, Module) {
746
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
747
-
748
- const buffer = Module._malloc(n);
749
-
750
- const len = 1 * 4; // 1 pointer
751
- const ptr = Module._malloc(len);
752
-
753
- Module.stringToUTF8(config.model || '', buffer, n);
754
-
755
- Module.setValue(ptr, buffer, 'i8*');
756
-
757
- return {
758
- buffer: buffer, ptr: ptr, len: len,
759
- }
760
- }
761
-
762
- function initSherpaOnnxOfflineOmnilingualAsrCtcModelConfig(config, Module) {
763
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
764
-
765
- const buffer = Module._malloc(n);
766
-
767
- const len = 1 * 4; // 1 pointer
768
- const ptr = Module._malloc(len);
769
-
770
- Module.stringToUTF8(config.model || '', buffer, n);
771
-
772
- Module.setValue(ptr, buffer, 'i8*');
773
-
774
- return {
775
- buffer: buffer, ptr: ptr, len: len,
776
- }
777
- }
778
-
779
- function initSherpaOnnxOfflineWhisperModelConfig(config, Module) {
780
- const encoderLen = Module.lengthBytesUTF8(config.encoder || '') + 1;
781
- const decoderLen = Module.lengthBytesUTF8(config.decoder || '') + 1;
782
- const languageLen = Module.lengthBytesUTF8(config.language || '') + 1;
783
- const taskLen = Module.lengthBytesUTF8(config.task || '') + 1;
784
-
785
- const n = encoderLen + decoderLen + languageLen + taskLen;
786
- const buffer = Module._malloc(n);
787
-
788
- const len = 5 * 4; // 4 pointers + 1 int32
789
- const ptr = Module._malloc(len);
790
-
791
- let offset = 0;
792
- Module.stringToUTF8(config.encoder || '', buffer + offset, encoderLen);
793
- offset += encoderLen;
794
-
795
- Module.stringToUTF8(config.decoder || '', buffer + offset, decoderLen);
796
- offset += decoderLen;
797
-
798
- Module.stringToUTF8(config.language || '', buffer + offset, languageLen);
799
- offset += languageLen;
800
-
801
- Module.stringToUTF8(config.task || '', buffer + offset, taskLen);
802
-
803
- offset = 0;
804
- Module.setValue(ptr, buffer + offset, 'i8*');
805
- offset += encoderLen;
806
-
807
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
808
- offset += decoderLen;
809
-
810
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
811
- offset += languageLen;
812
-
813
- Module.setValue(ptr + 12, buffer + offset, 'i8*');
814
- offset += taskLen;
815
-
816
- Module.setValue(ptr + 16, config.tailPaddings || 2000, 'i32');
817
-
818
- return {
819
- buffer: buffer, ptr: ptr, len: len,
820
- }
821
- }
822
-
823
- function initSherpaOnnxOfflineCanaryModelConfig(config, Module) {
824
- const encoderLen = Module.lengthBytesUTF8(config.encoder || '') + 1;
825
- const decoderLen = Module.lengthBytesUTF8(config.decoder || '') + 1;
826
- const srcLangLen = Module.lengthBytesUTF8(config.srcLang || '') + 1;
827
- const tgtLangLen = Module.lengthBytesUTF8(config.tgtLang || '') + 1;
828
-
829
- const n = encoderLen + decoderLen + srcLangLen + tgtLangLen;
830
- const buffer = Module._malloc(n);
831
-
832
- const len = 5 * 4; // 4 pointers + 1 int32
833
- const ptr = Module._malloc(len);
834
-
835
- let offset = 0;
836
- Module.stringToUTF8(config.encoder || '', buffer + offset, encoderLen);
837
- offset += encoderLen;
838
-
839
- Module.stringToUTF8(config.decoder || '', buffer + offset, decoderLen);
840
- offset += decoderLen;
841
-
842
- Module.stringToUTF8(config.srcLang || '', buffer + offset, srcLangLen);
843
- offset += srcLangLen;
844
-
845
- Module.stringToUTF8(config.tgtLang || '', buffer + offset, tgtLangLen);
846
- offset += tgtLangLen;
847
-
848
- offset = 0;
849
- Module.setValue(ptr, buffer + offset, 'i8*');
850
- offset += encoderLen;
851
-
852
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
853
- offset += decoderLen;
854
-
855
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
856
- offset += srcLangLen;
857
-
858
- Module.setValue(ptr + 12, buffer + offset, 'i8*');
859
- offset += tgtLangLen;
860
-
861
- Module.setValue(ptr + 16, config.usePnc ?? 1, 'i32');
862
-
863
- return {
864
- buffer: buffer, ptr: ptr, len: len,
865
- }
866
- }
867
-
868
- function initSherpaOnnxOfflineMoonshineModelConfig(config, Module) {
869
- const preprocessorLen = Module.lengthBytesUTF8(config.preprocessor || '') + 1;
870
- const encoderLen = Module.lengthBytesUTF8(config.encoder || '') + 1;
871
- const uncachedDecoderLen =
872
- Module.lengthBytesUTF8(config.uncachedDecoder || '') + 1;
873
- const cachedDecoderLen =
874
- Module.lengthBytesUTF8(config.cachedDecoder || '') + 1;
875
-
876
- const n =
877
- preprocessorLen + encoderLen + uncachedDecoderLen + cachedDecoderLen;
878
- const buffer = Module._malloc(n);
879
-
880
- const len = 4 * 4; // 4 pointers
881
- const ptr = Module._malloc(len);
882
-
883
- let offset = 0;
884
- Module.stringToUTF8(
885
- config.preprocessor || '', buffer + offset, preprocessorLen);
886
- offset += preprocessorLen;
887
-
888
- Module.stringToUTF8(config.encoder || '', buffer + offset, encoderLen);
889
- offset += encoderLen;
890
-
891
- Module.stringToUTF8(
892
- config.uncachedDecoder || '', buffer + offset, uncachedDecoderLen);
893
- offset += uncachedDecoderLen;
894
-
895
- Module.stringToUTF8(
896
- config.cachedDecoder || '', buffer + offset, cachedDecoderLen);
897
- offset += cachedDecoderLen;
898
-
899
- offset = 0;
900
- Module.setValue(ptr, buffer + offset, 'i8*');
901
- offset += preprocessorLen;
902
-
903
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
904
- offset += encoderLen;
905
-
906
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
907
- offset += uncachedDecoderLen;
908
-
909
- Module.setValue(ptr + 12, buffer + offset, 'i8*');
910
- offset += cachedDecoderLen;
911
-
912
- return {
913
- buffer: buffer, ptr: ptr, len: len,
914
- }
915
- }
916
-
917
- function initSherpaOnnxOfflineFireRedAsrModelConfig(config, Module) {
918
- const encoderLen = Module.lengthBytesUTF8(config.encoder || '') + 1;
919
- const decoderLen = Module.lengthBytesUTF8(config.decoder || '') + 1;
920
-
921
- const n = encoderLen + decoderLen;
922
- const buffer = Module._malloc(n);
923
-
924
- const len = 2 * 4; // 2 pointers
925
- const ptr = Module._malloc(len);
926
-
927
- let offset = 0;
928
- Module.stringToUTF8(config.encoder || '', buffer + offset, encoderLen);
929
- offset += encoderLen;
930
-
931
- Module.stringToUTF8(config.decoder || '', buffer + offset, decoderLen);
932
- offset += decoderLen;
933
-
934
- offset = 0;
935
- Module.setValue(ptr, buffer + offset, 'i8*');
936
- offset += encoderLen;
937
-
938
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
939
- offset += decoderLen;
940
-
941
- return {
942
- buffer: buffer, ptr: ptr, len: len,
943
- }
944
- }
945
-
946
- function initSherpaOnnxOfflineTdnnModelConfig(config, Module) {
947
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
948
- const buffer = Module._malloc(n);
949
-
950
- const len = 1 * 4; // 1 pointer
951
- const ptr = Module._malloc(len);
952
-
953
- Module.stringToUTF8(config.model || '', buffer, n);
954
-
955
- Module.setValue(ptr, buffer, 'i8*');
956
-
957
- return {
958
- buffer: buffer, ptr: ptr, len: len,
959
- }
960
- }
961
-
962
- function initSherpaOnnxOfflineSenseVoiceModelConfig(config, Module) {
963
- const modelLen = Module.lengthBytesUTF8(config.model || '') + 1;
964
- const languageLen = Module.lengthBytesUTF8(config.language || '') + 1;
965
-
966
- // useItn is a integer with 4 bytes
967
- const n = modelLen + languageLen;
968
- const buffer = Module._malloc(n);
969
-
970
- const len = 3 * 4; // 2 pointers + 1 int
971
- const ptr = Module._malloc(len);
972
-
973
- let offset = 0;
974
- Module.stringToUTF8(config.model || '', buffer + offset, modelLen);
975
- offset += modelLen;
976
-
977
- Module.stringToUTF8(config.language || '', buffer + offset, languageLen);
978
- offset += languageLen;
979
-
980
- offset = 0;
981
- Module.setValue(ptr, buffer + offset, 'i8*');
982
- offset += modelLen;
983
-
984
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
985
- offset += languageLen;
986
-
987
- Module.setValue(ptr + 8, config.useInverseTextNormalization ?? 0, 'i32');
988
-
989
- return {
990
- buffer: buffer, ptr: ptr, len: len,
991
- }
992
- }
993
-
994
- function initSherpaOnnxOfflineLMConfig(config, Module) {
995
- const n = Module.lengthBytesUTF8(config.model || '') + 1;
996
- const buffer = Module._malloc(n);
997
-
998
- const len = 2 * 4;
999
- const ptr = Module._malloc(len);
1000
-
1001
- Module.stringToUTF8(config.model || '', buffer, n);
1002
- Module.setValue(ptr, buffer, 'i8*');
1003
- Module.setValue(ptr + 4, config.scale || 1, 'float');
1004
-
1005
- return {
1006
- buffer: buffer, ptr: ptr, len: len,
1007
- }
1008
- }
1009
-
1010
- function initSherpaOnnxOfflineModelConfig(config, Module) {
1011
- if (!('transducer' in config)) {
1012
- config.transducer = {
1013
- encoder: '',
1014
- decoder: '',
1015
- joiner: '',
1016
- };
1017
- }
1018
-
1019
- if (!('paraformer' in config)) {
1020
- config.paraformer = {
1021
- model: '',
1022
- };
1023
- }
1024
-
1025
- if (!('nemoCtc' in config)) {
1026
- config.nemoCtc = {
1027
- model: '',
1028
- };
1029
- }
1030
-
1031
- if (!('dolphin' in config)) {
1032
- config.dolphin = {
1033
- model: '',
1034
- };
1035
- }
1036
-
1037
- if (!('zipformerCtc' in config)) {
1038
- config.zipformerCtc = {
1039
- model: '',
1040
- };
1041
- }
1042
-
1043
- if (!('wenetCtc' in config)) {
1044
- config.wenetCtc = {
1045
- model: '',
1046
- };
1047
- }
1048
-
1049
- if (!('omnilingual' in config)) {
1050
- config.omnilingual = {
1051
- model: '',
1052
- };
1053
- }
1054
-
1055
- if (!('whisper' in config)) {
1056
- config.whisper = {
1057
- encoder: '',
1058
- decoder: '',
1059
- language: '',
1060
- task: '',
1061
- tailPaddings: -1,
1062
- };
1063
- }
1064
-
1065
- if (!('moonshine' in config)) {
1066
- config.moonshine = {
1067
- preprocessor: '',
1068
- encoder: '',
1069
- uncachedDecoder: '',
1070
- cachedDecoder: '',
1071
- };
1072
- }
1073
-
1074
- if (!('fireRedAsr' in config)) {
1075
- config.fireRedAsr = {
1076
- encoder: '',
1077
- decoder: '',
1078
- };
1079
- }
1080
-
1081
- if (!('tdnn' in config)) {
1082
- config.tdnn = {
1083
- model: '',
1084
- };
1085
- }
1086
-
1087
- if (!('senseVoice' in config)) {
1088
- config.senseVoice = {
1089
- model: '',
1090
- language: '',
1091
- useInverseTextNormalization: 0,
1092
- };
1093
- }
1094
-
1095
- if (!('canary' in config)) {
1096
- config.canary = {
1097
- encoder: '',
1098
- decoder: '',
1099
- srcLang: '',
1100
- tgtLang: '',
1101
- usePnc: 1,
1102
- };
1103
- }
1104
-
1105
- const transducer =
1106
- initSherpaOnnxOfflineTransducerModelConfig(config.transducer, Module);
1107
-
1108
- const paraformer =
1109
- initSherpaOnnxOfflineParaformerModelConfig(config.paraformer, Module);
1110
-
1111
- const nemoCtc =
1112
- initSherpaOnnxOfflineNemoEncDecCtcModelConfig(config.nemoCtc, Module);
1113
-
1114
- const whisper =
1115
- initSherpaOnnxOfflineWhisperModelConfig(config.whisper, Module);
1116
-
1117
- const tdnn = initSherpaOnnxOfflineTdnnModelConfig(config.tdnn, Module);
1118
-
1119
- const senseVoice =
1120
- initSherpaOnnxOfflineSenseVoiceModelConfig(config.senseVoice, Module);
1121
-
1122
- const moonshine =
1123
- initSherpaOnnxOfflineMoonshineModelConfig(config.moonshine, Module);
1124
-
1125
- const fireRedAsr =
1126
- initSherpaOnnxOfflineFireRedAsrModelConfig(config.fireRedAsr, Module);
1127
-
1128
- const dolphin =
1129
- initSherpaOnnxOfflineDolphinModelConfig(config.dolphin, Module);
1130
-
1131
- const zipformerCtc =
1132
- initSherpaOnnxOfflineZipformerCtcModelConfig(config.zipformerCtc, Module);
1133
-
1134
- const canary = initSherpaOnnxOfflineCanaryModelConfig(config.canary, Module);
1135
-
1136
- const wenetCtc =
1137
- initSherpaOnnxOfflineWenetCtcModelConfig(config.wenetCtc, Module);
1138
-
1139
- const omnilingual = initSherpaOnnxOfflineOmnilingualAsrCtcModelConfig(
1140
- config.omnilingual, Module);
1141
-
1142
- const len = transducer.len + paraformer.len + nemoCtc.len + whisper.len +
1143
- tdnn.len + 8 * 4 + senseVoice.len + moonshine.len + fireRedAsr.len +
1144
- dolphin.len + zipformerCtc.len + canary.len + wenetCtc.len +
1145
- omnilingual.len;
1146
-
1147
- const ptr = Module._malloc(len);
1148
-
1149
- let offset = 0;
1150
- Module._CopyHeap(transducer.ptr, transducer.len, ptr + offset);
1151
- offset += transducer.len;
1152
-
1153
- Module._CopyHeap(paraformer.ptr, paraformer.len, ptr + offset);
1154
- offset += paraformer.len;
1155
-
1156
- Module._CopyHeap(nemoCtc.ptr, nemoCtc.len, ptr + offset);
1157
- offset += nemoCtc.len;
1158
-
1159
- Module._CopyHeap(whisper.ptr, whisper.len, ptr + offset);
1160
- offset += whisper.len;
1161
-
1162
- Module._CopyHeap(tdnn.ptr, tdnn.len, ptr + offset);
1163
- offset += tdnn.len;
1164
-
1165
- const tokensLen = Module.lengthBytesUTF8(config.tokens || '') + 1;
1166
- const providerLen = Module.lengthBytesUTF8(config.provider || 'cpu') + 1;
1167
- const modelTypeLen = Module.lengthBytesUTF8(config.modelType || '') + 1;
1168
- const modelingUnitLen = Module.lengthBytesUTF8(config.modelingUnit || '') + 1;
1169
- const bpeVocabLen = Module.lengthBytesUTF8(config.bpeVocab || '') + 1;
1170
- const teleSpeechCtcLen =
1171
- Module.lengthBytesUTF8(config.teleSpeechCtc || '') + 1;
1172
-
1173
- const bufferLen = tokensLen + providerLen + modelTypeLen + modelingUnitLen +
1174
- bpeVocabLen + teleSpeechCtcLen;
1175
-
1176
- const buffer = Module._malloc(bufferLen);
1177
-
1178
- offset = 0;
1179
- Module.stringToUTF8(config.tokens, buffer, tokensLen);
1180
- offset += tokensLen;
1181
-
1182
- Module.stringToUTF8(config.provider || 'cpu', buffer + offset, providerLen);
1183
- offset += providerLen;
1184
-
1185
- Module.stringToUTF8(config.modelType || '', buffer + offset, modelTypeLen);
1186
- offset += modelTypeLen;
1187
-
1188
- Module.stringToUTF8(
1189
- config.modelingUnit || '', buffer + offset, modelingUnitLen);
1190
- offset += modelingUnitLen;
1191
-
1192
- Module.stringToUTF8(config.bpeVocab || '', buffer + offset, bpeVocabLen);
1193
- offset += bpeVocabLen;
1194
-
1195
- Module.stringToUTF8(
1196
- config.teleSpeechCtc || '', buffer + offset, teleSpeechCtcLen);
1197
- offset += teleSpeechCtcLen;
1198
-
1199
- offset =
1200
- transducer.len + paraformer.len + nemoCtc.len + whisper.len + tdnn.len;
1201
- Module.setValue(ptr + offset, buffer, 'i8*'); // tokens
1202
- offset += 4;
1203
-
1204
- Module.setValue(ptr + offset, config.numThreads || 1, 'i32');
1205
- offset += 4;
1206
-
1207
- Module.setValue(ptr + offset, config.debug ?? 1, 'i32');
1208
- offset += 4;
1209
-
1210
- Module.setValue(ptr + offset, buffer + tokensLen, 'i8*'); // provider
1211
- offset += 4;
1212
-
1213
- Module.setValue(
1214
- ptr + offset, buffer + tokensLen + providerLen, 'i8*'); // modelType
1215
- offset += 4;
1216
-
1217
- Module.setValue(
1218
- ptr + offset, buffer + tokensLen + providerLen + modelTypeLen,
1219
- 'i8*'); // modelingUnit
1220
- offset += 4;
1221
-
1222
- Module.setValue(
1223
- ptr + offset,
1224
- buffer + tokensLen + providerLen + modelTypeLen + modelingUnitLen,
1225
- 'i8*'); // bpeVocab
1226
- offset += 4;
1227
-
1228
- Module.setValue(
1229
- ptr + offset,
1230
- buffer + tokensLen + providerLen + modelTypeLen + modelingUnitLen +
1231
- bpeVocabLen,
1232
- 'i8*'); // teleSpeechCtc
1233
- offset += 4;
1234
-
1235
- Module._CopyHeap(senseVoice.ptr, senseVoice.len, ptr + offset);
1236
- offset += senseVoice.len;
1237
-
1238
- Module._CopyHeap(moonshine.ptr, moonshine.len, ptr + offset);
1239
- offset += moonshine.len;
1240
-
1241
- Module._CopyHeap(fireRedAsr.ptr, fireRedAsr.len, ptr + offset);
1242
- offset += fireRedAsr.len;
1243
-
1244
- Module._CopyHeap(dolphin.ptr, dolphin.len, ptr + offset);
1245
- offset += dolphin.len;
1246
-
1247
- Module._CopyHeap(zipformerCtc.ptr, zipformerCtc.len, ptr + offset);
1248
- offset += zipformerCtc.len;
1249
-
1250
- Module._CopyHeap(canary.ptr, canary.len, ptr + offset);
1251
- offset += canary.len;
1252
-
1253
- Module._CopyHeap(wenetCtc.ptr, wenetCtc.len, ptr + offset);
1254
- offset += wenetCtc.len;
1255
-
1256
- Module._CopyHeap(omnilingual.ptr, omnilingual.len, ptr + offset);
1257
- offset += omnilingual.len;
1258
-
1259
- return {
1260
- buffer: buffer, ptr: ptr, len: len, transducer: transducer,
1261
- paraformer: paraformer, nemoCtc: nemoCtc, whisper: whisper, tdnn: tdnn,
1262
- senseVoice: senseVoice, moonshine: moonshine, fireRedAsr: fireRedAsr,
1263
- dolphin: dolphin, zipformerCtc: zipformerCtc, canary: canary,
1264
- wenetCtc: wenetCtc, omnilingual: omnilingual
1265
- }
1266
- }
1267
-
1268
- function initSherpaOnnxOfflineRecognizerConfig(config, Module) {
1269
- if (!('featConfig' in config)) {
1270
- config.featConfig = {
1271
- sampleRate: 16000,
1272
- featureDim: 80,
1273
- };
1274
- }
1275
-
1276
- if (!('lmConfig' in config)) {
1277
- config.lmConfig = {
1278
- model: '',
1279
- scale: 1.0,
1280
- };
1281
- }
1282
-
1283
- if (!('hr' in config)) {
1284
- config.hr = {
1285
- lexicon: '',
1286
- ruleFsts: '',
1287
- };
1288
- }
1289
-
1290
- const feat = initSherpaOnnxFeatureConfig(config.featConfig, Module);
1291
- const model = initSherpaOnnxOfflineModelConfig(config.modelConfig, Module);
1292
- const lm = initSherpaOnnxOfflineLMConfig(config.lmConfig, Module);
1293
- const hr = initSherpaOnnxHomophoneReplacerConfig(config.hr, Module);
1294
-
1295
- const len = feat.len + model.len + lm.len + 7 * 4 + hr.len;
1296
- const ptr = Module._malloc(len);
1297
-
1298
- let offset = 0;
1299
- Module._CopyHeap(feat.ptr, feat.len, ptr + offset);
1300
- offset += feat.len;
1301
-
1302
- Module._CopyHeap(model.ptr, model.len, ptr + offset);
1303
- offset += model.len;
1304
-
1305
- Module._CopyHeap(lm.ptr, lm.len, ptr + offset);
1306
- offset += lm.len;
1307
-
1308
- const decodingMethodLen =
1309
- Module.lengthBytesUTF8(config.decodingMethod || 'greedy_search') + 1;
1310
- const hotwordsFileLen = Module.lengthBytesUTF8(config.hotwordsFile || '') + 1;
1311
- const ruleFstsLen = Module.lengthBytesUTF8(config.ruleFsts || '') + 1;
1312
- const ruleFarsLen = Module.lengthBytesUTF8(config.ruleFars || '') + 1;
1313
- const bufferLen =
1314
- decodingMethodLen + hotwordsFileLen + ruleFstsLen + ruleFarsLen;
1315
- const buffer = Module._malloc(bufferLen);
1316
-
1317
- offset = 0;
1318
- Module.stringToUTF8(
1319
- config.decodingMethod || 'greedy_search', buffer, decodingMethodLen);
1320
- offset += decodingMethodLen;
1321
-
1322
- Module.stringToUTF8(
1323
- config.hotwordsFile || '', buffer + offset, hotwordsFileLen);
1324
- offset += hotwordsFileLen;
1325
-
1326
- Module.stringToUTF8(config.ruleFsts || '', buffer + offset, ruleFstsLen);
1327
- offset += ruleFstsLen;
1328
-
1329
- Module.stringToUTF8(config.ruleFars || '', buffer + offset, ruleFarsLen);
1330
- offset += ruleFarsLen;
1331
-
1332
- offset = feat.len + model.len + lm.len;
1333
-
1334
- Module.setValue(ptr + offset, buffer, 'i8*'); // decoding method
1335
- offset += 4;
1336
-
1337
- Module.setValue(ptr + offset, config.maxActivePaths || 4, 'i32');
1338
- offset += 4;
1339
-
1340
- Module.setValue(ptr + offset, buffer + decodingMethodLen, 'i8*');
1341
- offset += 4;
1342
-
1343
- Module.setValue(ptr + offset, config.hotwordsScore || 1.5, 'float');
1344
- offset += 4;
1345
-
1346
- Module.setValue(
1347
- ptr + offset, buffer + decodingMethodLen + hotwordsFileLen, 'i8*');
1348
- offset += 4;
1349
-
1350
- Module.setValue(
1351
- ptr + offset, buffer + decodingMethodLen + hotwordsFileLen + ruleFstsLen,
1352
- 'i8*');
1353
- offset += 4;
1354
-
1355
- Module.setValue(ptr + offset, config.blankPenalty || 0, 'float');
1356
- offset += 4;
1357
-
1358
- Module._CopyHeap(hr.ptr, hr.len, ptr + offset);
1359
- offset += hr.len;
1360
-
1361
- return {
1362
- buffer: buffer, ptr: ptr, len: len, feat: feat, model: model, lm: lm,
1363
- hr: hr,
1364
- }
1365
- }
1366
-
1367
- class OfflineStream {
1368
- constructor(handle, Module) {
1369
- this.handle = handle;
1370
- this.Module = Module;
1371
- }
1372
-
1373
- free() {
1374
- if (this.handle) {
1375
- this.Module._SherpaOnnxDestroyOfflineStream(this.handle);
1376
- this.handle = null;
1377
- }
1378
- }
1379
-
1380
- /**
1381
- * @param sampleRate {Number}
1382
- * @param samples {Float32Array} Containing samples in the range [-1, 1]
1383
- */
1384
- acceptWaveform(sampleRate, samples) {
1385
- const pointer =
1386
- this.Module._malloc(samples.length * samples.BYTES_PER_ELEMENT);
1387
- this.Module.HEAPF32.set(samples, pointer / samples.BYTES_PER_ELEMENT);
1388
- this.Module._SherpaOnnxAcceptWaveformOffline(
1389
- this.handle, sampleRate, pointer, samples.length);
1390
- this.Module._free(pointer);
1391
- }
1392
- };
1393
-
1394
- class OfflineRecognizer {
1395
- constructor(configObj, Module) {
1396
- this.config = configObj;
1397
- const config = initSherpaOnnxOfflineRecognizerConfig(configObj, Module);
1398
- const handle = Module._SherpaOnnxCreateOfflineRecognizer(config.ptr);
1399
- freeConfig(config, Module);
1400
-
1401
- this.handle = handle;
1402
- this.Module = Module;
1403
- }
1404
-
1405
- setConfig(configObj) {
1406
- const config =
1407
- initSherpaOnnxOfflineRecognizerConfig(configObj, this.Module);
1408
- this.Module._SherpaOnnxOfflineRecognizerSetConfig(this.handle, config.ptr);
1409
- freeConfig(config, this.Module);
1410
- }
1411
-
1412
- free() {
1413
- this.Module._SherpaOnnxDestroyOfflineRecognizer(this.handle);
1414
- this.handle = 0
1415
- }
1416
-
1417
- createStream() {
1418
- const handle = this.Module._SherpaOnnxCreateOfflineStream(this.handle);
1419
- return new OfflineStream(handle, this.Module);
1420
- }
1421
-
1422
- decode(stream) {
1423
- this.Module._SherpaOnnxDecodeOfflineStream(this.handle, stream.handle);
1424
- }
1425
-
1426
- getResult(stream) {
1427
- const r =
1428
- this.Module._SherpaOnnxGetOfflineStreamResultAsJson(stream.handle);
1429
- const jsonStr = this.Module.UTF8ToString(r);
1430
- const ans = JSON.parse(jsonStr);
1431
- this.Module._SherpaOnnxDestroyOfflineStreamResultJson(r);
1432
-
1433
- return ans;
1434
- }
1435
- };
1436
-
1437
- class OnlineStream {
1438
- constructor(handle, Module) {
1439
- this.handle = handle;
1440
- this.pointer = null; // buffer
1441
- this.n = 0; // buffer size
1442
- this.Module = Module;
1443
- }
1444
-
1445
- free() {
1446
- if (this.handle) {
1447
- this.Module._SherpaOnnxDestroyOnlineStream(this.handle);
1448
- this.handle = null;
1449
- this.Module._free(this.pointer);
1450
- this.pointer = null;
1451
- this.n = 0;
1452
- }
1453
- }
1454
-
1455
- /**
1456
- * @param sampleRate {Number}
1457
- * @param samples {Float32Array} Containing samples in the range [-1, 1]
1458
- */
1459
- acceptWaveform(sampleRate, samples) {
1460
- if (this.n < samples.length) {
1461
- this.Module._free(this.pointer);
1462
- this.pointer =
1463
- this.Module._malloc(samples.length * samples.BYTES_PER_ELEMENT);
1464
- this.n = samples.length
1465
- }
1466
-
1467
- this.Module.HEAPF32.set(samples, this.pointer / samples.BYTES_PER_ELEMENT);
1468
- this.Module._SherpaOnnxOnlineStreamAcceptWaveform(
1469
- this.handle, sampleRate, this.pointer, samples.length);
1470
- }
1471
-
1472
- inputFinished() {
1473
- this.Module._SherpaOnnxOnlineStreamInputFinished(this.handle);
1474
- }
1475
- };
1476
-
1477
- class OnlineRecognizer {
1478
- constructor(configObj, Module) {
1479
- this.config = configObj;
1480
- const config = initSherpaOnnxOnlineRecognizerConfig(configObj, Module)
1481
- const handle = Module._SherpaOnnxCreateOnlineRecognizer(config.ptr);
1482
-
1483
- freeConfig(config, Module);
1484
-
1485
- this.handle = handle;
1486
- this.Module = Module;
1487
- }
1488
-
1489
- free() {
1490
- this.Module._SherpaOnnxDestroyOnlineRecognizer(this.handle);
1491
- this.handle = 0
1492
- }
1493
-
1494
- createStream() {
1495
- const handle = this.Module._SherpaOnnxCreateOnlineStream(this.handle);
1496
- return new OnlineStream(handle, this.Module);
1497
- }
1498
-
1499
- isReady(stream) {
1500
- return this.Module._SherpaOnnxIsOnlineStreamReady(
1501
- this.handle, stream.handle) == 1;
1502
- }
1503
-
1504
- decode(stream) {
1505
- this.Module._SherpaOnnxDecodeOnlineStream(this.handle, stream.handle);
1506
- }
1507
-
1508
- isEndpoint(stream) {
1509
- return this.Module._SherpaOnnxOnlineStreamIsEndpoint(
1510
- this.handle, stream.handle) == 1;
1511
- }
1512
-
1513
- reset(stream) {
1514
- this.Module._SherpaOnnxOnlineStreamReset(this.handle, stream.handle);
1515
- }
1516
-
1517
- getResult(stream) {
1518
- const r = this.Module._SherpaOnnxGetOnlineStreamResultAsJson(
1519
- this.handle, stream.handle);
1520
- const jsonStr = this.Module.UTF8ToString(r);
1521
- const ans = JSON.parse(jsonStr);
1522
- this.Module._SherpaOnnxDestroyOnlineStreamResultJson(r);
1523
-
1524
- return ans;
1525
- }
1526
- }
1527
-
1528
- // ESM exports for browser/Vite usage
1529
- export {
1530
- initSherpaOnnxOfflineRecognizerConfig,
1531
- initSherpaOnnxOnlineRecognizerConfig,
1532
- freeConfig,
1533
- OfflineRecognizer,
1534
- OfflineStream,
1535
- OnlineRecognizer,
1536
- OnlineStream,
1537
- createOnlineRecognizer,
1538
- };