Add JavaScript (node-addon) API for speech enhancement GTCRN models (#1996)

This commit is contained in:
Fangjun Kuang
2025-03-12 15:52:01 +08:00
committed by GitHub
parent fd78a482df
commit 6a97f8adcf
21 changed files with 500 additions and 119 deletions

View File

@@ -0,0 +1,28 @@
const addon = require('./addon.js');
class OfflineSpeechDenoiser {
constructor(config) {
this.handle = addon.createOfflineSpeechDenoiser(config);
this.config = config;
this.sampleRate =
addon.offlineSpeechDenoiserGetSampleRateWrapper(this.handle);
}
/*
obj is
{samples: samples, sampleRate: sampleRate, enableExternalBuffer: true}
samples is a float32 array containing samples in the range [-1, 1]
sampleRate is a number
return an object {samples: Float32Array, sampleRate: <a number>}
*/
run(obj) {
return addon.offlineSpeechDenoiserRunWrapper(this.handle, obj);
}
}
module.exports = {
OfflineSpeechDenoiser,
}

View File

@@ -9,6 +9,7 @@ const at = require('./audio-tagg.js');
const punct = require('./punctuation.js');
const kws = require('./keyword-spotter.js');
const sd = require('./non-streaming-speaker-diarization.js');
const speech_denoiser = require('./non-streaming-speech-denoiser.js');
module.exports = {
OnlineRecognizer: streaming_asr.OnlineRecognizer,
@@ -26,4 +27,5 @@ module.exports = {
Punctuation: punct.Punctuation,
KeywordSpotter: kws.KeywordSpotter,
OfflineSpeakerDiarization: sd.OfflineSpeakerDiarization,
OfflineSpeechDenoiser: speech_denoiser.OfflineSpeechDenoiser,
}