webml-kit 0.2.1 → 0.3.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 +39 -2
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -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 +123 -0
- package/dist/inputs.js.map +1 -0
- package/dist/loader.d.ts +87 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +156 -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 +385 -0
- package/dist/onnx-pipeline.js.map +1 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +12 -0
- package/dist/pipelines/index.js.map +1 -1
- package/dist/types.d.ts +11 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -18,12 +18,39 @@ npm install webml-kit
|
|
|
18
18
|
|
|
19
19
|
## Quick start
|
|
20
20
|
|
|
21
|
+
### Zero-ceremony functional API
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
import webml from 'webml-kit';
|
|
25
|
+
|
|
26
|
+
// Speech recognition — auto-detects task, normalizes audio (Blob, File, URL, Float32Array)
|
|
27
|
+
const asr = await webml('onnx-community/whisper-tiny.en');
|
|
28
|
+
const { text } = await asr.transcribe(audioBlob);
|
|
29
|
+
|
|
30
|
+
// Live microphone listening
|
|
31
|
+
const mic = await asr.listen({
|
|
32
|
+
onTranscript: (text) => console.log(text),
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// Text generation with streaming
|
|
36
|
+
const llm = await webml('onnx-community/Llama-3.2-1B-Instruct-ONNX');
|
|
37
|
+
for await (const { token } of llm.stream('Tell me a joke')) {
|
|
38
|
+
process.stdout.write(token);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Image classification (callable object)
|
|
42
|
+
const classifier = await webml('Xenova/vit-base-patch16-224');
|
|
43
|
+
const labels = await classifier(imageFile);
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Low-level ModelClient
|
|
47
|
+
|
|
48
|
+
For manual control over device detection, cache, and worker threads:
|
|
49
|
+
|
|
21
50
|
```ts
|
|
22
51
|
import { ModelClient } from 'webml-kit';
|
|
23
52
|
|
|
24
53
|
const client = new ModelClient();
|
|
25
|
-
// or with an explicit worker path:
|
|
26
|
-
// const client = new ModelClient(new URL('webml-kit/worker', import.meta.url));
|
|
27
54
|
|
|
28
55
|
// What can this machine do?
|
|
29
56
|
const device = await client.detect();
|
|
@@ -147,6 +174,16 @@ const objects = await client.run('object-detection', imageBlob);
|
|
|
147
174
|
// classify text, extract entities, estimate depth, segment images
|
|
148
175
|
```
|
|
149
176
|
|
|
177
|
+
### Standalone & Custom ONNX Models
|
|
178
|
+
|
|
179
|
+
Not every model uses standard `@huggingface/transformers` pipelines. `webml-kit` automatically detects and supports standalone ONNX models, companion audio preprocessors, and custom CTC decoders (such as NeMo Conformer-CTC models, standalone vision backbones, or raw ONNX graphs), with automatic WebGPU-to-WASM fallback when operators require WASM SIMD:
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
// Load standalone ONNX models from HF Hub, local files, or URLs
|
|
183
|
+
const asr = await webml('onnx-community/whisper-tiny.en'); // or any standalone ONNX model
|
|
184
|
+
const { text } = await asr.transcribe(audioFloat32Array);
|
|
185
|
+
```
|
|
186
|
+
|
|
150
187
|
## API
|
|
151
188
|
|
|
152
189
|
### ModelClient
|
package/dist/index.d.ts
CHANGED
|
@@ -38,6 +38,12 @@
|
|
|
38
38
|
*
|
|
39
39
|
* @packageDocumentation
|
|
40
40
|
*/
|
|
41
|
+
export { webml, inferTask } from './loader.js';
|
|
42
|
+
export type { WebMLOptions, LoadedModel } from './loader.js';
|
|
43
|
+
import webml from './loader.js';
|
|
44
|
+
export default webml;
|
|
45
|
+
export { coerceAudio, listenMic } from './inputs.js';
|
|
46
|
+
export type { ListenOptions, MicListener } from './inputs.js';
|
|
41
47
|
export { ModelClient } from './model-client.js';
|
|
42
48
|
export type { LoadOptions, ClientEventType } from './model-client.js';
|
|
43
49
|
export { detectDevice, checkWebGPU, checkWASM, getGPUAdapter, getGPUInfo, recommendDtype, canRun, parseSize, formatSize, } from './device.js';
|
|
@@ -47,6 +53,8 @@ export { GPURecovery } from './gpu-recovery.js';
|
|
|
47
53
|
export type { RecoveryState, GPURecoveryEvents } from './gpu-recovery.js';
|
|
48
54
|
export { PIPELINE_REGISTRY, getPipelineDefaults, supportsStreaming, } from './pipelines/index.js';
|
|
49
55
|
export type { PipelineDefaults } from './pipelines/index.js';
|
|
56
|
+
export { createOnnxPipeline, decodeCTC, decodeWavToFloat32, toFloat32Array, } from './onnx-pipeline.js';
|
|
57
|
+
export type { OnnxPipelineInstance } from './onnx-pipeline.js';
|
|
50
58
|
export { searchModels, listModelsForTask, trendingModels, listWebGPUModels, getModelInfo, WEBGPU_ORGS, } from './hub.js';
|
|
51
59
|
export type { HubModel, SearchOptions } from './hub.js';
|
|
52
60
|
export type { DeviceBackend, DeviceInfo, GPUInfo, QuantizationType, PipelineTask, ModelConfig, ProgressEvent, ProgressCallback, TokenEvent, ChatMessage, TextGenerationOptions, TextGenerationResult, ClassificationResult, DetectionResult, TranscriptionResult, EmbeddingResult, CaptionResult, TextResult, CacheBackend, CachedModel, } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGxD,YAAY,EACV,aAAa,EACb,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,eAAe,KAAK,CAAC;AAGrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGxD,YAAY,EACV,aAAa,EACb,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -38,6 +38,12 @@
|
|
|
38
38
|
*
|
|
39
39
|
* @packageDocumentation
|
|
40
40
|
*/
|
|
41
|
+
// ─── Functional API (Default Export) ───
|
|
42
|
+
export { webml, inferTask } from './loader.js';
|
|
43
|
+
import webml from './loader.js';
|
|
44
|
+
export default webml;
|
|
45
|
+
// ─── Input & Media Helpers ───
|
|
46
|
+
export { coerceAudio, listenMic } from './inputs.js';
|
|
41
47
|
// ─── Core ───
|
|
42
48
|
export { ModelClient } from './model-client.js';
|
|
43
49
|
// ─── Device Detection ───
|
|
@@ -50,6 +56,8 @@ export { TokenStream, collectStream } from './streaming.js';
|
|
|
50
56
|
export { GPURecovery } from './gpu-recovery.js';
|
|
51
57
|
// ─── Pipelines ───
|
|
52
58
|
export { PIPELINE_REGISTRY, getPipelineDefaults, supportsStreaming, } from './pipelines/index.js';
|
|
59
|
+
// ─── ONNX Pipelines ───
|
|
60
|
+
export { createOnnxPipeline, decodeCTC, decodeWavToFloat32, toFloat32Array, } from './onnx-pipeline.js';
|
|
53
61
|
// ─── Hub Search ───
|
|
54
62
|
export { searchModels, listModelsForTask, trendingModels, listWebGPUModels, getModelInfo, WEBGPU_ORGS, } from './hub.js';
|
|
55
63
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5D,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,0CAA0C;AAC1C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,eAAe,KAAK,CAAC;AAErB,gCAAgC;AAChC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrD,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5D,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,yBAAyB;AACzB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,UAAU,CAAC"}
|
package/dist/inputs.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal input coercion and browser media helpers.
|
|
3
|
+
*
|
|
4
|
+
* Automatically converts URLs, Blobs, Files, AudioBuffers, and arrays
|
|
5
|
+
* into the exact formats expected by ML models.
|
|
6
|
+
*/
|
|
7
|
+
export interface ListenOptions {
|
|
8
|
+
/** Target sample rate in Hz (default: 16000) */
|
|
9
|
+
sampleRate?: number;
|
|
10
|
+
/** Chunk interval in seconds for streaming callback (default: 3) */
|
|
11
|
+
intervalSeconds?: number;
|
|
12
|
+
/** Callback fired for each audio chunk */
|
|
13
|
+
onChunk?: (pcm: Float32Array) => void;
|
|
14
|
+
}
|
|
15
|
+
export interface MicListener {
|
|
16
|
+
stop: () => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Coerces various audio formats (URL, File, Blob, AudioBuffer, ArrayBuffer, Array)
|
|
20
|
+
* into a standardized 16kHz Float32Array PCM buffer.
|
|
21
|
+
*/
|
|
22
|
+
export declare function coerceAudio(input: unknown): Promise<Float32Array>;
|
|
23
|
+
/**
|
|
24
|
+
* Capture microphone audio from browser and invoke callback with Float32Array PCM.
|
|
25
|
+
*/
|
|
26
|
+
export declare function listenMic(onChunk: (pcm: Float32Array) => void, options?: ListenOptions): Promise<MicListener>;
|
|
27
|
+
//# sourceMappingURL=inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAkEvE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,EACpC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAwDtB"}
|
package/dist/inputs.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal input coercion and browser media helpers.
|
|
3
|
+
*
|
|
4
|
+
* Automatically converts URLs, Blobs, Files, AudioBuffers, and arrays
|
|
5
|
+
* into the exact formats expected by ML models.
|
|
6
|
+
*/
|
|
7
|
+
import { decodeWavToFloat32 } from './onnx-pipeline.js';
|
|
8
|
+
/**
|
|
9
|
+
* Coerces various audio formats (URL, File, Blob, AudioBuffer, ArrayBuffer, Array)
|
|
10
|
+
* into a standardized 16kHz Float32Array PCM buffer.
|
|
11
|
+
*/
|
|
12
|
+
export async function coerceAudio(input) {
|
|
13
|
+
if (input instanceof Float32Array) {
|
|
14
|
+
return input;
|
|
15
|
+
}
|
|
16
|
+
if (Array.isArray(input)) {
|
|
17
|
+
return new Float32Array(input);
|
|
18
|
+
}
|
|
19
|
+
if (input instanceof ArrayBuffer) {
|
|
20
|
+
return decodeWavToFloat32(input);
|
|
21
|
+
}
|
|
22
|
+
if (ArrayBuffer.isView(input)) {
|
|
23
|
+
if (input instanceof Uint8Array) {
|
|
24
|
+
const copy = new Uint8Array(input.byteLength);
|
|
25
|
+
copy.set(new Uint8Array(input.buffer, input.byteOffset, input.byteLength));
|
|
26
|
+
return decodeWavToFloat32(copy.buffer);
|
|
27
|
+
}
|
|
28
|
+
return new Float32Array(input.buffer, input.byteOffset, Math.floor(input.byteLength / 4));
|
|
29
|
+
}
|
|
30
|
+
// Handle Blob / File
|
|
31
|
+
if (typeof Blob !== 'undefined' && input instanceof Blob) {
|
|
32
|
+
const buffer = await input.arrayBuffer();
|
|
33
|
+
// Try decoding via browser AudioContext if available for compressed formats (mp3/ogg/m4a)
|
|
34
|
+
if (typeof AudioContext !== 'undefined' || typeof globalThis.webkitAudioContext !== 'undefined') {
|
|
35
|
+
try {
|
|
36
|
+
const AudioCtx = globalThis.AudioContext || globalThis.webkitAudioContext;
|
|
37
|
+
const ctx = new AudioCtx({ sampleRate: 16000 });
|
|
38
|
+
const audioBuf = await ctx.decodeAudioData(buffer.slice(0));
|
|
39
|
+
ctx.close();
|
|
40
|
+
return audioBuf.getChannelData(0);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Fallback to WAV parser
|
|
44
|
+
return decodeWavToFloat32(buffer);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return decodeWavToFloat32(buffer);
|
|
48
|
+
}
|
|
49
|
+
// Handle URL string
|
|
50
|
+
if (typeof input === 'string') {
|
|
51
|
+
const response = await fetch(input);
|
|
52
|
+
if (!response.ok) {
|
|
53
|
+
throw new Error(`Failed to fetch audio from ${input}: ${response.status} ${response.statusText}`);
|
|
54
|
+
}
|
|
55
|
+
const buffer = await response.arrayBuffer();
|
|
56
|
+
return decodeWavToFloat32(buffer);
|
|
57
|
+
}
|
|
58
|
+
// Handle object with .audio or .pcm property
|
|
59
|
+
if (typeof input === 'object' && input !== null) {
|
|
60
|
+
if ('audio' in input) {
|
|
61
|
+
return coerceAudio(input.audio);
|
|
62
|
+
}
|
|
63
|
+
if ('pcm' in input) {
|
|
64
|
+
return coerceAudio(input.pcm);
|
|
65
|
+
}
|
|
66
|
+
// Handle Web Audio API AudioBuffer
|
|
67
|
+
if ('getChannelData' in input && typeof input.getChannelData === 'function') {
|
|
68
|
+
return input.getChannelData(0);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
throw new Error(`Unsupported audio input type: ${typeof input}`);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Capture microphone audio from browser and invoke callback with Float32Array PCM.
|
|
75
|
+
*/
|
|
76
|
+
export async function listenMic(onChunk, options = {}) {
|
|
77
|
+
if (typeof navigator === 'undefined' || !navigator.mediaDevices?.getUserMedia) {
|
|
78
|
+
throw new Error('Microphone access is only available in browser environments with getUserMedia.');
|
|
79
|
+
}
|
|
80
|
+
const sampleRate = options.sampleRate ?? 16000;
|
|
81
|
+
const intervalSeconds = options.intervalSeconds ?? 3;
|
|
82
|
+
const stream = await navigator.mediaDevices.getUserMedia({
|
|
83
|
+
audio: {
|
|
84
|
+
sampleRate,
|
|
85
|
+
channelCount: 1,
|
|
86
|
+
echoCancellation: true,
|
|
87
|
+
noiseSuppression: true,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
const AudioCtx = globalThis.AudioContext || globalThis.webkitAudioContext;
|
|
91
|
+
const audioCtx = new AudioCtx({ sampleRate });
|
|
92
|
+
const source = audioCtx.createMediaStreamSource(stream);
|
|
93
|
+
// ScriptProcessor or AudioWorklet for gathering PCM
|
|
94
|
+
const bufferSize = 4096;
|
|
95
|
+
const processor = audioCtx.createScriptProcessor(bufferSize, 1, 1);
|
|
96
|
+
let pcmBuffer = [];
|
|
97
|
+
const maxSamples = Math.floor(sampleRate * intervalSeconds);
|
|
98
|
+
processor.onaudioprocess = (e) => {
|
|
99
|
+
const inputData = e.inputBuffer.getChannelData(0);
|
|
100
|
+
for (let i = 0; i < inputData.length; i++) {
|
|
101
|
+
pcmBuffer.push(inputData[i]);
|
|
102
|
+
}
|
|
103
|
+
if (pcmBuffer.length >= maxSamples) {
|
|
104
|
+
const chunk = new Float32Array(pcmBuffer);
|
|
105
|
+
pcmBuffer = [];
|
|
106
|
+
onChunk(chunk);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
source.connect(processor);
|
|
110
|
+
processor.connect(audioCtx.destination);
|
|
111
|
+
const stop = () => {
|
|
112
|
+
if (pcmBuffer.length > 0) {
|
|
113
|
+
onChunk(new Float32Array(pcmBuffer));
|
|
114
|
+
pcmBuffer = [];
|
|
115
|
+
}
|
|
116
|
+
processor.disconnect();
|
|
117
|
+
source.disconnect();
|
|
118
|
+
stream.getTracks().forEach((track) => track.stop());
|
|
119
|
+
audioCtx.close();
|
|
120
|
+
};
|
|
121
|
+
return { stop };
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.d.ts
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functional, zero-ceremony model loader for webml-kit.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import webml from 'webml-kit';
|
|
6
|
+
*
|
|
7
|
+
* // Speech recognition
|
|
8
|
+
* const asr = await webml('onnx-community/whisper-tiny.en');
|
|
9
|
+
* const { text } = await asr.transcribe(audioBlob);
|
|
10
|
+
*
|
|
11
|
+
* // Live mic listening
|
|
12
|
+
* const mic = await asr.listen({ onTranscript: (t) => console.log(t) });
|
|
13
|
+
*
|
|
14
|
+
* // Text generation
|
|
15
|
+
* const llm = await webml('onnx-community/Llama-3.2-1B-Instruct-ONNX');
|
|
16
|
+
* for await (const { token } of llm.stream('Tell me a joke')) {
|
|
17
|
+
* process.stdout.write(token);
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Callable invocation for any model
|
|
21
|
+
* const classifier = await webml('Xenova/vit-base-patch16-224');
|
|
22
|
+
* const labels = await classifier(imageFile);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import { ModelClient } from './model-client.js';
|
|
26
|
+
import { type MicListener } from './inputs.js';
|
|
27
|
+
import type { PipelineTask, QuantizationType, DeviceBackend, TranscriptionResult, ClassificationResult, DetectionResult, EmbeddingResult, TextGenerationOptions, TextGenerationResult, ChatMessage, ProgressCallback } from './types.js';
|
|
28
|
+
import { TokenStream } from './streaming.js';
|
|
29
|
+
export interface WebMLOptions {
|
|
30
|
+
/** Override pipeline task (auto-detected from HF metadata if omitted) */
|
|
31
|
+
task?: PipelineTask;
|
|
32
|
+
/** Quantization level (q4, q8, fp16, fp32, etc.) */
|
|
33
|
+
dtype?: QuantizationType;
|
|
34
|
+
/** Device backend preference ('webgpu' | 'wasm' | 'cpu') */
|
|
35
|
+
device?: DeviceBackend;
|
|
36
|
+
/** Hugging Face branch or revision */
|
|
37
|
+
revision?: string;
|
|
38
|
+
/** Custom worker script URL */
|
|
39
|
+
workerUrl?: string | URL;
|
|
40
|
+
/** Download / compilation progress callback */
|
|
41
|
+
onProgress?: ProgressCallback;
|
|
42
|
+
}
|
|
43
|
+
export interface LoadedModel {
|
|
44
|
+
/** The active pipeline task */
|
|
45
|
+
task: PipelineTask;
|
|
46
|
+
/** The model identifier or URL */
|
|
47
|
+
modelId: string;
|
|
48
|
+
/** The underlying ModelClient instance */
|
|
49
|
+
client: ModelClient;
|
|
50
|
+
/** Call the model on inputs directly */
|
|
51
|
+
(input: unknown, options?: Record<string, unknown>): Promise<unknown>;
|
|
52
|
+
/** Run inference */
|
|
53
|
+
run<T = unknown>(input: unknown, options?: Record<string, unknown>): Promise<T>;
|
|
54
|
+
/** Free memory and terminate worker */
|
|
55
|
+
dispose(): void;
|
|
56
|
+
/** Stream tokens for text generation */
|
|
57
|
+
stream(input: string | ChatMessage[], options?: TextGenerationOptions): TokenStream;
|
|
58
|
+
/** Generate full text completion */
|
|
59
|
+
generate(input: string | ChatMessage[], options?: TextGenerationOptions): Promise<TextGenerationResult>;
|
|
60
|
+
/** Transcribe audio (accepts Float32Array, Blob, File, URL, AudioBuffer) */
|
|
61
|
+
transcribe(input: unknown, options?: Record<string, unknown>): Promise<TranscriptionResult>;
|
|
62
|
+
/** Classify image */
|
|
63
|
+
classify(input: unknown, options?: Record<string, unknown>): Promise<ClassificationResult[]>;
|
|
64
|
+
/** Extract vector embeddings */
|
|
65
|
+
embed(input: string | string[], options?: Record<string, unknown>): Promise<EmbeddingResult>;
|
|
66
|
+
/** Detect objects in image */
|
|
67
|
+
detect(input: unknown, options?: Record<string, unknown>): Promise<DetectionResult[]>;
|
|
68
|
+
/** Listen to live microphone audio in browser and transcribe on the fly */
|
|
69
|
+
listen(options: {
|
|
70
|
+
onTranscript: (text: string) => void;
|
|
71
|
+
intervalSeconds?: number;
|
|
72
|
+
}): Promise<MicListener>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Automatically infers the pipeline task from modelId, file extensions, or Hugging Face metadata.
|
|
76
|
+
*/
|
|
77
|
+
export declare function inferTask(modelId: string): Promise<PipelineTask>;
|
|
78
|
+
/**
|
|
79
|
+
* Load any ML model for in-browser execution with zero ceremony.
|
|
80
|
+
*
|
|
81
|
+
* @param modelId - Hugging Face model ID (e.g. 'onnx-community/whisper-tiny.en') or URL
|
|
82
|
+
* @param options - Configuration options
|
|
83
|
+
* @returns Ready-to-use callable model instance
|
|
84
|
+
*/
|
|
85
|
+
export declare function webml(modelId: string, options?: WebMLOptions): Promise<LoadedModel>;
|
|
86
|
+
export default webml;
|
|
87
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functional, zero-ceremony model loader for webml-kit.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import webml from 'webml-kit';
|
|
6
|
+
*
|
|
7
|
+
* // Speech recognition
|
|
8
|
+
* const asr = await webml('onnx-community/whisper-tiny.en');
|
|
9
|
+
* const { text } = await asr.transcribe(audioBlob);
|
|
10
|
+
*
|
|
11
|
+
* // Live mic listening
|
|
12
|
+
* const mic = await asr.listen({ onTranscript: (t) => console.log(t) });
|
|
13
|
+
*
|
|
14
|
+
* // Text generation
|
|
15
|
+
* const llm = await webml('onnx-community/Llama-3.2-1B-Instruct-ONNX');
|
|
16
|
+
* for await (const { token } of llm.stream('Tell me a joke')) {
|
|
17
|
+
* process.stdout.write(token);
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Callable invocation for any model
|
|
21
|
+
* const classifier = await webml('Xenova/vit-base-patch16-224');
|
|
22
|
+
* const labels = await classifier(imageFile);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import { ModelClient } from './model-client.js';
|
|
26
|
+
import { getModelInfo } from './hub.js';
|
|
27
|
+
import { coerceAudio, listenMic } from './inputs.js';
|
|
28
|
+
/**
|
|
29
|
+
* Automatically infers the pipeline task from modelId, file extensions, or Hugging Face metadata.
|
|
30
|
+
*/
|
|
31
|
+
export async function inferTask(modelId) {
|
|
32
|
+
const lower = modelId.toLowerCase();
|
|
33
|
+
// Fast heuristic matching
|
|
34
|
+
if (lower.includes('whisper') ||
|
|
35
|
+
lower.includes('asr') ||
|
|
36
|
+
lower.includes('speech') ||
|
|
37
|
+
lower.includes('sushrota') ||
|
|
38
|
+
lower.includes('parakeet')) {
|
|
39
|
+
return 'automatic-speech-recognition';
|
|
40
|
+
}
|
|
41
|
+
if (lower.includes('llama') ||
|
|
42
|
+
lower.includes('qwen') ||
|
|
43
|
+
lower.includes('gpt') ||
|
|
44
|
+
lower.includes('mistral') ||
|
|
45
|
+
lower.includes('phi') ||
|
|
46
|
+
lower.includes('gemma') ||
|
|
47
|
+
lower.includes('bonsai')) {
|
|
48
|
+
return 'text-generation';
|
|
49
|
+
}
|
|
50
|
+
if (lower.includes('detr') || lower.includes('yolo')) {
|
|
51
|
+
return 'object-detection';
|
|
52
|
+
}
|
|
53
|
+
if (lower.includes('vit') || lower.includes('resnet') || lower.includes('mobilenet')) {
|
|
54
|
+
return 'image-classification';
|
|
55
|
+
}
|
|
56
|
+
if (lower.includes('minilm') || lower.includes('bge') || lower.includes('embed')) {
|
|
57
|
+
return 'feature-extraction';
|
|
58
|
+
}
|
|
59
|
+
if (lower.endsWith('.onnx')) {
|
|
60
|
+
return 'raw-onnx';
|
|
61
|
+
}
|
|
62
|
+
// Fallback to HF Hub lookup
|
|
63
|
+
try {
|
|
64
|
+
const info = await getModelInfo(modelId);
|
|
65
|
+
if (info.task && info.task !== 'unknown') {
|
|
66
|
+
return info.task;
|
|
67
|
+
}
|
|
68
|
+
const tags = info.tags || [];
|
|
69
|
+
if (tags.includes('automatic-speech-recognition') || tags.includes('audio')) {
|
|
70
|
+
return 'automatic-speech-recognition';
|
|
71
|
+
}
|
|
72
|
+
if (tags.includes('text-generation')) {
|
|
73
|
+
return 'text-generation';
|
|
74
|
+
}
|
|
75
|
+
if (tags.includes('image-classification')) {
|
|
76
|
+
return 'image-classification';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// Non-fatal
|
|
81
|
+
}
|
|
82
|
+
return 'text-generation';
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Load any ML model for in-browser execution with zero ceremony.
|
|
86
|
+
*
|
|
87
|
+
* @param modelId - Hugging Face model ID (e.g. 'onnx-community/whisper-tiny.en') or URL
|
|
88
|
+
* @param options - Configuration options
|
|
89
|
+
* @returns Ready-to-use callable model instance
|
|
90
|
+
*/
|
|
91
|
+
export async function webml(modelId, options = {}) {
|
|
92
|
+
const task = options.task ?? (await inferTask(modelId));
|
|
93
|
+
const client = new ModelClient(options.workerUrl);
|
|
94
|
+
await client.load({
|
|
95
|
+
task,
|
|
96
|
+
modelId,
|
|
97
|
+
dtype: options.dtype,
|
|
98
|
+
device: options.device,
|
|
99
|
+
revision: options.revision,
|
|
100
|
+
onProgress: options.onProgress,
|
|
101
|
+
});
|
|
102
|
+
const runner = async (input, runOptions) => {
|
|
103
|
+
if (task === 'automatic-speech-recognition') {
|
|
104
|
+
const pcm = await coerceAudio(input);
|
|
105
|
+
return client.run('automatic-speech-recognition', pcm, runOptions);
|
|
106
|
+
}
|
|
107
|
+
return client.run(task, input, runOptions);
|
|
108
|
+
};
|
|
109
|
+
const model = Object.assign(runner, {
|
|
110
|
+
task,
|
|
111
|
+
modelId,
|
|
112
|
+
client,
|
|
113
|
+
run: (input, runOptions) => {
|
|
114
|
+
return runner(input, runOptions);
|
|
115
|
+
},
|
|
116
|
+
dispose: () => {
|
|
117
|
+
client.dispose();
|
|
118
|
+
client.terminate();
|
|
119
|
+
},
|
|
120
|
+
stream: (input, genOptions) => {
|
|
121
|
+
return client.stream(input, genOptions);
|
|
122
|
+
},
|
|
123
|
+
generate: (input, genOptions) => {
|
|
124
|
+
return client.generate(input, genOptions);
|
|
125
|
+
},
|
|
126
|
+
transcribe: async (input, runOptions) => {
|
|
127
|
+
const pcm = await coerceAudio(input);
|
|
128
|
+
return client.run('automatic-speech-recognition', pcm, runOptions);
|
|
129
|
+
},
|
|
130
|
+
classify: (input, runOptions) => {
|
|
131
|
+
return client.run('image-classification', input, runOptions);
|
|
132
|
+
},
|
|
133
|
+
embed: (input, runOptions) => {
|
|
134
|
+
return client.run('feature-extraction', input, runOptions);
|
|
135
|
+
},
|
|
136
|
+
detect: (input, runOptions) => {
|
|
137
|
+
return client.run('object-detection', input, runOptions);
|
|
138
|
+
},
|
|
139
|
+
listen: async (listenOptions) => {
|
|
140
|
+
return listenMic(async (pcm) => {
|
|
141
|
+
try {
|
|
142
|
+
const res = await client.run('automatic-speech-recognition', pcm);
|
|
143
|
+
if (res?.text?.trim()) {
|
|
144
|
+
listenOptions.onTranscript(res.text.trim());
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
console.warn('Transcription error during mic listen:', err);
|
|
149
|
+
}
|
|
150
|
+
}, { intervalSeconds: listenOptions.intervalSeconds });
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
return model;
|
|
154
|
+
}
|
|
155
|
+
export default webml;
|
|
156
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/model-worker.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* Communication is via structured `postMessage` using WorkerCommand/WorkerResponse types.
|
|
14
14
|
*/
|
|
15
15
|
import { pipeline as hfPipeline, TextStreamer, DynamicCache, InterruptableStoppingCriteria, } from '@huggingface/transformers';
|
|
16
|
+
import { createOnnxPipeline } from './onnx-pipeline.js';
|
|
16
17
|
const instances = new Map();
|
|
17
18
|
const kvCaches = new Map();
|
|
18
19
|
const stoppingCriteria = new InterruptableStoppingCriteria();
|
|
@@ -74,28 +75,59 @@ async function loadPipeline(config) {
|
|
|
74
75
|
});
|
|
75
76
|
// Create singleton pipeline
|
|
76
77
|
if (!instances.has(key)) {
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
78
|
+
const isExplicitOnnx = config.modelType === 'onnx' ||
|
|
79
|
+
config.modelId.endsWith('.onnx') ||
|
|
80
|
+
config.task === 'raw-onnx' ||
|
|
81
|
+
config.task === 'custom';
|
|
82
|
+
const onProgress = (info) => {
|
|
83
|
+
const loaded = Number(info.loaded ?? 0);
|
|
84
|
+
const total = Number(info.total ?? 1);
|
|
85
|
+
const percent = info.percent != null
|
|
86
|
+
? Number(info.percent)
|
|
87
|
+
: (total > 0 ? Math.round((loaded / total) * 100) : 0);
|
|
88
|
+
send({
|
|
89
|
+
type: 'progress',
|
|
90
|
+
data: {
|
|
91
|
+
status: info.status ?? 'downloading',
|
|
92
|
+
file: String(info.file ?? ''),
|
|
93
|
+
loaded,
|
|
94
|
+
total,
|
|
95
|
+
percent,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
const loadFn = async () => {
|
|
100
|
+
if (isExplicitOnnx) {
|
|
101
|
+
return createOnnxPipeline(config, onProgress);
|
|
102
|
+
}
|
|
103
|
+
if (config.modelType === 'transformers') {
|
|
104
|
+
return (await hfPipeline(config.task, config.modelId, {
|
|
105
|
+
device: config.device ?? 'webgpu',
|
|
106
|
+
dtype: config.dtype ?? 'q4',
|
|
107
|
+
revision: config.revision,
|
|
108
|
+
progress_callback: onProgress,
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
// 'auto' mode: try Hugging Face pipeline first, fallback to ONNX if config is missing
|
|
112
|
+
try {
|
|
113
|
+
return (await hfPipeline(config.task, config.modelId, {
|
|
114
|
+
device: config.device ?? 'webgpu',
|
|
115
|
+
dtype: config.dtype ?? 'q4',
|
|
116
|
+
revision: config.revision,
|
|
117
|
+
progress_callback: onProgress,
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
catch (hfErr) {
|
|
121
|
+
const errMsg = hfErr instanceof Error ? hfErr.message : String(hfErr);
|
|
122
|
+
if (errMsg.includes('config.json') ||
|
|
123
|
+
errMsg.includes('Could not locate file') ||
|
|
124
|
+
errMsg.includes('Unsupported model type')) {
|
|
125
|
+
return createOnnxPipeline(config, onProgress);
|
|
95
126
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
127
|
+
throw hfErr;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
instances.set(key, loadFn());
|
|
99
131
|
}
|
|
100
132
|
try {
|
|
101
133
|
const generator = await instances.get(key);
|
|
@@ -249,6 +281,8 @@ async function runTextGeneration(id, generator, messages, options) {
|
|
|
249
281
|
// ─── Cleanup ───
|
|
250
282
|
function disposeModel(targetKey) {
|
|
251
283
|
if (targetKey) {
|
|
284
|
+
const p = instances.get(targetKey);
|
|
285
|
+
p?.then(inst => inst?.dispose?.());
|
|
252
286
|
instances.delete(targetKey);
|
|
253
287
|
if (kvCaches.has(targetKey)) {
|
|
254
288
|
kvCaches.get(targetKey)?.dispose?.();
|
|
@@ -256,6 +290,9 @@ function disposeModel(targetKey) {
|
|
|
256
290
|
}
|
|
257
291
|
}
|
|
258
292
|
else {
|
|
293
|
+
for (const p of instances.values()) {
|
|
294
|
+
p.then(inst => inst?.dispose?.());
|
|
295
|
+
}
|
|
259
296
|
instances.clear();
|
|
260
297
|
for (const cache of kvCaches.values()) {
|
|
261
298
|
cache?.dispose?.();
|
package/dist/model-worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-worker.js","sourceRoot":"","sources":["../src/model-worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model-worker.js","sourceRoot":"","sources":["../src/model-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
import type { ModelConfig, ProgressCallback } from './types.js';
|
|
10
|
+
export interface OnnxPipelineInstance {
|
|
11
|
+
(input: unknown, options?: Record<string, unknown>): Promise<unknown>;
|
|
12
|
+
sessions: ort.InferenceSession[];
|
|
13
|
+
backend: 'webgpu' | 'wasm';
|
|
14
|
+
dispose: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function decodeWavToFloat32(buffer: ArrayBuffer): Float32Array;
|
|
17
|
+
export declare function toFloat32Array(input: unknown): Float32Array;
|
|
18
|
+
export declare function decodeCTC(logprobs: Float32Array, timeSteps: number, numClasses: number, vocab: Record<number | string, string> | string[]): string;
|
|
19
|
+
export declare function createOnnxPipeline(config: ModelConfig, onProgress?: ProgressCallback): Promise<OnnxPipelineInstance>;
|
|
20
|
+
//# sourceMappingURL=onnx-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onnx-pipeline.d.ts","sourceRoot":"","sources":["../src/onnx-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQhE,MAAM,WAAW,oBAAoB;IACnC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,QAAQ,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAoID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CA0EpE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAS3D;AAID,wBAAgB,SAAS,CACvB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,GAChD,MAAM,CA+BR;AAID,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CA2K/B"}
|
|
@@ -0,0 +1,385 @@
|
|
|
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
|
+
// Configure ONNX Runtime WebAssembly environment
|
|
10
|
+
ort.env.wasm.simd = true;
|
|
11
|
+
if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency) {
|
|
12
|
+
ort.env.wasm.numThreads = Math.min(navigator.hardwareConcurrency, 4);
|
|
13
|
+
}
|
|
14
|
+
// ─── Asset Resolution Helpers ───
|
|
15
|
+
const HF_BASE = 'https://huggingface.co';
|
|
16
|
+
async function fetchRepoFiles(modelId) {
|
|
17
|
+
try {
|
|
18
|
+
const res = await fetch(`https://huggingface.co/api/models/${modelId}`);
|
|
19
|
+
if (!res.ok)
|
|
20
|
+
return [];
|
|
21
|
+
const data = await res.json();
|
|
22
|
+
return (data.siblings ?? []).map(s => s.rfilename);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function resolveAssetUrl(modelId, filename, revision = 'main') {
|
|
29
|
+
if (filename.startsWith('http://') || filename.startsWith('https://') || filename.startsWith('/') || filename.startsWith('./')) {
|
|
30
|
+
return filename;
|
|
31
|
+
}
|
|
32
|
+
return `${HF_BASE}/${modelId}/resolve/${revision}/${filename}`;
|
|
33
|
+
}
|
|
34
|
+
async function downloadAsset(url, fileName, onProgress) {
|
|
35
|
+
if (typeof process !== 'undefined' &&
|
|
36
|
+
process.versions?.node &&
|
|
37
|
+
!url.startsWith('http://') &&
|
|
38
|
+
!url.startsWith('https://')) {
|
|
39
|
+
const fs = await import('node:fs/promises');
|
|
40
|
+
const path = url.startsWith('file://') ? new URL(url) : url;
|
|
41
|
+
const buf = await fs.readFile(path);
|
|
42
|
+
onProgress?.({
|
|
43
|
+
status: 'downloading',
|
|
44
|
+
file: fileName,
|
|
45
|
+
loaded: buf.byteLength,
|
|
46
|
+
total: buf.byteLength,
|
|
47
|
+
percent: 100,
|
|
48
|
+
});
|
|
49
|
+
return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
|
|
50
|
+
}
|
|
51
|
+
const response = await fetch(url);
|
|
52
|
+
if (!response.ok) {
|
|
53
|
+
throw new Error(`Failed to fetch ${fileName} from ${url}: ${response.status} ${response.statusText}`);
|
|
54
|
+
}
|
|
55
|
+
const contentLength = response.headers.get('content-length');
|
|
56
|
+
const total = contentLength ? parseInt(contentLength, 10) : 0;
|
|
57
|
+
if (!response.body || total === 0) {
|
|
58
|
+
const buffer = await response.arrayBuffer();
|
|
59
|
+
onProgress?.({
|
|
60
|
+
status: 'downloading',
|
|
61
|
+
file: fileName,
|
|
62
|
+
loaded: buffer.byteLength,
|
|
63
|
+
total: buffer.byteLength,
|
|
64
|
+
percent: 100,
|
|
65
|
+
});
|
|
66
|
+
return buffer;
|
|
67
|
+
}
|
|
68
|
+
const reader = response.body.getReader();
|
|
69
|
+
const chunks = [];
|
|
70
|
+
let loaded = 0;
|
|
71
|
+
while (true) {
|
|
72
|
+
const { done, value } = await reader.read();
|
|
73
|
+
if (done)
|
|
74
|
+
break;
|
|
75
|
+
if (value) {
|
|
76
|
+
chunks.push(value);
|
|
77
|
+
loaded += value.length;
|
|
78
|
+
const percent = total > 0 ? Math.round((loaded / total) * 100) : 0;
|
|
79
|
+
onProgress?.({
|
|
80
|
+
status: 'downloading',
|
|
81
|
+
file: fileName,
|
|
82
|
+
loaded,
|
|
83
|
+
total,
|
|
84
|
+
percent,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const merged = new Uint8Array(loaded);
|
|
89
|
+
let offset = 0;
|
|
90
|
+
for (const chunk of chunks) {
|
|
91
|
+
merged.set(chunk, offset);
|
|
92
|
+
offset += chunk.length;
|
|
93
|
+
}
|
|
94
|
+
return merged.buffer;
|
|
95
|
+
}
|
|
96
|
+
// ─── Session Management with Fallback ───
|
|
97
|
+
async function createSession(modelBufferOrPath, preferredBackend = 'webgpu') {
|
|
98
|
+
const model = modelBufferOrPath instanceof ArrayBuffer
|
|
99
|
+
? new Uint8Array(modelBufferOrPath)
|
|
100
|
+
: modelBufferOrPath;
|
|
101
|
+
if (preferredBackend === 'webgpu') {
|
|
102
|
+
try {
|
|
103
|
+
const session = await ort.InferenceSession.create(model, {
|
|
104
|
+
executionProviders: ['webgpu'],
|
|
105
|
+
});
|
|
106
|
+
return { session, backend: 'webgpu' };
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
console.warn('WebGPU session creation failed, falling back to wasm:', err);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const session = await ort.InferenceSession.create(model, {
|
|
113
|
+
executionProviders: ['wasm'],
|
|
114
|
+
});
|
|
115
|
+
return { session, backend: 'wasm' };
|
|
116
|
+
}
|
|
117
|
+
// ─── Audio Helpers ───
|
|
118
|
+
export function decodeWavToFloat32(buffer) {
|
|
119
|
+
const view = new DataView(buffer);
|
|
120
|
+
// Check 'RIFF' and 'WAVE'
|
|
121
|
+
const riff = String.fromCharCode(view.getUint8(0), view.getUint8(1), view.getUint8(2), view.getUint8(3));
|
|
122
|
+
const wave = String.fromCharCode(view.getUint8(8), view.getUint8(9), view.getUint8(10), view.getUint8(11));
|
|
123
|
+
if (riff !== 'RIFF' || wave !== 'WAVE') {
|
|
124
|
+
// If not a valid WAV header, treat as raw Float32Array
|
|
125
|
+
return new Float32Array(buffer);
|
|
126
|
+
}
|
|
127
|
+
let offset = 12;
|
|
128
|
+
let audioFormat = 1;
|
|
129
|
+
let numChannels = 1;
|
|
130
|
+
let bitsPerSample = 16;
|
|
131
|
+
let dataOffset = 0;
|
|
132
|
+
let dataLength = 0;
|
|
133
|
+
while (offset < view.byteLength - 8) {
|
|
134
|
+
const chunkId = String.fromCharCode(view.getUint8(offset), view.getUint8(offset + 1), view.getUint8(offset + 2), view.getUint8(offset + 3));
|
|
135
|
+
const chunkSize = view.getUint32(offset + 4, true);
|
|
136
|
+
if (chunkId === 'fmt ') {
|
|
137
|
+
audioFormat = view.getUint16(offset + 8, true);
|
|
138
|
+
numChannels = view.getUint16(offset + 10, true);
|
|
139
|
+
bitsPerSample = view.getUint16(offset + 22, true);
|
|
140
|
+
}
|
|
141
|
+
else if (chunkId === 'data') {
|
|
142
|
+
dataOffset = offset + 8;
|
|
143
|
+
dataLength = chunkSize;
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
offset += 8 + chunkSize;
|
|
147
|
+
}
|
|
148
|
+
if (dataOffset === 0) {
|
|
149
|
+
return new Float32Array(buffer);
|
|
150
|
+
}
|
|
151
|
+
if (audioFormat === 1 && bitsPerSample === 16) {
|
|
152
|
+
// 16-bit PCM
|
|
153
|
+
const numSamples = Math.floor(dataLength / (2 * numChannels));
|
|
154
|
+
const pcm = new Float32Array(numSamples);
|
|
155
|
+
for (let i = 0; i < numSamples; i++) {
|
|
156
|
+
let sum = 0;
|
|
157
|
+
for (let c = 0; c < numChannels; c++) {
|
|
158
|
+
const idx = dataOffset + (i * numChannels + c) * 2;
|
|
159
|
+
if (idx + 1 < view.byteLength) {
|
|
160
|
+
sum += view.getInt16(idx, true) / 32768.0;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
pcm[i] = sum / numChannels;
|
|
164
|
+
}
|
|
165
|
+
return pcm;
|
|
166
|
+
}
|
|
167
|
+
if (audioFormat === 3 && bitsPerSample === 32) {
|
|
168
|
+
// 32-bit Float
|
|
169
|
+
const numSamples = Math.floor(dataLength / (4 * numChannels));
|
|
170
|
+
const pcm = new Float32Array(numSamples);
|
|
171
|
+
for (let i = 0; i < numSamples; i++) {
|
|
172
|
+
let sum = 0;
|
|
173
|
+
for (let c = 0; c < numChannels; c++) {
|
|
174
|
+
const idx = dataOffset + (i * numChannels + c) * 4;
|
|
175
|
+
if (idx + 3 < view.byteLength) {
|
|
176
|
+
sum += view.getFloat32(idx, true);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
pcm[i] = sum / numChannels;
|
|
180
|
+
}
|
|
181
|
+
return pcm;
|
|
182
|
+
}
|
|
183
|
+
return new Float32Array(buffer.slice(dataOffset, dataOffset + dataLength));
|
|
184
|
+
}
|
|
185
|
+
export function toFloat32Array(input) {
|
|
186
|
+
if (input instanceof Float32Array)
|
|
187
|
+
return input;
|
|
188
|
+
if (Array.isArray(input))
|
|
189
|
+
return new Float32Array(input);
|
|
190
|
+
if (input instanceof ArrayBuffer)
|
|
191
|
+
return decodeWavToFloat32(input);
|
|
192
|
+
if (ArrayBuffer.isView(input))
|
|
193
|
+
return new Float32Array(input.buffer, input.byteOffset, input.byteLength / 4);
|
|
194
|
+
if (typeof input === 'object' && input !== null && 'audio' in input) {
|
|
195
|
+
return toFloat32Array(input.audio);
|
|
196
|
+
}
|
|
197
|
+
throw new Error(`Unsupported audio input format: ${typeof input}`);
|
|
198
|
+
}
|
|
199
|
+
// ─── CTC Greedy Decoding ───
|
|
200
|
+
export function decodeCTC(logprobs, timeSteps, numClasses, vocab) {
|
|
201
|
+
let prevClass = 0;
|
|
202
|
+
let text = '';
|
|
203
|
+
for (let t = 0; t < timeSteps; t++) {
|
|
204
|
+
const offset = t * numClasses;
|
|
205
|
+
let maxVal = -Infinity;
|
|
206
|
+
let argmax = 0;
|
|
207
|
+
for (let c = 0; c < numClasses; c++) {
|
|
208
|
+
const val = logprobs[offset + c];
|
|
209
|
+
if (val > maxVal) {
|
|
210
|
+
maxVal = val;
|
|
211
|
+
argmax = c;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (argmax === 0) {
|
|
215
|
+
prevClass = 0;
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
if (argmax !== prevClass) {
|
|
219
|
+
const token = vocab[argmax] ?? '';
|
|
220
|
+
text += token;
|
|
221
|
+
prevClass = argmax;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Replace SentencePiece whitespace marker ' ' (U+2581) with normal space
|
|
225
|
+
return text.replace(/\u2581/g, ' ').replace(/\s+/g, ' ').trim();
|
|
226
|
+
}
|
|
227
|
+
// ─── Main Pipeline Factory ───
|
|
228
|
+
export async function createOnnxPipeline(config, onProgress) {
|
|
229
|
+
const preferredDevice = config.device ?? 'webgpu';
|
|
230
|
+
const revision = config.revision ?? 'main';
|
|
231
|
+
// 1. Discover model files
|
|
232
|
+
let modelFile = config.modelFile;
|
|
233
|
+
let preprocessorFile = config.preprocessorFile;
|
|
234
|
+
let vocabFile = config.vocabFile;
|
|
235
|
+
if (!modelFile && !config.modelId.endsWith('.onnx')) {
|
|
236
|
+
const repoFiles = await fetchRepoFiles(config.modelId);
|
|
237
|
+
if (repoFiles.length > 0) {
|
|
238
|
+
if (!modelFile) {
|
|
239
|
+
// Look for acoustic / CTC / model ONNX
|
|
240
|
+
modelFile = repoFiles.find(f => f.endsWith('.onnx') && !f.includes('preprocess'))
|
|
241
|
+
?? repoFiles.find(f => f.endsWith('.onnx'));
|
|
242
|
+
}
|
|
243
|
+
if (!preprocessorFile) {
|
|
244
|
+
preprocessorFile = repoFiles.find(f => f.endsWith('.onnx') && f.includes('preprocess'));
|
|
245
|
+
}
|
|
246
|
+
if (!vocabFile) {
|
|
247
|
+
vocabFile = repoFiles.find(f => f.endsWith('.json') && (f.includes('vocab') || f.includes('tokens')));
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (!modelFile) {
|
|
252
|
+
modelFile = config.modelId.endsWith('.onnx') ? config.modelId : 'model.onnx';
|
|
253
|
+
}
|
|
254
|
+
const modelUrl = resolveAssetUrl(config.modelId, modelFile, revision);
|
|
255
|
+
const modelBuffer = await downloadAsset(modelUrl, modelFile, onProgress);
|
|
256
|
+
// Preprocessor (optional companion model for ASR/audio)
|
|
257
|
+
let prepSession = null;
|
|
258
|
+
if (preprocessorFile) {
|
|
259
|
+
const prepUrl = resolveAssetUrl(config.modelId, preprocessorFile, revision);
|
|
260
|
+
const prepBuffer = await downloadAsset(prepUrl, preprocessorFile, onProgress);
|
|
261
|
+
const { session } = await createSession(prepBuffer, preferredDevice);
|
|
262
|
+
prepSession = session;
|
|
263
|
+
}
|
|
264
|
+
// Vocab (optional mapping for CTC decoding)
|
|
265
|
+
let vocab = {};
|
|
266
|
+
if (vocabFile) {
|
|
267
|
+
const vocabUrl = resolveAssetUrl(config.modelId, vocabFile, revision);
|
|
268
|
+
try {
|
|
269
|
+
if (typeof process !== 'undefined' &&
|
|
270
|
+
process.versions?.node &&
|
|
271
|
+
!vocabUrl.startsWith('http://') &&
|
|
272
|
+
!vocabUrl.startsWith('https://')) {
|
|
273
|
+
const fs = await import('node:fs/promises');
|
|
274
|
+
const path = vocabUrl.startsWith('file://') ? new URL(vocabUrl) : vocabUrl;
|
|
275
|
+
const text = await fs.readFile(path, 'utf-8');
|
|
276
|
+
vocab = JSON.parse(text);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
const res = await fetch(vocabUrl);
|
|
280
|
+
if (res.ok) {
|
|
281
|
+
vocab = await res.json();
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
// Non-fatal if vocab fails to load
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
// Create primary session with WebGPU -> WASM fallback
|
|
290
|
+
let { session: modelSession, backend } = await createSession(modelBuffer, preferredDevice);
|
|
291
|
+
// ─── ASR Pipeline Function ───
|
|
292
|
+
if (config.task === 'automatic-speech-recognition') {
|
|
293
|
+
const runner = async (input) => {
|
|
294
|
+
const pcm = toFloat32Array(input);
|
|
295
|
+
const executeInference = async (sess) => {
|
|
296
|
+
let acousticSignal;
|
|
297
|
+
let acousticLength;
|
|
298
|
+
if (prepSession) {
|
|
299
|
+
// Mel filterbank extraction
|
|
300
|
+
const audioTensor = new ort.Tensor('float32', pcm, [1, pcm.length]);
|
|
301
|
+
const lengthTensor = new ort.Tensor('int64', BigInt64Array.from([BigInt(pcm.length)]), [1]);
|
|
302
|
+
const prepOutputs = await prepSession.run({
|
|
303
|
+
audio_signal: audioTensor,
|
|
304
|
+
length: lengthTensor,
|
|
305
|
+
});
|
|
306
|
+
acousticSignal = (prepOutputs.processed_signal ?? Object.values(prepOutputs)[0]);
|
|
307
|
+
acousticLength = (prepOutputs.processed_length ?? Object.values(prepOutputs)[1]);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
// Pass raw audio directly
|
|
311
|
+
acousticSignal = new ort.Tensor('float32', pcm, [1, pcm.length]);
|
|
312
|
+
acousticLength = new ort.Tensor('int64', BigInt64Array.from([BigInt(pcm.length)]), [1]);
|
|
313
|
+
}
|
|
314
|
+
// Acoustic model inference
|
|
315
|
+
const feeds = {};
|
|
316
|
+
const inputNames = sess.inputNames;
|
|
317
|
+
if (inputNames.length >= 2) {
|
|
318
|
+
feeds[inputNames[0]] = acousticSignal;
|
|
319
|
+
feeds[inputNames[1]] = acousticLength;
|
|
320
|
+
}
|
|
321
|
+
else if (inputNames.length === 1) {
|
|
322
|
+
feeds[inputNames[0]] = acousticSignal;
|
|
323
|
+
}
|
|
324
|
+
const outputs = await sess.run(feeds);
|
|
325
|
+
const logprobsTensor = (outputs.logprobs ?? Object.values(outputs)[0]);
|
|
326
|
+
const dims = logprobsTensor.dims;
|
|
327
|
+
const timeSteps = dims.length === 3 ? dims[1] : (dims.length === 2 ? dims[0] : 1);
|
|
328
|
+
const numClasses = dims[dims.length - 1];
|
|
329
|
+
const data = logprobsTensor.data;
|
|
330
|
+
const text = decodeCTC(data, timeSteps, numClasses, vocab);
|
|
331
|
+
return { text };
|
|
332
|
+
};
|
|
333
|
+
try {
|
|
334
|
+
return await executeInference(modelSession);
|
|
335
|
+
}
|
|
336
|
+
catch (err) {
|
|
337
|
+
// If WebGPU failed (e.g. 1D conv kernel failure), fallback to WASM transparently
|
|
338
|
+
if (backend === 'webgpu') {
|
|
339
|
+
console.warn('WebGPU inference failed, retrying on WASM provider:', err);
|
|
340
|
+
const wasmResult = await createSession(modelBuffer, 'wasm');
|
|
341
|
+
modelSession = wasmResult.session;
|
|
342
|
+
backend = 'wasm';
|
|
343
|
+
return await executeInference(modelSession);
|
|
344
|
+
}
|
|
345
|
+
throw err;
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
const instance = runner;
|
|
349
|
+
instance.sessions = prepSession ? [prepSession, modelSession] : [modelSession];
|
|
350
|
+
instance.backend = backend;
|
|
351
|
+
instance.dispose = () => {
|
|
352
|
+
prepSession?.release();
|
|
353
|
+
modelSession.release();
|
|
354
|
+
};
|
|
355
|
+
return instance;
|
|
356
|
+
}
|
|
357
|
+
// ─── Generic / Raw ONNX Pipeline Function ───
|
|
358
|
+
const genericRunner = async (input) => {
|
|
359
|
+
const feeds = {};
|
|
360
|
+
if (typeof input === 'object' && input !== null) {
|
|
361
|
+
for (const [k, v] of Object.entries(input)) {
|
|
362
|
+
if (v instanceof ort.Tensor) {
|
|
363
|
+
feeds[k] = v;
|
|
364
|
+
}
|
|
365
|
+
else if (v instanceof Float32Array) {
|
|
366
|
+
feeds[k] = new ort.Tensor('float32', v, [1, v.length]);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
const outputs = await modelSession.run(feeds);
|
|
371
|
+
const result = {};
|
|
372
|
+
for (const [k, v] of Object.entries(outputs)) {
|
|
373
|
+
result[k] = v.data;
|
|
374
|
+
}
|
|
375
|
+
return result;
|
|
376
|
+
};
|
|
377
|
+
const instance = genericRunner;
|
|
378
|
+
instance.sessions = [modelSession];
|
|
379
|
+
instance.backend = backend;
|
|
380
|
+
instance.dispose = () => {
|
|
381
|
+
modelSession.release();
|
|
382
|
+
};
|
|
383
|
+
return instance;
|
|
384
|
+
}
|
|
385
|
+
//# 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,CA6GpE,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
|
@@ -102,6 +102,18 @@ 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
|
+
'custom': {
|
|
112
|
+
defaultModel: '',
|
|
113
|
+
defaultDtype: 'fp32',
|
|
114
|
+
supportsStreaming: false,
|
|
115
|
+
usesKVCache: false,
|
|
116
|
+
},
|
|
105
117
|
};
|
|
106
118
|
/**
|
|
107
119
|
* Get the pipeline defaults for a task.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipelines/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipelines/index.ts"],"names":[],"mappings":"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"}
|
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' | 'custom';
|
|
19
19
|
export interface ModelConfig {
|
|
20
20
|
task: PipelineTask;
|
|
21
21
|
modelId: string;
|
|
@@ -25,6 +25,16 @@ 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[];
|
|
28
38
|
}
|
|
29
39
|
export interface ProgressEvent {
|
|
30
40
|
status: 'downloading' | 'loading' | 'compiling' | 'warming';
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAID,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,MAAM,GACN,OAAO,CAAC;AAIZ,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,qBAAqB,GACrB,sBAAsB,GACtB,kBAAkB,GAClB,8BAA8B,GAC9B,gBAAgB,GAChB,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,0BAA0B,GAC1B,WAAW,GACX,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,GAClB,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAID,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,MAAM,GACN,OAAO,CAAC;AAIZ,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,qBAAqB,GACrB,sBAAsB,GACtB,kBAAkB,GAClB,8BAA8B,GAC9B,gBAAgB,GAChB,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,0BAA0B,GAC1B,WAAW,GACX,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,GAClB,oBAAoB,GACpB,UAAU,GACV,QAAQ,CAAC;AAIb,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,mDAAmD;IACnD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+GAA+G;IAC/G,SAAS,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAID,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5D,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAI9D,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAID,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAID,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7B,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,YAAY,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,CAAC;CACpB;AAID,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAIrE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,kBAAkB,EAAE,IAAI,CAAC;CAC1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webml-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Framework-agnostic utilities for loading and running ML models in the browser via WebGPU/WASM",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
"url": "https://github.com/hemanth/webml-kit.git"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@huggingface/transformers": "^4.1.0"
|
|
49
|
+
"@huggingface/transformers": "^4.1.0",
|
|
50
|
+
"onnxruntime-web": "^1.29.0"
|
|
50
51
|
},
|
|
51
52
|
"devDependencies": {
|
|
52
53
|
"@webgpu/types": "^0.1.69",
|