---
title: speech_tdnn_sv_en_voxceleb_16k
canonical_url: "https://www.modelscope.cn/models/iic/speech_tdnn_sv_en_voxceleb_16k"
md_url: "https://www.modelscope.cn/models/iic/speech_tdnn_sv_en_voxceleb_16k.md"
repository: iic/speech_tdnn_sv_en_voxceleb_16k
chinese_name: "TDNN说话人确认-英文-VoxCeleb-16k-离线-pytorch"
last_updated: 2024-05-24
license: "Apache License 2.0"
pipeline_tag: speaker-verification
tasks:
  - speaker-verification
model_type:
  - X-vector
library_name:
  - pytorch
frameworks:
  - pytorch
language:
  - en
domain:
  - audio
downloads: 388
stars: 4
tags:
  - X-vector
---

# speech_tdnn_sv_en_voxceleb_16k

> speech_tdnn_sv_en_voxceleb_16k - iic 在 ModelScope 开源的模型。TDNN模型是说话人识别领域的开山之作，该模型在公开英文数据集VoxCeleb进行训练，适用于16k英文测试数据，可以用于说话人确认、说话人日志等任务。

iic/speech_tdnn_sv_en_voxceleb_16k 是 ModelScope 魔搭社区上的speaker-verification模型，采用 Apache License 2.0 许可。

- **Repository**: iic/speech_tdnn_sv_en_voxceleb_16k
- **License**: Apache License 2.0
- **Tasks**: speaker-verification
- **Tags**: X-vector
- **Downloads**: 388
- **Stars**: 4
- **Last updated**: 2024-05-24

Source: https://www.modelscope.cn/models/iic/speech_tdnn_sv_en_voxceleb_16k

---

## X-vector 说话人识别模型
X-vector系统是说话人识别中最为经典的系统之一，是首个通过深度神经网络来提取说话人矢量的框架，相较于I-vector和GMM-UBM识别性能大幅提升。一般分为帧处理层，池化层，段处理层和分类层，当前的主流模型都是基于其框架改进而来。

### 模型简述
帧处理层使用一维卷积网络提取帧级别特征，池化层将帧级别特征变换成段级别特征，段处理层进一步进行特征变换，分类层将说话人矢量分到各说话人标签中。

<div align=center>
<img src="images/tdnn.png" width="400" />
</div>

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

### 模型效果评估
- 选择EER、minDCF作为客观评价指标。
- 在VoxCeleb1-O测试集上，EER = 2.22%，minDCF(p_target=0.01, c_miss=c_fa=1) = 0.213。

### 在线体验
在页面右侧，可以在“在线体验”栏内看到我们预先准备好的示例音频，点击播放按钮可以试听，点击“执行测试”按钮，会在下方“测试结果”栏中显示相似度得分(范围为[-1,1])和是否判断为同一个人。如果您想要测试自己的音频，可点“更换音频”按钮，选择上传或录制一段音频，完成后点击执行测试，识别内容将会在测试结果栏中显示。

### 在Notebook中体验
```python
from modelscope.pipelines import pipeline
sv_pipline = pipeline(
    task='speaker-verification',
    model='iic/speech_tdnn_sv_en_voxceleb_16k'
)
speaker1_a_wav = 'https://modelscope.cn/api/v1/models/damo/speech_ecapa-tdnn_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_ecapa-tdnn_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_ecapa-tdnn_sv_en_voxceleb_16k/repo?Revision=master&FilePath=examples/speaker2_a_en_16k.wav'
# 相同说话人语音
result = sv_pipline([speaker1_a_wav, speaker1_b_wav])
print(result)
# 不同说话人语音
result = sv_pipline([speaker1_a_wav, speaker2_a_wav])
print(result)
# 可以自定义得分阈值来进行识别-
result = sv_pipline([speaker1_a_wav, speaker2_a_wav], thr=0.356)
print(result)
```

### 训练和测试自己的TDNN模型
本项目已在[3D-Speaker](https://github.com/alibaba-damo-academy/3D-Speaker)开源了训练、测试和推理代码，使用者可按下面方式下载安装使用：
``` sh
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
```

运行TDNN在VoxCeleb集上的训练脚本
``` sh
cd egs/voxceleb/sv-xvector
# 需要在run.sh中提前配置训练使用的GPU信息，默认是8卡
bash run.sh
```

### 3D-Speaker 开发者社区钉钉群
<div align=left>
<img src="images/ding.png" width="350" />
</div>
