Add JavaScript API (wasm) for speech enhancement GTCRN models (#2007)

This commit is contained in:
Fangjun Kuang
2025-03-15 17:41:23 +08:00
committed by GitHub
parent d320fdf65e
commit c972554ad1
11 changed files with 96 additions and 18 deletions

View File

@@ -26,21 +26,21 @@ function readWave(filename, Module) {
return {samples: samples, sampleRate: sampleRate};
}
function readWaveFromBinaryData(uint8Array) {
function readWaveFromBinaryData(uint8Array, Module) {
const numBytes = uint8Array.length * uint8Array.BYTES_PER_ELEMENT;
const pointer = this.Module._malloc(numBytes);
const pointer = Module._malloc(numBytes);
const dataOnHeap = new Uint8Array(Module.HEAPU8.buffer, pointer, numBytes);
dataOnHeap.set(uint8Array);
const w = this.Module._SherpaOnnxReadWaveFromBinaryData(
dataOnHeap.byteOffset, numBytes);
const w =
Module._SherpaOnnxReadWaveFromBinaryData(dataOnHeap.byteOffset, numBytes);
if (w == 0) {
console.log('Failed to read wave from binary data');
return null;
}
this.Module._free(pointer);
Module._free(pointer);
const samplesPtr = Module.HEAP32[w / 4] / 4;
const sampleRate = Module.HEAP32[w / 4 + 1];