JavaScript API (node-addon) for speaker diarization (#1408)

This commit is contained in:
Fangjun Kuang
2024-10-10 15:51:31 +08:00
committed by GitHub
parent a45e5dba99
commit 67349b52f2
11 changed files with 443 additions and 13 deletions

View File

@@ -0,0 +1,32 @@
const addon = require('./addon.js');
class OfflineSpeakerDiarization {
constructor(config) {
this.handle = addon.createOfflineSpeakerDiarization(config);
this.config = config;
this.sampleRate = addon.getOfflineSpeakerDiarizationSampleRate(this.handle);
}
/**
* samples is a 1-d float32 array. Each element of the array should be
* in the range [-1, 1].
*
* We assume its sample rate equals to this.sampleRate.
*
* Returns an array of object, where an object is
*
* {
* "start": start_time_in_seconds,
* "end": end_time_in_seconds,
* "speaker": an_integer,
* }
*/
process(samples) {
return addon.offlineSpeakerDiarizationProcess(this.handle, samples);
}
}
module.exports = {
OfflineSpeakerDiarization,
}

View File

@@ -8,6 +8,7 @@ const sid = require('./speaker-identification.js');
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');
module.exports = {
OnlineRecognizer: streaming_asr.OnlineRecognizer,
@@ -24,4 +25,5 @@ module.exports = {
AudioTagging: at.AudioTagging,
Punctuation: punct.Punctuation,
KeywordSpotter: kws.KeywordSpotter,
OfflineSpeakerDiarization: sd.OfflineSpeakerDiarization,
}