TaoRuijie / ECAPA-TDNN

Unofficial reimplementation of ECAPA-TDNN for speaker recognition (EER=0.86 for Vox1_O when train only in Vox2)
MIT License
581 stars 111 forks source link

模型输入不统一? #40

Closed JJun-Guo closed 1 year ago

JJun-Guo commented 1 year ago

我看到推理代码中: with torch.no_grad(): embedding_1 = self.speaker_encoder.forward(data_1, aug = False) embedding_1 = F.normalize(embedding_1, p=2, dim=1) embedding_2 = self.speaker_encoder.forward(data_2, aug = False) embedding_2 = F.normalize(embedding_2, p=2, dim=1) embeddings[file] = [embedding_1, embedding_2] 其中,data1是语音全部的数据,data2是分割后又stack的数据。对于不同长度的语音,data1和data2是没有规定长度的?都可以输入到self.speaker_encoder.forward计算embedding???

TaoRuijie commented 1 year ago

请check这里 https://github.com/TaoRuijie/ECAPA-TDNN/issues/34#issuecomment-1150600809 mse的内容可以参考对应文章

Beijing ZKJ-NPU Speaker Verification System for VoxCeleb Speaker Recognition Challenge 2021

JJun-Guo commented 1 year ago

请check这里 #34 (comment) mse的内容可以参考对应文章

Beijing ZKJ-NPU Speaker Verification System for VoxCeleb Speaker Recognition Challenge 2021

好的,感谢您的回复!如果我对模型进行fine-tune一个新的speaker的话,n_class这个参数是不是设为1就可以了?

TaoRuijie commented 1 year ago

理论上我并不觉得这么finetune是合理的

即使要要这么做,也要在dataloader里把新的speaker赋予大于原speaker数目的类别标签,如5995.

JJun-Guo commented 1 year ago

理论上我并不觉得这么finetune是合理的

即使要要这么做,也要在dataloader里把新的speaker赋予大于原speaker数目的类别标签,如5995.

您觉得不合理是指speaker的数量太少会使模型坍塌到该speaker吗?还是说finetune的数据量(speaker下的语音数据)不能过小?

TaoRuijie commented 1 year ago

我没有读过用多一类来finetune的做法 所以我不能确定会有好的结果

JJun-Guo commented 1 year ago

我没有读过用多一类来finetune的做法 所以我不能确定会有好的结果

明白!您尝试过将vad应用到声纹识别场景吗?理论上是需要vad去除一些干扰音再进行比对?

TaoRuijie commented 1 year ago

voxceleb2不需要这一步,请阅读一些比赛的相关的报告