Speech

pyannote

Open-source Python-библиотека для диаризации и сегментации речи, лидер по качеству среди open-source решений.

Что такое pyannote.audio

pyannote.audio — Python-библиотека с открытым исходным кодом для задач обработки речи: диаризация спикеров, сегментация, VAD, speaker embedding. Разработана командой Herv Bredin и широко используется в academia и production.

Основана на PyTorch. Предобученные модели доступны через Hugging Face Hub.

Установка и базовое использование

pip install pyannote.audio
from pyannote.audio import Pipeline

# Загрузить предобученный pipeline диаризации
pipeline = Pipeline.from_pretrained(
    "pyannote/speaker-diarization-3.1",
    use_auth_token="HF_TOKEN"  # Требуется согласие с условиями на HF
)

# Переместить на GPU для ускорения
pipeline.to(torch.device("cuda"))

# Диаризация
diarization = pipeline("meeting.wav")

# Результат
for turn, _, speaker in diarization.itertracks(yield_label=True):
    print(f"[{turn.start:.1f}s → {turn.end:.1f}s] {speaker}")

Компоненты pipeline

pyannote.audio предоставляет как готовые pipeline, так и отдельные модели:

  • pyannote/segmentation-3.0: сегментация + VAD + overlapping speech detection
  • pyannote/speaker-diarization-3.1: полный pipeline диаризации
  • speechbrain/spkrec-ecapa-voxceleb: speaker embedding (интегрирован в pyannote)

Диаризация + транскрипция (пример)

from pyannote.audio import Pipeline
from faster_whisper import WhisperModel

diarize_pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization-3.1")
asr_model = WhisperModel("large-v3", device="cuda")

# Диаризация
diarization = diarize_pipeline("audio.wav")

# Транскрипция
segments, _ = asr_model.transcribe("audio.wav", word_timestamps=True)

# Объединение по времени — назначить спикера каждому слову
# (реализация пересечения временных отрезков)

Производительность

На GPU (RTX 4090, 1-часовой файл): ≈ 30–60 секунд. На CPU: несколько минут.

Точность (DER) pyannote/speaker-diarization-3.1 на стандартных бенчмарках: ≈ 15–20% DER для «сложных» (многоспикерных) записей.

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер