Downloads · 30 days
14
58% of all-time downloads
lovehunter9/pyannote-embedding
pyannote-embedding is a machine learning model from lovehunter9. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for pyannote-audio. The card lists the license as mit.
Using this open-source model in production? Consider switching to pyannoteAI for better and faster options.
Downloads · 30 days
14
58% of all-time downloads
All-time downloads
24
Public
Repo size
102 MB
Likes
0
Public
Click a slice to open those files.
.bin102 MB · 100%
From the Hugging Face model README
Using this open-source model in production?
Consider switching to pyannoteAI for better and faster options.
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.
# 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.
import torch
inference.to(torch.device("cuda"))
embedding = inference("audio.wav")
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.
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].
@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"
}
This repository is an unmodified copy of pyannote/embedding
at commit 4db4899737a38b2d618bbd74350915aa10293cb2, mirrored on 2026-08-12 so that it can be fetched without
the upstream access form. No weights, configuration or licence terms were changed;
all credit and the original licence remain with the upstream authors.