Add non-streaming ASR APIs for node-addon-api (#868)

This commit is contained in:
Fangjun Kuang
2024-05-13 16:03:34 +08:00
committed by GitHub
parent 384f96c40f
commit 697b960768
18 changed files with 1589 additions and 37 deletions

View 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,
}

View File

@@ -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,