NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3588 most downloaded on PyPI
Interface to multimedia databases and experimental protocols
Last release 10 months ago
07 Dec 2025
Release timing varies
gaps range from 9 days to 1.1 years
Nearly every release is documented
notes for 54 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
65 releases · first in 2016
fix: fix warning about invalid espace sequence
fix: fix warning about invalid espace sequence
BREAKING: update STMLoader to return meeteval.io.SegLST instances
BREAKING: update STMLoader to return meeteval.io.SegLST instances
BREAKING: drop support to Python < 3.10
One column per quarter.
BREAKING: drop support to Python < 3.10
BREAKING: switch to native namespace package
setup: switch to uv
Nothing published for this version
chore: remove deprecated use of delim_whitespace
chore: remove deprecated use of delim_whitespace
chore: use importlib.metadata instead of pkg_resources
Nothing published for this version
Nothing published for this version
BREAKING: switch to python 3.9+ (no support for 3.12 yet)
BREAKING: switch to python 3.9+ (no support for 3.12 yet) - feat(registry): make registry iterable (yields protocol names) - fix(setup): fix typer` dependency
fix: fix support for numeric values in custom protocols (e.g. channel: 0)
fix: fix support for numeric values in custom protocols (e.g. channel: 0) - improve: do not complain about missing scope for meta protocols
feat(registry): add pyannote.database.registry to load multiple YAML configuration file
feat(registry): add pyannote.database.registry to load multiple YAML configuration file - BREAKING: turn pyannote.database.get_{database|protocol|protocols} function into registry methods - BREAKING: remove support for database plugins (via "pyannote.database.database" entrypoint) - feat(protocol): add generic segmentation protocol with "classes" metadata - feat(protocol): add support for label "scope" in speaker diarization protocols - improve(protocol): make ProtocolFile pickable - feat(loader): add support for LAB and STM files - feat(loader): add option to filter RTTM lines by "type" - fix(cli): fix corner case when annotation key is missing
fix: fix corner case with missing uris in RTTM and UEM files
fix: fix corner case with missing uris in RTTM and UEM files - fix(CI): fix documentation deployment
Nothing published for this version
fix: fix support for meta verification protocol
fix: fix support for meta verification protocol
feat: make {RTTM|UEM}Loader usable as preprocessors
feat: make {RTTM|UEM}Loader usable as preprocessors - improve: remove the need for underscore prefix in database.yml - fix: fix ProtocolFile.__iter__ (dictionary changed size during iteration)
fix: fix ProtocolFile.__iter__ (dictionary changed size during iteration)
fix: fix ProtocolFile.__iter__ (dictionary changed size during iteration)
fix: make custom protocols pickable
fix: make custom protocols pickable
feat: automagically crop "annotated" to file "duration" when available
feat: automagically crop "annotated" to file "duration" when available - fix: fix a bug in SpeakerDiarizationProtocols - improve: avoid loading ProtocolFile (lazy) keys in "get_unique_identifier"
feat: set "name" attribute in get_protocol
feat: set "name" attribute in get_protocol - fix: display warning only when precomputed value is modified
feat: add support for custom speaker verification protocols
feat: add support for custom speaker verification protocols - feat: add pyannote.database.loader entrypoint - feat: add pyannote-database CLI - feat: add a few dataloaders (RTTM, UEM, CTM, MAP) - feat: add support for nested ProtocolFile - doc: major documentation update (README and docstrings) - BREAKING: custom protocols must define a "uri" section - BREAKING: remove support for "preprocessors" in Database constructor - BREAKING: remove support for progress bars
Nothing published for this version
BREAKING (feat): if a "database.yml" file exists in current working directory, it will be used even if PYANNOTE_DATABASE_CONFIG is set to another valu
BREAKING (feat): if a "database.yml" file exists in current working directory, it will be used even if PYANNOTE_DATABASE_CONFIG is set to another value. - feat: add support in FileFinder for paths relative to "database.yml" - BREAKING: rename "config_yml" option to "database_yml" in FileFinder - feat: add support in custom protocols for paths relative to "database.yml" (@PaulLerner) - BREAKING (feat): use "annotated" to crop "annotation" in custom protocols (@PaulLerner) - fix: add support for int-like protocol name in custom protocols (@PaulLerner)
BREAKING: deprecate FileFinder.current_file_iter in favor of ProtocolFile.files
BREAKING: refactor {current | protocol}_file_iter - BREAKING: only rely on "uri" to decide if a ProtocolFile contains multiple files - BREAKING: deprecate FileFinder.current_file_iter in favor of ProtocolFile.files - BREAKING: deprecate FileFinder.protocol_file_iter in favor of Protocol.files - fix: fix support for lazy preprocessors in {Protocol | ProtocolFile}.files
fix: fix infinite recursion in "ProtocolFile" lazy evaluation
fix: fix infinite recursion in "ProtocolFile" lazy evaluation
fix: add support for int-like database name in custom protocol
fix: add support for int-like database name in custom protocol
fix: make ProtocolFile thread-safe
fix: make ProtocolFile thread-safe
fix: pandas would convert a label to NaN (@PaulLerner)
feat: make preprocessors lazy - fix: pandas would convert a label to NaN ([@PaulLerner](https://github.com/PaulLerner)) - feat: setup continuous integration - setup: switch to pyannote.core 3.2
fix: fix support for MDTM files in pyannote.database.custom.subset_iter
fix: fix support for MDTM files in pyannote.database.custom.subset_iter ([#23](https://github.com/pyannote/pyannote-database/issues/23))
chore: replace (deprecated) pandas.read_table with pandas.read_csv (@V-assim)
feat: add LabelMapper preprocessor ([@MarvinLvn](https://github.com/MarvinLvn)) - chore: replace (deprecated) pandas.read_table with pandas.read_csv ([@V-assim](https://github.com/V-assim)) - chore: use YAML safe loader ([@V-assim](https://github.com/V-assim))
setup: switch to pyannote.core 3.0
setup: switch to pyannote.core 3.0 - feat: add RTTMLoader preprocessor
feat: add support for "domain" key in generic protocol
feat: add support for "domain" key in generic protocol
BREAKING: change location and format of pyannote.database configuration file
BREAKING: change location and format of pyannote.database configuration file - feat: add support for PYANNOTE_DATABASE_CONFIG environment variable
feat: add support for file-based speaker diarization protocols
feat: add support for [file-based speaker diarization protocols](https://github.com/pyannote/pyannote-database/tree/develop#generic-speaker-diarization-protocols) - setup: switch to pyannote.core 2.1
fix: fix Collection.files when progress=True
fix: fix Collection.files when progress=True
fix: skip files with no "uri" entry in FileFinder.protocol_file_iter
fix: skip files with no "uri" entry in FileFinder.protocol_file_iter
fix: fix broken SpeakerVerificationProtocol
fix: fix broken SpeakerVerificationProtocol
Nothing published for this version
fix: fix support for string preprocessors
fix: fix support for string preprocessors
BREAKING: simplify SpeakerVerificationProtocol with {subset}_trial methods
BREAKING: simplify SpeakerVerificationProtocol with {subset}_trial methods
feat: add raw collection protocol
feat: add raw collection protocol
fix: fix regression introduced in 1.3.1
fix: fix regression introduced in 1.3.1
fix: fix bug in FileFinder.protocol_file_iter with empty iterators
fix: fix bug in FileFinder.protocol_file_iter with empty iterators
feat: add extra_keys parameter to {protocol | current}_file_iter
feat: add extra_keys parameter to {protocol | current}_file_iter
setup: drop support for Python 2
setup: drop support for Python 2 - feat: add protocol_file_iter and current_file_iter to FileFinder - feat: add get_label_identifier utility function - fix: fix "get_unique_identifier" when "database" or "channel" is None
Nothing published for this version
feat: add speaker identification protocol
feat: add speaker identification protocol - feat: add speaker verification protocols - feat: add support for list of uris in FileFinder
feat: add support for "meta" protocols
feat: add support for "meta" protocols - feat: add speaker spotting protocol - setup: switch to pyannote.core 1.1
feat: add utility functions at package root
feat: add utility functions at package root - doc: improve documentation - doc: add link to pyannote-db-template repository
fix: fix a bug with string template preprocessors
fix: fix a bug with string template preprocessors - doc: improve documentation
feat: add 'get_protocol' helper function
feat: add 'get_protocol' helper function
feat: add support for validation on training set to speaker recognition protocols
feat: add support for validation on training set to speaker recognition protocols - feat: add 'get_annotated' helper function
- fix: fix bug in FileFinder
fix: fix bug in FileFinder
improve: change signature of preprocessor.__call__
improve: change signature of preprocessor.__call__
feat: add "get_unique_identifier" utility function
feat: add "get_unique_identifier" utility function
- fix: fix progress bar support
fix: fix progress bar support
- feat: add progress bar support
feat: add progress bar support
fix: add 'yield_name' parameter to speaker recognition generators
fix: add 'yield_name' parameter to speaker recognition generators
feat: add speaker recognition protocol
feat: add speaker recognition protocol
feat: add FileFinder utility class
feat: add FileFinder utility class - fix: fix SpeakerDiarizationProtocol.stats()
Nothing published for this version
BREAKING: replace 'medium_template' by (more generic) 'preprocessors'
BREAKING: replace 'medium_template' by (more generic) 'preprocessors'
Your coding agent can read these notes before it upgrades. Set up the MCP server →