|
--- |
|
license: cc-by-4.0 |
|
language: |
|
- en |
|
pipeline_tag: summarization |
|
tags: |
|
- speaker embedding |
|
- wespeaker |
|
- speaker modelling |
|
--- |
|
|
|
|
|
Official model provided by [Wespeaker](https://github.com/wenet-e2e/wespeaker) project, ECAPA-TDNN based x-vector (After large margin finetune) |
|
|
|
The model is trained on VoxCeleb2 Dev dataset, containing 5994 speakers. |
|
|
|
|
|
## Model Sources |
|
|
|
<!-- Provide the basic links for the model. --> |
|
|
|
- **Repository:** https://github.com/wenet-e2e/wespeaker |
|
- **Paper:** https://arxiv.org/pdf/2210.17016.pdf |
|
- **Demo:** https://huggingface.co/spaces/wenet/wespeaker_demo |
|
|
|
|
|
## Results on VoxCeleb |
|
| Model | Params | Flops | LM | AS-Norm | vox1-O-clean | vox1-E-clean | vox1-H-clean | |
|
|:------|:------:|:------|:--:|:-------:|:------------:|:------------:|:------------:| |
|
| ECAPA_TDNN_GLOB_c512-ASTP-emb192 | 6.19M | 1.04G | Γ | Γ | 1.069 | 1.209 | 2.310 | |
|
| | | | Γ | β | 0.957 | 1.128 | 2.105 | |
|
| | | | β | Γ | 0.878 | 1.072 | 2.007 | |
|
| | | | β | β | 0.782 | 1.005 | 1.824 | |
|
|
|
## Install Wespeaker |
|
|
|
``` sh |
|
pip install git+https://github.com/wenet-e2e/wespeaker.git |
|
``` |
|
|
|
for development install: |
|
|
|
``` sh |
|
git clone https://github.com/wenet-e2e/wespeaker.git |
|
cd wespeaker |
|
pip install -e . |
|
``` |
|
|
|
|
|
### Command line Usage |
|
|
|
``` sh |
|
$ wespeaker -p ecapa_tdnn512_download_dir --task embedding --audio_file audio.wav --output_file embedding.txt |
|
$ wespeaker -p ecapa_tdnn512_download_dir --task embedding_kaldi --wav_scp wav.scp --output_file /path/to/embedding |
|
$ wespeaker -p ecapa_tdnn512_download_dir --task similarity --audio_file audio.wav --audio_file2 audio2.wav |
|
$ wespeaker -p ecapa_tdnn512_download_dir --task diarization --audio_file audio.wav |
|
``` |
|
|
|
### Python Programming Usage |
|
|
|
``` python |
|
import wespeaker |
|
|
|
model = wespeaker.load_model_local(ecapa_tdnn512_download_dir) |
|
# set_gpu to enable the cuda inference, number < 0 means using CPU |
|
model.set_gpu(0) |
|
|
|
# embedding/embedding_kaldi/similarity/diarization |
|
embedding = model.extract_embedding('audio.wav') |
|
utt_names, embeddings = model.extract_embedding_list('wav.scp') |
|
similarity = model.compute_similarity('audio1.wav', 'audio2.wav') |
|
diar_result = model.diarize('audio.wav') |
|
|
|
# register and recognize |
|
model.register('spk1', 'spk1_audio1.wav') |
|
model.register('spk2', 'spk2_audio1.wav') |
|
model.register('spk3', 'spk3_audio1.wav') |
|
result = model.recognize('spk1_audio2.wav') |
|
``` |
|
|
|
## Citation |
|
|
|
|
|
```bibtex |
|
@article{desplanques2020ecapa, |
|
title={Ecapa-tdnn: Emphasized channel attention, propagation and aggregation in tdnn based speaker verification}, |
|
author={Desplanques, Brecht and Thienpondt, Jenthe and Demuynck, Kris}, |
|
journal={arXiv preprint arXiv:2005.07143}, |
|
year={2020} |
|
} |
|
|
|
@inproceedings{wang2023wespeaker, |
|
title={Wespeaker: A research and production oriented speaker embedding learning toolkit}, |
|
author={Wang, Hongji and Liang, Chengdong and Wang, Shuai and Chen, Zhengyang and Zhang, Binbin and Xiang, Xu and Deng, Yanlei and Qian, Yanmin}, |
|
booktitle={IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, |
|
pages={1--5}, |
|
year={2023}, |
|
organization={IEEE} |
|
} |
|
``` |
|
|