Begin to add node-addon-api for sherpa-onnx (#826)
This commit is contained in:
7
scripts/node-addon-api/lib/sherpa-onnx.js
Normal file
7
scripts/node-addon-api/lib/sherpa-onnx.js
Normal 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,
|
||||
}
|
||||
41
scripts/node-addon-api/lib/streaming-asr.js
Normal file
41
scripts/node-addon-api/lib/streaming-asr.js
Normal 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}
|
||||
Reference in New Issue
Block a user