spkrec-xvect-voxceleb项目介绍
项目背景
spkrec-xvect-voxceleb项目是一个基于xvector嵌入的说话人验证与识别系统。它利用预训练的TDNN模型和SpeechBrain工具包,通过Voxceleb数据集实现说话人嵌入提取。这一项目主要适用于说话人识别与验证的任务,比如在音频文件中识别特定说话者或验证其身份。
模型与数据集
- 数据集: 该系统使用了Voxceleb 1和Voxceleb 2数据集,并在Voxceleb 1的测试集上进行测试。
- 模型: 模型使用了TDNN(时间延迟神经网络),结合了统计池化层来进行有效的说话人特征提取。
- 性能指标: 在Voxceleb 1的测试集上,该模型的等错误率(EER)为3.2%。
项目安装与使用
安装SpeechBrain
要使用该项目,首先需要安装SpeechBrain工具包。可以通过以下命令安装:
pip install speechbrain
计算说话人嵌入
一旦安装了SpeechBrain,用户可以利用以下Python代码来计算音频中的说话人嵌入:
import torchaudio
from speechbrain.inference.speaker import EncoderClassifier
classifier = EncoderClassifier.from_hparams(source="speechbrain/spkrec-xvect-voxceleb", savedir="pretrained_models/spkrec-xvect-voxceleb")
signal, fs = torchaudio.load('tests/samples/ASR/spk1_snt1.wav')
embeddings = classifier.encode_batch(signal)
这个过程会自动对音频进行归一化(包括重采样和单通道选择)。
GPU推理
如果需要在GPU上进行推理,可以在调用from_hparams
方法时添加run_opts={"device":"cuda"}
选项。
模型训练
用户也可以自行训练模型。以下是训练步骤:
-
克隆SpeechBrain项目:
git clone https://github.com/speechbrain/speechbrain/
-
安装必要的依赖:
cd speechbrain pip install -r requirements.txt pip install -e .
-
运行训练:
cd recipes/VoxCeleb/SpeakerRec/ python train_speaker_embeddings.py hparams/train_x_vectors.yaml --data_folder=your_data_folder
有关训练结果(模型、日志等)可以在此处找到。
项目限制
项目团队对于该模型在其他数据集上的表现不提供任何性能保证。
xvectors的引用
在应用该项目或进行研究时,如需引用xvectors的相关工作,请参考以下文献:
@inproceedings{DBLP:conf/odyssey/SnyderGMSPK18,
author = {David Snyder and
Daniel Garcia{-}Romero and
Alan McCree and
Gregory Sell and
Daniel Povey and
Sanjeev Khudanpur},
title = {Spoken Language Recognition using X-vectors},
booktitle = {Odyssey 2018},
pages = {105--111},
year = {2018},
}
引用SpeechBrain
如果在研究或商业应用中使用了SpeechBrain,请参考以下格式进行引用:
@misc{speechbrain,
title={{SpeechBrain}: A General-Purpose Speech Toolkit},
author={Mirco Ravanelli and Titouan Parcollet and Peter Plantinga and Aku Rouhe and Samuele Cornell and Loren Lugosch and Cem Subakan and Nauman Dawalatabad and Abdelwahab Heba and Jianyuan Zhong and Ju-Chieh Chou and Sung-Lin Yeh and Szu-Wei Fu and Chien-Feng Liao and Elena Rastorgueva and François Grondin and William Aris and Hwidong Na and Yan Gao and Renato De Mori and Yoshua Bengio},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS},
note={arXiv:2106.04624}
}