Awesome Speaker Diarization

repository·master·Indexed 23 days ago

https://github.com/wq2012/awesome-diarization

A curated list of resources for speaker diarization, including research papers on LLMs, supervised and online diarization, and audio-visual techniques. It features a comprehensive collection of software frameworks (such as FunASR, SpeechBrain, and pyannote-audio), evaluation toolkits, speaker embedding methods (d-vector, x-vector, i-vector), datasets, learning materials, and commercial products.

Tokens
2.6K
Snippets
0
Records
18
Agent score
34%

What's inside awesome-diarization

  1. Overview of Awesome Speaker Diarization

    master

    Awesome Speaker Diarization is a curated collection of resources dedicated to the field of speaker diarization. It provides a centralized repository of research papers, software libraries, datasets, and learning materials to help developers and researchers implement or study speaker diarization technologies.

    The resources are organized into several key categories:

    • Publications: Research papers and academic findings.
    • Software: Categorized into frameworks, evaluation tools, clustering algorithms, speaker embedding, speaker change detection, audio feature extraction, and data augmentation.
    • Datasets: Including diarization datasets, speaker embedding training sets, and augmentation noise sources.
    • Learning Materials: Online courses, books, tech blogs, and video tutorials.
    • Products: Commercial or ready-to-use diarization products.
  2. Explore Speaker Diarization Frameworks

    master

    The following frameworks are available for speaker diarization tasks, ranging from industrial-grade toolkits to specialized research implementations:

    • FunASR (Python & PyTorch): Industrial-grade speech recognition toolkit with built-in speaker diarization (cam++), VAD, ASR (SenseVoice/Paraformer), and punctuation. Supports 50+ languages and achieves 170x realtime.
    • SpeechBrain (Python & PyTorch): An all-in-one open-source speech toolkit.
    • pyannote-audio (Python): Provides neural building blocks like speech activity detection, speaker change detection, and speaker embedding.
    • Picovoice Falcon (C & Python): A lightweight, accurate, and fast engine that runs on CPU with minimal overhead.
    • sherpa-onnx (Multi-language): Supports diarization, ASR, and TTS across various platforms (C++, C, C#, Dart, Go, Java, JS, Kotlin, Pascal, Python, Rust, Swift).
    • FluidAudio (Swift): Native library for Apple platforms using CoreML for efficient, real-time processing.
    • EEND (Python, Bash, Perl): End-to-End Neural Diarization.
    • RE-VERB (Python & JavaScript): Allows users to record/send audio and receive timestamps of speaker turns.
    • simple_diarizer (Python): A simplified pipeline to go from input audio to diarized segments using pretrained models.
  3. Evaluate Speaker Diarization Systems

    master

    Use these toolkits to perform reproducible evaluation, diagnostic analysis, and error calculation for diarization systems:

    • pyannote-metrics (Python): Toolkit for reproducible evaluation and error analysis.
    • SimpleDER (Python): Lightweight library to compute Diarization Error Rate (DER).
    • DiarizationLM (Python): Implements Word Error Rate (WER), Word Diarization Error Rate (WDER), and concatenated minimum-permutation Word Error Rate (cpWER).
    • dscore (Python & Perl): Diarization scoring tools.
    • spyder (Python & C++): Fast DER computation.
    • CDER (Python): Conversational DER for the CSSD task.
  4. Find Learning Materials for Speaker Diarization

    master

    The repository provides various educational resources for developers learning diarization:

    • Online Courses: Udemy tutorials.
    • Books: 'Voice Identity Techniques' by Quan Wang.
    • Tech Blogs: Articles covering literature reviews, Kaldi integration, and building modules from scratch.
    • Video Tutorials: Deep dives into pyannote.audio, Google's LSTM systems, and optimal clustering techniques.
  5. Research publications on Diarization Challenges

    master

    These papers document specific challenges and competitive benchmarks in the field:

    • M2MeT: The ICASSP 2022 Multi-Channel Multi-Party Meeting Transcription Challenge (2022)
    • Hitachi-JHU DIHARD III system: Competitive end-to-end neural diarization and x-vector clustering systems combined by DOVER-Lap (2021)
    • DIHARD Challenge Lessons: Diarization is Hard: Some Experiences and Lessons Learned for the JHU Team (2018)
    • ODESSA: Albayzin Speaker Diarization Challenge 2018 (2018)
    • DIHARD Challenge: Joint Discriminative Embedding Learning, Speech Activity and Overlap Detection (2018)
  6. Explore Commercial Speaker Diarization Products

    master

    If you require production-ready APIs or applications rather than building your own, the repository lists several products:

    • Cloud APIs: Google Cloud Speech-to-Text, Amazon Transcribe, IBM Watson Speech To Text, Microsoft Azure Conversation Transcription, and DeepAffects API.
    • Consumer/Desktop Apps: Google Recorder, Alibaba Tingwu, Kviskr (macOS), and Ariso AI's OATS (macOS).
  7. Research publications on Online Speaker Diarization

    master

    These papers focus on real-time or online diarization approaches, including bandit learning and relation networks:

    • MiniVox: Speaker Diarization as a Fully Online Bandit Learning Problem (2021)
    • Relation Network: Online Speaker Diarization with Relation Network (2020)
    • VoiceID on the Fly: A Speaker Recognition System that Learns from Scratch (2020)
  8. Research publications on Joint Diarization and ASR

    master

    These papers investigate the integration of speaker diarization with Automatic Speech Recognition (ASR), including speaker-attributed ASR and joint sequence transduction:

    • Comparative Study: Speaker-attributed Automatic Speech Recognition in Multi-party Meetings (2022)
    • Turn-to-Diarize: Online Speaker Diarization Constrained by Transformer Transducer Speaker Turn Detection (2021)
    • Transcribe-to-Diarize: Neural Speaker Diarization for Unlimited Number of Speakers using End-to-End Speaker-Attributed ASR (2021)
    • Joint Speech Recognition and Speaker Diarization via Sequence Transduction (2019)
    • Deep learning models for joint speech recognition, segmentation and diarization (2018)
  9. Explore Diarization Datasets

    master
    The repository provides a curated list of datasets specifically for speaker diarization tasks. These include ground truth datasets for evaluating diarization performance, such as the NIST SRE series, ICSI Meeting Corpus, and AMI Meeting Corpus. Many of these datasets include audio files paired with ground truth labels.
  10. Reference Audio Feature Extraction and Augmentation Tools

    master

    Tools for processing audio signals and generating training data:

    Feature Extraction:

    • LibROSA (Python): Library for audio and music analysis.
    • python_speech_features (Python): Provides MFCCs and filterbank energies.
    • pyAudioAnalysis (Python): Feature extraction, classification, and segmentation.

    Data Augmentation:

    • pyroomacoustics (Python): Signal processing for indoor applications (beamforming prototyping).
    • gpuRIR (Python): Room Impulse Response (RIR) simulation with GPU acceleration.
    • rir_simulator_python (Python): Python-based RIR simulator.
    • WavAugment (Python & PyTorch): Performs augmentation on PyTorch tensors.
    • EEND_dataprep (Bash & Python): Recipes for generating simulated conversations for EEND training.
  11. Reference Speaker Embedding Methods

    master

    Speaker embeddings (vectors representing speaker identity) can be extracted using various methods and architectures:

    • d-vector:
      • Resemblyzer (Python & PyTorch)
      • Speaker_Verification (Python & TensorFlow)
      • PyTorch_Speaker_Verification (Python & PyTorch)
      • Real-Time Voice Cloning (Python & PyTorch)
      • deep-speaker (Python & Keras)
      • conformer-speaker-encoder (Python & TFLite)
    • x-vector:
      • x-vector-kaldi-tf (Python, TensorFlow, Perl)
      • pytorch_xvectors (Python & PyTorch)
      • WeSpeaker (Python, C++, PyTorch - also supports r-vectors)
      • asv-subtools (Kaldi & PyTorch - supports x-vectors)
    • i-vector:
      • kaldi-ivector (C++ & Perl)
      • voxceleb-ivector (Perl)
      • ASVtorch (Python & PyTorch)
      • asv-subtools (Kaldi & PyTorch)
    • Other:
      • ReDimNet (PyTorch): Improved ResNet architecture.
      • WeSpeaker (r-vector support).
  12. Explore Speaker Embedding Training Sets

    master
    For training speaker embedding models, the repository lists several large-scale datasets. These range from classic corpora like TIMIT and VCTK to massive modern datasets like VoxCeleb (1M+ utterances) and VoxBlink2 (10M utterances). These datasets are categorized by language, number of speakers, and pricing (many are free/open-source).