【发明内容】
本发明提供了一种音频文件的识别方法和装置,实现对音频文件的识别,从而为音频文件的管理和网络资源的优化提供基础。
具体技术方案如下:
一种音频文件的识别方法,该识别方法包括:
对已知类型的音频文件进行音频指纹提取,利用提取的音频指纹建立所述已知类型的音频指纹库,所述音频指纹库中的各音频指纹以各自第N段指纹的数据作为索引,所述N为预设正整数;
接收到待识别音频文件时,提取所述待识别音频文件的第N段指纹的局部音频指纹,将所述局部音频指纹与所述音频指纹库的索引进行匹配,如果匹配成功,则识别出所述待识别音频文件为所述已知类型。
具体地,所述音频指纹提取具体包括:
A1、将所述音频文件进行解码,得到预设的音频格式;
A2、将步骤A1得到的音频文件进行指定采样率的转换;
A3、对音频文件中的音频信号进行傅里叶变换;
A4、计算所述音频文件的各段音频信号中相邻帧之间的能量差并进行编码,得到各段音频指纹构成的所述音频文件的音频指纹。
其中,提取所述待识别音频文件的第N段指纹的局部音频指纹具体包括:
B1、将所述待识别音频文件进行解码;
B2、将解码后的待识别音频文件进行指定采样率的转换;
B3、对待识别音频文件中的音频信号进行傅里叶变换;
B4、计算待识别音频文件的第N段音频信号中从第M1帧开始连续M2帧的相邻帧之间的能量差并进行编码,得到局部音频指纹,所述M1和所述M2为预设的正整数。
或者,提取所述待识别音频文件的第N段指纹的局部音频指纹具体包括:
C1、将所述待识别音频文件的第N段音频信号进行解码;
C2、将解码后的所述待识别音频文件的第N段音频信号进行指定采样率的转换;
C3、对待识别音频文件的第N段音频信号进行傅里叶变换;
C4、计算待识别音频文件的第N段音频信号中从第M1帧开始连续M2帧的相邻帧之间的能量差并进行编码,得到局部音频指纹,所述M1和所述M2为预设的正整数。
其中,所述进行指定采样率的转换包括:
使用小波函数对被转换的音频文件中的音频信号进行循环滤波,每一次循环滤波进行一次下采样,直至被转换的音频文件达到预设的分辨率。
将所述局部音频指纹与所述音频指纹库的索引进行匹配具体包括:
D1、将所述局部音频指纹与音频指纹库中当前匹配到的索引进行对齐处理,如果能够对齐,则执行步骤D2;如果不能够对齐,则开始下一个索引的匹配,转至步骤D1;
D2、计算所述局部音频指纹与当前匹配到的索引中相应对齐长度的指纹之间的匹配度,如果匹配度在预设的匹配度阈值内,则确定所述局部音频指纹与所述当前匹配到的索引匹配成功;否则,确定所述局部音频指纹与所述当前匹配到的索引匹配失败,进行下一索引的匹配,转至步骤D1。
步骤D1中将所述局部音频指纹与音频指纹库中当前匹配到的索引进行对齐处理具体为:
将所述局部音频指纹的第一个整型数与当前匹配到的索引中的各整型数依次进行匹配处理,如果所述局部音频指纹的第一个整型数与当前匹配到的索引中的一个整型数匹配成功,则将匹配成功的两个整型数对齐;或者,
将所述局部音频指纹的第一个整型数与当前匹配到的索引中预设窗口内的各整型数依次进行匹配处理,所述窗口包含所述局部音频指纹在所述待识别音频文件的第N段音频信号的开始帧数,如果所述局部音频指纹的第一个整型数与所述窗口中的一个整型数匹配成功,则将匹配成功的两个整型数对齐。
步骤D2中计算所述局部音频指纹与当前匹配到的索引中相应对齐长度的匹配度具体为:
计算所述局部音频指纹中第一个整型数之后的其他整型数与所述当前匹配到的索引中相应对齐长度的整型数之间的匹配度。
所述匹配处理包括:
判断两个整型数是否完全一致,如果一致,则确定两个整型数匹配成功;或者,
计算两个整型数之间的海明距离,如果海明距离在设定的第一阈值内,则确定两个整型数匹配成功。
所述匹配度的计算包括:
计算所述局部音频指纹中第一个整型数之后的其他整型数与所述当前匹配到的索引中相应对齐长度的整型数之间的海明距离,如果海明距离在预设的第二阈值内,则确定匹配度在预设的匹配度阈值内。
优选地,所述局部音频指纹为M个局部音频指纹,所述M个局部音频指纹均与所述音频指纹库的其中一个索引匹配成功时,识别出所述待识别音频文件为所述已知类型。
其中,所述已知类型为正版音频文件或者具有相同属性的音频文件。
一种音频文件的识别装置,该识别装置包括:
音频指纹提取单元,用于对已知类型的音频文件进行音频指纹提取;
指纹库建立单元,用于利用所述音频指纹库提取单元提取的音频指纹建立所述已知类型的音频指纹库,所述音频指纹库中的各音频指纹以各自第N段指纹的数据作为索引,所述N为预设正整数;
文件接收单元,用于接收待识别音频文件;
局部指纹提取单元,用于提取所述待识别音频文件的第N段指纹的局部音频指纹;
类型识别单元,用于将所述局部音频指纹与所述音频指纹库的索引进行匹配,如果匹配成功,则识别出所述待识别音频文件为所述已知类型。
具体地,所述音频指纹提取单元包括:
第一解码子单元,用于将所述音频文件进行解码,得到预设的音频格式;
第一转换子单元,用于将所述第一解码子单元解码后的音频文件进行指定采样率的转换;
第一变换子单元,用于对所述第一转换子单元转换后的音频文件中的音频信号进行傅里叶变换;
第一编码子单元,用于计算所述第一变换子单元变换后的各段音频信号中相邻帧之间的能量差并进行编码,得到各段音频指纹构成的所述音频文件的音频指纹。
其中,所述局部指纹提取单元具体包括:
第二解码子单元,用于将所述待识别音频文件进行解码;
第二转换子单元,用于将所述第二解码子单元解码后的待识别音频文件进行指定采样率的转换;
第二变换子单元,用于将所述第二转换子单元转换后的待识别音频文件中的音频信号进行傅里叶变换;
第二编码子单元,用于计算所述第二变换子单元变换后的第N段音频信号中从第M1帧开始连续M2帧的相邻帧之间的能量差并进行编码,得到局部音频指纹,所述M1和所述M2为预设的正整数。
或者,所述局部指纹提取单元具体包括:
第三解码子单元,用于将所述待识别音频文件的第N段音频信号进行解码;
第三转换子单元,用于将所述第三解码子单元解码后的第N段音频信号进行指定采样率的转换;
第三变换子单元,用于对所述第三转换子单元转换后的第N段音频信号进行傅里叶变换;
第三编码子单元,用于计算所述第三变换子单元变换后的第N段音频信号中从第M1帧开始连续M2帧的相邻帧之间的能量差并进行编码,得到局部音频指纹,所述M1和所述M2为预设的正整数。
优选地,所述进行指定采样率的转换包括:
使用小波函数对被转换的音频文件中的音频信号进行循环滤波,每一次循环滤波进行一次下采样,直至被转换的音频文件达到预设的分辨率。
其中,所述类型识别单元具体包括:对齐处理子单元、匹配处理子单元和类型确定子单元;
所述对齐处理子单元,用于将所述局部音频指纹与音频指纹库中当前匹配到的索引进行对齐处理,如果能够对齐,触发所述匹配处理子单元;如果不能够对齐,则开始下一个索引的匹配;
所述匹配处理子单元,用于受到所述对齐处理子单元的触发后,计算所述局部音频指纹与当前匹配到的索引中相应对齐长度的指纹之间的匹配度,如果匹配度在预设的匹配度阈值内,则确定所述局部音频指纹与所述当前匹配到的索引匹配成功;否则,确定所述局部音频指纹与所述当前匹配到的索引匹配失败,触发所述对齐处理子单元进行下一索引的匹配;
所述类型确定子单元,用于在所述局部音频指纹与所述当前匹配到的索引匹配成功时,识别出所述待识别音频文件为所述已知类型。
所述对齐处理子单元将所述局部音频指纹的第一个整型数与当前匹配到的索引中的各整型数依次进行匹配处理,如果所述局部音频指纹的第一个整型数与当前匹配到的索引中的一个整型数匹配成功,则将匹配成功的两个整型数对齐;或者,
将所述局部音频指纹的第一个整型数与当前匹配到的索引中预设窗口内的各整型数依次进行匹配处理,所述窗口包含所述局部音频指纹在所述待识别音频文件的第N段音频信号的开始帧数,如果所述局部音频指纹的第一个整型数与所述窗口中的一个整型数匹配成功,则将匹配成功的两个整型数对齐。
具体地,所述匹配处理子单元在计算所述局部音频指纹与当前匹配到的索引中相应对齐长度的匹配度时,计算所述局部音频指纹中第一个整型数之后的其他整型数与所述当前匹配到的索引中相应对齐长度的整型数之间的匹配度。
所述对齐处理子单元在进行匹配处理时,具体判断两个整型数是否完全一致,如果一致,则确定两个整型数匹配成功;或者,计算两个整型数之间的海明距离,如果海明距离在设定的第一阈值内,则确定两个整型数匹配成功。
所述匹配处理子单元在计算匹配度时,具体计算所述局部音频指纹中第一个整型数之后的其他整型数与所述当前匹配到的索引中相应对齐长度的整型数之间的海明距离,如果海明距离在预设的第二阈值内,则确定匹配度在预设的匹配度阈值内。
优选地,所述局部指纹提取单元提取所述待识别音频文件的第N段指纹的M个局部音频指纹;
所述类型识别单元在所述M个局部音频指纹均与所述音频指纹库的其中一个索引匹配成功时,识别出所述待识别音频文件为所述已知类型。
其中,所述已知类型为正版音频文件或者具有相同属性的音频文件。
由以上技术方案可以看出,本发明通过对已知类型的音频文件进行音频指纹提取,从而建立已知类型的音频指纹库,当接收到待识别音频文件时,提取待识别音频文件的局部指纹,利用该局部指纹与音频指纹库的索引进行匹配,实现待识别音频文件的类型识别,从而为音频文件的管理和网络资源的优化提供基础。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
音频指纹通常是指使用数字信号处理技术从构成音频文件的音频信号生成的独特代码,通常该独特代码能够唯一标识具有相同内容的音频文件。本发明基于音频指纹实现对音频文件的识别。对已知类型的音频文件进行音频指纹提取,即图1中步骤101;利用提取的音频指纹建立该已知类型的音频指纹库,即图1中步骤102,其中音频指纹库中各音频指纹以其第N段指纹的数据作为索引,N为预设的正整数。例如,可以以音频指纹库中每一段音频指纹的第一段指纹的数据作为索引。
上述音频指纹库的建立过程是预先进行的,并且可以利用新的已知类型的音频文件进行实时扩充。
接收到待识别音频文件时,即图1中步骤103;提取该待识别音频文件的第N段指纹的局部音频指纹,即图1中步骤104;将该局部音频指纹与音频指纹库的索引进行匹配,即图1中步骤105;如果匹配成功,即匹配到对应的音频指纹,则识别出该待识别音频文件为上述的已知类型,即该音频指纹库的类型,即图1中步骤106。
根据不同的应用场景可以建立不同类型的音频指纹库,上述已知类型可以为正版音频文件或者具有相同属性的音频文件。
例如,当应用于正版音频的识别时,可以将正版音频文件库中的所有音频文件进行音频指纹提取,建立正版音频文件的音频指纹库,对于通过第三方链接抓取到的音频文件,提取该抓取到的音频文件的局部音频指纹后与正版音频文件的音频指纹库进行匹配,如果匹配到对应的音频指纹,则识别出该抓取到的音频文件为正版音频文件。
再例如,当应用于歌曲作者识别时,可以将具有相同歌曲作者的音频文件进行音频指纹提取,建立该作者的音频指纹库。当接收到待识别音频文件时,提取该待识别音频文件的局部音频指纹后与该作者的音频指纹库的索引进行匹配,如果匹配到对应的音频指纹,则识别出该待识别音频文件属于该作者。
再例如,当用于歌曲版本识别时,可以将具有相同歌名且相同版本的音频文件进行音频指纹提取,分别建立具有相同歌名和相同版本的音频指纹库,这样具有相同歌名的歌曲就可能存在:原版音频指纹库、翻唱音频指纹库、伴奏音频指纹、铃声音频指纹库等。当接收到待识别音频文件时,提取该待识别音频文件的局部音频指纹,分别与各类型的音频指纹库的索引进行匹配,如果匹配到伴奏音频指纹库的音频指纹,则确定该待识别音频文件为具有该歌名的伴奏版本。
诸如此类,在此不再对各种应用场景进行穷举。
下面对上述方法中的步骤进行详细描述。
首先对步骤101,即对音频文件进行音频指纹提取的过程进行详细描述,如图2所示,该过程可以包括以下步骤:
步骤201:将音频文件进行解码,得到预设的音频格式。
在本发明实施例中需要对音频文件采用预设的解码方法,从而使各音频文件都转换为统一的音频格式。例如,将rm、wma、mp3等格式的音频文件统一转换为wav格式的音频文件,从而方便音频指纹库的索引统一化和检索统一化。
步骤202:将步骤201得到的音频文件进行指定采样率的转换。
为了提高时域粒度,本发明实施例中对音频文件进行降采样,在降采样的实现过程中,可以使用小波分析中的多分辨理论。具体来说,可以使用小波函数,对音频文件的音频信号做循环滤波,每一次循环滤波进行一次下采样,直至达到预设的分辨率。其中小波函数可以包括但不限于:Daubechies函数、Biorthogonal函数等,诸如采用阶数为6的Daubechies(dh6)函数。下采样的方式可以采用2下采样、4下采样等。
步骤203:对音频文件中的音频信号进行傅里叶变换。
在本步骤中可以对音频信号进行快速傅里叶变换(FFT)来提高效率,本步骤可以采用现有技术,在此不再赘述。
步骤204:计算音频文件中各段音频信号相邻帧之间的能量差,将相邻帧之间的能量差进行编码得到各段音频指纹,音频文件的各段音频指纹构成音频文件的音频指纹。
为了方便能量差的计算,可以首先依据听觉响度将声音频段分成多个信号能量等级,这样每一帧都对应一个能量等级,在计算相邻帧之间的能量差时计算相邻帧对应的能量等级之差。
通常可以将音频文件划分为多段音频信号,将每一段音频信号中的相邻帧都进行能量差的计算并编码,得到每一段音频信号的指纹。例如,音频文件中第一段连续1280帧,分别计算相邻帧的能量差编码为32位整数,就得到1279个32位整型数构成第一段音频信号的指纹,最终各段音频信号的指纹构成整个音频文件的指纹。需要说明的是,本发明实施例并不限定音频文件中每一段包含的帧数,可以根据实际情况和需求进行设置。
下面对步骤102,即利用提取的音频指纹建立该已知类型的音频指纹库的步骤进行描述。通常在对音频文件的音频指纹进行存储时,可以将各段音频信号的指纹连续存储,以第N段指纹的数据作为索引。例如以第1段指纹的数据作为索引。
音频指纹通常在存储空间中连续存储,为了能够找到某个音频文件的音频指纹,需要记录其位置,每个音频指纹的起始位置记录为段外偏移,每一个音频指纹可能包括多段指纹,每段指纹的起始位置在该音频文件的音频指纹中的起始位置记录为“段内偏移”。如图3所示,对于第2个音频文件的音频指纹,其起始位置记录为段外偏移offset1,假设索引为其第2段指纹,则记录该第2段指纹的起始位置为段内偏移offset2,在存储索引时,索引(key)的键值指向的指纹偏移信息为(offset1,offset2)。
如果接收到待识别的音频文件,例如通过第三方链接抓取到的音频文件,对该待识别的音频文件进行局部音频指纹提取的步骤即图1中步骤104进行描述。如图4所示,可以包括以下步骤:
步骤401:将待识别的音频文件进行解码,得到预设的音频格式。
为了后续对该待识别的音频文件实现在音频指纹库中的检索,需要在解码时,解码得到的音频格式与图2中步骤201所述的预设的音频格式一致。
步骤402:将步骤401得到的待识别音频文件进行指定采样率的转换。
实现方法同上述步骤202,不再赘述。
步骤403:对待识别音频文件中的音频信号进行傅里叶变换。
本步骤进行傅里叶变换的方式与图2中步骤203相同。
上述步骤401至步骤403可以针对音频文件的所有音频信号进行;优选地,由于在进行检索时匹配用到的仅是第N段音频信号的指纹,因此也可以仅针对音频文件的第N段音频信号进行:即在步骤401中将待识别的音频文件中第N段音频信号进行解码得到预设的音频格式,在步骤402中将步骤401处理过的第N段音频信号进行指定采样率的转换,在步骤403中对待识别音频文件中的第N段音频信号进行傅里叶变换。
步骤404:计算待识别音频文件中第N段音频信号中从第M1帧开始连续M2帧的相邻帧之间的能量差并进行编码得到局部音频指纹,其中M1和M2为预设的正整数。
为了提高后续检索的效率、减小计算量,在本步骤中仅针对待识别音频文件的第N段音频信号进行局部音频指纹的提取,该连续M2帧为该第N段音频信号中的部分帧。例如,在建立音频指纹库的索引时采用的是连续1280帧的相邻帧之间的能量差进行编码得到的指纹,在本步骤中可以采用连续256帧的相邻帧之间的能量差进行编码得到的指纹作为提取出的局部音频指纹,即得到255个32位的整型数。
下面对局部音频指纹与音频指纹库的索引进行匹配的过程进行描述,如图5所示,匹配过程可以包括以下步骤:
步骤501:将局部音频指纹的与音频指纹库的索引进行对齐处理,如果能够对齐,则执行步骤502;如果不能够对齐,则开始下一个索引的匹配,转至步骤501。
首先根据索引的key的键值所指向的段外偏移和段内偏移可以获取到索引的指纹数据。
局部音频指纹和音频指纹库中索引的指纹数据都是由多个整型数构成,每个整型数为32位,因此,本步骤中采用的对齐处理的方式可以为:将局部音频指纹的第一个32位整型数与索引中的各32位整型数依次进行匹配处理,如果与索引中的某个32位整型数匹配成功,则将该局部音频指纹的第一个32位整型数与其匹配成功的32位整型数对齐。
其中,上述匹配处理可以包括但不限于以下两种方式:
方式1:判断两个整型数是否完全一致,如果一致,则确定两个整型数匹配成功。
方式2:计算两个整型数之间的海明距离,如果海明距离在设定的第一阈值内,则确定两个整型数匹配成功。由于32位的整型数比较容易发生偏差,微小的偏差通常也能够被接受,因此在此处采用海明距离的方式进行匹配处理。例如,如果两个整型数之间的海明距离在2以内,则可以认为两个整型数是匹配的。
除了上述将局部音频指纹的第一个32位整型数与索引中的各32位整型数依次进行匹配处理之外,本发明实施例还可以采用另一种优选的方式,由于局部音频指纹的开始帧理想状况是从第M1帧开始,因此,可以在第M1帧周围设置一个窗口,在该窗口内进行匹配从而提高效率,减小计算量。即将局部音频指纹的第一个32位整型数与索引中预设窗口内的各整型数进行匹配处理,该预设的窗口包含索引的第M1帧。例如,假设局部音频指纹的提取是从第N段音频信号的第257帧开始进行编码得到的,则可以以第257帧为中心设置一个窗口,诸如设置一个长度为50帧的窗口,将该窗口内的各整型数与局部音频指纹的第一个32位整型数匹配。
步骤502:计算局部音频指纹与索引中相应对齐长度的指纹之间的匹配度,如果匹配度在设定的匹配度阈值内,则确定局部音频指纹与该索引匹配成功,即局部音频指纹匹配到该索引对应的音频指纹;否则,确定局部音频指纹与该索引匹配失败,可以进行下一索引的匹配,转至步骤501。
假设局部音频指纹采用255个32位整型数,则将除了第1个整型数之后的254个整型数与索引中与局部音频指纹的第1个整型数对齐的整型数之后的254个整型数计算匹配度。
匹配度的计算可以包括但不限于:计算局部音频指纹中第一个整型数之后的其他整型数与索引中相应对齐长度的整型数的海明距离,如海明距离在预设的第二阈值内,则确定局部音频指纹与该索引匹配。
在本发明实施例中可以采用图4所示方式从待识别音频文件的第N段音频信号中提取一个局部音频指纹,利用提取的该个局部音频指纹采用图4所示方式在音频指纹库中进行检索。也可以采用图4所示方式从待识别音频文件的第N段音频信号中分别提取两个局部音频指纹,需要索引与这两个局部音频指纹都匹配成功,例如从第M1帧开始连续M2帧的相邻帧之间的能量差进行编码得到的第一个局部音频指纹,以及从第M3帧开始连续M2帧的相邻帧之间的能量差进行编码得到的第二个局部音频指纹。首先将第一个局部音频指纹采用图5所示方式与音频指纹库的索引进行匹配,如果匹配失败,则没有匹配到该索引;如果匹配成功,则将第二个局部音频指纹采用图5所示方式与匹配到的索引再进行匹配,如果匹配失败,则没有匹配到该索引,如果匹配成功,则确定该待识别音频文件匹配到该索引。第二个局部音频指纹用于进行进一步的验证,从而保证匹配的准确性。
以上是对本发明所提供的方法进行的详细描述,下面结合实施例对本发明提供的装置进行详细描述。
图6为本发明实施例提供的装置结构示意图,如图6所示,该装置可以包括:音频指纹提取单元600、指纹库建立单元610、文件接收单元620、局部指纹提取单元630和类型识别单元640。
音频指纹提取单元600对已知类型的音频文件进行音频指纹提取。
其中,上述已知类型可以为正版音频文件或者具有相同属性的音频文件。其中相同属性可以包括但不限于:相同名称、相同作者、相同版本等。
指纹库建立单元610利用音频指纹库提取单元600提取的音频指纹建立已知类型的音频指纹库,音频指纹库中的各音频指纹以各自第N段指纹的数据作为索引,N为预设正整数。
通常在对音频文件的音频指纹进行存储时,可以将各段音频信号的指纹连续存储,以第N段指纹的数据作为索引。例如以第1段指纹的数据作为索引。
文件接收单元620接收待识别音频文件。
局部指纹提取单元630提取待识别音频文件的第N段指纹的局部音频指纹。
类型识别单元640将局部音频指纹与音频指纹库的索引进行匹配,如果匹配成功,则识别出待识别音频文件为已知类型。
具体地,上述音频指纹提取单元600可以包括:第一解码子单元601、第一转换子单元602、第一变换子单元603和第一编码子单元604。
第一解码子单元601将音频文件进行解码,得到预设的音频格式。
在本发明实施例中需要对音频文件采用预设的解码方法,从而使各音频文件都转换为统一的音频格式。例如,将rm、wma、mp3等格式的音频文件统一转换为wav格式的音频文件,从而方便音频指纹库的索引统一化和检索统一化。
第一转换子单元602将第一解码子单元601解码后的音频文件进行指定采样率的转换。
第一变换子单元603对第一转换子单元602转换后的音频文件中的音频信号进行傅里叶变换。
第一编码子单元604计算第一变换子单元603变换后的各段音频信号中相邻帧之间的能量差并进行编码,得到各段音频指纹构成的音频文件的音频指纹。
为了方便能量差的计算,可以首先依据听觉响度将声音频段分成多个信号能量等级,这样每一帧都对应一个能量等级,在计算相邻帧之间的能量差时计算相邻帧对应的能量等级之差。
通常可以将音频文件划分为多段音频信号,将每一段音频信号中的相邻帧都进行能量差的计算并编码,得到每一段音频信号的指纹。
另外,上述局部指纹提取单元630在提取局部音频指纹时可以采用以下两种结构:
第一种结构,参见图6,局部指纹提取单元630可以具体包括:第二解码子单元631、第二转换子单元632、第二变换子单元633和第二编码子单元634。
第二解码子单元631将待识别音频文件进行解码。
第二转换子单元632将第二解码子单元631解码后的待识别音频文件进行指定采样率的转换。
第二变换子单元633将第二转换子单元632转换后的待识别音频文件中的音频信号进行傅里叶变换。
第二编码子单元634计算第二变换子单元633变换后的第N段音频信号中从第M1帧开始连续M2帧的相邻帧之间的能量差并进行编码,得到局部音频指纹,M1和M2为预设的正整数。
第二种结构,参见图7,局部指纹提取单元630可以具体包括:第三解码子单元731、第三转换子单元732、第三变换子单元733和第三编码子单元734。
第三解码子单元731将待识别音频文件的第N段音频信号进行解码。
第三转换子单元732将第三解码子单元731解码后的第N段音频信号进行指定采样率的转换。
第三变换子单元733对第三转换子单元732转换后的第N段音频信号进行傅里叶变换。
第三编码子单元734计算第三变换子单元733变换后的第N段音频信号中从第M1帧开始连续M2帧的相邻帧之间的能量差并进行编码,得到局部音频指纹,M1和M2为预设的正整数。
第二种结构与第一种结构不同的是,在第一种结构中第二解码子单元631、第二转换子单元632、第二变换子单元633的处理对象都是对待识别音频文件的所有音频信号,在第二种结构中作为一种优选的实施例,第二解码子单元631、第二转换子单元632、第二变换子单元633的处理对象仅是待识别音频文件的第N段音频信号,这样能够进一步提高匹配效率。
上述第一转换子单元602、第二转换子单元632和第三转换子单元732进行指定采样率的转换实际上是进行降采样处理,在降采样的实现过程中,可以使用小波分析中的多分辨理论。具体地,使用小波函数对被转换的音频文件中的音频信号进行循环滤波,每一次循环滤波进行一次下采样,直至被转换的音频文件达到预设的分辨率。其中小波函数可以包括但不限于:Daubechies函数、Biorthogonal函数等,诸如采用dh6函数。下采样的方式可以采用2下采样、4下采样等。
另外,上述的第二解码子单元631和第三解码子单元731需将待识别音频文件进行解码得到与第一解码子单元601进行解码得到的音频格式一致。
下面对类型识别单元640的结构进行描述,如图6和图7所示,可以具体包括:对齐处理子单元641、匹配处理子单元642和类型确定子单元643。
对齐处理子单元641将局部音频指纹与音频指纹库中当前匹配到的索引进行对齐处理,如果能够对齐,触发匹配处理子单元642;如果不能够对齐,则开始下一个索引的匹配。
具体地,对齐处理子单元641可以将局部音频指纹的第一个整型数与当前匹配到的索引中的各整型数依次进行匹配处理,如果局部音频指纹的第一个整型数与当前匹配到的索引中的一个整型数匹配成功,则将匹配成功的两个整型数对齐;或者,将局部音频指纹的第一个整型数与当前匹配到的索引中预设窗口内的各整型数依次进行匹配处理,窗口包含局部音频指纹在待识别音频文件的第N段音频信号的开始帧数,如果局部音频指纹的第一个整型数与窗口中的一个整型数匹配成功,则将匹配成功的两个整型数对齐。
另外,对齐处理子单元641在进行匹配处理时,具体判断两个整型数是否完全一致,如果一致,则确定两个整型数匹配成功;或者,计算两个整型数之间的海明距离,如果海明距离在设定的第一阈值内,则确定两个整型数匹配成功。
匹配处理子单元642受到对齐处理子单元641的触发后,计算局部音频指纹与当前匹配到的索引中相应对齐长度的指纹之间的匹配度,如果匹配度在预设的匹配度阈值内,则确定局部音频指纹与当前匹配到的索引匹配成功;否则,确定局部音频指纹与当前匹配到的索引匹配失败,触发对齐处理子单元641进行下一索引的匹配。
具体地,匹配处理子单元642在计算局部音频指纹与当前匹配到的索引中相应对齐长度的匹配度时,具体计算局部音频指纹中第一个整型数之后的其他整型数与当前匹配到的索引中相应对齐长度的整型数之间的匹配度。
在计算匹配度时,可以具体计算局部音频指纹中第一个整型数之后的其他整型数与当前匹配到的索引中相应对齐长度的整型数之间的海明距离,如果海明距离在预设的第二阈值内,则确定匹配度在预设的匹配度阈值内。
类型确定子单元643在局部音频指纹与当前匹配到的索引匹配成功时,识别出待识别音频文件为已知类型。
除了上述从待识别音频文件的第N段音频信号中提取一个局部音频指纹之外,局部指纹提取单元630提取待识别音频文件的第N段指纹的M个局部音频指纹。
类型识别单元640在M个局部音频指纹均与音频指纹库的其中一个索引匹配成功时,识别出待识别音频文件为已知类型。
例如局部指纹提取单元630从第M1帧开始连续M2帧的相邻帧之间的能量差进行编码得到的第一个局部音频指纹,以及从第M3帧开始连续M2帧的相邻帧之间的能量差进行编码得到的第二个局部音频指纹。类型识别单元640首先将第一个局部音频指纹与音频指纹库的索引进行匹配,如果匹配失败,则没有匹配到该索引;如果匹配成功,则将第二个局部音频指纹与匹配到的索引再进行匹配,如果匹配失败,则没有匹配到该索引,如果匹配成功,则确定该待识别音频文件匹配到该索引。第二个局部音频指纹用于进行进一步的验证,从而保证匹配的准确性。
采用本发明提供的上述方法和装置能够实现待识别音频文件的类型识别,例如对正版音频文件的识别,对音频文件的名称、作者或者版本的识别等,从而为音频文件的管理和网络资源的优化提供基础。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。