- feat(task): add option to cache task training metadata to speed up training (with @clement-pages)
- feat(model): add
receptive_field,num_framesanddimensionto models (with @Bilal-Rahou) - feat(util): add
Powerset.permutation_mappingto help with permutation in powerset space (with @FrenchKrab) - feat(sample): add sample file at
pyannote.audio.sample.SAMPLE_FILE - feat(metric): add
reduceoption todiarization_error_ratemetric (with @Bilal-Rahou) - feat(pipeline): add
WaveformandSampleRatepreprocessors
- fix(task): fix random generators and their reproducibility (with @FrenchKrab)
- fix(task): fix estimation of training set size (with @FrenchKrab)
- improve(metric): add support for number of speakers mismatch in
diarization_error_ratemetric - improve(pipeline): track both
Modelandnn.Moduleattributes inPipeline.to(device) - improve(io): switch to
torchaudio >= 2.2.0 - improve(doc): update tutorials (with @clement-pages)
- BREAKING(model): get rid of
Model.example_outputin favor ofnum_framesmethod,receptive_fieldproperty, anddimensionproperty - BREAKING(task): custom tasks need to be updated (see "Add your own task" tutorial)
Providing num_speakers to pyannote/speaker-diarization-3.1 now works as expected.
- fix(pipeline): fix support for setting
num_speakersinpyannote/speaker-diarization-3.1pipeline
pyannote/speaker-diarization-3.1 no longer requires unpopular ONNX runtime
- feat(model): add WeSpeaker embedding wrapper based on PyTorch
- feat(model): add support for multi-speaker statistics pooling
- feat(pipeline): add
TimingHookfor profiling processing time - feat(pipeline): add
ArtifactHookfor saving internal steps - feat(pipeline): add support for list of hooks with
Hooks - feat(utils): add
"soft"option toPowerset.to_multilabel
- fix(pipeline): add missing "embedding" hook call in
SpeakerDiarization - fix(pipeline): fix
AgglomerativeClusteringto honornum_clusterswhen provided - fix(pipeline): fix frame-wise speaker count exceeding
max_speakersor detectednum_speakersinSpeakerDiarizationpipeline
- improve(pipeline): compute
fbankon GPU when requested
- BREAKING(pipeline): rename
WeSpeakerPretrainedSpeakerEmbeddingtoONNXWeSpeakerPretrainedSpeakerEmbedding - BREAKING(setup): remove
onnxruntimedependency. You can still use ONNXhbredin/wespeaker-voxceleb-resnet34-LMbut you will have to installonnxruntimeyourself. - BREAKING(pipeline): remove
logging_hook(useArtifactHookinstead) - BREAKING(pipeline): remove
onsetandoffsetparameter inSpeakerDiarizationMixin.speaker_countYou should now binarize segmentations before passing them tospeaker_count
- fix(pipeline): fix WeSpeaker GPU support
- feat(pipeline): send pipeline to device with
pipeline.to(device) - feat(pipeline): add
return_embeddingsoption toSpeakerDiarizationpipeline - feat(pipeline): make
segmentation_batch_sizeandembedding_batch_sizemutable inSpeakerDiarizationpipeline (they now default to1) - feat(pipeline): add progress hook to pipelines
- feat(task): add powerset support to
SpeakerDiarizationtask - feat(task): add support for multi-task models
- feat(task): add support for label scope in speaker diarization task
- feat(task): add support for missing classes in multi-label segmentation task
- feat(model): add segmentation model based on torchaudio self-supervised representation
- feat(pipeline): check version compatibility at load time
- improve(task): load metadata as tensors rather than pyannote.core instances
- improve(task): improve error message on missing specifications
- BREAKING(task): rename
Segmentationtask toSpeakerDiarization - BREAKING(pipeline): pipeline defaults to CPU (use
pipeline.to(device)) - BREAKING(pipeline): remove
SpeakerSegmentationpipeline (useSpeakerDiarizationpipeline) - BREAKING(pipeline): remove
segmentation_durationparameter fromSpeakerDiarizationpipeline (defaults todurationof segmentation model) - BREAKING(task): remove support for variable chunk duration for segmentation tasks
- BREAKING(pipeline): remove support for
FINCHClusteringandHiddenMarkovModelClustering - BREAKING(setup): drop support for Python 3.7
- BREAKING(io): channels are now 0-indexed (used to be 1-indexed)
- BREAKING(io): multi-channel audio is no longer downmixed to mono by default.
You should update how
pyannote.audio.core.io.Audiois instantiated:- replace
Audio()byAudio(mono="downmix"); - replace
Audio(mono=True)byAudio(mono="downmix"); - replace
Audio(mono=False)byAudio().
- replace
- BREAKING(model): get rid of (flaky)
Model.introspectionIf, for some weird reason, you wrote some custom code based on that, you should instead rely onModel.example_output. - BREAKING(interactive): remove support for Prodigy recipes
- fix(pipeline): fix reproducibility issue with Ampere CUDA devices
- fix(pipeline): fix support for IOBase audio
- fix(pipeline): fix corner case with no speaker
- fix(train): prevent metadata preparation to happen twice
- fix(task): fix support for "balance" option
- improve(task): shorten and improve structure of Tensorboard tags
- setup: switch to torch 2.0+, torchaudio 2.0+, soundfile 0.12+, lightning 2.0+, torchmetrics 0.11+
- setup: switch to pyannote.core 5.0+, pyannote.database 5.0+, and pyannote.pipeline 3.0+
- setup: switch to speechbrain 0.5.14+
- BREAKING(pipeline): rewrite speaker diarization pipeline
- feat(pipeline): add option to optimize for DER variant
- feat(clustering): add support for NeMo speaker embedding
- feat(clustering): add FINCH clustering
- feat(clustering): add min_cluster_size hparams to AgglomerativeClustering
- feat(hub): add support for private/gated models
- setup(hub): switch to latest hugginface_hub API
- fix(pipeline): fix support for missing reference in Resegmentation pipeline
- fix(clustering) fix corner case where HMM.fit finds too little states
- BREAKING: complete rewrite
- feat: much better performance
- feat: Python-first API
- feat: pretrained pipelines (and models) on Huggingface model hub
- feat: multi-GPU training with pytorch-lightning
- feat: data augmentation with torch-audiomentations
- feat: Prodigy recipe for model-assisted audio annotation
- fix: make sure master branch is used to load pretrained models (#599)
- last release before complete rewriting
- fix: fix regression in Precomputed.call (#110, #105)
- chore: switch from keras to pytorch (with tensorboard support)
- improve: faster & better traning (
AutoLR, advanced learning rate schedulers, improved batch generators) - feat: add tunable speaker diarization pipeline (with its own tutorial)
- chore: drop support for Python 2 (use Python 3.6 or later)
- feat: add python 3 support
- chore: rewrite neural speaker embedding using autograd
- feat: add new embedding architectures
- feat: add new embedding losses
- chore: switch to Keras 2
- doc: add tutorial for (MFCC) feature extraction
- doc: add tutorial for (LSTM-based) speech activity detection
- doc: add tutorial for (LSTM-based) speaker change detection
- doc: add tutorial for (TristouNet) neural speaker embedding
- feat: add LSTM-based speech activity detection
- feat: add LSTM-based speaker change detection
- improve: refactor LSTM-based speaker embedding
- feat: add librosa basic support
- feat: add SMORMS3 optimizer
- feat: add 'covariance_type' option to BIC segmentation
- chore: rename sequence generator in preparation of the release of TristouNet reproducible research package.
- first public version