使用Yaafe提取音频特征(MFCC、短时能量、短时过零率等特征)
前段时间装了Yaafe库,今天就使用Yaafe来提取音频特征。如果没安装Yaafe,请参考我之前的文章。
一、音频信号预处理
(1)设置音频信号采样率
在对音乐进行特征提取前,必须对音乐文件进行预处理,所有的歌曲必须是同一格式MP3,这样能够减小特征处理时出现的误差。此外,必须设置采样率,采样率是指录音设备在单位时间内对声音信号的采样次数。当今的主流采样率分为三个等级:22.05KHz、44.1KHz、48KHz。而在三个等级中,44.1KHz理论上是CD音质的界限,也就是MP3所具有的采样率。
(2)音频信号分帧(设置帧长和帧移)
采样率设置完毕后需要对音乐信号进行分帧处理。音乐信号可以看做是一段连续的曲线,使用无限分割的办法,可将一小段音乐信号看做是短时平稳的,这样每一小段的音乐信号成为分析帧。为了在处理帧于帧之间的信息时,能够让帧于帧之间的信息平滑过渡,我们可以给帧设定一个步长,即帧移,帧移不超过帧的二分之一,它是帧于帧之间未重叠的部分。设置不同的帧和帧移,对于最后研究的结果会造成很大的偏移,因此选择合适的帧和帧移也是一个不可忽略的关键点。
(3)音频信号加窗
在处理某些音乐文件时,需要进行快速的傅里叶变化,因为傅立叶变换对应的是无限信号,信号经过分帧后变成有限信号,分帧的信号再进行傅立叶变换后,高频部分将有"泄露",所以要加窗。常见的加窗处理包括汉宁窗(Hanning)、汉明窗(Hamming)、矩形窗(Square)、三角窗(Triangle)。加窗的目的是为了减少频谱能量泄露,因为在帧需要进行周期延拓处理,得到虚拟无限长的信号,才可以对信号进行快速傅里叶变换等相关处理,可是无限长的信号被截断,其频谱会发生畸形,集中的能量会被分散到两个较宽的频带去。
二、音乐特征介绍
在进行特征提取前简单介绍下音频特征。
(1)Mel倒频谱系数
基于Mel倒谱系数(MFCC)是在Mel标度频率域中提取出来的倒频谱系数,是一种感知频域倒谱系数。MFCC以人耳的听觉系统为基础,利用Mel尺度三角滤波器组对傅里叶变换能量系数滤波器得到,并且可以对其频域进行Mel变化