This directory contains code to import and evaluate the speaker identification and verification models pretrained on the VoxCeleb(1 & 2) datasets as described in the following papers (1 and 2):
[1] A. Nagrani*, J. S. Chung*, A. Zisserman, VoxCeleb: a large-scale speaker identification dataset,
INTERSPEECH, 2017
[2] J. S. Chung*, A. Nagrani*, A. Zisserman, VoxCeleb2: Deep Speaker Recognition,
INTERSPEECH, 2018
The models trained for verification map voice spectrograms to a compact Euclidean space where distances directly correspond to a measure of speaker similarity. Such embeddings can be used for tasks such as speaker verification, clustering and diarisation.
[1] Matlab
[2] Matconvnet.
The easiest way to use the code in this repo is with the vl_contrib
package
manager. To install, follow these steps:
Install and compile matconvnet by following instructions here.
Run:
vl_contrib install VGGVox
vl_contrib setup VGGVox
.wav
audio files:demo_vggvox_identif
demo_vggvox_verif
demo_vggvox_verif_voxceleb2
The matconvnet models can also be downloaded directly using the following links:
Model trained for identification on VoxCeleb1
Model trained for verification on VoxCeleb1
Model trained for verification on VoxCeleb2 (this is a resnet based model)
These models have been pretrained on the VoxCeleb (1&2) datasets. VoxCeleb contains over 1 million utterances for 7,000+ celebrities, extracted from videos uploaded to YouTube. The speakers span a wide range of different ethnicities, accents, professions and ages. The dataset can be downloaded directly from here.
If you use this code then please cite:
@InProceedings{Nagrani17,
author = "Nagrani, A. and Chung, J.~S. and Zisserman, A.",
title = "VoxCeleb: a large-scale speaker identification dataset",
booktitle = "INTERSPEECH",
year = "2017",
}
@InProceedings{Nagrani17,
author = "Chung, J.~S. and Nagrani, A. and Zisserman, A.",
title = "VoxCeleb2: Deep Speaker Recognition",
booktitle = "INTERSPEECH",
year = "2018",
}
Note - since we take only the magnitude of the spectrogram, the matlab functions here to extract spectrograms provide mirrored spectrograms (along the freq axis). This has been fixed in later models where we chop the spectrograms in half before feeding them into the network.