Begin to add node-addon-api for sherpa-onnx (#826)

This commit is contained in:
Fangjun Kuang
2024-05-03 14:47:40 +08:00
committed by GitHub
parent fcd6024200
commit 2f9553d838
12 changed files with 838 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
const addon = require('bindings')('sherpa-onnx-node-addon-api-native');
const streaming_asr = require('./streaming-asr.js');
module.exports = {
OnlineRecognizer: streaming_asr.OnlineRecognizer,
readWave: addon.readWave,
}

View File

@@ -0,0 +1,41 @@
const addon = require('bindings')('sherpa-onnx-node-addon-api-native');
class OnlineStream {
constructor(handle) {
this.handle = handle;
}
// samples is a float32 array containing samples in the range [-1, 1]
acceptWaveform(samples, sampleRate) {
addon.acceptWaveformOnline(
this.handle, {samples: samples, sampleRate: sampleRate})
}
}
class OnlineRecognizer {
constructor(config) {
this.handle = addon.createOnlineRecognizer(config);
}
createStream() {
const handle = addon.createOnlineStream(this.handle);
return new OnlineStream(handle);
}
isReady(stream) {
return addon.isOnlineStreamReady(this.handle, stream.handle);
}
decode(stream) {
addon.decodeOnlineStream(this.handle, stream.handle);
}
getResult(stream) {
const jsonStr =
addon.getOnlineStreamResultAsJson(this.handle, stream.handle);
return JSON.parse(jsonStr);
}
}
module.exports = {OnlineRecognizer}