sherpa-onnx C API 1.0
Public C API and C++ wrapper for sherpa-onnx
Loading...
Searching...
No Matches
Offline Speaker Diarization

sherpa-onnx supports offline speaker diarization through the SherpaOnnxCreateOfflineSpeakerDiarization() API. It combines a segmentation model, a speaker embedding extractor, and a clustering algorithm.

See also
SherpaOnnxCreateOfflineSpeakerDiarization, SherpaOnnxOfflineSpeakerDiarizationConfig
memset(&config, 0, sizeof(config));
"./sherpa-onnx-pyannote-segmentation-3-0/model.onnx";
// Zero uses the default window shift ratio of 0.1. Set a value in (0, 1] to
// change the sliding-window shift; smaller values mean more overlap and more
// compute.
config.embedding.model =
"./3dspeaker_speech_eres2net_base_sv_zh-cn_3dspeaker_16k.onnx";
const SherpaOnnxWave *wave = SherpaOnnxReadWave("./meeting.wav");
wave->num_samples);
for (int32_t i = 0; i < n; ++i) {
printf("Speaker %d: %.2f - %.2f\n", segments[i].speaker,
segments[i].start, segments[i].end);
}
int32_t SherpaOnnxOfflineSpeakerDiarizationResultGetNumSegments(const SherpaOnnxOfflineSpeakerDiarizationResult *r)
Return the number of diarization segments.
void SherpaOnnxFreeWave(const SherpaOnnxWave *wave)
Destroy a wave object returned by SherpaOnnxReadWave() or SherpaOnnxReadWaveFromBinaryData().
const SherpaOnnxOfflineSpeakerDiarizationResult * SherpaOnnxOfflineSpeakerDiarizationProcess(const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples, int32_t n)
Run offline speaker diarization.
const SherpaOnnxWave * SherpaOnnxReadWave(const char *filename)
Read a mono 16-bit PCM WAVE file.
void SherpaOnnxDestroyOfflineSpeakerDiarization(const SherpaOnnxOfflineSpeakerDiarization *sd)
Destroy an offline speaker diarizer.
const SherpaOnnxOfflineSpeakerDiarization * SherpaOnnxCreateOfflineSpeakerDiarization(const SherpaOnnxOfflineSpeakerDiarizationConfig *config)
Create an offline speaker diarization pipeline.
void SherpaOnnxOfflineSpeakerDiarizationDestroyResult(const SherpaOnnxOfflineSpeakerDiarizationResult *r)
Destroy a diarization result.
struct SherpaOnnxOfflineSpeakerDiarizationResult SherpaOnnxOfflineSpeakerDiarizationResult
Opaque offline speaker diarization result.
Definition c-api.h:3955
void SherpaOnnxOfflineSpeakerDiarizationDestroySegment(const SherpaOnnxOfflineSpeakerDiarizationSegment *s)
Destroy a segment array returned by SherpaOnnxOfflineSpeakerDiarizationResultSortByStartTime().
struct SherpaOnnxOfflineSpeakerDiarization SherpaOnnxOfflineSpeakerDiarization
Opaque offline speaker diarization handle.
Definition c-api.h:3909
const SherpaOnnxOfflineSpeakerDiarizationSegment * SherpaOnnxOfflineSpeakerDiarizationResultSortByStartTime(const SherpaOnnxOfflineSpeakerDiarizationResult *r)
Return segments sorted by start time.
Configuration for offline speaker diarization.
Definition c-api.h:3895
SherpaOnnxFastClusteringConfig clustering
Definition c-api.h:3901
SherpaOnnxSpeakerEmbeddingExtractorConfig embedding
Definition c-api.h:3899
SherpaOnnxOfflineSpeakerSegmentationModelConfig segmentation
Definition c-api.h:3897
SherpaOnnxOfflineSpeakerSegmentationPyannoteModelConfig pyannote
Definition c-api.h:3856
Decoded mono WAVE file content.
Definition c-api.h:2853
int32_t num_samples
Definition c-api.h:2859
const float * samples
Definition c-api.h:2855

Segmentation model: sherpa-onnx-pyannote-segmentation-3-0/model.onnx

Embedding model: 3dspeaker_speech_eres2net_base_sv_zh-cn_3dspeaker_16k.onnx

Example source: offline-speaker-diarization-c-api.c