pyannote / pyannote-audio
git clone https://github.com/pyannote/pyannote-audio.git
4.0.7 · 3mo ago
🔥 on GitHub Trending today
Python toolkit for speaker diarization built on PyTorch, with pretrained pipelines and models that can be fine-tuned on your own data.
Why you might care
Gives you pretrained speaker diarization pipelines (community-1 open-source, plus a premium precision-2 option via pyannoteAI) and building blocks for speech activity, speaker change, overlapped speech detection, and speaker embeddings. Useful when you need to answer 'who spoke when' on meeting or call audio and want to fine-tune on your own data; multi-GPU training is supported via pytorch-lightning.
Star history (as recorded here)
Seen on GitHub Trending
- 2026-10-23 — #14 weekly in jupyter-notebook · +31 ★
- 2026-10-21 — #19 weekly in jupyter-notebook · +40 ★
- 2026-10-20 — #19 weekly in jupyter-notebook · +42 ★
GitHub topics
Links
- GitHub: github.com/pyannote/pyannote-audio
- Homepage: https://www.pyannote.ai
- Releases · Issues · Hacker News mentions
README excerpt
pyannote speaker diarization toolkit
`pyannote.audio` is an open-source toolkit written in Python for speaker diarization. Based on PyTorch machine learning framework, it comes with state-of-the-art pretrained models and pipelines, that can be further finetuned to your own data for even better performance.
## Highlights
- :exploding_head: state-of-the-art performance (see Benchmark)
- :hugs: pretrained pipelines (and models) on :hugs: model hub
- :rocket: built-in support for pyannoteAI premium speaker diarization
- :snake: Python-first API
- :zap: multi-GPU training with pytorch-lightning
## `community-1` open-source speaker diarization
1. Make sure `ffmpeg` is installed on your machine (needed by `torchcodec` audio decoding library)
2. Install with `uv``add pyannote.audio` (recommended) or `pip install pyannote.audio`
3. Accept `pyannote/speaker-diarization-community-1` user conditions
4. Create Huggingface access token at `hf.co/settings/tokens`
[code]
## `precision-2` premium speaker diarization
1. Create pyannoteAI API key at `dashboard.pyannote.ai`
2. Enjoy free credits!
[code]
Visit `docs.pyannote.ai` to learn about other pyannoteAI features (voiceprinting, confidence scores, ...)
## Benchmark
| Benchmark (last updated in 2025-09) | `legacy` (3.1) | `community-1` | `precision-2` |
| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | -------------------------------------------------| ------------------------------------------------ |
| AISHELL-4 | 12.2 | 11.7 | 11.4 |
| AliMeeting (channel 1) | 24.5 | 20.3 | 15.2 |
| AMI (IHM) | 18.8 | 17.0 | 12.9 |
| AMI (SDM) | 22.7 | 19.9 | 15.6 |
| AVA-AVD | 49.7 | 44.6 | 37.1 |
| CALLHOME (part 2) | 28.5 | 26.7 | 16.6 |
| DIHARD 3 (full) | 21.4 | 20.2 | 14.7 |
| Ego4D (dev.) | 51.2 | 46.8 | 39.0 |
| MSDWild | 25.4 | 22.8 | 17.3 |
| RAMC | 22.2 | 20.8 | 10.5 |
| REPERE (phase2) | 7.9 | 8.9 | 7.4 |
| VoxConverse (v0.3) | 11.2 | 11.2 | 8.5 |
__Diarization error rate (in %, the lower, the better)__
Compared to the `3.1` legacy pipeline, `community-1` brings significant improvement in terms of speaker counting and assignment.
`precision-2` premium pipeline further improves accuracy as well as processing speed (in its self-hosted version).
| Benchmark (last updated in 2025-09) | `community-1` | `precision-2` | Speed up
| -------------- | ----------- | ----------- | ------ |
| AMI (IHM), ~1h files | 31s per hour of audio | 14s per hour of audio | 2.2x faster
| DIHARD 3 (full), ~5min files | 37s per hour of audio | 14s per hour of audio | 2.6x faster
__Self-hosted speed on a NVIDIA H100 80GB HBM3__
## Telemetry
With the optional telemetry feature in `pyannote.audio`, you can choose to send anonymous usage metrics to help the `pyannote` team improve the library.
### What we track
For each call to `Pipeline.from_pretrained({origin})` (or `Model.from_pretrained({origin})`), we
Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.