kaldi中声纹识别例子大概步骤综述

如何利用kaldi搭建说话人识别的例子。仅仅是搭建,具体的很多参数的调整需要大家根据数据集的不同慢慢调整。

  1. 数据准备:无论使用kaldi来做语音识别还是说话人识别,第一步就是数据准备,对于说话人识别来说,需要准备的几个文件为wav.scp,utt2spk,spk2utt这三个文件。对应的格式如下:

    1.1 wav.scp有两列,第一列是key,这个可以一定要唯一;第二列是 wav的路径wavpath;

    1.2 utt2spk也有两列,第一列是key,与wav.scp的第一列一样;第二列是对应的说话人信息,叫spk。这个对于说话人识别来说很重要。此外,spk2utt可以根据utils/utt2spk_to_spk2utt.pl来生成。

  2. 特征提取:使用steps/make_mfcc.sh来进行提取mfcc特征。

  3. vad:由于说话人识别里静音会有很大的干扰,所以一般都会进行vad。具体kaldi里也有个简单的根据能量来判断vad的脚本。当然这个越精确越好。

  4. 训练阶段:主要训练gmm-ubm跟i-vector系统。

    sid/train_diag_ubm.sh;sid/train_full_ubm.sh;train_ivector_extractor.sh

  5. 提取训练集的i-vector向量,并训练分类器,kaldi提供了三类:

    dot-proucts,lda,plda等。

    这样咱们就训练好了一个i-vector系统。当然前提你要有一些说话人识别的理论知识。

     

kaldi里的说话人识别的例子是sre08跟sre10,语种识别的例子是lre跟lre07。当然如果你理解说话人识别的理论,还可以做性别分类、噪声音乐分类等。对此kaldi也有一些对应的例子跟脚本。

 

kaldi当然也有dnn用于说话人识别的例子,dnn-ubm系统的例子大家可以参考sre10/v2里的带dnn的脚本。如果大家对于说话人

你可能感兴趣的:(深度学习声纹识别,KALDI工具)