webml-kit 0.2.1 → 0.4.0
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.
- package/README.md +78 -2
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +17 -16
- package/dist/cache.js.map +1 -1
- package/dist/decision.d.ts +182 -0
- package/dist/decision.d.ts.map +1 -0
- package/dist/decision.js +789 -0
- package/dist/decision.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/inputs.d.ts +27 -0
- package/dist/inputs.d.ts.map +1 -0
- package/dist/inputs.js +155 -0
- package/dist/inputs.js.map +1 -0
- package/dist/loader.d.ts +100 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +246 -0
- package/dist/loader.js.map +1 -0
- package/dist/model-worker.js +58 -21
- package/dist/model-worker.js.map +1 -1
- package/dist/onnx-pipeline.d.ts +20 -0
- package/dist/onnx-pipeline.d.ts.map +1 -0
- package/dist/onnx-pipeline.js +462 -0
- package/dist/onnx-pipeline.js.map +1 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +20 -2
- package/dist/pipelines/index.js.map +1 -1
- package/dist/shim-ort.d.ts +6 -0
- package/dist/shim-ort.d.ts.map +1 -0
- package/dist/shim-ort.js +38 -0
- package/dist/shim-ort.js.map +1 -0
- package/dist/types.d.ts +16 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/webml-kit.browser.js +2568 -0
- package/package.json +17 -4
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct ONNX Runtime Web pipeline runner.
|
|
3
|
+
*
|
|
4
|
+
* Supports standalone and custom ONNX models that do not use Hugging Face
|
|
5
|
+
* Transformers architecture (such as NeMo Conformer-CTC ASR models,
|
|
6
|
+
* standalone vision models, or raw ONNX models).
|
|
7
|
+
*/
|
|
8
|
+
import * as ort from 'onnxruntime-web';
|
|
9
|
+
// Resolve ONNX Runtime instance: prefer globalThis.ort (e.g. from script tag in browser) or imported module
|
|
10
|
+
const runtimeOrt = typeof globalThis !== 'undefined' && globalThis.ort
|
|
11
|
+
? globalThis.ort
|
|
12
|
+
: ort;
|
|
13
|
+
// Configure ONNX Runtime WebAssembly environment
|
|
14
|
+
if (runtimeOrt?.env?.wasm) {
|
|
15
|
+
runtimeOrt.env.wasm.simd = true;
|
|
16
|
+
if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency) {
|
|
17
|
+
runtimeOrt.env.wasm.numThreads = Math.min(navigator.hardwareConcurrency, 4);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// ─── Asset Resolution Helpers ───
|
|
21
|
+
const HF_BASE = 'https://huggingface.co';
|
|
22
|
+
async function fetchRepoFiles(modelId) {
|
|
23
|
+
try {
|
|
24
|
+
const res = await fetch(`https://huggingface.co/api/models/${modelId}`);
|
|
25
|
+
if (!res.ok)
|
|
26
|
+
return [];
|
|
27
|
+
const data = await res.json();
|
|
28
|
+
return (data.siblings ?? []).map(s => s.rfilename);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function resolveAssetUrl(modelId, filename, revision = 'main') {
|
|
35
|
+
if (filename.startsWith('http://') || filename.startsWith('https://') || filename.startsWith('/') || filename.startsWith('./')) {
|
|
36
|
+
return filename;
|
|
37
|
+
}
|
|
38
|
+
return `${HF_BASE}/${modelId}/resolve/${revision}/${filename}`;
|
|
39
|
+
}
|
|
40
|
+
const DEFAULT_ONNX_CACHE_NAME = 'webml-kit-onnx-cache';
|
|
41
|
+
async function downloadAsset(url, fileName, onProgress, useCache = true, cacheName = DEFAULT_ONNX_CACHE_NAME) {
|
|
42
|
+
if (typeof process !== 'undefined' &&
|
|
43
|
+
process.versions?.node &&
|
|
44
|
+
!url.startsWith('http://') &&
|
|
45
|
+
!url.startsWith('https://')) {
|
|
46
|
+
const fs = await import('node:fs/promises');
|
|
47
|
+
const path = url.startsWith('file://') ? new URL(url) : url;
|
|
48
|
+
const buf = await fs.readFile(path);
|
|
49
|
+
onProgress?.({
|
|
50
|
+
status: 'downloading',
|
|
51
|
+
file: fileName,
|
|
52
|
+
loaded: buf.byteLength,
|
|
53
|
+
total: buf.byteLength,
|
|
54
|
+
percent: 100,
|
|
55
|
+
});
|
|
56
|
+
return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
|
|
57
|
+
}
|
|
58
|
+
// Check persistent browser Cache API
|
|
59
|
+
let cache = null;
|
|
60
|
+
if (useCache && typeof caches !== 'undefined') {
|
|
61
|
+
try {
|
|
62
|
+
cache = await caches.open(cacheName);
|
|
63
|
+
const cached = await cache.match(url);
|
|
64
|
+
if (cached) {
|
|
65
|
+
const buf = await cached.arrayBuffer();
|
|
66
|
+
onProgress?.({
|
|
67
|
+
status: 'ready',
|
|
68
|
+
file: fileName,
|
|
69
|
+
loaded: buf.byteLength,
|
|
70
|
+
total: buf.byteLength,
|
|
71
|
+
percent: 100,
|
|
72
|
+
});
|
|
73
|
+
return buf;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
console.warn('Cache API lookup failed, fetching over network:', err);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const response = await fetch(url);
|
|
81
|
+
if (!response.ok) {
|
|
82
|
+
throw new Error(`Failed to fetch ${fileName} from ${url}: ${response.status} ${response.statusText}`);
|
|
83
|
+
}
|
|
84
|
+
const contentLength = response.headers.get('content-length');
|
|
85
|
+
const total = contentLength ? parseInt(contentLength, 10) : 0;
|
|
86
|
+
if (!response.body || total === 0) {
|
|
87
|
+
const buffer = await response.arrayBuffer();
|
|
88
|
+
if (cache) {
|
|
89
|
+
try {
|
|
90
|
+
await cache.put(url, new Response(buffer.slice(0), {
|
|
91
|
+
headers: {
|
|
92
|
+
'Content-Type': 'application/octet-stream',
|
|
93
|
+
'Content-Length': String(buffer.byteLength),
|
|
94
|
+
},
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
console.warn('Failed to cache asset in Cache API:', err);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
onProgress?.({
|
|
102
|
+
status: 'downloading',
|
|
103
|
+
file: fileName,
|
|
104
|
+
loaded: buffer.byteLength,
|
|
105
|
+
total: buffer.byteLength,
|
|
106
|
+
percent: 100,
|
|
107
|
+
});
|
|
108
|
+
return buffer;
|
|
109
|
+
}
|
|
110
|
+
const reader = response.body.getReader();
|
|
111
|
+
const chunks = [];
|
|
112
|
+
let loaded = 0;
|
|
113
|
+
while (true) {
|
|
114
|
+
const { done, value } = await reader.read();
|
|
115
|
+
if (done)
|
|
116
|
+
break;
|
|
117
|
+
if (value) {
|
|
118
|
+
chunks.push(value);
|
|
119
|
+
loaded += value.length;
|
|
120
|
+
const percent = total > 0 ? Math.round((loaded / total) * 100) : 0;
|
|
121
|
+
onProgress?.({
|
|
122
|
+
status: 'downloading',
|
|
123
|
+
file: fileName,
|
|
124
|
+
loaded,
|
|
125
|
+
total,
|
|
126
|
+
percent,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const merged = new Uint8Array(loaded);
|
|
131
|
+
let offset = 0;
|
|
132
|
+
for (const chunk of chunks) {
|
|
133
|
+
merged.set(chunk, offset);
|
|
134
|
+
offset += chunk.length;
|
|
135
|
+
}
|
|
136
|
+
if (cache) {
|
|
137
|
+
try {
|
|
138
|
+
await cache.put(url, new Response(merged.buffer.slice(0), {
|
|
139
|
+
headers: {
|
|
140
|
+
'Content-Type': 'application/octet-stream',
|
|
141
|
+
'Content-Length': String(loaded),
|
|
142
|
+
},
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
console.warn('Failed to cache asset in Cache API:', err);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return merged.buffer;
|
|
150
|
+
}
|
|
151
|
+
// ─── Session Management with Fallback ───
|
|
152
|
+
async function createSession(modelBufferOrPath, preferredBackend = 'webgpu') {
|
|
153
|
+
const model = modelBufferOrPath instanceof ArrayBuffer
|
|
154
|
+
? new Uint8Array(modelBufferOrPath)
|
|
155
|
+
: modelBufferOrPath;
|
|
156
|
+
if (preferredBackend === 'webgpu') {
|
|
157
|
+
try {
|
|
158
|
+
const session = await runtimeOrt.InferenceSession.create(model, {
|
|
159
|
+
executionProviders: ['webgpu'],
|
|
160
|
+
});
|
|
161
|
+
return { session, backend: 'webgpu' };
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
console.warn('WebGPU session creation failed, falling back to wasm:', err);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const session = await runtimeOrt.InferenceSession.create(model, {
|
|
168
|
+
executionProviders: ['wasm'],
|
|
169
|
+
});
|
|
170
|
+
return { session, backend: 'wasm' };
|
|
171
|
+
}
|
|
172
|
+
// ─── Audio Helpers ───
|
|
173
|
+
export function decodeWavToFloat32(buffer) {
|
|
174
|
+
const view = new DataView(buffer);
|
|
175
|
+
// Check 'RIFF' and 'WAVE'
|
|
176
|
+
const riff = String.fromCharCode(view.getUint8(0), view.getUint8(1), view.getUint8(2), view.getUint8(3));
|
|
177
|
+
const wave = String.fromCharCode(view.getUint8(8), view.getUint8(9), view.getUint8(10), view.getUint8(11));
|
|
178
|
+
if (riff !== 'RIFF' || wave !== 'WAVE') {
|
|
179
|
+
// If not a valid WAV header, treat as raw Float32Array
|
|
180
|
+
return new Float32Array(buffer);
|
|
181
|
+
}
|
|
182
|
+
let offset = 12;
|
|
183
|
+
let audioFormat = 1;
|
|
184
|
+
let numChannels = 1;
|
|
185
|
+
let bitsPerSample = 16;
|
|
186
|
+
let dataOffset = 0;
|
|
187
|
+
let dataLength = 0;
|
|
188
|
+
while (offset < view.byteLength - 8) {
|
|
189
|
+
const chunkId = String.fromCharCode(view.getUint8(offset), view.getUint8(offset + 1), view.getUint8(offset + 2), view.getUint8(offset + 3));
|
|
190
|
+
const chunkSize = view.getUint32(offset + 4, true);
|
|
191
|
+
if (chunkId === 'fmt ') {
|
|
192
|
+
audioFormat = view.getUint16(offset + 8, true);
|
|
193
|
+
numChannels = view.getUint16(offset + 10, true);
|
|
194
|
+
bitsPerSample = view.getUint16(offset + 22, true);
|
|
195
|
+
}
|
|
196
|
+
else if (chunkId === 'data') {
|
|
197
|
+
dataOffset = offset + 8;
|
|
198
|
+
dataLength = chunkSize;
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
offset += 8 + chunkSize;
|
|
202
|
+
}
|
|
203
|
+
if (dataOffset === 0) {
|
|
204
|
+
return new Float32Array(buffer);
|
|
205
|
+
}
|
|
206
|
+
if (audioFormat === 1 && bitsPerSample === 16) {
|
|
207
|
+
// 16-bit PCM
|
|
208
|
+
const numSamples = Math.floor(dataLength / (2 * numChannels));
|
|
209
|
+
const pcm = new Float32Array(numSamples);
|
|
210
|
+
for (let i = 0; i < numSamples; i++) {
|
|
211
|
+
let sum = 0;
|
|
212
|
+
for (let c = 0; c < numChannels; c++) {
|
|
213
|
+
const idx = dataOffset + (i * numChannels + c) * 2;
|
|
214
|
+
if (idx + 1 < view.byteLength) {
|
|
215
|
+
sum += view.getInt16(idx, true) / 32768.0;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
pcm[i] = sum / numChannels;
|
|
219
|
+
}
|
|
220
|
+
return pcm;
|
|
221
|
+
}
|
|
222
|
+
if (audioFormat === 3 && bitsPerSample === 32) {
|
|
223
|
+
// 32-bit Float
|
|
224
|
+
const numSamples = Math.floor(dataLength / (4 * numChannels));
|
|
225
|
+
const pcm = new Float32Array(numSamples);
|
|
226
|
+
for (let i = 0; i < numSamples; i++) {
|
|
227
|
+
let sum = 0;
|
|
228
|
+
for (let c = 0; c < numChannels; c++) {
|
|
229
|
+
const idx = dataOffset + (i * numChannels + c) * 4;
|
|
230
|
+
if (idx + 3 < view.byteLength) {
|
|
231
|
+
sum += view.getFloat32(idx, true);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
pcm[i] = sum / numChannels;
|
|
235
|
+
}
|
|
236
|
+
return pcm;
|
|
237
|
+
}
|
|
238
|
+
return new Float32Array(buffer.slice(dataOffset, dataOffset + dataLength));
|
|
239
|
+
}
|
|
240
|
+
export function toFloat32Array(input) {
|
|
241
|
+
if (input instanceof Float32Array)
|
|
242
|
+
return input;
|
|
243
|
+
if (Array.isArray(input))
|
|
244
|
+
return new Float32Array(input);
|
|
245
|
+
if (input instanceof ArrayBuffer)
|
|
246
|
+
return decodeWavToFloat32(input);
|
|
247
|
+
if (ArrayBuffer.isView(input))
|
|
248
|
+
return new Float32Array(input.buffer, input.byteOffset, input.byteLength / 4);
|
|
249
|
+
if (typeof input === 'object' && input !== null && 'audio' in input) {
|
|
250
|
+
return toFloat32Array(input.audio);
|
|
251
|
+
}
|
|
252
|
+
throw new Error(`Unsupported audio input format: ${typeof input}`);
|
|
253
|
+
}
|
|
254
|
+
// ─── CTC Greedy Decoding ───
|
|
255
|
+
export function decodeCTC(logprobs, timeSteps, numClasses, vocab) {
|
|
256
|
+
let prevClass = 0;
|
|
257
|
+
let text = '';
|
|
258
|
+
for (let t = 0; t < timeSteps; t++) {
|
|
259
|
+
const offset = t * numClasses;
|
|
260
|
+
let maxVal = -Infinity;
|
|
261
|
+
let argmax = 0;
|
|
262
|
+
for (let c = 0; c < numClasses; c++) {
|
|
263
|
+
const val = logprobs[offset + c];
|
|
264
|
+
if (val > maxVal) {
|
|
265
|
+
maxVal = val;
|
|
266
|
+
argmax = c;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (argmax === 0) {
|
|
270
|
+
prevClass = 0;
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
if (argmax !== prevClass) {
|
|
274
|
+
const token = vocab[argmax] ?? '';
|
|
275
|
+
text += token;
|
|
276
|
+
prevClass = argmax;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// Replace SentencePiece whitespace marker ' ' (U+2581) with normal space
|
|
280
|
+
return text.replace(/\u2581/g, ' ').replace(/\s+/g, ' ').trim();
|
|
281
|
+
}
|
|
282
|
+
// ─── Main Pipeline Factory ───
|
|
283
|
+
export async function createOnnxPipeline(config, onProgress) {
|
|
284
|
+
const preferredDevice = config.device ?? 'webgpu';
|
|
285
|
+
const revision = config.revision ?? 'main';
|
|
286
|
+
const useCache = config.cache !== false;
|
|
287
|
+
const cacheName = config.cacheName || DEFAULT_ONNX_CACHE_NAME;
|
|
288
|
+
// 1. Discover model files
|
|
289
|
+
let modelFile = config.modelFile;
|
|
290
|
+
let preprocessorFile = config.preprocessorFile;
|
|
291
|
+
let vocabFile = config.vocabFile;
|
|
292
|
+
if (!modelFile && !config.modelId.endsWith('.onnx')) {
|
|
293
|
+
const repoFiles = await fetchRepoFiles(config.modelId);
|
|
294
|
+
if (repoFiles.length > 0) {
|
|
295
|
+
if (!modelFile) {
|
|
296
|
+
// Look for acoustic / CTC / model ONNX
|
|
297
|
+
modelFile = repoFiles.find(f => f.endsWith('.onnx') && !f.includes('preprocess'))
|
|
298
|
+
?? repoFiles.find(f => f.endsWith('.onnx'));
|
|
299
|
+
}
|
|
300
|
+
if (!preprocessorFile) {
|
|
301
|
+
preprocessorFile = repoFiles.find(f => f.endsWith('.onnx') && f.includes('preprocess'));
|
|
302
|
+
}
|
|
303
|
+
if (!vocabFile) {
|
|
304
|
+
vocabFile = repoFiles.find(f => f.endsWith('.json') && (f.includes('vocab') || f.includes('tokens')));
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
if (!modelFile) {
|
|
309
|
+
modelFile = config.modelId.endsWith('.onnx') ? config.modelId : 'model.onnx';
|
|
310
|
+
}
|
|
311
|
+
const modelUrl = resolveAssetUrl(config.modelId, modelFile, revision);
|
|
312
|
+
const modelBuffer = await downloadAsset(modelUrl, modelFile, onProgress, useCache, cacheName);
|
|
313
|
+
// Preprocessor (optional companion model for ASR/audio)
|
|
314
|
+
let prepSession = null;
|
|
315
|
+
if (preprocessorFile) {
|
|
316
|
+
const prepUrl = resolveAssetUrl(config.modelId, preprocessorFile, revision);
|
|
317
|
+
const prepBuffer = await downloadAsset(prepUrl, preprocessorFile, onProgress, useCache, cacheName);
|
|
318
|
+
const { session } = await createSession(prepBuffer, preferredDevice);
|
|
319
|
+
prepSession = session;
|
|
320
|
+
}
|
|
321
|
+
// Vocab (optional mapping for CTC decoding)
|
|
322
|
+
let vocab = {};
|
|
323
|
+
if (vocabFile) {
|
|
324
|
+
const vocabUrl = resolveAssetUrl(config.modelId, vocabFile, revision);
|
|
325
|
+
try {
|
|
326
|
+
if (typeof process !== 'undefined' &&
|
|
327
|
+
process.versions?.node &&
|
|
328
|
+
!vocabUrl.startsWith('http://') &&
|
|
329
|
+
!vocabUrl.startsWith('https://')) {
|
|
330
|
+
const fs = await import('node:fs/promises');
|
|
331
|
+
const path = vocabUrl.startsWith('file://') ? new URL(vocabUrl) : vocabUrl;
|
|
332
|
+
const text = await fs.readFile(path, 'utf-8');
|
|
333
|
+
vocab = JSON.parse(text);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
let cachedRes = null;
|
|
337
|
+
if (useCache && typeof caches !== 'undefined') {
|
|
338
|
+
try {
|
|
339
|
+
const cache = await caches.open(cacheName);
|
|
340
|
+
cachedRes = (await cache.match(vocabUrl)) ?? null;
|
|
341
|
+
}
|
|
342
|
+
catch { }
|
|
343
|
+
}
|
|
344
|
+
if (cachedRes) {
|
|
345
|
+
vocab = await cachedRes.json();
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
const res = await fetch(vocabUrl);
|
|
349
|
+
if (res.ok) {
|
|
350
|
+
if (useCache && typeof caches !== 'undefined') {
|
|
351
|
+
try {
|
|
352
|
+
const cache = await caches.open(cacheName);
|
|
353
|
+
await cache.put(vocabUrl, res.clone());
|
|
354
|
+
}
|
|
355
|
+
catch { }
|
|
356
|
+
}
|
|
357
|
+
vocab = await res.json();
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
catch {
|
|
363
|
+
// Non-fatal if vocab fails to load
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
// Create primary session with WebGPU -> WASM fallback
|
|
367
|
+
let { session: modelSession, backend } = await createSession(modelBuffer, preferredDevice);
|
|
368
|
+
// ─── ASR Pipeline Function ───
|
|
369
|
+
if (config.task === 'automatic-speech-recognition') {
|
|
370
|
+
const runner = async (input) => {
|
|
371
|
+
const pcm = toFloat32Array(input);
|
|
372
|
+
const executeInference = async (sess) => {
|
|
373
|
+
let acousticSignal;
|
|
374
|
+
let acousticLength;
|
|
375
|
+
if (prepSession) {
|
|
376
|
+
// Mel filterbank extraction
|
|
377
|
+
const audioTensor = new runtimeOrt.Tensor('float32', pcm, [1, pcm.length]);
|
|
378
|
+
const lengthTensor = new runtimeOrt.Tensor('int64', BigInt64Array.from([BigInt(pcm.length)]), [1]);
|
|
379
|
+
const prepOutputs = await prepSession.run({
|
|
380
|
+
audio_signal: audioTensor,
|
|
381
|
+
length: lengthTensor,
|
|
382
|
+
});
|
|
383
|
+
acousticSignal = (prepOutputs.processed_signal ?? Object.values(prepOutputs)[0]);
|
|
384
|
+
acousticLength = (prepOutputs.processed_length ?? Object.values(prepOutputs)[1]);
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
// Pass raw audio directly
|
|
388
|
+
acousticSignal = new runtimeOrt.Tensor('float32', pcm, [1, pcm.length]);
|
|
389
|
+
acousticLength = new runtimeOrt.Tensor('int64', BigInt64Array.from([BigInt(pcm.length)]), [1]);
|
|
390
|
+
}
|
|
391
|
+
// Acoustic model inference
|
|
392
|
+
const feeds = {};
|
|
393
|
+
const inputNames = sess.inputNames;
|
|
394
|
+
if (inputNames.length >= 2) {
|
|
395
|
+
feeds[inputNames[0]] = acousticSignal;
|
|
396
|
+
feeds[inputNames[1]] = acousticLength;
|
|
397
|
+
}
|
|
398
|
+
else if (inputNames.length === 1) {
|
|
399
|
+
feeds[inputNames[0]] = acousticSignal;
|
|
400
|
+
}
|
|
401
|
+
const outputs = await sess.run(feeds);
|
|
402
|
+
const logprobsTensor = (outputs.logprobs ?? Object.values(outputs)[0]);
|
|
403
|
+
const dims = logprobsTensor.dims;
|
|
404
|
+
const timeSteps = dims.length === 3 ? dims[1] : (dims.length === 2 ? dims[0] : 1);
|
|
405
|
+
const numClasses = dims[dims.length - 1];
|
|
406
|
+
const data = logprobsTensor.data;
|
|
407
|
+
const text = decodeCTC(data, timeSteps, numClasses, vocab);
|
|
408
|
+
return { text };
|
|
409
|
+
};
|
|
410
|
+
try {
|
|
411
|
+
return await executeInference(modelSession);
|
|
412
|
+
}
|
|
413
|
+
catch (err) {
|
|
414
|
+
// If WebGPU failed (e.g. 1D conv kernel failure), fallback to WASM transparently
|
|
415
|
+
if (backend === 'webgpu') {
|
|
416
|
+
console.warn('WebGPU inference failed, retrying on WASM provider:', err);
|
|
417
|
+
const wasmResult = await createSession(modelBuffer, 'wasm');
|
|
418
|
+
modelSession = wasmResult.session;
|
|
419
|
+
backend = 'wasm';
|
|
420
|
+
return await executeInference(modelSession);
|
|
421
|
+
}
|
|
422
|
+
throw err;
|
|
423
|
+
}
|
|
424
|
+
};
|
|
425
|
+
const instance = runner;
|
|
426
|
+
instance.sessions = prepSession ? [prepSession, modelSession] : [modelSession];
|
|
427
|
+
instance.backend = backend;
|
|
428
|
+
instance.dispose = () => {
|
|
429
|
+
prepSession?.release();
|
|
430
|
+
modelSession.release();
|
|
431
|
+
};
|
|
432
|
+
return instance;
|
|
433
|
+
}
|
|
434
|
+
// ─── Generic / Raw ONNX Pipeline Function ───
|
|
435
|
+
const genericRunner = async (input) => {
|
|
436
|
+
const feeds = {};
|
|
437
|
+
if (typeof input === 'object' && input !== null) {
|
|
438
|
+
for (const [k, v] of Object.entries(input)) {
|
|
439
|
+
if (v instanceof (runtimeOrt.Tensor ?? ort.Tensor)) {
|
|
440
|
+
feeds[k] = v;
|
|
441
|
+
}
|
|
442
|
+
else if (v instanceof Float32Array) {
|
|
443
|
+
feeds[k] = new runtimeOrt.Tensor('float32', v, [1, v.length]);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
const outputs = await modelSession.run(feeds);
|
|
448
|
+
const result = {};
|
|
449
|
+
for (const [k, v] of Object.entries(outputs)) {
|
|
450
|
+
result[k] = v.data;
|
|
451
|
+
}
|
|
452
|
+
return result;
|
|
453
|
+
};
|
|
454
|
+
const instance = genericRunner;
|
|
455
|
+
instance.sessions = [modelSession];
|
|
456
|
+
instance.backend = backend;
|
|
457
|
+
instance.dispose = () => {
|
|
458
|
+
modelSession.release();
|
|
459
|
+
};
|
|
460
|
+
return instance;
|
|
461
|
+
}
|
|
462
|
+
//# sourceMappingURL=onnx-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onnx-pipeline.js","sourceRoot":"","sources":["../src/onnx-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipelines/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sCAAsC;IACtC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipelines/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sCAAsC;IACtC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAmHpE,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAMxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAE7D"}
|
package/dist/pipelines/index.js
CHANGED
|
@@ -37,8 +37,8 @@ export const PIPELINE_REGISTRY = {
|
|
|
37
37
|
usesKVCache: false,
|
|
38
38
|
},
|
|
39
39
|
'text-to-speech': {
|
|
40
|
-
defaultModel: '
|
|
41
|
-
defaultDtype: '
|
|
40
|
+
defaultModel: 'onnx-community/Kokoro-82M-v1.0-ONNX',
|
|
41
|
+
defaultDtype: 'q8',
|
|
42
42
|
supportsStreaming: false,
|
|
43
43
|
usesKVCache: false,
|
|
44
44
|
},
|
|
@@ -102,6 +102,24 @@ export const PIPELINE_REGISTRY = {
|
|
|
102
102
|
supportsStreaming: false,
|
|
103
103
|
usesKVCache: false,
|
|
104
104
|
},
|
|
105
|
+
'raw-onnx': {
|
|
106
|
+
defaultModel: '',
|
|
107
|
+
defaultDtype: 'fp32',
|
|
108
|
+
supportsStreaming: false,
|
|
109
|
+
usesKVCache: false,
|
|
110
|
+
},
|
|
111
|
+
'decision': {
|
|
112
|
+
defaultModel: 'qwen3-0.6b',
|
|
113
|
+
defaultDtype: 'q4',
|
|
114
|
+
supportsStreaming: false,
|
|
115
|
+
usesKVCache: false,
|
|
116
|
+
},
|
|
117
|
+
'custom': {
|
|
118
|
+
defaultModel: '',
|
|
119
|
+
defaultDtype: 'fp32',
|
|
120
|
+
supportsStreaming: false,
|
|
121
|
+
usesKVCache: false,
|
|
122
|
+
},
|
|
105
123
|
};
|
|
106
124
|
/**
|
|
107
125
|
* Get the pipeline defaults for a task.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipelines/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2C;IACvE,iBAAiB,EAAE;QACjB,YAAY,EAAE,2CAA2C;QACzD,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI;KAClB;IACD,qBAAqB,EAAE;QACrB,YAAY,EAAE,wDAAwD;QACtE,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,KAAK;KACnB;IACD,sBAAsB,EAAE;QACtB,YAAY,EAAE,6BAA6B;QAC3C,YAAY,EAAE,MAAM;QACpB,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,KAAK;KACnB;IACD,kBAAkB,EAAE;QAClB,YAAY,EAAE,uBAAuB;QACrC,YAAY,EAAE,MAAM;QACpB,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,KAAK;KACnB;IACD,8BAA8B,EAAE;QAC9B,YAAY,EAAE,gCAAgC;QAC9C,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,KAAK;KACnB;IACD,gBAAgB,EAAE;QAChB,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipelines/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shim-ort.d.ts","sourceRoot":"","sources":["../src/shim-ort.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,QAAQ,EAAE,GAQf,CAAC;AAEF,eAAe,QAAQ,CAAC;AACxB,eAAO,MAAM,gBAAgB,IAO5B,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,GAGpB,CAAC;AACF,eAAO,MAAM,GAAG,EAAE,GAcjB,CAAC"}
|
package/dist/shim-ort.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser shim for onnxruntime-web when loaded via CDN <script> tag (window.ort).
|
|
3
|
+
*/
|
|
4
|
+
const getOrt = () => {
|
|
5
|
+
if (typeof globalThis !== 'undefined' && globalThis.ort) {
|
|
6
|
+
return globalThis.ort;
|
|
7
|
+
}
|
|
8
|
+
return {};
|
|
9
|
+
};
|
|
10
|
+
const ortProxy = new Proxy({}, {
|
|
11
|
+
get(_target, prop) {
|
|
12
|
+
const ort = getOrt();
|
|
13
|
+
return ort[prop];
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
export default ortProxy;
|
|
17
|
+
export const InferenceSession = new Proxy({}, {
|
|
18
|
+
get(_target, prop) {
|
|
19
|
+
return getOrt().InferenceSession?.[prop];
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
export const Tensor = function (...args) {
|
|
23
|
+
const OrtTensor = getOrt().Tensor;
|
|
24
|
+
return new OrtTensor(...args);
|
|
25
|
+
};
|
|
26
|
+
export const env = new Proxy({}, {
|
|
27
|
+
get(_target, prop) {
|
|
28
|
+
return getOrt().env?.[prop];
|
|
29
|
+
},
|
|
30
|
+
set(_target, prop, value) {
|
|
31
|
+
const ort = getOrt();
|
|
32
|
+
if (ort.env) {
|
|
33
|
+
ort.env[prop] = value;
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=shim-ort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shim-ort.js","sourceRoot":"","sources":["../src/shim-ort.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,GAAG,GAAQ,EAAE;IACvB,IAAI,OAAO,UAAU,KAAK,WAAW,IAAK,UAAkB,CAAC,GAAG,EAAE,CAAC;QACjE,OAAQ,UAAkB,CAAC,GAAG,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAQ,IAAI,KAAK,CAC7B,EAAE,EACF;IACE,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;CACF,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC;AACxB,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,KAAK,CACvC,EAAE,EACF;IACE,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF,CACF,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAQ,UAAqB,GAAG,IAAW;IAC5D,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC;IAClC,OAAO,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,GAAG,GAAQ,IAAI,KAAK,CAC/B,EAAE,EACF;IACE,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK;QACtB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CACF,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface DeviceInfo {
|
|
|
15
15
|
recommendedDtype: QuantizationType;
|
|
16
16
|
}
|
|
17
17
|
export type QuantizationType = 'fp32' | 'fp16' | 'q8' | 'q4' | 'q4f16' | 'q1' | 'int8' | 'uint8';
|
|
18
|
-
export type PipelineTask = 'text-generation' | 'text-classification' | 'image-classification' | 'object-detection' | 'automatic-speech-recognition' | 'text-to-speech' | 'translation' | 'summarization' | 'feature-extraction' | 'image-to-text' | 'zero-shot-classification' | 'fill-mask' | 'question-answering' | 'token-classification' | 'depth-estimation' | 'image-segmentation';
|
|
18
|
+
export type PipelineTask = 'text-generation' | 'text-classification' | 'image-classification' | 'object-detection' | 'automatic-speech-recognition' | 'text-to-speech' | 'translation' | 'summarization' | 'feature-extraction' | 'image-to-text' | 'zero-shot-classification' | 'fill-mask' | 'question-answering' | 'token-classification' | 'depth-estimation' | 'image-segmentation' | 'raw-onnx' | 'decision' | 'custom';
|
|
19
19
|
export interface ModelConfig {
|
|
20
20
|
task: PipelineTask;
|
|
21
21
|
modelId: string;
|
|
@@ -25,9 +25,23 @@ export interface ModelConfig {
|
|
|
25
25
|
device?: DeviceBackend;
|
|
26
26
|
/** Revision / branch on HuggingFace Hub */
|
|
27
27
|
revision?: string;
|
|
28
|
+
/** Pipeline runner type: 'transformers' (HF pipeline), 'onnx' (raw/custom ONNX), or 'auto' (smart fallback) */
|
|
29
|
+
modelType?: 'transformers' | 'onnx' | 'auto';
|
|
30
|
+
/** Custom model filename or URL (e.g. 'sushrota_sanskrit_ctc_int8.onnx' or './model.onnx') */
|
|
31
|
+
modelFile?: string;
|
|
32
|
+
/** Companion audio preprocessor model filename or URL (e.g. 'preprocessor.onnx') */
|
|
33
|
+
preprocessorFile?: string;
|
|
34
|
+
/** Vocabulary mapping JSON filename or URL (e.g. 'sanskrit_vocab.json') */
|
|
35
|
+
vocabFile?: string;
|
|
36
|
+
/** Custom execution providers override, e.g. ['wasm'] or ['webgpu', 'wasm'] */
|
|
37
|
+
executionProviders?: string[];
|
|
38
|
+
/** Enable persistent browser Cache API storage for downloaded ONNX models (defaults to true) */
|
|
39
|
+
cache?: boolean;
|
|
40
|
+
/** Custom cache name (defaults to 'webml-kit-onnx-cache') */
|
|
41
|
+
cacheName?: string;
|
|
28
42
|
}
|
|
29
43
|
export interface ProgressEvent {
|
|
30
|
-
status: 'downloading' | 'loading' | 'compiling' | 'warming';
|
|
44
|
+
status: 'downloading' | 'loading' | 'compiling' | 'warming' | 'ready';
|
|
31
45
|
/** File being downloaded */
|
|
32
46
|
file?: string;
|
|
33
47
|
/** Bytes loaded so far */
|