Add VAD and keyword spotting for the Node package with WebAssembly (#1286)

This commit is contained in:
Fangjun Kuang
2024-08-24 23:05:54 +08:00
committed by GitHub
parent 537e163dd0
commit 5ed8e31868
40 changed files with 456 additions and 524 deletions

View File

@@ -1,2 +1,4 @@
node_modules
jslint.mjs
sherpa-onnx-*.js
sherpa-onnx-*.wasm

View File

@@ -4,6 +4,9 @@
const wasmModule = require('./sherpa-onnx-wasm-nodejs.js')();
const sherpa_onnx_asr = require('./sherpa-onnx-asr.js');
const sherpa_onnx_tts = require('./sherpa-onnx-tts.js');
const sherpa_onnx_kws = require('./sherpa-onnx-kws.js');
const sherpa_onnx_wave = require('./sherpa-onnx-wave.js');
const sherpa_onnx_vad = require('./sherpa-onnx-vad.js');
function createOnlineRecognizer(config) {
return sherpa_onnx_asr.createOnlineRecognizer(wasmModule, config);
@@ -17,10 +20,35 @@ function createOfflineTts(config) {
return sherpa_onnx_tts.createOfflineTts(wasmModule, config);
}
function createKws(config) {
return sherpa_onnx_kws.createKws(wasmModule, config);
}
function createCircularBuffer(capacity) {
return new sherpa_onnx_vad.CircularBuffer(capacity, wasmModule);
}
function createVad(config) {
return sherpa_onnx_vad.createVad(wasmModule, config);
}
function readWave(filename) {
return sherpa_onnx_wave.readWave(filename, wasmModule);
}
function writeWave(filename, data) {
sherpa_onnx_wave.writeWave(filename, data, wasmModule);
}
// Note: online means streaming and offline means non-streaming here.
// Both of them don't require internet connection.
module.exports = {
createOnlineRecognizer,
createOfflineRecognizer,
createOfflineTts,
createKws,
readWave,
writeWave,
createCircularBuffer,
createVad,
};