发明内容
本发明的目的是提供一种快速音频检索的方法,以进一步提高音频检索的速度。
本发明为解决上述技术问题采取的技术方案是:一种快速音频检索的方法,所述方法经过预处理阶段后进入检索阶段;
所述预处理阶段的过程为:
步骤A1、对音频库提取MFCC参数:对待查询的音频库的音频信号进行特征提取,获得特征信息;所获得的特征信息用a×m的矩阵表示,a为大于6且小于等于30的整数;m、n均为整数,m>>n,n≥4;特征提取时,帧长为2~3s,帧移为0.2~0.3s;
按所述的帧长、帧移,将所述a×m的矩阵分成若干个a×n的矩阵,每个矩阵为一帧;n为整数,n≥4;
步骤A2、对查询音频段(检索目标)提取MFCC参数:按步骤A1所述的帧长、帧移,对查询音频段的音频信号进行特征提取,获得特征信息;所获得的特征信息为一帧,用一个12×n的矩阵表示,n为整数,n≥4;
步骤A3、分类:将步骤A1中的所述若干个帧分为32类;按每帧的前X列的元素分类,X可取3~4;
步骤A4、按步骤A3中划分的类别对所述查询音频段进行归类;
所述检索阶段的检索过程为:查看查询音频段的类别、粗检索和精检索;
查看查询音频段的类别:
步骤B1、开始检索,取新的一帧,所述帧为待查询的音频库中的帧;
步骤B2、判断步骤B1中所述帧是否到帧尾;如果是,结束此次查看查询音频段的类别的过程;否则,执行步骤B3;
步骤B3、判断类别是否匹配;判断查询音频段所对应的帧与待查询的音频库中的当前帧的类别是否匹配;
如果是,执行步骤B4;否则,执行步骤B1;
粗检索:
步骤B4、取特征参数中的一个新元素:取待查询的音频库中匹配帧中的一个新元素;
步骤B5、计算待查询的音频库中匹配帧中的一个新元素与查询音频段对应元素的距离;
步骤B6、判断步骤B5中所得距离是否大于门限;如果是,执行步骤B1;否则,执行步骤B7;
步骤B7、计算待查询的音频库中匹配帧中下一个特征参数元素的距离;
步骤B8、判断是否取到的是最后一个元素;所述最后一个元素是指所述帧的前Y列的最后一个元素,Y可取2~8;如果是,执行步骤B9;否则,执行步骤B4;
步骤B9、记录下该帧的位置,存入位置数组中;
精检索:
步骤B10、取位置数组中新的一帧;
步骤B11、判断步骤B10中所述帧是否到帧尾;如果是,结束此次检索;否则,执行步骤B12;
步骤B12、计算与查询音频段特征矩阵的距离;所述距离是指查询音频段特征矩阵与所对比的特征矩阵的各个对应元素差的平方和。
步骤B13、判断是否大于门限;如果是,执行步骤B10;否则,执行步骤B14;
步骤B14、找到目标;然后再执行步骤B10,直到结束此次检索。
本发明的有益效果是:本发明采用了粗检索和精检索相结合的方法,提高了检索速度和正确率,正确率的计算公式为:正确率=100%-(虚警率+漏检率)/2。如图6所示,用本发明方法的速度为4ms检索8.5小时,速度换算过后比经典方法快了大约3倍(Pentium M 1.6GHz)。本发明由于采用了粗检索和精检索相结合的方法,尤其是粗检索的引入,使本发明方法在保证正确率的前提下,可实现较大的帧长和帧移。用本发明方法检索时帧长为2~3s,帧移为0.2~0.3s;而常用的帧长是25ms,帧移是10ms,因此提高了检索速度。
具体实施方式
具体实施方式一:如图1~5所示,本实施方式所述的快速音频检索的方法经过预处理阶段后进入检索阶段;
所述预处理阶段的过程为:
步骤A1、对音频库提取MFCC参数:对待查询的音频库的音频信号进行特征提取,获得特征信息;所获得的特征信息用a×m的矩阵表示,a为大于6且小于等于30的整数;m、n均为整数,m>>n,n≥4;特征提取时,帧长为2~3s,帧移为0.2~0.3s;
按所述的帧长、帧移,将所述a×m的矩阵分成若干个a×n的矩阵,每个矩阵为一帧;n为整数,n≥4;
步骤A2、对查询音频段(检索目标)提取MFCC参数:按步骤A1所述的帧长、帧移,对查询音频段的音频信号进行特征提取,获得特征信息;所获得的特征信息为一帧,用一个12×n的矩阵表示,n为整数,n≥4;
步骤A3、分类:将步骤A1中的所述若干个帧分为32类;按每帧的前X列的元素分类,X可取3~4;
步骤A4、按步骤A3中划分的类别对所述查询音频段进行归类;
所述检索阶段的检索过程为:查看查询音频段的类别、粗检索和精检索;
查看查询音频段的类别:
步骤B1、开始检索,取新的一帧,所述帧为待查询的音频库中的帧;
步骤B2、判断步骤B1中所述帧是否到帧尾;如果是,结束此次查看查询音频段的类别的过程;否则,执行步骤B3;
步骤B3、判断类别是否匹配;判断查询音频段所对应的帧与待查询的音频库中的当前帧的类别是否匹配;
如果是,执行步骤B4;否则,执行步骤B1;
粗检索:
步骤B4、取特征参数中的一个新元素:取待查询的音频库中匹配帧中的一个新元素;
步骤B5、计算待查询的音频库中匹配帧中的一个新元素与查询音频段对应元素的距离;
步骤B6、判断步骤B5中所得距离是否大于门限;如果是,执行步骤B1;否则,执行步骤B7;
步骤B7、计算待查询的音频库中匹配帧中下一个特征参数元素的距离;
步骤B8、判断是否取到的是最后一个元素;所述最后一个元素是指所述帧的前Y列的最后一个元素,Y可取2~8;如果是,执行步骤B9;否则,执行步骤B4;
步骤B9、记录下该帧的位置,存入位置数组中;
精检索:
步骤B10、取位置数组中新的一帧;
步骤B11、判断步骤B10中所述帧是否到帧尾;如果是,结束此次检索;否则,执行步骤B12;
步骤B12、计算与查询音频段特征矩阵的距离;所述距离是指查询音频段特征矩阵与所对比的特征矩阵的各个对应元素差的平方和。
步骤B13、判断是否大于门限;如果是,执行步骤B10;否则,执行步骤B14;
步骤B14、找到目标;然后再执行步骤B10,直到结束此次检索。
提取特征参数,如图5所示,一般来说音频信号的特征是按帧提取的,即截取一定时间长度的信号当作一帧,计算其特征参数,再平移一定距离(称为帧移),继续截取下一帧,以此类推。
本方案采用具有很强鲁棒性的MFCC(Mel Frequency CepstralCoefficient)参数为特征,由于这个特点,使得在提取特征的时候,可以跳跃较大地提取,也就是说帧移可以取得较大,这样可以减少后期检索时所需计算的数据量。在本实验中,采用24个Mel滤波器组和DCT变换得到的12阶MFCC。帧长可为2.5s,帧移可为0.25s。
对所得到的MFCC利用VQ(Vector Quantization矢量量化)进行分类,本方案采用的方法是将之前提取的MFCC参数,每36个一组进行VQ(如果取12阶MFCC的前三列即为36元素),目的还是提高抗干扰性,VQ码本选择为32(即在步骤A
中所述的32类)。
在检索阶段,本方案的优势也就是极大地提高了此阶段的速度。在检索阶段,首先根据查询音频段的类别,只在特征库中寻找相应类别的特征即可,其他类别的不予查找。然后,在该类别下逐个比较每一帧特征参数中的每个元素(以前没有人这么做,以前的方法是将特征参数整个进行匹配),如差值大于一个预先设定的门限,即删除该帧,继续判断下一帧。最后,根据保留下来的帧的位置,逐一计算与查询音频段参数的距离(距离越小代表相似度越大),当小于某一给定门限,则判断为目标。
关于MFCC参数:
美尔频标倒谱系数(MFCC)考虑了人耳的听觉特性,将频谱转化为基于Mel频标的非线性频谱,然后转换到倒谱域上。由于充分考虑了人的听觉特性,而且没有任何前提假设,MFCC参数具有良好的识别性能和抗噪能力。
MFCC是采用滤波器组的方法计算出来的,这组滤波器在频率的美尔坐标上是等带宽的。这是因为人类在对约1000Hz以上的声音频率范围的感知不遵循线性关系,而是遵循在对数频率坐标上的近似线性关系。根据声学测量结果可给出Mel频率映射函数:
f为普通频率,mel为美尔坐标频率;
其计算过程如图7所示;
1.原始语音信号进过加窗分帧后,得到每个语音帧的时域信号
2.将时域信号后补若干个零以形成长为N的序列,然后经过DFT后得到线性频谱,转换公式为
在实际应用中,常常通过FFT过程加以计算,其中N一般称之为DFT(或FFT)窗宽。
3.将上述线性频谱通过Mel频率滤波器组得到Mel频谱,并通过对数能量的处理,得到对数频谱。
4.将上述对数频谱经过离散余弦变换(DCT)变换到倒谱频谱域,即可得到Mel频率倒谱系数(MFCC参数),一般系数取12-16个左右,MFCC系数为
5.将这种直接得到的MFCC系数作为静态特征,再将这种静态特征做一阶和二阶差分,得到相应的动态特征。
该美尔倒谱系数受到滤波器组中滤波器个数、形状、分布及能量谱等各因素的影响。
由于考虑到鲁棒性,本方案中MFCC只取静态特征,不取动态特征。
具体实施方式二:如图1~5所示,本实施方式在步骤A1中,特征提取时,帧长为2.5s,帧移为0.25s,这样可在保证检索精度的同时提高检索速度。其它步骤与具体实施方式一相同。
具体实施方式三:如图1~5所示,本实施方式所述在步骤A1中,a取12。在本方法中,采用24个Mel滤波器组和DCT变换得到的12阶MFCC。其它步骤与具体实施方式一相同。
具体实施方式四:如图1~5所示,本实施方式在步骤B8中,所述最后一个元素是指所述帧的前4列的最后一个元素。粗检索取前4列矩阵的原因是,如果列数过多可能会使检索速度降低并增大漏检概率,如果列数过少会导致不能有效筛选。其它步骤与具体实施方式一相同。