Add more streaming ASR methods for node-addon-api (#860)

This commit is contained in:
Fangjun Kuang
2024-05-10 18:21:05 +08:00
committed by GitHub
parent 46e4e5b7ac
commit 65f5161456
6 changed files with 398 additions and 13 deletions

View File

@@ -1,5 +1,15 @@
const addon = require('./addon.js');
class Display {
constructor(maxWordPerline) {
this.handle = addon.createDisplay(maxWordPerline);
}
print(idx, text) {
addon.print(this.handle, idx, text)
}
}
class OnlineStream {
constructor(handle) {
this.handle = handle;
@@ -10,11 +20,16 @@ class OnlineStream {
addon.acceptWaveformOnline(
this.handle, {samples: samples, sampleRate: sampleRate})
}
inputFinished() {
addon.inputFinished(this.handle)
}
}
class OnlineRecognizer {
constructor(config) {
this.handle = addon.createOnlineRecognizer(config);
this.config = config
}
createStream() {
@@ -30,6 +45,14 @@ class OnlineRecognizer {
addon.decodeOnlineStream(this.handle, stream.handle);
}
isEndpoint(stream) {
return addon.isEndpoint(this.handle, stream.handle);
}
reset(stream) {
addon.reset(this.handle, stream.handle);
}
getResult(stream) {
const jsonStr =
addon.getOnlineStreamResultAsJson(this.handle, stream.handle);
@@ -38,4 +61,7 @@ class OnlineRecognizer {
}
}
module.exports = {OnlineRecognizer}
module.exports = {
OnlineRecognizer,
Display
}