skillfed

pyannote-database

Interface to multimedia databases and experimental protocols

pyannote-database v6.1.1 3.0M downloads/30d#2,805 on PyPI
License unclear AGING released

What it is and what it does

pyannote-database is a framework for defining and iterating over multimedia datasets with reproducible experimental protocols. It models resources (audio files, video files, images, etc.) as protocol files with URIs and associated metadata, then organizes them into train, development, and test subsets via YAML configuration. The package handles lazy loading and caching of metadata through pluggable data loaders (built-in support for RTTM, UEM, and CTM formats) and allows on-the-fly augmentation via preprocessors.

Typically used in speech processing and speaker analysis workflows, it abstracts away the boilerplate of managing dataset splits and file paths. You define your protocol once in YAML, load it into the registry, and iterate over resources in Python—each resource is a dict-like object with keys populated from metadata files and custom loaders. The package depends on pandas, pyannote-core, and pyyaml, and requires Python 3.10 or later.

Use it for:

  • Organize speaker diarization datasets with train/dev/test splits and associated RTTM speaker annotations.
  • Load speaker verification protocols with metadata from multiple file formats (RTTM, CTM, UEM) automatically selected by suffix.
  • Define reproducible experimental protocols for audio segmentation tasks with lazy-loaded metadata and resource URIs.
  • Build custom data loaders for proprietary audio or video metadata formats and register them with the protocol system.
  • Iterate over multimedia resources with on-the-fly preprocessing and augmentation without modifying the underlying dataset files.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Defines and manages reproducible experimental protocols for multimedia databases (audio, video, text), organizing resources with metadata and train/dev/test splits for machine learning workflows.

Yes, if you are working with speaker diarization, speaker verification, or other multimedia ML tasks and need a standardized way to define and iterate over dataset splits. The low install friction and stable dependency set make it straightforward to adopt. However, verify the license terms first (they are not declared in the package metadata), and be aware that maintenance is aging—expect no rapid updates but likely sufficient stability for established workflows.

Install

pyannote-database on PyPI

pip

pip install pyannote-database

uv

uv add pyannote-database

poetry

poetry add pyannote-database

Installing pyannote-database

Before you install

Low install friction with a pure-Python wheel and minimal dependencies (pandas, pyannote-core, pyyaml). Maintenance status is aging—last release was 250 days ago—so expect slower response to issues but likely stable for established use.

License in practice

License treatment is unclear; no SPDX identifier or raw license text is available in the package metadata. Verify the actual license terms before use in proprietary or restricted contexts.

Quickstart

pip install pyannote.database

from pyannote.database import registry
registry.load_database("/path/to/database.yml")
protocol = registry.get_protocol('MyDatabase.Protocol.MyProtocol')
for resource in protocol.train():
    print(resource["uri"])

Requires Python 3.10 or later. YAML configuration file must be created and referenced; automatic loading checks ~/.pyannote/database.yml, ./database.yml, and PYANNOTE_DATABASE_CONFIG environment variable.

Verify before relying

  • Whether the package is actively maintained or in long-term stable mode despite the 250-day release gap.
  • What license actually governs this package (SPDX and raw license data are both missing).
  • Whether custom data loaders and preprocessors cover common audio/video formats beyond RTTM, UEM, and CTM.

Package facts

License not declared (unclear)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 3 — pandas, pyannote-core, pyyaml
Maintenance aging — 250 days since the last release
First released
Downloads 2,966,223/month — #2,805 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyannote_database-6.1.1-py3-none-any.whl

Tags

multimedia database protocolsaudio dataset experimental setupspeaker diarization data loaderreproducible ml dataset splitsrttm ctm metadata loaderprotocol-based data iteration
speaker-diarizationmultimedia-datasetsprotocol-framework

More Database packages

Further reading