This PR introduces support for NeMo Canary models across C, C++, and JavaScript APIs by adding new Canary configuration structures, updating bindings, extending examples, and enhancing CI workflows. - Add OfflineCanaryModelConfig to all language bindings (C, C++, JS, ETS). - Implement SetConfig methods and NAPI wrappers for updating recognizer config at runtime. - Update examples and CI scripts to demonstrate and test NeMo Canary model usage.
46 lines
970 B
JavaScript
46 lines
970 B
JavaScript
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);
|
|
}
|
|
|
|
setConfig(config) {
|
|
addon.offlineRecognizerSetConfig(this.handle, config);
|
|
}
|
|
|
|
decode(stream) {
|
|
addon.decodeOfflineStream(this.handle, stream.handle);
|
|
}
|
|
|
|
getResult(stream) {
|
|
const jsonStr = addon.getOfflineStreamResultAsJson(stream.handle);
|
|
|
|
return JSON.parse(jsonStr);
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
OfflineRecognizer,
|
|
OfflineStream,
|
|
}
|