kaldi mfcc特征的提取,pitch(音调)
从音频文件中读取出来的原始语音信号通常称为raw waveform,是一个一维数组,长度是由音频长度和采样率决定,比如采样率Fs为16KHz,表示一秒钟内采样16000个点,这个时候如果音频长度是10秒,那么raw waveform中就有160000个值,值的大小通常表示的是振幅。
提取的特征最终以矩阵的形式存储,针对mfcc的矩阵维度(rowNum,colNum),colNum=13, rowNum为帧数,与音频时长有关。
例如,音频时长5.68s,频率16k,提取帧数应该是568,但kaldi返回的是565,这与kaldi中处理不足以分帧的剩余数据的方式有关,kaldi目前这种处理方式是兼容HTk工具的。
标准情况下,帧长25ms(时间窗window size=25ms,即一帧长度),帧移10ms(帧移frame shift=10ms)。
例如,频率为16k的1s音频,在window size=25ms,frame shift=10ms下,理论上,提取的帧数frame number为1x1000ms/10ms=100,即mfcc的特征矩阵维度(100,13)。
如果不进行特征提取,则音频是16000个数据点,一个window size大小或一帧有(16000/1000ms)x25ms=400个数据,通常音频数据很多很大,直接用原生raw数据处理非常麻烦,费时等等,数据不具有代表性,这也是进行特征提取的原因,特征提取后,一个window size大小有13个数据,替代了400个数据,这13个数据是具有代表性特征的数据,可以很好得表现之前400个数据,这样就解决了直接使用raw数据的问题。
mfcc特征13维和39维的理解:在mfcc特征提取这块,经常会看到13、39这两个维数,不仔细研究它,就容易懵。
13,即numcep=13,倒频谱的数量。这13个数据描述了一帧语音信号的功率谱包络信息,属于静态特征。
但是语音也需要帧之间的动态变换信息,比如mfcc随时间的变换轨迹,因此加入了一阶差分delta(13个数据)和二阶差分delta-delta(13个数据)动态信息,
此时mfcc特征维度就是为39维。
13维:mfcc静态特征 39维:mfcc静态特征 + 一、二阶差分(delta)动态特征
提取的特征最终以矩阵的形式存储,针对pitch的矩阵维度(rowNum,colNum),colNum=16, rowNum为帧数,与音频时长有关。
16维:13(mfcc)+ 3(pitch)
后3维特征:pov-feature, pitch-feature and delta-pitch-feature,具体可参考
原文链接:
https://blog.csdn.net/qq_41790807/article/details/105797131
https://www.cnblogs.com/liaohuiqiang/p/10159429.html