pyannote

pyannote/segmentation-3.0

No description available.

Model Documentation

Using this open-source model in production? Consider switching to pyannoteAI for better and faster options.

🎹 "Powerset" speaker segmentation



This model ingests 10 seconds of mono audio sampled at 16kHz and outputs speaker diarization as a (num_frames, num_classes) matrix where the 7 classes are _non-speech_, _speaker #1_, _speaker #2_, _speaker #3_, _speakers #1 and #2_, _speakers #1 and #3_, and _speakers #2 and #3_.

Example output

python

waveform (first row)

duration, sample_rate, num_channels = 10, 16000, 1 waveform = torch.randn(batch_size, num_channels, duration * sample_rate)

powerset multi-class encoding (second row)

powerset_encoding = model(waveform)

multi-label encoding (third row)

from pyannote.audio.utils.powerset import Powerset max_speakers_per_chunk, max_speakers_per_frame = 3, 2 to_multilabel = Powerset( max_speakers_per_chunk, max_speakers_per_frame).to_multilabel multilabel_encoding = to_multilabel(powerset_encoding)


The various concepts behind this model are described in details in this paper.

It has been trained by Séverin Baroudi with pyannote.audio 3.0.0 using the combination of the training sets of AISHELL, AliMeeting, AMI, AVA-AVD, DIHARD, Ego4D, MSDWild, REPERE, and VoxConverse.

This companion repository by Alexis Plaquet also provides instructions on how to train or finetune such a model on your own data.

Requirements



1. Install pyannote.audio 3.0 with pip install pyannote.audio 2. Accept pyannote/segmentation-3.0 user conditions 3. Create access token at hf.co/settings/tokens.

Usage



python

instantiate the model

from pyannote.audio import Model model = Model.from_pretrained( "pyannote/segmentation-3.0", use_auth_token="HUGGINGFACE_ACCESS_TOKEN_GOES_HERE")


Speaker diarization



This model cannot be used to perform speaker diarization of full recordings on its own (it only processes 10s chunks).

See pyannote/speaker-diarization-3.0 pipeline that uses an additional speaker embedding model to perform full recording speaker diarization.

Voice activity detection



python
from pyannote.audio.pipelines import VoiceActivityDetection
pipeline = VoiceActivityDetection(segmentation=model)
HYPER_PARAMETERS = {
  

remove speech regions shorter than that many seconds.

"min_duration_on": 0.0,

fill non-speech regions shorter than that many seconds.

"min_duration_off": 0.0 } pipeline.instantiate(HYPER_PARAMETERS) vad = pipeline("audio.wav")

vad is a pyannote.core.Annotation instance containing speech regions



Overlapped speech detection



python
from pyannote.audio.pipelines import OverlappedSpeechDetection
pipeline = OverlappedSpeechDetection(segmentation=model)
HYPER_PARAMETERS = {
  

remove overlapped speech regions shorter than that many seconds.

"min_duration_on": 0.0,

fill non-overlapped speech regions shorter than that many seconds.

"min_duration_off": 0.0 } pipeline.instantiate(HYPER_PARAMETERS) osd = pipeline("audio.wav")

osd is a pyannote.core.Annotation instance containing overlapped speech regions



Citations



bibtex
@inproceedings{Plaquet23,
  author={Alexis Plaquet and Hervé Bredin},
  title={{Powerset multi-class cross entropy loss for neural speaker diarization}},
  year=2023,
  booktitle={Proc. INTERSPEECH 2023},
}


bibtex
@inproceedings{Bredin23,
  author={Hervé Bredin},
  title={{pyannote.audio 2.1 speaker diarization pipeline: principle, benchmark, and recipe}},
  year=2023,
  booktitle={Proc. INTERSPEECH 2023},
}

Files & Weights

FilenameSizeAction
pytorch_model.bin 0.01 GB