发明内容
本发明的目的在于针对背景技术存在的问题,采用新的音频提取特征和特征匹配方法,提供一种适合广播音频的比对方法。
本发明采用技术方案为:一种基于沃尔什-哈达码变换的音频实时比对方法,包括以下步骤:
S1.特征提取:对待比对的两个音频,分别进行以下操作:
S11.预处理:将音频从原采样频率下采样到fs=4000Hz,将下采样后的数据按固定长度划分为各音频帧,相邻帧间有重叠,其中帧长L取为2的整数次方,即L=2m(m为整数);将每一帧数据排列成一列矢量,并将矢量中各元素除以列矢量中元素绝对值的最大值进行归一化,将归一化处理后的帧数据保存在数据矩阵A中;设总的音频帧数目为M,则A=[a1,a2,a3,...,aM],其中A的每一列ai表示第i帧的数据;
S12.读取音频帧:取一帧音频ai;设定初始值为0的帧计数器,每取一音频帧,帧计数器加1;
S13.沃尔什-哈达码(Walsh-Hadamard)变换:对音频帧ai的数据进行加窗处理,设xi代表加窗后第i帧的帧数据,对xi进行沃尔什-哈达码变换,得到变换后的数据yi:
其中,HL为相应的L阶变换矩阵;
S14.计算音频帧特征:设fi代表第i帧的音频帧特征,其维数(或特征个数)设定为Z,fi k代表fi的第k个元素,对k=1,2,3,...,Z的每个k计算
其中代表yi的第j个元素;br(r=0,1,2,...,Z)为划分帧特征矢量fi的第r个分界点位置下标,其计算公式为
其中代表向下取整运算;
S15.若帧计数器的当前计数值小于M,则转至步骤S12;
S16.生成音频特征:将各音频帧的特征矢量fi排列成一矩阵F=[f1,f2,f3,...,fM],该矩阵即为当前音频信号的特征矩阵;
S2.特征匹配:
设待比对的两个音频信号的特征矩阵分别为F和将两矩阵的对应列(帧)特征矢量进行以下比较:
S21.设fi和分别表示第一个和第二个音频的第i帧特征矢量,计算参数μi
其中代表fi k和二者中值较大者,代表fi k和二者中值较小者,Tμ(100≤Tμ≤140)为设定某阈值,bool(·)为二值函数,其定义为
S22.对i从1到M,计算第i帧的距离di:
其中运算符<·,·>为矢量的内积,||·||2为矢量的2范数,即矢量各元素平方和再开方;
S23.将待比对两个音频的所有帧的距离进行平均,将该平均值作为两音频信号的距离;
S3.相似度判定:将求得的待比对两个音频信号距离除以单位距离得到相对距离比,若该距离比小于设定的阈值Td(0.2≤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”与对其加入高斯白噪声(信噪比为-5db)处理后的“歌曲1-SNR-5”这对音频为例,对其进行比对,具体步骤如下:
S1.特征提取:对待比对的两个音频,分别进行如下操作:
S11.预处理:将音频从原采样频率下采样到fs=4000Hz,将下采样后的数据按256个采样点的长度等分为各音频帧,相邻帧间有半帧长度的重叠,总的音频帧数目M为935;将每一帧数据排列成一列矢量,并将矢量中各元素除以列矢量中元素绝对值的最大值进行归一化,将归一化处理后的帧数据保存在数据矩阵A中;设,则A=[a1,a2,a3,...,a935],其中A的每一列ai表示第i帧的数据;
S12.读取音频帧:取一帧音频ai;设定初始值为0的帧计数器,每取一音频帧,帧计数器加1;
S13.沃尔什-哈达码(Walsh-Hadamard)变换:对音频帧ai的数据进行加汉明窗处理,设xi代表加窗后第i帧的帧数据,对xi进行哈达码变换,得到变换后的数据yi:
其中,H256为256阶哈达码矩阵,可由如下的递推关系得到:最低阶(2阶)的哈达玛矩阵为
由此可得到其他阶次为2的整次幂的高阶哈达玛矩阵
式中,N=2n,n为正整数。
S14.计算音频帧特征:设fi代表第i帧的音频帧特征,其维数(或特征个数)设定为Z=10,fi k代表fi的第k个元素,对k=1,2,3,...,10的每个k计算
其中代表yi的第j个元素;br(r=0,1,2,...,10)为划分帧特征矢量fi的第r个分界点位置下标,其计算公式为
其中代表向下取整运算,得到br(r=0,1,2,...,10)的值分别为3,5,7,10,15,22,31,44,63,90,128,因br的计算与音频数据无关,可在特征提取之前进行以加快处理速度;
S15.若帧计数器的当前计数值小于935,则转至步骤S12;
S16.生成音频特征:将各音频帧的特征矢量fi排列成一矩阵F=[f1,f2,f3,...,fM],该矩阵即为当前音频信号的特征矩阵;
S2.特征匹配:
设待比对的两个音频信号的特征矩阵分别为F和将两矩阵的对应列(帧)特征矢量进行如下比较:
S21.设fi和分别表示第一个和第二个音频的第i帧特征矢量,计算参数μi
其中代表fi k和二者中值较大者,代表fi k和二者中值较小者,阈值Tμ为设定为120,bool(·)为二值函数,其定义为
以第100帧为例进行说明,当i=100时,f100=(182.45,445.22,480.57,555.50,504.40,295.46,212.75,132.95,129.11,336.79); 计算得到μ100=0;
S22.对i从1到935,计算第i帧的距离di:
其中运算符<·,·>为矢量的内积,||·||2为矢量的2范数,即矢量各元素平方和再开方;当i=100时,得到第100帧的距离d100=0;
S23.将待比对两个音频的所有帧的距离进行平均,得到平均值0.0002136,作为两音频信号的距离;
S3.相似度判定:将求得的两个音频信号距离除以单位距离0.117706,得到相对距离比0.001815,由于该距离比小于设定的阈值Td=0.2,故判定两个音频信号相似。
下面分别从比对效果和比对速度两方面来进行性能评估,将本发明方法与传统基于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.145779 |
歌曲1与广告1 |
0.885661 |
0.993323 |
1.330869 |
歌曲1与广告2 |
1.146706 |
1.007327 |
1.694943 |
歌曲1与歌曲2 |
0.706841 |
1.011026 |
0.881314 |
可以看到,在不同音频间进行比对时,三种方法差别不大,距离均在1左右。本发明方法得到的距离值都大于设定的阈值Td=0.2,故正确判定测试音频对的音频均互不相似。
2)相似音频间的比对
将歌曲1分别与其经过EQ、压缩和加噪处理后的各音频进行比对,得到的距离结果如表4所示。
表4歌曲1与其相似音频之间的比对距离
比对音频 |
MFCC方法 |
Philips方法 |
本发明方法 |
歌曲1与歌曲1-pop |
0.16660 |
0.14068 |
0.000285 |
歌曲1与歌曲1-rock |
0.25647 |
0.27612 |
0.000391 |
歌曲1与歌曲1-classical |
0.22612 |
0.36417 |
0.000000 |
歌曲1与歌曲1-转32MP3 |
2.48960 |
0.13995 |
0.000000 |
歌曲1与歌曲1-转64MP3 |
0.06516 |
0.08195 |
0.000000 |
歌曲1与歌曲1转128MP3 |
0.00105 |
0.02538 |
0.000000 |
歌曲1与歌曲1-转256MP3 |
0.00002 |
0.00412 |
0.000000 |
歌曲1与歌曲1-SNR-5 |
1.13558 |
0.59127 |
0.001815 |
歌曲1与歌曲1-SNR0 |
0.92927 |
0.42379 |
0.003278 |
歌曲1与歌曲1-SNR5 |
0.70901 |
0.26895 |
0.000000 |
可以看到,在相似音频间进行比对时,即使在音频经过一定处理后,本发明方法得到的距离值都远小于设定的阈值Td=0.2,因而正确判定测试音频对的音频均互为相似音频;另外,对比表3的结果我们看到,本发明方法得到的相似音频间的距离都远小于不同音频间的距离,这意味着本发明方法对相似音频具有很高的音频识别性能。相对而言,MFCC和Philips方法得到的距离更接近于1,即不容易区分相似音频和不同音频。特别地,在对歌曲1与歌曲1-转32MP3音频的比对中,由于压缩失真较大,MFCC方法的距离已经超过1,Philips方法的距离也超过0.1,而本发明方法距离几乎为0;同样,在被强噪声污染的情况下,如当SNR=0(噪声强度等于信号强度)或SNR=-5(噪声强度超过信号强度)时,MFCC方法和Philips两方法都基本失效,而本发明方法仍然能比对正确。
2.比对速度
下面对本发明方案的运行速度进行评估。测试的程序均是由MATLAB编写,测试机器为Intel(R)i3处理器,主频为2.53GHz,内存为4GB。测试结果如表5所示。
表5音频比对时间(单位:秒)
比对音频 |
MFCC方法 |
Philips方法 |
本发明方法 |
歌曲1-SNR-5 |
21.64 |
3.15 |
1.28 |
可以看到,本发明方法的比对速度明显快于MFCC和Philips方法,耗时约为MFCC的5.91%,约为Philips的40.63%。对30秒时长的音频数据,本发明方法用1.28秒完成比对,其处理的实时速度比(音频总时间/处理时间)达23.44倍,因而程序能够对不断输入的音频流实时地进行比对;另外本次测试仿真程序采用MATLAB编写,如将程序改用C语言编写,其处理速度还能进一步提高。综上所述,本发明方法完全能够满足实时应用的需求。