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特征。
提取出的特征写到一个大的 "archive" 文件中, 并且输出一个 "scp" file for easy random access
- 输入要求:Input is 16kHz sampled audio.(不是16k则用下面的脚本改成16k)
#!/bin/bash
for x in ./*.wav
do
b=${x##*/}
sox $b -r 16000 tmp_$b
rm -rf $b
mv tmp_$b $b
done
- 分帧:Take a 25ms window (shift by 10 ms each time; we will output a sequence of vectors, one every 10ms)
对每一帧:
- Mu