55 lines
1.5 KiB
JavaScript
55 lines
1.5 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');
|
|
|
|
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 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,
|
|
};
|