ECAPATDNN说话人确认-英文-VoxCeleb-16k

我要开发同款
匿名用户2024年07月31日
34阅读
所属分类ai、ecapa-tdnn、pytorch、VoxCeleb、ECAPA-TDNN、speaker verification、audio
开源地址https://modelscope.cn/models/iic/speech_ecapa-tdnn_sv_en_voxceleb_16k
授权协议Apache License 2.0

作品详情

ECAPA-TDNN说话人模型

ECAPA-TDNN模型是基于时延神经网络构建的说话人模型,由于识别性能优异,已经被广泛使用在说话人识别领域中。该模型还可以用于说话人确认、说话人日志等任务。

模型结构简述

ECAPA-TDNN在传统的TDNN模型上有3种改进。第一,融合了一维的Res2Net层和Squeeze-and-Excitation模块,对特征channel之间的关系进行建模。第二,融合多个层级特征,同时利用网络浅层和深层的信息。第三,采用了基于attention机制的pooling层,生成基于全局attention的说话人特征。

更详细的信息见

训练数据

本模型使用公开的英文说话人数据集VoxCeleb2进行训练,可以对16k采样率的英文音频进行说话人识别。

模型效果评估

  • 选择EER、minDCF作为客观评价指标。
  • 在VoxCeleb1-O测试集上,EER = 0.862%,minDCF(ptarget=0.01, cmiss=c_fa=1) = 0.094。

快速体验模型效果

在Notebook中体验

对于有开发需求的使用者,特别推荐您使用Notebook进行离线处理。先登录ModelScope账号,点击模型页面右上角的“在Notebook中打开”按钮出现对话框,首次使用会提示您关联阿里云账号,按提示操作即可。关联账号后可进入选择启动实例界面,选择计算资源,建立实例,待实例创建完成后进入开发环境,输入api调用实例。

from modelscope.pipelines import pipeline
sv_pipeline = pipeline(
    task='speaker-verification',
    model='damo/speech_ecapa-tdnn_sv_en_voxceleb_16k'
)
speaker1_a_wav = 'https://modelscope.cn/api/v1/models/damo/speech_campplus_sv_en_voxceleb_16k/repo?Revision=master&FilePath=examples/speaker1_a_en_16k.wav'
speaker1_b_wav = 'https://modelscope.cn/api/v1/models/damo/speech_campplus_sv_en_voxceleb_16k/repo?Revision=master&FilePath=examples/speaker1_b_en_16k.wav'
speaker2_a_wav = 'https://modelscope.cn/api/v1/models/damo/speech_campplus_sv_en_voxceleb_16k/repo?Revision=master&FilePath=examples/speaker2_a_en_16k.wav'
# 相同说话人语音
result = sv_pipeline([speaker1_a_wav, speaker1_b_wav])
print(result)
# 不同说话人语音
result = sv_pipeline([speaker1_a_wav, speaker2_a_wav])
print(result)
# 可以自定义得分阈值来进行识别
result = sv_pipeline([speaker1_a_wav, speaker2_a_wav], thr=0.6)
print(result)

训练和测试自己的ECAPA-TDNN模型

已在3D-Speaker开源了训练、测试和推理代码,使用者可按下面方式下载安装使用:

git clone https://github.com/alibaba-damo-academy/3D-Speaker.git && cd 3D-Speaker
conda create -n 3D-Speaker python=3.8
conda activate 3D-Speaker
pip install -r requirements.txt

运行ECAPA-TDNN在VoxCeleb集上的训练脚本

cd egs/voxceleb/sv-ecapa
bash run.sh

使用本预训练模型快速提取embedding

pip install modelscope
cd 3D-Speaker
# 配置模型名称并指定wav路径,wav路径可以是单个wav,也可以包含多条wav路径的list文件
model_id=damo/speech_ecapa-tdnn_sv_en_voxceleb_16k
# 提取embedding
python speakerlab/bin/infer_sv.py --model_id $model_id --wavs $wav_path

3D-Speaker 开发者社区钉钉群

```

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论