/ Модель

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

Размер весов
96,4 МБ
Лицензия
MIT
Опубликована
2 мар 2022

embedding

Эмбеддинги3 профессии

Модель pyannote извлекает голосовые эмбеддинги для распознавания, идентификации и верификации говорящих.

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

Бенчмарки

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

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

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

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

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

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

pyannote/embedding — модель для извлечения голосовых эмбеддингов, разработанная командой pyannote и основанная на pyannote.audio 2.1. Она предназначена для задач распознавания, идентификации и верификации говорящих по аудиозаписям: эмбеддинги можно сравнивать, например, косинусным расстоянием.

Архитектура модели — x-vector на базе TDNN с обучаемыми признаками SincNet вместо фильтровых банков. В README сообщается о равной ошибке (EER) 2,8% на тестовом наборе VoxCeleb 1 при использовании косинусного расстояния, без VAD и PLDA; добавление этих компонентов может улучшить результат. Модель распространяется в формате PyTorch под лицензией MIT, при этом для загрузки необходимо принять условия доступа на Hugging Face.

Сценарии применения

  • сравнение голосов для проверки личности говорящего
  • идентификация говорящего по аудиозаписи
  • извлечение признаков голоса для последующей кластеризации говорящих

Ограничения

Заявленный показатель EER 2,8% получен на VoxCeleb 1 без VAD и PLDA; качество на других данных может отличаться. Для загрузки нужно принять условия доступа на Hugging Face.

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

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

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

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

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

Открыть на Hugging Face

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

🎹 Speaker embedding

Relies on pyannote.audio 2.1: see installation instructions.

This model is based on the canonical x-vector TDNN-based architecture, but with filter banks replaced with trainable SincNet features. See XVectorSincNet architecture for implementation details.

Basic usage

# 1. visit hf.co/pyannote/embedding and accept user conditions
# 2. visit hf.co/settings/tokens to create an access token
# 3. instantiate pretrained model
from pyannote.audio import Model
model = Model.from_pretrained("pyannote/embedding", 
                              use_auth_token="ACCESS_TOKEN_GOES_HERE")
from pyannote.audio import Inference
inference = Inference(model, window="whole")
embedding1 = inference("speaker1.wav")
embedding2 = inference("speaker2.wav")
# `embeddingX` is (1 x D) numpy array extracted from the file as a whole.

from scipy.spatial.distance import cdist
distance = cdist(embedding1, embedding2, metric="cosine")[0,0]
# `distance` is a `float` describing how dissimilar speakers 1 and 2 are.

Using cosine distance directly, this model reaches 2.8% equal error rate (EER) on VoxCeleb 1 test set.
This is without voice activity detection (VAD) nor probabilistic linear discriminant analysis (PLDA). Expect even better results when adding one of those.

Advanced usage

Running on GPU

import torch
inference.to(torch.device("cuda"))
embedding = inference("audio.wav")

Extract embedding from an excerpt

from pyannote.audio import Inference
from pyannote.core import Segment
inference = Inference(model, window="whole")
excerpt = Segment(13.37, 19.81)
embedding = inference.crop("audio.wav", excerpt)
# `embedding` is (1 x D) numpy array extracted from the file excerpt.

Extract embeddings using a sliding window

from pyannote.audio import Inference
inference = Inference(model, window="sliding",
                      duration=3.0, step=1.0)
embeddings = inference("audio.wav")
# `embeddings` is a (N x D) pyannote.core.SlidingWindowFeature
# `embeddings[i]` is the embedding of the ith position of the 
# sliding window, i.e. from [i * step, i * step + duration].

Citation

@inproceedings{Bredin2020,
  Title = {{pyannote.audio: neural building blocks for speaker diarization}},
  Author = {{Bredin}, Herv{\'e} and {Yin}, Ruiqing and {Coria}, Juan Manuel and {Gelly}, Gregory and {Korshunov}, Pavel and {Lavechin}, Marvin and {Fustes}, Diego and {Titeux}, Hadrien and {Bouaziz}, Wassim and {Gill}, Marie-Philippe},
  Booktitle = {ICASSP 2020, IEEE International Conference on Acoustics, Speech, and Signal Processing},
  Address = {Barcelona, Spain},
  Month = {May},
  Year = {2020},
}
@inproceedings{Coria2020,
    author="Coria, Juan M. and Bredin, Herv{\'e} and Ghannay, Sahar and Rosset, Sophie",
    editor="Espinosa-Anke, Luis and Mart{\'i}n-Vide, Carlos and Spasi{\'{c}}, Irena",
    title="{A Comparison of Metric Learning Loss Functions for End-To-End Speaker Verification}",
    booktitle="Statistical Language and Speech Processing",
    year="2020",
    publisher="Springer International Publishing",
    pages="137--148",
    isbn="978-3-030-59430-5"
}

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

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

GPU в ailist

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

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

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

Ревизия весов
4db4899

0 моделей