Multi-speaker meeting recording
AI Models & Assistants / Knowledge library
speaker-diarization-3.1
automatic-speech-recognition model from pyannote. Make recorded speech searchable and accessible as text.
Why learn speaker-diarization-3.1?
Provides downloadable weights for automatic-speech-recognition experimentation, subject to the model card and license.
The problem it solves
Make recorded speech searchable and accessible as text.
Where it came from
speaker-diarization-3.1: automatic-speech-recognition model from pyannote. Make recorded speech searchable and accessible as text. License: mit. Hugging Face downloads at snapshot: 6831393. This is a task-stratified popularity sample, not a performance ranking. Runtime compatibility must be checked for the specific architecture.
Build your understanding
Work through these exercises in order. Try the task before opening a reference.
- Explain what speaker-diarization-3.1 does.
- Identify a use case for speaker-diarization-3.1.
- Describe a limitation of speaker-diarization-3.1.
- Name a compatible tool for speaker-diarization-3.1.
- Compare speaker-diarization-3.1 against an alternative.
Documentation and sources
- Primary source / model card (huggingface.co)
Catalog research notes
- See the AI Workbench for source dates, pricing evidence and configuration details.
Connect the ideas
Built on
Real World Example
Automated Legislative Session Transcription
Municipal legislative bodies that must maintain accurate public records of city council meetings.
The business problem
Manual transcription of multi-speaker council meetings is prohibitively expensive and slow, leading to significant delays in publishing searchable public records.
How this topic solves it
The pyannote/speaker-diarization-3.1 pipeline automates the identification of distinct speakers within audio recordings, allowing downstream speech-to-text engines to attribute dialogue correctly to specific individuals.
- Authenticate with Hugging Face to accept user conditions for the speaker-diarization-3.1 model.
- Install the pyannote.audio library and configure the pipeline using a valid access token.
- Load the meeting audio file, ensuring it is processed as mono audio at 16kHz.
- Execute the pipeline to generate an Annotation object containing speaker segments and timestamps.
- Export the diarization results to an RTTM file to serve as a temporal map for text transcription.
The flow from raw audio input to structured speaker-labeled output.
Resampling to 16kHz and mono downmixing
pyannote/speaker-diarization-3.1 inference
Structured speaker segments
- Raw Audio → load → Pre-processing
- Pre-processing → ingest → Diarization Pipeline
- Diarization Pipeline → generate → RTTM Output
Implementation example
This code demonstrates the core implementation step of loading the model and exporting the diarization result to a standard RTTM format for archival.
from pyannote.audio import Pipeline
# Initialize pipeline with auth token
pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization-3.1", use_auth_token="TOKEN")
# Process audio and save segments to RTTM
diarization = pipeline("council_meeting.wav")
with open("meeting.rttm", "w") as f:
diarization.write_rttm(f) # Maps segments to speakersExpected business outcome
A structured, time-stamped log of speaker turns that enables efficient, searchable archival of legislative proceedings.
Limitations and checks
The model may struggle with highly overlapped speech or rapid speaker transitions, which can be verified by reviewing the RTTM output for fragmented or misidentified segments.