Downloads · 30 days
0
mechanicalsea/efficient-tdnn
efficient-tdnn is a machine learning model from mechanicalsea. 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 provides all the necessary tools to perform speaker verification with a NAS alternative, named as EfficientTDNN. The system can be used to extract speaker embeddings with different model size. It is tr…
Downloads · 30 days
0
Access
Public
Updated Aug 24, 2022
Repo size
144 MB
Likes
4
Public
Click a slice to open those files.
.torchparams140 MB · 98%
From the Hugging Face model README
This repository provides all the necessary tools to perform speaker verification with a NAS alternative, named as EfficientTDNN. The system can be used to extract speaker embeddings with different model size. It is trained on Voxceleb2 training data using data augmentation. The model performance on Voxceleb1-test set(Cleaned)/Vox1-O are reported as follows.
| Supernet Stage | Subnet | MACs (3s) | Params | EER(%) | minDCF |
|---|---|---|---|---|---|
| depth | Base | 1.45G | 5.79M | 0.94 | 0.089 |
| width 1 | Mobile | 570.98M | 2.42M | 1.41 | 0.124 |
| width 2 | Small | 204.07M | 899.20K | 2.20 | 0.219 |
The details of three subnets are:
import torch
from sugar.models import WrappedModel
wav_input_16khz = torch.randn(1,10000).cuda()
repo_id = "mechanicalsea/efficient-tdnn"
supernet_filename = "depth/depth.torchparams"
subnet_filename = "depth/depth.ecapa-tdnn.3.512.512.512.512.5.3.3.3.1536.bn.tar"
subnet, info = WrappedModel.from_pretrained(repo_id=repo_id, supernet_filename=supernet_filename, subnet_filename=subnet_filename)
subnet = subnet.cuda()
subnet = subnet.eval()
embedding = subnet(wav_input_16khz)
To perform inference on the GPU, add subnet = subnet.to(device) after calling the from_pretrained method.
Models are listed as follows.
kernel/kernel.torchparams.depth/depth.torchparams.width1/width1.torchparams.width2/width2.torchparams.Furthermore, some subnets are given in the form of the weights of batchnorm corresponding to their trained supernets as follows.
kernel/kernel.max.bn.tarkernel/kernel.Kmin.bn.tardepth/depth.max.bn.tardepth/depth.Kmin.bn.tardepth/depth.Dmin.bn.tardepth/depth.3.512.5.5.3.3.1536.bn.tardepth/depth.ecapa-tdnn.3.512.512.512.512.5.3.3.3.1536.bn.tarwidth1/width1.torchparamswidth1/width1.max.bn.tarwidth1/width1.Kmin.bn.tarwidth1/width1.Dmin.bn.tarwidth1/width1.C1min.bn.tarwidth1/width1.3.383.256.256.256.5.3.3.3.768.bn.tarwidth2/width2.max.bn.tarwidth2/width2.Kmin.bn.tarwidth2/width2.Dmin.bn.tarwidth2/width2.C1min.bn.tarwidth2/width2.C2min.bn.tarwidth2/width2.3.384.3.1152.bn.tarwidth2/width2.3.256.256.384.384.1.3.5.3.1152.bn.tarwidth2/width2.2.256.256.256.3.3.3.400.bn.tarThe tag is described as follows.
More details about EfficentTDNN can be found in the paper EfficientTDNN.
Please, cite EfficientTDNN if you use it for your research or business.
@article{wr-efficienttdnn-2022,
author={Wang, Rui and Wei, Zhihua and Duan, Haoran and Ji, Shouling and Long, Yang and Hong, Zhen},
journal={IEEE/ACM Transactions on Audio, Speech, and Language Processing},
title={EfficientTDNN: Efficient Architecture Search for Speaker Recognition},
year={2022},
volume={30},
number={},
pages={2267-2279},
doi={10.1109/TASLP.2022.3182856}}