Add non-streaming ASR APIs for node-addon-api (#868)
This commit is contained in:
40
scripts/node-addon-api/lib/non-streaming-asr.js
Normal file
40
scripts/node-addon-api/lib/non-streaming-asr.js
Normal file
@@ -0,0 +1,40 @@
|
||||
const addon = require('./addon.js');
|
||||
|
||||
class OfflineStream {
|
||||
constructor(handle) {
|
||||
this.handle = handle;
|
||||
}
|
||||
|
||||
// obj is {samples: samples, sampleRate: sampleRate}
|
||||
// samples is a float32 array containing samples in the range [-1, 1]
|
||||
// sampleRate is a number
|
||||
acceptWaveform(obj) {
|
||||
addon.acceptWaveformOffline(this.handle, obj)
|
||||
}
|
||||
}
|
||||
|
||||
class OfflineRecognizer {
|
||||
constructor(config) {
|
||||
this.handle = addon.createOfflineRecognizer(config);
|
||||
this.config = config
|
||||
}
|
||||
|
||||
createStream() {
|
||||
const handle = addon.createOfflineStream(this.handle);
|
||||
return new OfflineStream(handle);
|
||||
}
|
||||
|
||||
decode(stream) {
|
||||
addon.decodeOfflineStream(this.handle, stream.handle);
|
||||
}
|
||||
|
||||
getResult(stream) {
|
||||
const jsonStr = addon.getOfflineStreamResultAsJson(stream.handle);
|
||||
|
||||
return JSON.parse(jsonStr);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
OfflineRecognizer,
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
const addon = require('./addon.js')
|
||||
const streaming_asr = require('./streaming-asr.js');
|
||||
const non_streaming_asr = require('./non-streaming-asr.js');
|
||||
const vad = require('./vad.js');
|
||||
|
||||
module.exports = {
|
||||
OnlineRecognizer: streaming_asr.OnlineRecognizer,
|
||||
OfflineRecognizer: non_streaming_asr.OfflineRecognizer,
|
||||
readWave: addon.readWave,
|
||||
writeWave: addon.writeWave,
|
||||
Display: streaming_asr.Display,
|
||||
|
||||
Reference in New Issue
Block a user