Awesome Speaker Diarization [](https://github.com/sindresorhus/awesome) [](https://github.com/wq2012/awesome-diarization/blob/master/CONTRIBUTING.md)

December 15, 2019 · View on GitHub

Table of contents

Overview

This is a curated list of awesome Speaker Diarization papers, libraries, datasets, and other resources.

The purpose of this repo is to organize the world’s resources for speaker diarization, and make them universally accessible and useful.

To add items to this page, simply send a pull request. (contributing guide)

Publications

2019

2018

2017

2016

2015

2014

2013

2011

2010

2009

2008

2006

Software

Framework

LinkLanguageDescription
SIDEKIT for diarization (s4d)PythonAn open source package extension of SIDEKIT for Speaker diarization.
pyAudioAnalysis GitHub starsPythonPython Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications.
AaltoASR GitHub starsPython & PerlSpeaker diarization scripts, based on AaltoASR.
LIUM SpkDiarizationJavaLIUM_SpkDiarization is a software dedicated to speaker diarization (i.e. speaker segmentation and clustering). It is written in Java, and includes the most recent developments in the domain (as of 2013).
kaldi-asr Build StatusBashExample scripts for speaker diarization on a portion of CALLHOME used in the 2000 NIST speaker recognition evaluation.
Alize LIA_SpkSegC++ALIZÉ is an opensource platform for speaker recognition. LIA_SpkSeg is the tools for speaker diarization.
pyannote-audio GitHub starsPythonNeural building blocks for speaker diarization: speech activity detection, speaker change detection, speaker embedding.
pyBK GitHub starsPythonSpeaker diarization using binary key speaker modelling. Computationally light solution that does not require external training data.
Speaker-Diarization GitHub starsPythonSpeaker diarization using uis-rnn and GhostVLAD. An easier way to support openset speakers.
EEND GitHub starsPython & Bash & PerlEnd-to-End Neural Diarization.
VBDiarization GitHub starsPythonSpeaker diarization based on Kaldi x-vectors using pretrained model trained in Kaldi (kaldi-asr/kaldi) and converted to ONNX format (onnx/onnx) running in ONNXRuntime (Microsoft/onnxruntime).
RE-VERB GitHub starsPython & JavaScriptRE: VERB is speaker diarization system, it allows the user to send/record audio of a conversation and receive timestamps of who spoke when.

Evaluation

LinkLanguageDescription
pyannote-metrics GitHub stars Build StatusPythonA toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems.
SimpleDER GitHub stars Build StatusPythonA lightweight library to compute Diarization Error Rate (DER).
NIST md-evalPerl(1) modified md-eval.pl from Mary Tai Knox; (2) md-eval-v21.pl from jitendra; (3) md-eval-22.pl from nryant
dscore GitHub starsPython & PerlDiarization scoring tools.
Sequence Match AccuracyPythonMatch the accuracy of two sequences with Hungarian algorithm.

Clustering

LinkLanguageDescription
uis-rnn GitHub stars Build StatusPython & PyTorchGoogle's Unbounded Interleaved-State Recurrent Neural Network (UIS-RNN) algorithm, for Fully Supervised Speaker Diarization. This clustering algorithm is supervised.
uis-rnn-sml GitHub starsPython & PyTorchA variant of UIS-RNN, for the paper Supervised Online Diarization with Sample Mean Loss for Multi-Domain Data.
DNC GitHub starsPython & ESPnetTransformer-based Discriminative Neural Clustering (DNC) for Speaker Diarisation. Like UIS-RNN, it is supervised.
SpectralCluster GitHub stars Build StatusPythonSpectral clustering with affinity matrix refinement operations.
sklearn.cluster Build StatusPythonscikit-learn clustering algorithms.
PLDA GitHub starsPythonProbabilistic Linear Discriminant Analysis & classification, written in Python.
PLDA GitHub starsC++Open-source implementation of simplified PLDA (Probabilistic Linear Discriminant Analysis).

Speaker embedding

LinkMethodLanguageDescription
Speaker_Verification GitHub starsd-vectorPython & TensorFlowTensorflow implementation of generalized end-to-end loss for speaker verification.
PyTorch_Speaker_Verification GitHub starsd-vectorPython & PyTorchPyTorch implementation of "Generalized End-to-End Loss for Speaker Verification" by Wan, Li et al. With UIS-RNN integration.
Real-Time Voice Cloning GitHub starsd-vectorPython & PyTorchImplementation of "Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis" (SV2TTS) with a vocoder that works in real-time.
deep-speaker GitHub starsd-vectorPython & KerasThird party implementation of the Baidu paper Deep Speaker: an End-to-End Neural Speaker Embedding System.
x-vector-kaldi-tf GitHub starsx-vectorPython & TensorFlow & PerlTensorflow implementation of x-vector topology on top of Kaldi recipe.
kaldi-ivector GitHub starsi-vectorC++ & PerlExtension to Kaldi implementing the standard i-vector hyperparameter estimation and i-vector extraction procedure.
voxceleb-ivector GitHub starsi-vectorPerlVoxceleb1 i-vector based speaker recognition system.

Speaker change detection

LinkLanguageDescription
change_detection GitHub starsPython & KerasCode for Speaker Change Detection in Broadcast TV using Bidirectional Long Short-Term Memory Networks.

Other software

LinkLanguageDescription
VB Diarization GitHub stars Build StatusPythonVB Diarization with Eigenvoice and HMM Priors.

Datasets

Diarization datasets

AudioDiarization ground truthLanguagePricingAdditional information
2000 NIST Speaker Recognition EvaluationDisk-6 (Switchboard), Disk-8 (CALLHOME)Multiple$2400.00Evaluation Plan
2003 NIST Rich Transcription Evaluation DataTogether with audiosen, ar, zh$2000.00telephone speech, broadcast news
CALLHOME American English SpeechCALLHOME American English Transcriptsen$1500.00 + $1000.00CH109 whitelist
The ICSI Meeting CorpusTogether with audiosenFreeLicense
The AMI Meeting CorpusTogether with audios (need to be processed)MultipleFreeLicense
Fisher English Training Speech Part 1 SpeechFisher English Training Speech Part 1 Transcriptsen$7000.00 + $1000.00
Fisher English Training Part 2, SpeechFisher English Training Part 2, Transcriptsen$7000.00 + $1000.00

Speaker embedding training sets

NameUtterancesSpeakersLanguagePricingAdditional information
TIMIT6K+630en$250.00Published in 1993, the TIMIT corpus of read speech is one of the earliest speaker recognition datasets.
VCTK43K+109enFreeMost were selected from a newspaper plus the Rainbow Passage and an elicitation paragraph intended to identify the speaker's accent.
LibriSpeech?2KenFreeLarge-scale (1000 hours) corpus of read English speech.
VoxCeleb 1&27K+1M+MultipleFreeVoxCeleb is an audio-visual dataset consisting of short clips of human speech, extracted from interview videos uploaded to YouTube.
CN-Celeb130K+1K+zhFreeA Free Chinese Speaker Recognition Corpus Released by CSLT@Tsinghua University.
DeepMine540K1850fa, enUnknownA speech database in Persian and English designed to build and evaluate speaker verification, as well as Persian ASR systems.

Leaderboards

Other learning materials

Tech blogs

Video tutorials

Products

CompanyProduct
GoogleGoogle Cloud Speech-to-Text API
AmazonAmazon Transcribe
IBMWatson Speech To Text API
DeepAffectsSpeaker Diarization API