Skip to content

WebAssembly (WASM 32-bit) API ​

Sonon compiles to WebAssembly with zero C dependencies:

typescript
// Load WASM module
const { instance } = await WebAssembly.instantiateStreaming(fetch('/sonon.wasm'));
const api = resolveSononWasmExports(instance);

// Create instance
const engine = api.sonon_wasm_create(16000, 512, 160, 13);

// Ingest samples from AudioWorklet
api.sonon_wasm_set_input_samples(pcmFloat32Array);
const detections = api.sonon_wasm_ingest(engine, pcmFloat32Array.length);
if (detections > 0) {
    const keyword = api.sonon_wasm_get_last_keyword();
    console.log(`Detected: ${keyword}`);
}

Try this directly in our Playground.

Released under the Apache-2.0 / MIT License.