This repository has been archived on 2025-08-26. You can view files and clone it, but cannot push or open issues or pull requests.
Files
enginex-mr_series-sherpa-onnx/scripts/nodejs/index.js
Fangjun Kuang eefc172095 JavaScript API with WebAssembly for speaker diarization (#1414)
#1408 uses [node-addon-api](https://github.com/nodejs/node-addon-api) to call C API from JavaScript, whereas this pull request uses WebAssembly to call C API from JavaScript.
2024-10-11 11:40:10 +08:00

63 lines
1.8 KiB
JavaScript

// Copyright (c) 2023-2024 Xiaomi Corporation (authors: Fangjun Kuang)
'use strict'
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');
const sherpa_onnx_speaker_diarization =
require('./sherpa-onnx-speaker-diarization.js');
function createOnlineRecognizer(config) {
return sherpa_onnx_asr.createOnlineRecognizer(wasmModule, config);
}
function createOfflineRecognizer(config) {
return new sherpa_onnx_asr.OfflineRecognizer(config, wasmModule);
}
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 createOfflineSpeakerDiarization(config) {
return sherpa_onnx_speaker_diarization.createOfflineSpeakerDiarization(
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,
createOfflineSpeakerDiarization,
};