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";
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:3938
void SherpaOnnxOfflineSpeakerDiarizationDestroySegment(const SherpaOnnxOfflineSpeakerDiarizationSegment *s)
Destroy a segment array returned by SherpaOnnxOfflineSpeakerDiarizationResultSortByStartTime().
struct SherpaOnnxOfflineSpeakerDiarization SherpaOnnxOfflineSpeakerDiarization
Opaque offline speaker diarization handle.
Definition c-api.h:3892
const SherpaOnnxOfflineSpeakerDiarizationSegment * SherpaOnnxOfflineSpeakerDiarizationResultSortByStartTime(const SherpaOnnxOfflineSpeakerDiarizationResult *r)
Return segments sorted by start time.
Configuration for offline speaker diarization.
Definition c-api.h:3878
SherpaOnnxFastClusteringConfig clustering
Definition c-api.h:3884
SherpaOnnxSpeakerEmbeddingExtractorConfig embedding
Definition c-api.h:3882
SherpaOnnxOfflineSpeakerSegmentationModelConfig segmentation
Definition c-api.h:3880
SherpaOnnxOfflineSpeakerSegmentationPyannoteModelConfig pyannote
Definition c-api.h:3839
Decoded mono WAVE file content.
Definition c-api.h:2843
int32_t num_samples
Definition c-api.h:2849
const float * samples
Definition c-api.h:2845

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