Downloads · 30 days
0
theolepage/wavlm_ssl_sv
wavlm_ssl_sv is a machine learning model from theolepage. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
This repository contains the source code of the article Towards Supervised Performance on Speaker Verification with Self-Supervised Learning by Leveraging Large-Scale ASR Models (INTERSPEECH 2024) [[arXiv]](https://ar…
Downloads · 30 days
0
Access
Public
Updated Sep 19, 2024
Repo size
—
Likes
6
Public
Click a slice to open those files.
.svg744 KB · 84%
From the Hugging Face model README
This repository contains the source code of the article Towards Supervised Performance on Speaker Verification with Self-Supervised Learning by Leveraging Large-Scale ASR Models (INTERSPEECH 2024) [arXiv].
The proposed framework fine-tunes a pre-trained WavLM using pseudo-labels, generated through Self-Supervised Learning (SSL), for Speaker Verification (SV). Initial pseudo-labels are derived from an SSL DINO-based model and are iteratively refined by clustering the model embeddings.
<p align="center"> <img src="training_framework.svg" width=900 /> </p>Our method achieves 0.99% EER on VoxCeleb1-O, establishing the new SOTA on Speaker Verification with SSL.
Please refer to the article for more details on the implementation and a comparative study with other works.
pip install -r requirements.txt.WavLM-Base+.pt at the root folder.The code to train the DINO model is not currently provided. We recommend using sslsv or 3D-Speaker to extract initial speaker embeddings.
Alternatively, you can directly download the DINO embeddings we used for our system: dino_vox2_embeddings.pt.
Note: the embeddings file must be a Dict[str, torch.Tensor] representing all VoxCeleb2 samples with the following format for keys: id00012/21Uxsk56VDQ/00001.wav.
python pseudo_labeling.py PATH_TO_EMBEDDINGS_FILE PATH_TO_PL_FILE
python trainSpeakerNet.py --config configs/wavlm_mhfa_dlg_lc.yaml --train_list PATH_TO_PL_FILE --distributed
Extract embeddings from the WavLM MHFA model:
python trainSpeakerNet_Eval.py --config configs/wavlm_mhfa_dlg_lc.yaml --generate_embeddings --embeddings_path PATH_TO_EMBEDDINGS_FILE.
Repeat steps 2 and 3. Make sure to change save_path in the config to avoid overwriting the existing model.
Copy the latest model checkpoint to exp/wavlm_mhfa_dlg_lc_lmft/model to resume training.
Start training: python trainSpeakerNet.py --config configs/wavlm_mhfa_dlg_lc_lmft.yaml --train_list PATH_TO_PL_FILE --distributed.
python trainSpeakerNet_Eval.py --config configs/wavlm_mhfa_dlg_lc_lmft.yaml --eval
The checkpoint of our best model reaching 0.99% EER on VoxCeleb1-O is available for download: wavlm_mhfa_dlg_lc_lmft.
This repository contains third-party components and code adapted from other open-source projects, including: SLT22_MultiHead-Factorized-Attentive-Pooling and Loss-Gated-Learning.
If you use this project, please consider starring this repository on GitHub and citing the following paper.
@InProceedings{miara2024WavLMSSLSV,
author = {Miara, Victor and Lepage, Théo and Dehak, Réda},
booktitle = {INTERSPEECH},
title = {Towards Supervised Performance on Speaker Verification with Self-Supervised Learning by Leveraging Large-Scale ASR Models},
year = {2024},
url = {https://arxiv.org/abs/2406.02285},
}
This project is released under the MIT License.