这两天终于腾出时间梳理一下之前做的实验,在针对语音特征参数MFCC,做线性判别分析LDA的时候需要对每一帧MFCC打上标签,才能完成LDA的有监督学习,满足我使用LDA的变换需求。
但是一般情况下,由语音文件WAV提取的MFCC中,既包含了安静的部分,又包含了说话的部分,怎样才能提取到相应需要的部分呢,经过了几天的实验,以下是实现的方法:
第一步:对wav文件进行标注
比如文件内容中包含了孤立词“八”,然后对wav文件进行标注,保存成lab文件。如下所示:
lab文件内容如下:
第二步:使用HTK进行参数提取:
这里我们要用到HTK工具包中的HCopy工具来进行参数提取。
执行:
HCopy -T 4 -L ./data/lab -n 2 2 -C config -S word.scp
其中:
-T是用来输出信息,-T 4是用来输出的信息为:segment boundaries computed from label files
-L ./data/lab 在指定的文件夹下寻找需要提取特征参数文件的同名lab文件
-n 是按照lab文件中的标签来提取MFCC,如 -n 2 2 是表示提取第二标签 -n 1 2是表示提取第一和第二个标签等
-C config 是提取特征参数所要遵循的参数设置
word.scp是参数提取文件和保存文件的路径列表
例:我们需要提取wav中“八”部分的MFCC参数,我们需要执行命令:
HCopy -T 4 -L ./lab -n 2 2 -C config ba.wav ba.mfc
我们可以看到:
这样我们所需要的部分就提取出来了:
第三步:查看提取的MFCC
执行:HList -h -o ba.mfc > ba.txt
以上就是根据标注区域提取需要部分的语音特征参数。