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

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,657 +0,0 @@
1
-
2
- function freeConfig(config, Module) {
3
- if ('buffer' in config) {
4
- Module._free(config.buffer);
5
- }
6
-
7
- if ('config' in config) {
8
- freeConfig(config.config, Module)
9
- }
10
-
11
- if ('matcha' in config) {
12
- freeConfig(config.matcha, Module)
13
- }
14
-
15
- if ('kokoro' in config) {
16
- freeConfig(config.kokoro, Module)
17
- }
18
-
19
- if ('kitten' in config) {
20
- freeConfig(config.kitten, Module)
21
- }
22
-
23
- if ('zipvoice' in config) {
24
- freeConfig(config.zipvoice, Module)
25
- }
26
-
27
- Module._free(config.ptr);
28
- }
29
-
30
- // The user should free the returned pointers
31
- function initSherpaOnnxOfflineTtsVitsModelConfig(config, Module) {
32
- const modelLen = Module.lengthBytesUTF8(config.model || '') + 1;
33
- const lexiconLen = Module.lengthBytesUTF8(config.lexicon || '') + 1;
34
- const tokensLen = Module.lengthBytesUTF8(config.tokens || '') + 1;
35
- const dataDirLen = Module.lengthBytesUTF8(config.dataDir || '') + 1;
36
- const dictDir = ''
37
- const dictDirLen = Module.lengthBytesUTF8(dictDir) + 1;
38
-
39
- const n = modelLen + lexiconLen + tokensLen + dataDirLen + dictDirLen;
40
-
41
- const buffer = Module._malloc(n);
42
-
43
- const len = 8 * 4;
44
- const ptr = Module._malloc(len);
45
-
46
- let offset = 0;
47
- Module.stringToUTF8(config.model || '', buffer + offset, modelLen);
48
- offset += modelLen;
49
-
50
- Module.stringToUTF8(config.lexicon || '', buffer + offset, lexiconLen);
51
- offset += lexiconLen;
52
-
53
- Module.stringToUTF8(config.tokens || '', buffer + offset, tokensLen);
54
- offset += tokensLen;
55
-
56
- Module.stringToUTF8(config.dataDir || '', buffer + offset, dataDirLen);
57
- offset += dataDirLen;
58
-
59
- Module.stringToUTF8(dictDir, buffer + offset, dictDirLen);
60
- offset += dictDirLen;
61
-
62
- offset = 0;
63
- Module.setValue(ptr, buffer + offset, 'i8*');
64
- offset += modelLen;
65
-
66
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
67
- offset += lexiconLen;
68
-
69
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
70
- offset += tokensLen;
71
-
72
- Module.setValue(ptr + 12, buffer + offset, 'i8*');
73
- offset += dataDirLen;
74
-
75
- Module.setValue(ptr + 16, config.noiseScale || 0.667, 'float');
76
- Module.setValue(ptr + 20, config.noiseScaleW || 0.8, 'float');
77
- Module.setValue(ptr + 24, config.lengthScale || 1.0, 'float');
78
- Module.setValue(ptr + 28, buffer + offset, 'i8*');
79
- offset += dictDirLen;
80
-
81
- return {
82
- buffer: buffer, ptr: ptr, len: len,
83
- }
84
- }
85
-
86
- function initSherpaOnnxOfflineTtsMatchaModelConfig(config, Module) {
87
- const acousticModelLen = Module.lengthBytesUTF8(config.acousticModel) + 1;
88
- const vocoderLen = Module.lengthBytesUTF8(config.vocoder) + 1;
89
- const lexiconLen = Module.lengthBytesUTF8(config.lexicon || '') + 1;
90
- const tokensLen = Module.lengthBytesUTF8(config.tokens || '') + 1;
91
- const dataDirLen = Module.lengthBytesUTF8(config.dataDir || '') + 1;
92
-
93
- const dictDir = '';
94
- const dictDirLen = Module.lengthBytesUTF8(dictDir) + 1;
95
-
96
- const n = acousticModelLen + vocoderLen + lexiconLen + tokensLen +
97
- dataDirLen + dictDirLen;
98
-
99
- const buffer = Module._malloc(n);
100
-
101
- const len = 8 * 4;
102
- const ptr = Module._malloc(len);
103
-
104
- let offset = 0;
105
- Module.stringToUTF8(
106
- config.acousticModel || '', buffer + offset, acousticModelLen);
107
- offset += acousticModelLen;
108
-
109
- Module.stringToUTF8(config.vocoder || '', buffer + offset, vocoderLen);
110
- offset += vocoderLen;
111
-
112
- Module.stringToUTF8(config.lexicon || '', buffer + offset, lexiconLen);
113
- offset += lexiconLen;
114
-
115
- Module.stringToUTF8(config.tokens || '', buffer + offset, tokensLen);
116
- offset += tokensLen;
117
-
118
- Module.stringToUTF8(config.dataDir || '', buffer + offset, dataDirLen);
119
- offset += dataDirLen;
120
-
121
- Module.stringToUTF8(dictDir, buffer + offset, dictDirLen);
122
- offset += dictDirLen;
123
-
124
- offset = 0;
125
- Module.setValue(ptr, buffer + offset, 'i8*');
126
- offset += acousticModelLen;
127
-
128
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
129
- offset += vocoderLen;
130
-
131
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
132
- offset += lexiconLen;
133
-
134
- Module.setValue(ptr + 12, buffer + offset, 'i8*');
135
- offset += tokensLen;
136
-
137
- Module.setValue(ptr + 16, buffer + offset, 'i8*');
138
- offset += dataDirLen;
139
-
140
- Module.setValue(ptr + 20, config.noiseScale || 0.667, 'float');
141
- Module.setValue(ptr + 24, config.lengthScale || 1.0, 'float');
142
- Module.setValue(ptr + 28, buffer + offset, 'i8*');
143
- offset += dictDirLen;
144
-
145
- return {
146
- buffer: buffer, ptr: ptr, len: len,
147
- }
148
- }
149
-
150
- function initSherpaOnnxOfflineTtsKokoroModelConfig(config, Module) {
151
- const modelLen = Module.lengthBytesUTF8(config.model) + 1;
152
- const voicesLen = Module.lengthBytesUTF8(config.voices) + 1;
153
- const tokensLen = Module.lengthBytesUTF8(config.tokens || '') + 1;
154
- const dataDirLen = Module.lengthBytesUTF8(config.dataDir || '') + 1;
155
- const dictDir = '';
156
- const dictDirLen = Module.lengthBytesUTF8(dictDir) + 1;
157
- const lexiconLen = Module.lengthBytesUTF8(config.lexicon || '') + 1;
158
- const langLen = Module.lengthBytesUTF8(config.lang || '') + 1;
159
-
160
- const n = modelLen + voicesLen + tokensLen + dataDirLen + dictDirLen +
161
- lexiconLen + langLen;
162
-
163
- const buffer = Module._malloc(n);
164
-
165
- const len = 8 * 4;
166
- const ptr = Module._malloc(len);
167
-
168
- let offset = 0;
169
- Module.stringToUTF8(config.model || '', buffer + offset, modelLen);
170
- offset += modelLen;
171
-
172
- Module.stringToUTF8(config.voices || '', buffer + offset, voicesLen);
173
- offset += voicesLen;
174
-
175
- Module.stringToUTF8(config.tokens || '', buffer + offset, tokensLen);
176
- offset += tokensLen;
177
-
178
- Module.stringToUTF8(config.dataDir || '', buffer + offset, dataDirLen);
179
- offset += dataDirLen;
180
-
181
- Module.stringToUTF8(dictDir, buffer + offset, dictDirLen);
182
- offset += dictDirLen;
183
-
184
- Module.stringToUTF8(config.lexicon || '', buffer + offset, lexiconLen);
185
- offset += lexiconLen;
186
-
187
- Module.stringToUTF8(config.lang || '', buffer + offset, langLen);
188
- offset += langLen;
189
-
190
- offset = 0;
191
- Module.setValue(ptr, buffer + offset, 'i8*');
192
- offset += modelLen;
193
-
194
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
195
- offset += voicesLen;
196
-
197
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
198
- offset += tokensLen;
199
-
200
- Module.setValue(ptr + 12, buffer + offset, 'i8*');
201
- offset += dataDirLen;
202
-
203
- Module.setValue(ptr + 16, config.lengthScale || 1.0, 'float');
204
-
205
- Module.setValue(ptr + 20, buffer + offset, 'i8*');
206
- offset += dictDirLen;
207
-
208
- Module.setValue(ptr + 24, buffer + offset, 'i8*');
209
- offset += lexiconLen;
210
-
211
- Module.setValue(ptr + 28, buffer + offset, 'i8*');
212
- offset += langLen;
213
-
214
- return {
215
- buffer: buffer, ptr: ptr, len: len,
216
- }
217
- }
218
-
219
- function initSherpaOnnxOfflineTtsKittenModelConfig(config, Module) {
220
- const modelLen = Module.lengthBytesUTF8(config.model) + 1;
221
- const voicesLen = Module.lengthBytesUTF8(config.voices) + 1;
222
- const tokensLen = Module.lengthBytesUTF8(config.tokens || '') + 1;
223
- const dataDirLen = Module.lengthBytesUTF8(config.dataDir || '') + 1;
224
-
225
- const n = modelLen + voicesLen + tokensLen + dataDirLen;
226
-
227
- const buffer = Module._malloc(n);
228
-
229
- const len = 5 * 4;
230
- const ptr = Module._malloc(len);
231
-
232
- let offset = 0;
233
- Module.stringToUTF8(config.model || '', buffer + offset, modelLen);
234
- offset += modelLen;
235
-
236
- Module.stringToUTF8(config.voices || '', buffer + offset, voicesLen);
237
- offset += voicesLen;
238
-
239
- Module.stringToUTF8(config.tokens || '', buffer + offset, tokensLen);
240
- offset += tokensLen;
241
-
242
- Module.stringToUTF8(config.dataDir || '', buffer + offset, dataDirLen);
243
- offset += dataDirLen;
244
-
245
- offset = 0;
246
- Module.setValue(ptr, buffer + offset, 'i8*');
247
- offset += modelLen;
248
-
249
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
250
- offset += voicesLen;
251
-
252
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
253
- offset += tokensLen;
254
-
255
- Module.setValue(ptr + 12, buffer + offset, 'i8*');
256
- offset += dataDirLen;
257
-
258
- Module.setValue(ptr + 16, config.lengthScale || 1.0, 'float');
259
-
260
- return {
261
- buffer: buffer, ptr: ptr, len: len,
262
- }
263
- }
264
-
265
- function initSherpaOnnxOfflineTtsZipVoiceModelConfig(config, Module) {
266
- const tokensLen = Module.lengthBytesUTF8(config.tokens || '') + 1;
267
- const encoderLen = Module.lengthBytesUTF8(config.encoder || '') + 1;
268
- const decoderLen = Module.lengthBytesUTF8(config.decoder || '') + 1;
269
- const vocoderLen = Module.lengthBytesUTF8(config.vocoder || '') + 1;
270
- const dataDirLen = Module.lengthBytesUTF8(config.dataDir || '') + 1;
271
- const lexiconLen = Module.lengthBytesUTF8(config.lexicon || '') + 1;
272
-
273
- const n = tokensLen + encoderLen + decoderLen + vocoderLen + dataDirLen +
274
- lexiconLen;
275
-
276
- const buffer = Module._malloc(n);
277
-
278
- const len = 10 * 4;
279
- const ptr = Module._malloc(len);
280
-
281
- let offset = 0;
282
- Module.stringToUTF8(config.tokens || '', buffer + offset, tokensLen);
283
- offset += tokensLen;
284
-
285
- Module.stringToUTF8(config.encoder || '', buffer + offset, encoderLen);
286
- offset += encoderLen;
287
-
288
- Module.stringToUTF8(config.decoder || '', buffer + offset, decoderLen);
289
- offset += decoderLen;
290
-
291
- Module.stringToUTF8(config.vocoder || '', buffer + offset, vocoderLen);
292
- offset += vocoderLen;
293
-
294
- Module.stringToUTF8(config.dataDir || '', buffer + offset, dataDirLen);
295
- offset += dataDirLen;
296
-
297
- Module.stringToUTF8(config.lexicon || '', buffer + offset, lexiconLen);
298
- offset += lexiconLen;
299
-
300
- offset = 0;
301
- Module.setValue(ptr, buffer + offset, 'i8*');
302
- offset += tokensLen;
303
-
304
- Module.setValue(ptr + 4, buffer + offset, 'i8*');
305
- offset += encoderLen;
306
-
307
- Module.setValue(ptr + 8, buffer + offset, 'i8*');
308
- offset += decoderLen;
309
-
310
- Module.setValue(ptr + 12, buffer + offset, 'i8*');
311
- offset += vocoderLen;
312
-
313
- Module.setValue(ptr + 16, buffer + offset, 'i8*');
314
- offset += dataDirLen;
315
-
316
- Module.setValue(ptr + 20, buffer + offset, 'i8*');
317
- offset += lexiconLen;
318
-
319
- Module.setValue(ptr + 24, config.featScale || 0.1, 'float');
320
- Module.setValue(ptr + 28, config.tShift || 0.5, 'float');
321
- Module.setValue(ptr + 32, config.targetRMS || 0.1, 'float');
322
- Module.setValue(ptr + 36, config.guidanceScale || 1.0, 'float');
323
-
324
- return {
325
- buffer: buffer, ptr: ptr, len: len,
326
- }
327
- }
328
-
329
- function initSherpaOnnxOfflineTtsModelConfig(config, Module) {
330
- if (!('offlineTtsVitsModelConfig' in config)) {
331
- config.offlineTtsVitsModelConfig = {
332
- model: '',
333
- lexicon: '',
334
- tokens: '',
335
- noiseScale: 0.667,
336
- noiseScaleW: 0.8,
337
- lengthScale: 1.0,
338
- dataDir: '',
339
- };
340
- }
341
-
342
- if (!('offlineTtsMatchaModelConfig' in config)) {
343
- config.offlineTtsMatchaModelConfig = {
344
- acousticModel: '',
345
- vocoder: '',
346
- lexicon: '',
347
- tokens: '',
348
- noiseScale: 0.667,
349
- lengthScale: 1.0,
350
- dataDir: '',
351
- };
352
- }
353
-
354
- if (!('offlineTtsKokoroModelConfig' in config)) {
355
- config.offlineTtsKokoroModelConfig = {
356
- model: '',
357
- voices: '',
358
- tokens: '',
359
- lengthScale: 1.0,
360
- dataDir: '',
361
- lexicon: '',
362
- lang: '',
363
- };
364
- }
365
-
366
- if (!('offlineTtsKittenModelConfig' in config)) {
367
- config.offlineTtsKittenModelConfig = {
368
- model: '',
369
- voices: '',
370
- tokens: '',
371
- lengthScale: 1.0,
372
- };
373
- }
374
-
375
- if (!('offlineTtsZipVoiceModelConfig' in config)) {
376
- config.offlineTtsZipVoiceModelConfig = {
377
- tokens: '',
378
- encoder: '',
379
- decoder: '',
380
- vocoder: '',
381
- dataDir: '',
382
- lexicon: '',
383
- featScale: 0.1,
384
- tShift: 0.5,
385
- targetRMS: 0.1,
386
- guidanceScale: 1.0,
387
- };
388
- }
389
-
390
-
391
- const vitsModelConfig = initSherpaOnnxOfflineTtsVitsModelConfig(
392
- config.offlineTtsVitsModelConfig, Module);
393
-
394
- const matchaModelConfig = initSherpaOnnxOfflineTtsMatchaModelConfig(
395
- config.offlineTtsMatchaModelConfig, Module);
396
-
397
- const kokoroModelConfig = initSherpaOnnxOfflineTtsKokoroModelConfig(
398
- config.offlineTtsKokoroModelConfig, Module);
399
-
400
- const kittenModelConfig = initSherpaOnnxOfflineTtsKittenModelConfig(
401
- config.offlineTtsKittenModelConfig, Module);
402
-
403
- const zipVoiceModelConfig = initSherpaOnnxOfflineTtsZipVoiceModelConfig(
404
- config.offlineTtsZipVoiceModelConfig, Module);
405
-
406
- const len = vitsModelConfig.len + matchaModelConfig.len +
407
- kokoroModelConfig.len + kittenModelConfig.len + zipVoiceModelConfig.len +
408
- 3 * 4;
409
-
410
- const ptr = Module._malloc(len);
411
-
412
- let offset = 0;
413
- Module._CopyHeap(vitsModelConfig.ptr, vitsModelConfig.len, ptr + offset);
414
- offset += vitsModelConfig.len;
415
-
416
- Module.setValue(ptr + offset, config.numThreads || 1, 'i32');
417
- offset += 4;
418
-
419
- Module.setValue(ptr + offset, config.debug || 0, 'i32');
420
- offset += 4;
421
-
422
- const providerLen = Module.lengthBytesUTF8(config.provider || 'cpu') + 1;
423
- const buffer = Module._malloc(providerLen);
424
- Module.stringToUTF8(config.provider || 'cpu', buffer, providerLen);
425
- Module.setValue(ptr + offset, buffer, 'i8*');
426
- offset += 4;
427
-
428
- Module._CopyHeap(matchaModelConfig.ptr, matchaModelConfig.len, ptr + offset);
429
- offset += matchaModelConfig.len;
430
-
431
- Module._CopyHeap(kokoroModelConfig.ptr, kokoroModelConfig.len, ptr + offset);
432
- offset += kokoroModelConfig.len;
433
-
434
- Module._CopyHeap(kittenModelConfig.ptr, kittenModelConfig.len, ptr + offset);
435
- offset += kittenModelConfig.len;
436
-
437
- Module._CopyHeap(
438
- zipVoiceModelConfig.ptr, zipVoiceModelConfig.len, ptr + offset);
439
- offset += zipVoiceModelConfig.len;
440
-
441
- return {
442
- buffer: buffer, ptr: ptr, len: len, config: vitsModelConfig,
443
- matcha: matchaModelConfig, kokoro: kokoroModelConfig,
444
- kitten: kittenModelConfig, zipvoice: zipVoiceModelConfig,
445
- }
446
- }
447
-
448
- function initSherpaOnnxOfflineTtsConfig(config, Module) {
449
- const modelConfig =
450
- initSherpaOnnxOfflineTtsModelConfig(config.offlineTtsModelConfig, Module);
451
- const len = modelConfig.len + 4 * 4;
452
- const ptr = Module._malloc(len);
453
-
454
- let offset = 0;
455
- Module._CopyHeap(modelConfig.ptr, modelConfig.len, ptr + offset);
456
- offset += modelConfig.len;
457
-
458
- const ruleFstsLen = Module.lengthBytesUTF8(config.ruleFsts || '') + 1;
459
- const ruleFarsLen = Module.lengthBytesUTF8(config.ruleFars || '') + 1;
460
-
461
- const buffer = Module._malloc(ruleFstsLen + ruleFarsLen);
462
- Module.stringToUTF8(config.ruleFsts || '', buffer, ruleFstsLen);
463
- Module.stringToUTF8(config.ruleFars || '', buffer + ruleFstsLen, ruleFarsLen);
464
-
465
- Module.setValue(ptr + offset, buffer, 'i8*');
466
- offset += 4;
467
-
468
- Module.setValue(ptr + offset, config.maxNumSentences || 1, 'i32');
469
- offset += 4;
470
-
471
- Module.setValue(ptr + offset, buffer + ruleFstsLen, 'i8*');
472
- offset += 4;
473
-
474
- Module.setValue(ptr + offset, config.silenceScale || 0.2, 'float');
475
- offset += 4;
476
-
477
- return {
478
- buffer: buffer, ptr: ptr, len: len, config: modelConfig,
479
- }
480
- }
481
-
482
- class OfflineTts {
483
- constructor(configObj, Module) {
484
- console.log(configObj)
485
- const config = initSherpaOnnxOfflineTtsConfig(configObj, Module)
486
- const handle = Module._SherpaOnnxCreateOfflineTts(config.ptr);
487
-
488
- freeConfig(config, Module);
489
-
490
- this.handle = handle;
491
- this.sampleRate = Module._SherpaOnnxOfflineTtsSampleRate(this.handle);
492
- this.numSpeakers = Module._SherpaOnnxOfflineTtsNumSpeakers(this.handle);
493
- this.Module = Module
494
- }
495
-
496
- free() {
497
- this.Module._SherpaOnnxDestroyOfflineTts(this.handle);
498
- this.handle = 0
499
- }
500
-
501
- // {
502
- // text: "hello",
503
- // sid: 1,
504
- // speed: 1.0
505
- // }
506
- generate(config) {
507
- const textLen = this.Module.lengthBytesUTF8(config.text) + 1;
508
- const textPtr = this.Module._malloc(textLen);
509
- this.Module.stringToUTF8(config.text, textPtr, textLen);
510
-
511
- const h = this.Module._SherpaOnnxOfflineTtsGenerate(
512
- this.handle, textPtr, config.sid, config.speed);
513
-
514
- const numSamples = this.Module.HEAP32[h / 4 + 1];
515
- const sampleRate = this.Module.HEAP32[h / 4 + 2];
516
-
517
- const samplesPtr = this.Module.HEAP32[h / 4] / 4;
518
- const samples = new Float32Array(numSamples);
519
- for (let i = 0; i < numSamples; i++) {
520
- samples[i] = this.Module.HEAPF32[samplesPtr + i];
521
- }
522
-
523
- this.Module._SherpaOnnxDestroyOfflineTtsGeneratedAudio(h);
524
- return {samples: samples, sampleRate: sampleRate};
525
- }
526
- save(filename, audio) {
527
- const samples = audio.samples;
528
- const sampleRate = audio.sampleRate;
529
- const ptr = this.Module._malloc(samples.length * 4);
530
- for (let i = 0; i < samples.length; i++) {
531
- this.Module.HEAPF32[ptr / 4 + i] = samples[i];
532
- }
533
-
534
- const filenameLen = this.Module.lengthBytesUTF8(filename) + 1;
535
- const buffer = this.Module._malloc(filenameLen);
536
- this.Module.stringToUTF8(filename, buffer, filenameLen);
537
- this.Module._SherpaOnnxWriteWave(ptr, samples.length, sampleRate, buffer);
538
- this.Module._free(buffer);
539
- this.Module._free(ptr);
540
- }
541
- }
542
-
543
- function createOfflineTts(Module, myConfig) {
544
- const vits = {
545
- model: '',
546
- lexicon: '',
547
- tokens: '',
548
- dataDir: '',
549
- noiseScale: 0.667,
550
- noiseScaleW: 0.8,
551
- lengthScale: 1.0,
552
- };
553
-
554
- const matcha = {
555
- acousticModel: '',
556
- vocoder: '',
557
- lexicon: '',
558
- tokens: '',
559
- dataDir: '',
560
- noiseScale: 0.667,
561
- lengthScale: 1.0,
562
- };
563
-
564
- const offlineTtsKokoroModelConfig = {
565
- model: '',
566
- voices: '',
567
- tokens: '',
568
- dataDir: '',
569
- lengthScale: 1.0,
570
- lexicon: '',
571
- lang: '',
572
- };
573
-
574
- const offlineTtsKittenModelConfig = {
575
- model: '',
576
- voices: '',
577
- tokens: '',
578
- dataDir: '',
579
- lengthScale: 1.0,
580
- };
581
-
582
- let ruleFsts = '';
583
-
584
- let type = 0;
585
- switch (type) {
586
- case 0:
587
- // vits
588
- vits.model = './model.onnx';
589
- vits.tokens = './tokens.txt';
590
- vits.dataDir = './espeak-ng-data';
591
- break;
592
- case 1:
593
- // matcha zh-en
594
- // https://k2-fsa.github.io/sherpa/onnx/tts/all/Chinese-English/matcha-icefall-zh-en.html
595
- matcha.acousticModel = './model-steps-3.onnx';
596
- matcha.vocoder = './vocos-16khz-univ.onnx';
597
- matcha.lexicon = './lexicon.txt';
598
- matcha.tokens = './tokens.txt';
599
- matcha.dataDir = './espeak-ng-data';
600
- ruleFsts = './phone-zh.fst,./date-zh.fst,./number-zh.fst';
601
- break;
602
- case 2:
603
- // matcha zh
604
- // https://k2-fsa.github.io/sherpa/onnx/tts/all/Chinese/matcha-icefall-zh-baker.html
605
- matcha.acousticModel = './model-steps-3.onnx';
606
- matcha.vocoder = './vocos-22khz-univ.onnx';
607
- matcha.lexicon = './lexicon.txt';
608
- matcha.tokens = './tokens.txt';
609
- ruleFsts = './phone.fst,./date.fst,./number.fst';
610
- break;
611
- case 3:
612
- // matcha en
613
- // https://k2-fsa.github.io/sherpa/onnx/tts/all/English/matcha-icefall-en_US-ljspeech.html
614
- matcha.acousticModel = './model-steps-3.onnx';
615
- matcha.vocoder = './vocos-22khz-univ.onnx';
616
- matcha.tokens = './tokens.txt';
617
- matcha.dataDir = './espeak-ng-data';
618
- break;
619
- }
620
-
621
- const offlineTtsModelConfig = {
622
- offlineTtsVitsModelConfig: vits,
623
- offlineTtsMatchaModelConfig: matcha,
624
- offlineTtsKokoroModelConfig: offlineTtsKokoroModelConfig,
625
- offlineTtsKittenModelConfig: offlineTtsKittenModelConfig,
626
- numThreads: 1,
627
- debug: 1,
628
- provider: 'cpu',
629
- };
630
-
631
- let offlineTtsConfig = {
632
- offlineTtsModelConfig: offlineTtsModelConfig,
633
- ruleFsts: ruleFsts,
634
- ruleFars: '',
635
- maxNumSentences: 1,
636
- }
637
-
638
- if (myConfig) {
639
- offlineTtsConfig = myConfig;
640
- }
641
-
642
- return new OfflineTts(offlineTtsConfig, Module);
643
- }
644
-
645
- if (typeof process == 'object' && typeof process.versions == 'object' &&
646
- typeof process.versions.node == 'string') {
647
- module.exports = {
648
- createOfflineTts,
649
- };
650
- }
651
-
652
- export {
653
- initSherpaOnnxOfflineTtsConfig,
654
- freeConfig,
655
- createOfflineTts,
656
- OfflineTts,
657
- };