Model reference · open weights

speaker-detection

Audio aTrain-core Speech→text 1 build Open weights 690 dl/mo

speaker-detection is an open-weight audio or speech model from aTrain-core. speaker-detection (BF16) weighs 33 MB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • The speaker-detection model is a speaker diarization pipeline developed by aTrain-core that processes mono audio sampled at 16kHz.
  • It automatically downmixes multi-channel files and resamples audio to the required rate, while supporting offline use and GPU processing.
  • The model is released under the cc-by-4.0 license.

Summary of the aTrain-core/speaker-detection model card, 2026-10-01

What it is

Released byaTrain-core
Released2026-01-12
VRAM33 MB for the weights

What it runs on

Memory and cards for speaker-detection (BF16)

33 MBweights, file size
1.6 GBruntime overhead
CardOne streamMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What aTrain-core says about speaker-detection

Read the model card

This pipeline ingests mono audio sampled at 16kHz and outputs speaker diarization.

  • stereo or multi-channel audio files are automatically downmixed to mono by averaging the channels.
  • audio files sampled at a different rate are resampled to 16kHz automatically upon loading.

The main improvements brought by Community-1 are:

  • improved speaker assignment and counting
  • simpler reconciliation with transcription timestamps with exclusive speaker diarization
  • easy offline use (i.e. without internet connection)
  • (optionally) hosted on pyannoteAI cloud

Setup

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

Quick start

# download the pipeline from Huggingface
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained(
    "pyannote/speaker-diarization-community-1",
    token="{huggingface-token}")

# run the pipeline locally on your computer
output = pipeline("audio.wav")

# print the predicted speaker diarization
for turn, speaker in output.speaker_diarization:
    print(f"{speaker} speaks between t={turn.start:.3f}s and t={turn.end:.3f}s")

Benchmark

Out of the box, Community-1 is much better than speaker-diarization-3.1.

We report diarization error rates (in %) on large collection of academic benchmarks (fully automatic processing, no forgiveness collar, nor skipping overlapping speech).

Benchmark (last updated in 2025-09)legacy (3.1)community-1precision-2
AISHELL-412.211.711.4
AliMeeting (channel 1)24.520.315.2
AMI (IHM)18.817.012.9
AMI (SDM)22.719.915.6
AVA-AVD49.744.637.1
CALLHOME (part 2)28.526.716.6
DIHARD 3 (full)21.420.214.7
Ego4D (dev.)51.246.839.0
MSDWild25.422.817.3
RAMC22.220.810.5
REPERE (phase2)7.98.97.4
VoxConverse (v0.3)11.211.28.5

Precision-2 model is even better and can be tested like this:

  1. Create an API key on pyannoteAI dashboard (free credits included)
  2. Change one line of code
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained(
-     'pyannote/speaker-diarization-community-1', token="{huggingface-token}")
+     'pyannote/speaker-diarization-precision-2', token="{pyannoteAI-api-key}")
diarization = pipeline("audio.wav")  # runs on pyannoteAI servers

Processing on GPU

pyannote.audio pipelines run on CPU by default. You can send them to GPU with the following lines:

import torch
pipeline.to(torch.device("cuda"))

Processing from memory

Pre-loading audio files in memory may result in faster processing:

waveform, sample_rate = torchaudio.load("audio.wav")
output = pipeline({"waveform": waveform, "sample_rate": sample_rate})

Monitoring progress

Hooks are available to monitor the progress of the pipeline:

from pyannote.audio.pipelines.utils.hook import ProgressHook
with ProgressHook() as hook:
    output = pipeline("audio.wav", hook=hook)

Controlling the number of speakers

In case the number of speakers is known in advance, one can use the num_speakers option:

output = pipeline("audio.wav", num_speakers=2)

One can also provide lower and/or upper bounds on the number of speakers using min_speakers and max_speakers options:

output = pipeline("audio.wav", min_speakers=2, max_speakers=5)

Exclusive speaker diarization

Community-1 pretrained pipeline returns a new exclusive speaker diarization, on top of the regular speaker diarization, available as output.exclusive_speaker_diarization.

This is a feature which is backported from our latest commercial model that simplifies the reconciliation between fine-grained speaker diarization timestamps and (sometimes not so precise) transcription timestamps.

Offline use

  1. In the terminal, copy the pipeline on disk:
# make sure git-lfs is installed (

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

How it works

How audio & music work

Audio or textinputAudio modelrecognise / synthesiseText or audiooutputSpeech-to-text turns audio into text; text-to-speech and music models turn text into audio.
© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms