pyannote-seg-afr-childspeech-ft
Speaker diarization pipeline finetuned for Afrikaans child speech.
The segmentation model is a finetune of pyannote/segmentation-3.0
(PyanNet, powerset with max 2 concurrent speakers, 16 kHz, 15 s training chunks). Embedding and clustering
follow the pyannote 3.1 recipe, run under pyannote-audio 4.0.4.
Requirements
pyannote.audio == 4.0.4(pinned — see Version notes below)- A Hugging Face token, having accepted the terms for:
pyannote/speaker-diarization-community-1— see note below
Why
community-1is required. In pyannote-audio 4.x, building aSpeakerDiarizationpipeline loads a PLDA model unconditionally, then only uses it when clustering isVBxClustering. This pipeline usesAgglomerativeClustering, so the PLDA is fetched and ignored — but the download still happens, so you need access. Expect a first-run download you won't actually use.
Usage
from pyannote.audio import Pipeline
import torch
pipeline = Pipeline.from_pretrained(
"daanshil/pyannote-seg-afr-childspeech-ft", token="hf_..."
)
pipeline.to(torch.device("cuda")) # optional
output = pipeline("recording.wav")
# pyannote 4.x returns a DiarizeOutput wrapper — unwrap to get the Annotation
diarization = getattr(output, "speaker_diarization", output)
for turn, _, speaker in diarization.itertracks(yield_label=True):
print(f"{turn.start:.2f}s - {turn.end:.2f}s: {speaker}")