mirror of
https://github.com/k2-fsa/sherpa-onnx.git
synced 2026-11-10 21:11:03 +08:00
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
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,
|
|
}
|