sherpa-onnx-node
Version:
Speech-to-text, text-to-speech, speaker diarization, and speech enhancement using Next-gen Kaldi without internet connection
38 lines (32 loc) • 1.16 kB
JavaScript
/** @typedef {import('./types').OfflineSpeakerDiarizationConfig} OfflineSpeakerDiarizationConfig */
/** @typedef {import('./types').OfflineSpeakerDiarizationHandle} OfflineSpeakerDiarizationHandle */
/** @typedef {import('./types').SpeakerDiarizationSegment} SpeakerDiarizationSegment */
const addon = require('./addon.js');
class OfflineSpeakerDiarization {
/**
* @param {OfflineSpeakerDiarizationConfig} config
*/
constructor(config) {
this.handle = addon.createOfflineSpeakerDiarization(config);
this.config = config;
this.sampleRate = addon.getOfflineSpeakerDiarizationSampleRate(this.handle);
}
/**
* @param {Float32Array} samples - 1-D float32 array in [-1, 1]
* @returns {SpeakerDiarizationSegment[]}
*/
process(samples) {
return addon.offlineSpeakerDiarizationProcess(this.handle, samples);
}
/**
* Set clustering configuration.
* @param {{clustering: import('./types').FastClusteringConfig}} config
*/
setConfig(config) {
addon.offlineSpeakerDiarizationSetConfig(this.handle, config);
this.config.clustering = config.clustering;
}
}
module.exports = {
OfflineSpeakerDiarization,
}