发明内容
本发明的目的在于针对背景技术存在的问题,采用新的音频提取特征和特征匹配方法,提供一种适合广播音频的比对方法。
本发明的技术方案是:一种基于感知滤波的音频实时比对方法,包括以下步骤:
S1.滤波器组设计:设定低频段的频率范围为0~F1,采用n个带宽相同的三角带通滤波器;中频段的频率范围为F1~F2,采用一组m个带宽依次递增的三角带通滤波器;fl i,fc i,fh i分别表示第i个滤波器的上截止频率、中心频率和下截止频率,1≤i≤k,k=m+n,即k为0~F2频率范围内滤波器的总个数,
S11.低频段设计:设处于低频段的第i个滤波器的中心频率为i×F1/n,相邻滤波器的截止频率满足fc i=fl i+1,fh i=fc i+1,设置各滤波器中心频率处的滤波系数为1;
S12.中频段设计:设处于中频段的第i个滤波器的上截止频率为fl i,其中fl n+1=F1,计算第i个三角带通滤波器的中心频率fc i:
其中
A=12.46×10-6fl i-9912.78×10-4,B=186.78×10-3fl i-1269.25,计算第i个三角带通滤波器的下截止频率fh i:
fh i=fl i+12.46×10-6fc i+186.78×10-3fc i+57.04 (2)
对处于中频段的第i+1个滤波器,使其上截止频率等于第i个滤波器的中心频率,即fl i+1=fc i,且按(1)和(2)式依次计算其中心频率fc i+1和下截止频率fh i+1;当上截止频率超过F2时终止,设置各滤波器中心频率处的滤波系数为1;
S13.高频段设计:对于高于F2频段,滤波器系数设为全0;
S14.滤波系数调整:设Ci代表第i个滤波器的滤波系数矢量,对各滤波器系数矢量进行如下调整:
Ci=μi·Ci,1≤i≤k (3)
其中μi为第i个滤波器的调整系数,可通过下式计算:
S2.特征提取:对待比对的两个音频,分别进行如下操作:
S21.音频数据分帧:将音频数据按固定长度划分为各音频帧,相邻帧间有重叠;将每一帧数据排列成一列矢量,并将矢量中各元素除以列矢量中元素绝对值的最大值进行归一化,将归一化处理后的帧数据保存在数据矩阵A中;设总的音频帧数目为M,则A=[a1,a2,a3,...,aM],其中A的每一列aj表示第j帧的数据;
S22.读取音频帧:取一帧音频aj;设定初始值为0的帧计数器,每取一音频帧,帧计数器加1;
S23.计算音频帧功率谱:对音频帧aj的数据进行加窗处理,进行短时傅里叶变换,得到音频帧的频谱;对频谱幅度值求平方得到功率谱;
S24.计算音频帧特征:用步骤S1设计出的滤波器组(k个滤波器)对上步得到的功率信号进行滤波处理;对每个滤波器,将其滤波输出的信号进行求和,得到该滤波器的输出能量;将k个滤波器的输出能量数据排列成一列矢量,该矢量即为该帧信号的特征矢量,记为vj;
S25.若帧计数器的当前计数值小于M,则转至步骤S22;
S26.生成音频特征:将各音频帧的特征矢量vj排列成一矩阵V=[v1,v2,v3,...,vM],该矩阵即为当前音频信号的特征矩阵;
S3.特征匹配:
设待比对的两个音频信号的特征矩阵分别为V1和V2,将V1和V2的对应元素进行比较,若两个元素的值都大于设定的阈值Tp(10≤Tp≤100),则记两个元素的距离为0;否则,计算两个元素的值差的平方,作为其距离;对所有对应元素对的距离进行平均,将该平均值作为待比对的两个音频信号的距离,记为d;
S4.相似度判定:将待比对两个音频信号的距离d除以单位距离得到相对距离比,若该距离比小于设定的阈值Td(0.3≤Td≤0.5),则判定两个音频信号相似,否则不相似。
本发明的有益效果:本发明提供一种音频实时比对方法,该方法具有较高的比对容错性,在音频受到噪声干扰,或进行了音效处理的等情况下均能实现正确的比对;同时,该方法算法简单、处理快速,能够广泛应用于广播电台的节目监播、广告监测和管理等。
具体实施方式
仿真实验共选择了16个音频作为测试音频。其中前6个音频为未经处理的原广播音频,均为单声道,48k采样率,包含广告、乐曲和歌曲各两个,其具体信息如表1描述;后10个音频对歌曲1作均衡(EQ)、压缩、加噪等处理得到的音频,其音频具体信息如表2描述,EQ处理的均衡器设置如图1所示。
表1原测试音频信息
音频命名 |
内容来源 |
时长(秒) |
广告1 |
蓝光整合广告 |
16.056 |
广告2 |
宝中旅游大理广告 |
16.488 |
乐曲1 |
出埃及记 |
30.000 |
乐曲2 |
英雄的黎明 |
30.000 |
歌曲1 |
最炫民族风 |
30.000 |
歌曲2 |
小苹果 |
30.000 |
表2歌曲1处理后的各音频信息
本实施例以“歌曲1”及对其进行pop风格均衡处理后的“歌曲1-pop”这对音频为例,对其进行比对,具体步骤如下:
S1.滤波器设计:
S11.低频段设计:设定低频段的频率范围为0~1000Hz;在低频段采用8个带宽相同的三角带通滤波器;设fl i,fc i,fh i分别表示第i个滤波器的上截止频率,中心频率和下截止频率,则处于低频段第i个滤波器的中心频率为i×125,相邻滤波器的截止频率满足fc i=fl i+1,fh i=fc i+1。设置各滤波器中心频率处的滤波系数为1;低频段各滤波器的上截止频率,中心频率和下截止频率如表1所示:
表1低频段滤波器组参数
S12.中频段设计:设定中频段的频率范围为1000~2000Hz;在中频段采用一组6个带宽依次递增的三角带通滤波器;设处于中频段的第i个三角带通滤波器的上截止频率为fl i,其中,fl 9=1000Hz,计算第i个三角带通滤波器的中心频率fc i:
其中
A=12.46×10-6fl i-9912.78×10-4,B=186.78×10-3fl i-1269.25,计算第i个三角带通滤波器的下截止频率fh i:
fh i=fl i+12.46×10-6fc i+186.78×10-3fc i+57.04 (2)
对处于中频段的第i+1个滤波器,使其上截止频率等于第i个滤波器的中心频率,即fl i+1=fc i,且按(1)和(2)式依次计算其中心频率fc i+1和下截止频率fh i+1;当上截止频率超过2000Hz时终止。设置各滤波器中心频率处的滤波系数为1;中频段各滤波器的上截止频率,中心频率和下截止频率如表2所示:
表2中频段滤波器组参数
S13.高频段设计:对于高于2000Hz频段,滤波器系数设为全0;
S14.滤波系数调整:设Ci代表第i个滤波器的滤波系数矢量,0~2000Hz频率范围内滤波器组的个数k=14对各滤波器系数矢量进行如下调整:
Ci=μi·Ci,1≤i≤14 (3)
其中,μi(1≤i≤14)分别为0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.6,0.7,0.8,0.9,1;调整后的滤波器组频率响应如附图2所示;
S2.特征提取:对待比对的两个音频,分别进行如下操作:
S21.音频数据分帧:对两段音频做同样的处理,将音频数据按1152个采样点的长度等分为各音频帧,相邻帧间有半帧长度的重叠;将每一帧数据排列成一列矢量,并将矢量中各元素除以列矢量中元素绝对值的最大值进行归一化,将归一化处理后的帧数据保存在数据矩阵A中;其总帧数为2499帧,则A=[a1,a2,a3,...,a2499],其中A的每一列aj表示第j帧的数据;下面以第1000帧为例进行说明;
S22.读取音频帧:设和分别代表音频1和音频2的数据帧,有 此时,帧计数器的计数值加1为,从999变为1000;
S23.计算音频帧功率谱:对和分别进行加窗处理,进行短时傅里叶变换,得到音频帧的频谱;对频谱幅度值求平方得到功率谱;
S24.计算音频帧特征:用步骤S1设计出的滤波器组(14个滤波器)对上步得到的功率信号进行滤波处理;对每个滤波器,将其滤波输出的信号进行求和,得到该滤波器的输出能量;将14个滤波器的输出能量数据排列成一列矢量,该矢量即为该帧信号的特征矢量,最终得到两帧音频的特征矢量分别为
S25.帧计数器的当前计数值为1000小于2499,转至步骤S22;
S26.生成音频特征:将各音频帧的特征矢量vj排列成一矩阵V=[v1,v2,v3,...,v2499],该矩阵即为当前音频信号的特征矩阵;音频1和音频2的特征矩阵分别记为V1和V2;
S3.特征匹配:
将V1和V2的对应元素进行比较,设定阈值Tp=50,若两个元素的值都大于Tp,则记两个元素的距离为0;否则,计算两个元素的值差的平方,作为其距离;对所有对应元素对的距离进行平均,得到平均距离d=20509.25,将其作为两音频信号的距离;
S4.相似度判定:将两个音频信号距离d除以单位距离14333982.94,得到相对距离比0.001431,由于该距离比小于设定的阈值Td=0.4,故判定两个音频信号相似。
下面分别从比对效果和比对速度两方面来进行性能评估,将本发明方法与传统基于MFCC音频特征、基于Philips音频指纹的两种比对方法进行比较。基于MFCC音频特征的比对方法是提取MFCC特征,然后用欧式距离来进行特征匹配,基于Philips音频指纹的比对方法是提取Philips音频指纹特征,然后用汉明距离来进行特征匹配。
1.比对效果
1)不同音频间的比对
在原始的测试音频中,将歌曲1与其他5个音频进行比对,其得到的距离结果如表3所示。在本发明方法、MFCC方法和Philips方法的结果中,都以歌曲1与乐曲1的比对距离作为单位距离进行计算。
表3歌曲1与其他不同音频之间的比对距离
比对音频 |
MFCC方法 |
Philips方法 |
本发明方法 |
歌曲1与乐曲1 |
1.000000 |
1.000000 |
1.000000 |
歌曲1与乐曲2 |
1.938763 |
1.015305 |
1.308266 |
歌曲1与广告1 |
0.885661 |
0.993323 |
1.756722 |
歌曲1与广告2 |
1.146706 |
1.007327 |
2.732262 |
歌曲1与歌曲2 |
0.706841 |
1.011026 |
1.032998 |
可以看到,在不同音频间进行比对时,三种方法差别不大。本发明方法得到的距离值都大于设定的阈值Td=0.4,故正确判定测试音频对的音频均互不相似。
2)相似音频间的比对
将歌曲1分别与其经过EQ、压缩和加噪处理后的各音频进行比对,得到的距离结果如表4所示。
表4歌曲1与其相似音频之间的比对距离
比对音频 |
MFCC方法 |
Philips方法 |
本发明方法 |
歌曲1与歌曲1-pop |
0.16660 |
0.14068 |
0.001431 |
歌曲1与歌曲1-rock |
0.25647 |
0.27612 |
0.003887 |
歌曲1与歌曲1-classical |
0.22612 |
0.36417 |
0.003127 |
歌曲1与歌曲1-转32MP3 |
2.48960 |
0.13995 |
0.000047 |
歌曲1与歌曲1-转64MP3 |
0.06516 |
0.08195 |
0.000009 |
歌曲1与歌曲1转128MP3 |
0.00105 |
0.02538 |
0.000001 |
歌曲1与歌曲1-转256MP3 |
0.00002 |
0.00412 |
0.000000 |
歌曲1与歌曲1-SNR-5 |
1.13558 |
0.59127 |
0.071110 |
歌曲1与歌曲1-SNR0 |
0.92927 |
0.42379 |
0.017506 |
歌曲1与歌曲1-SNR5 |
0.70901 |
0.26895 |
0.003107 |
可以看到,在相似音频间进行比对时,即使在音频经过一定处理后,本发明方法得到的距离值都远小于设定的阈值Td=0.4,因而正确判定测试音频对的音频均互为相似音频;另外,对比表3的结果我们看到,本发明方法得到的相似音频间的距离都远小于不同音频间的距离,这意味着本发明方法对相似音频具有很高的音频识别性能。相对而言,MFCC和Philips方法得到的距离更接近于1,即不容易区分相似音频和不同音频。特别地,在对歌曲1与歌曲1-转32MP3音频的比对中,由于压缩失真较大,MFCC方法的距离已经超过1,Philips方法的距离也超过0.1,而本发明方法距离非常小;同样,在被强噪声污染的情况下,如当SNR=0(噪声强度等于信号强度)或SNR=-5(噪声强度超过信号强度)时,MFCC方法和Philips两方法都基本失效,而本发明方法仍然能比对正确。
2.比对速度
下面对本发明方案的运行速度进行评估。测试的程序均是由MATLAB编写,测试机器为Intel(R)i3处理器,主频为2.53GHz,内存为4GB。测试结果如表5所示。
表5音频比对时间(单位:秒)
比对音频 |
MFCC方法 |
Philips方法 |
本发明方法 |
歌曲1与歌曲1-pop |
22.31 |
3.14 |
2.08 |
可以看到,本发明方法的比对速度明显快于MFCC和Philips方法,耗时约为MFCC的9.32%,约为Philips的66.24%。对30秒时长的音频数据,本发明方法用2.08秒完成比对,其处理的实时速度比(音频总时间/处理时间)达14.42倍,因而程序能够对不断输入的音频流实时地进行比对;另外本次测试仿真程序采用MATLAB编写,如将程序改用C语言编写,其处理速度还能进一步提高。综上所述,本发明方法完全能够满足实时应用的需求。