英文

基于xvector嵌入的说话人验证在Voxceleb上的应用

该存储库提供了使用SpeechBrain使用预训练的TDNN模型提取说话人嵌入所需的所有工具。该系统是在Voxceleb 1+ Voxceleb2训练数据上进行训练的。

为了获得更好的体验,我们鼓励您更多地了解 SpeechBrain 。该模型在Voxceleb1测试集(清洗后)上的性能为:

Release EER(%)
05-03-21 3.2

流程描述

该系统由一个带有统计汇聚的TDNN模型组成。该系统使用分类交叉熵损失进行训练。

安装SpeechBrain

首先,请使用以下命令安装SpeechBrain:

pip install speechbrain

请注意,我们鼓励您阅读我们的教程并更多地了解 SpeechBrain

计算您的说话人嵌入

import torchaudio
from speechbrain.pretrained 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)

该系统使用16kHz(单声道)采样的录音进行训练。如果需要,在调用classify_file时,代码将自动对音频进行归一化(即重新采样+单声道选择)。如果您使用encode_batch和classify_batch,请确保您的输入张量符合预期的采样率。

在GPU上进行推理

要在GPU上执行推理,请在调用from_hparams方法时添加run_opts = {"device":“cuda”}。

培训

该模型是使用SpeechBrain(aa018540)进行训练的。要从头开始训练,请按照以下步骤进行:

  • 克隆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
    

    您可以在此处找到我们的培训结果(模型,日志等) here

    限制

    SpeechBrain团队不对在其他数据集上使用此模型时实现的性能提供任何保证。

    引用xvectors
      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,请引用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}
    }