Kaldi 说话人识别之aishell V1 模型(一)

一、数据准备

1、首先在根目录下建立路径:/export/a05/xna/data然后下载数据集。这里下载数据集要在run.sh前面加sudo命令,这是路径的缘故。下载数据集用到的脚本是local/download_and_untar.sh 需要下载两个数据文件:data_aishell 和 resource_aishell.
2、数据准备阶段运行脚本:local/aishell_data_prep.sh 运行脚本后会产生 以下文件:

  • spk2utt: 这里存放的是测试集好训练集中每个样例名称及其它下面的语音文件名称。这个文件在test下面则说明是test集的相关信息,如果在train 文件下则说明是train集的相关信息。文件内容如下所示(只展示部分样例):

S0764 BAC009S0764W0121 BAC009S0764W0122 BAC009S0764W0123 BAC009S0764W0124 BAC009S0764W0125 BAC009S0764W0126 BAC009S0764W0127 BAC009S0764W0128 BAC009S0764W0129 BAC009S0764W0130 BAC009S0764W0131 BAC009S0764W0132 BAC009S0764W0133 BAC009S0764W0134 BAC009S0764W0135 BAC009S0764W0136 BAC009S0764W0137 BAC009S0764W0138 BAC009S0764W0139 BAC009S0764W0140 BAC009S0764W0141 BAC009S0764W0142 BAC009S0764W0143 BAC009S0764W0144 BAC009S0764W0145 BAC009S0764W0146 BAC009S0764W0147 BAC009S0764W0148 BAC009S0764W0149 BAC009S0764W0150 BAC009S0764W0151 BAC009S0764W0152 BAC009S0764W0153 BAC009S0764W0154
S0765 BAC009S0765W0121 BAC009S0765W0122 BAC009S0765W0123 BAC009S0765W0124 BAC009S0765W0125 BAC009S0765W0126 BAC009S0765W0127 BAC009S0765W0128 BAC009S0765W0129 BAC009S0765W0130 BAC009S0765W0131 BAC009S0765W0132 BAC009S0765W0133 BAC009S0765W0134 BAC009S0765W0135 BAC009S0765W0136 BAC009S0765W0137 BAC009S0765W0138 BAC009S0765W0139 BAC009S0765W0140 BAC009S0765W0141 BAC009S0765W0142 BAC009S0765W0143 BAC009S0765W0144 BAC009S0765W0145 BAC009S0765W0146 BAC009S0765W0147 BAC009S0765W0148 BAC009S0765W0149 BAC009S0765W0150 BAC009S0765W0151 BAC009S0765W0152 BAC009S0765W0153 BAC009S0765W0154

  • text :这里存放的是训练集和测试集中语音文本的信息,第一列是语音文件名,第二列是语音文件所对应的说话的内容,如下所示(只展示部分信息):

    BAC009S0764W0121 甚至 出现 交易 几乎 停滞 的 情况
    BAC009S0764W0122 一二 线 城市 虽然 也 处于 调整 中
    BAC009S0764W0123 但 因为 聚集 了 过多 公共 资源
    BAC009S0764W0124 为了 规避 三四 线 城市 明显 过剩 的 市场 风险
    BAC009S0764W0125 标杆 房企 必然 调整 市场 战略
    BAC009S0764W0126 因此 土地 储备 至关 重要
    BAC009S0764W0127 中原 地产 首席 分析 师 张大 伟 说
    BAC009S0764W0128 一 线 城市 土地 供应 量 减少

  • transcripts.txt 这个文件是text文件的副本 。内容跟text文件的内容格式一样

  • utt.list 这个文件是测试集和训练集中所有语音文件的名称

    BAC009S0764W0121
    BAC009S0764W0122
    BAC009S0764W0123
    BAC009S0764W0124
    BAC009S0764W0125
    BAC009S0764W0126
    BAC009S0764W0127
    BAC009S0764W0128
    BAC009S0764W0129
    BAC009S0764W0130
    BAC009S0764W0131
    BAC009S0764W0132
    BAC009S0764W0133
    BAC009S0764W0134
    BAC009S0764W0135
    BAC009S0764W0136
    BAC009S0764W0137
    BAC009S0764W0138
    BAC009S0764W0139

  • utt2spk_all 这里放的是语音文件的详细信息。第一列是语音文件名称,第二列是语音文件类别,即说话人名称

BAC009S0764W0121 S0764
BAC009S0764W0122 S0764
BAC009S0764W0123 S0764
BAC009S0764W0124 S0764
BAC009S0764W0125 S0764
BAC009S0764W0126 S0764
BAC009S0764W0127 S0764
BAC009S0764W0128 S0764
BAC009S0764W0129 S0764
BAC009S0764W0130 S0764
BAC009S0764W0131 S0764
BAC009S0764W0132 S0764
BAC009S0764W0133 S0764
BAC009S0764W0134 S0764
BAC009S0764W0135 S0764
BAC009S0764W0136 S0764
BAC009S0764W0137 S0764
BAC009S0764W0138 S0764
BAC009S0764W0139 S0764
BAC009S0764W0140 S0764

  • wav.flist 这个文件中放的是语音文件的详细地址和语音文件

    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0360.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0448.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0324.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0133.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0287.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0482.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0456.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0214.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0376.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0157.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0194.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0484.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0490.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0251.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0366.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0210.wav
    /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0263.wav

  • wav.scp

BAC009S0764W0121 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0360.wav
BAC009S0764W0122 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0448.wav
BAC009S0764W0123 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0324.wav
BAC009S0764W0124 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0133.wav
BAC009S0764W0125 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0287.wav
BAC009S0764W0126 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0482.wav
BAC009S0764W0127 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0456.wav
BAC009S0764W0128 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0214.wav
BAC009S0764W0129 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0376.wav
BAC009S0764W0130 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0157.wav
BAC009S0764W0131 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0194.wav
BAC009S0764W0132 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0484.wav
BAC009S0764W0133 /export/a05/xna/data/data_aishell/wav/test/S0766/BAC009S0766W0490.wav

二、特征提取

1、特征提取用到的脚本是:step/make_mfcc.sh 在文件夹exp中会产生make_mfcc文件夹。在make_mfcc文件夹下会有test 和 train 文件夹,里面放的是特征提取的日志。正真对的提取的特征在kaldi-master/egs/aishell/v1/mfcc 中。下面将提取到的特征可视化:

~/kaldi-master/src/featbin/copy-feats ark:/home/gwp/kaldi-master/egs/aishell/v1/mfcc/raw_mfcc_train.2.ark ark,t:- |head

运行结果:

BAC009S0036W0279 [
12.55563 -21.31167 11.26867 6.343046 15.55155 4.494844 20.27812 17.99247 18.88603 11.74063 1.810493 -4.666584 -0.2448959 -1.099169 1.787078 8.768214 -0.5345917 0.7129593 -1.881903 -0.184864
11.32757 -20.03719 16.31762 6.122036 2.568633 0.9016883 4.645835 9.24137 4.62358 7.516443 11.05698 7.462651 1.606389 2.067619 7.471634 4.220415 -7.865553 -4.594973 -2.89533 2.004371
11.91236 -24.09615 11.07287 10.10023 11.98197 8.601308 12.80181 20.9095 9.971997 -3.990842 -9.981028 -4.873005 12.09514 -0.05607986 -13.64925 2.12143 9.522418 10.41734 1.833998 2.004371
13.08194 -23.40003 8.919159 8.774164 14.95662 18.35416 18.23913 16.04778 5.812117 -8.620422 -6.109185 -6.524362 4.739332 7.88231 4.0609 10.8672 7.427207 4.352102 0.8205705 0.7026639
12.14628 -22.70391 9.506536 7.448099 19.12113 25.02716 16.8798 -1.454416 -6.327747 1.68997 9.730171 3.383781 3.17286 5.459522 3.68193 5.619738 -4.90952 1.926007 5.549899 6.6653
11.91236 -19.61236 13.08912 7.890121 11.98197 16.81424 3.966171 13.13075 9.377729 3.729235 7.266272 22.1378 17.13299 0.987011 -1.784221 -2.556049 0.3034925 -2.488651 0.4827612 0.9393382
12.84803 -17.27582 15.67192 10.76326 8.27466 12.19446 -10.80211 11.18606 13.53761 4.166221 9.202192 15.51031 1.463983 4.974965 8.608545 2.471261 4.074871 -1.730374 -1.206284 4.040326
12.20475 -22.00779 10.87708 8.332142 17.93127 11.16785 8.044158 17.99247 18.29176 18.80422 15.70079 9.829611 -8.219662 -8.25178 4.43987 8.768214 -0.1155496 -3.246927 -2.89533 -1.427403
11.7954 -22.00779 8.13599 7.448099 16.14648 11.68116 6.005165 17.02012 22.45164 9.555708 8.49822 6.042475 1.606389 -2.589295 -4.964538 1.071938 1.141577 2.896445 -8.269815 -1.604908

2、特征提取结束后还要运行脚本sid/compute_vad_decision.sh 进行数据预处理,进行VAD检测。VAD是语音激活检测算法,用于判断什么时候有语音输出,什么时候是静音状态。
3、如果在此数据出现异常重复等都可以运行脚本utils/fix_data_dir.sh 进行处理。

utils/fix_data_dir.sh data/所有data下的文件都可以进行处理。

到此为止数据和特征已经准备就绪,接下来就是训练模型。模型的训练请看Kaldi 说话人识别之aishell V1 模型(二)

注意:在运行run.sh脚本后会产生相应的文件夹,当你第二次运行run.sh 时会有下面的错误:

utils/validate_data_dir.sh: error: in data/train, vad.scp and
utt2spk do not have identical utterance-id list

这个问题的处理方法就是将运行产生的所有文件夹删除后再次运行即可。删除的文件夹有:data exp mfcc

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值