/ Модель

Характеристики

Лицензия
MIT
Опубликована
22 сен 2023

speaker-diarization-3.0

Распознавание речиАудио → текст8 профессий

pyannote/speaker-diarization-3.0 — открытый конвейер для автоматической диаризации речи, разработанный Séverin Baroudi с использованием pyannote.audio 3.0.0.

186 тыс.скачиваний за 30 дней229лайковвеса обновлены10 мая 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Модель определяет временные интервалы речи и связывает их с отдельными говорящими, формируя разметку Annotation. Она предназначена для анализа разговоров, встреч, интервью, совещаний и других многоголосых аудиозаписей, в том числе как этап подготовки данных для автоматического распознавания речи.

Конвейер принимает монофонический звук с частотой 16 кГц; стерео- и многоканальные записи автоматически сводятся в моно, а аудио с другой частотой дискретизации пересчитывается в 16 кГц. В состав входят автоматическое обнаружение речи, обнаружение смены говорящего и обработка перекрывающейся речи. Количество говорящих обычно определяется автоматически, но его можно задать или ограничить параметрами min_speakers и max_speakers. Обучение проводилось на комбинации наборов AISHELL, AliMeeting, AMI, AVA-AVD, DIHARD, Ego4D, MSDWild, REPERE и VoxConverse.

Сильные стороны модели — полностью автоматическая обработка без ручного VAD и обязательного указания числа говорящих, поддержка перекрывающейся речи и возможность ускорения на GPU. В README указано, что на Nvidia Tesla V100 и Intel Cascade Lake обработка занимает примерно 1,5 минуты на час разговора. Ограничения включают необходимость работы через pyannote.audio 3.0, использование токена Hugging Face и принятие условий доступа для связанных моделей. Модель распространяется по лицензии MIT, однако для её использования требуется пройти gated-доступ на Hugging Face.

Для каких профессий подходит8

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Using this open-source model in production?
Consider switching to pyannoteAI for better and faster options.

🎹 Speaker diarization 3.0

This pipeline has been trained by Séverin Baroudi with pyannote.audio 3.0.0 using a combination of the training sets of AISHELL, AliMeeting, AMI, AVA-AVD, DIHARD, Ego4D, MSDWild, REPERE, and VoxConverse.

It ingests mono audio sampled at 16kHz and outputs speaker diarization as an Annotation instance:

  • 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.

Requirements

  1. Install pyannote.audio 3.0 with pip install pyannote.audio
  2. Accept pyannote/segmentation-3.0 user conditions
  3. Accept pyannote/speaker-diarization-3.0 user conditions
  4. Create access token at hf.co/settings/tokens.

Usage

# instantiate the pipeline
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained(
  "pyannote/speaker-diarization-3.0",
  use_auth_token="HUGGINGFACE_ACCESS_TOKEN_GOES_HERE")

# run the pipeline on an audio file
diarization = pipeline("audio.wav")

# dump the diarization output to disk using RTTM format
with open("audio.rttm", "w") as rttm:
    diarization.write_rttm(rttm)

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"))

Real-time factor is around 2.5% using one Nvidia Tesla V100 SXM2 GPU (for the neural inference part) and one Intel Cascade Lake 6248 CPU (for the clustering part).

In other words, it takes approximately 1.5 minutes to process a one hour conversation.

Processing from memory

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

waveform, sample_rate = torchaudio.load("audio.wav")
diarization = 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:
    diarization = 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:

diarization = 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:

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

Benchmark

This pipeline has been benchmarked on a large collection of datasets.

Processing is fully automatic:

  • no manual voice activity detection (as is sometimes the case in the literature)
  • no manual number of speakers (though it is possible to provide it to the pipeline)
  • no fine-tuning of the internal models nor tuning of the pipeline hyper-parameters to each dataset

... with the least forgiving diarization error rate (DER) setup (named "Full" in this paper):

  • no forgiveness collar
  • evaluation of overlapped speech
BenchmarkDER%FA%Miss%Conf%Expected outputFile-level evaluation
AISHELL-412.33.84.44.1RTTMeval
AliMeeting (channel 1)24.34.410.09.9RTTMeval
AMI (headset mix, only_words)19.03.69.55.9RTTMeval
AMI (array1, channel 1, only_words)22.23.811.27.3RTTMeval
AVA-AVD49.110.815.722.5RTTMeval
DIHARD 3 (Full)21.76.28.17.3RTTMeval
MSDWild24.65.88.010.7RTTMeval
REPERE (phase 2)7.81.82.63.5RTTMeval
VoxConverse (v0.3)11.34.13.43.8RTTMeval

Citations

@inproceedings{Plaquet23,
  author={Alexis Plaquet and Hervé Bredin},
  title={{Powerset multi-class cross entropy loss for neural speaker diarization}},
  year=2023,
  booktitle={Proc. INTERSPEECH 2023},
}
@inproceedings{Bredin23,
  author={Hervé Bredin},
  title={{pyannote.audio 2.1 speaker diarization pipeline: principle, benchmark, and recipe}},
  year=2023,
  booktitle={Proc. INTERSPEECH 2023},
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Модели pyannote требуют отдельного рантайма.

Ревизия весов
61bc5e8

0 моделей