发明内容
本发明实施例的目的在于提供一种音频内容的匹配方法和系统,以解决现有技术因数据冗余造成的负担和匹配误差的问题。
本发明实施例是这样实现的,一种音频内容的匹配方法,所述方法包括以下步骤:
从待匹配音频片段中获取第一音频帧和第二音频帧,所述第一音频帧和第二音频帧为两帧连续的音频;
将所述第一音频帧转换为第一组子带,将所述第二音频帧转换为第二组子带;
将所述第一组子带转换为第一组子哈希表,将所述第二组子带转换为第二组子哈希表;
将所述第一组子哈希表和所述第二组子哈希表分别与数据库中保存的音频片段进行比对,获取第一组候选音频和第二组候选音频;
从所述第一组候选音频和所述第二组候选音频中筛选匹配结果。
本发明实施例的另一目的在于提供一种音频内容的匹配系统,所述系统包括:
音频帧获取单元,用于从待匹配音频片段中获取第一音频帧和第二音频帧,所述第一音频帧和第二音频帧为两帧连续的音频;
子带转换单元,用于将所述音频帧获取单元获取的第一音频帧转换为第一组子带,将所述第二音频帧转换为第二组子带;
子哈希表转换单元,用于将所述子带转换单元装换的第一组子带转换为第一组子哈希表,将所述第二组子带转换为第二组子哈希表;
候选音频获取单元,用于将所述子哈希表转换单元装换的第一组子哈希表和第二组子哈希表分别与数据库中保存的音频片段进行比对,获取第一组候选音频和第二组候选音频;
匹配结果筛选单元,用于从所述候选音频获取单元获取的第一组候选音频和第二组候选音频中筛选匹配结果。
本发明实施例中,将待匹配音频片段分成子带,对子带进行小波变化后,保留能量最高的子带的系数,通过位置敏感哈希算法将所述系数转换为一组子哈希表,通过分布式存储方法保存所有的子哈希表,获取每组子哈希表的匹配结果,并将每组子哈希表的匹配结果与连续的一帧音频片段的匹配结果进行比对,获取最终的匹配结果,使得音频指纹不会冗余,通过位置敏感哈希算法获得的子哈希表得到全部保存,并通过至少两帧连续的音频片段的比对,增加了匹配的准确性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,将待匹配音频片段分成子带,对子带进行小波变化后,保留能量最高的子带的系数,通过位置敏感哈希算法将所述系数转换为一组子哈希表,通过分布式存储方法保存所有的子哈希表,获取每组子哈希表的匹配结果,并将每组子哈希表的匹配结果与连续的一帧音频片段的匹配结果进行比对,获取最终的匹配结果,使得音频指纹不会冗余,通过位置敏感哈希算法获得的子哈希表得到全部保存,并通过至少两帧连续的音频片段的比对,增加了匹配的准确性。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
如图1所示为本发明实施例提供的音频内容匹配方法的流程图,所述方法包括:
在步骤S101中,从待匹配音频片段中获取第一音频帧和第二音频帧,所述第一音频帧和第二音频帧为两帧连续的音频。
在本发明实施例中,获取电台中播放的音频片段,所述音频片段即为待匹配的音频片段,从所述音频片段中获取至少两帧连续的音频帧:第一音频帧、第二音频帧。此处需要指出的是,待匹配音频片段可以为歌曲,也可以为演说、辩论等。所述从待匹配音频片段中获取第一音频帧和第二音频帧的步骤,包括:
(1)、通过分帧处理将所述待匹配的音频片段分成连续的音频帧。
在本发明实施例中,将给定的待匹配音频片段按照m秒间隔、n秒窗长的进行分帧处理,即:每帧音频的长度为n秒,每两帧连续音频之间的间隔为m秒。
(2)、从所述音频帧中获取第一音频帧和第二音频帧。
在本发明实施例中,从所述音频帧中获取第一音频帧和第二音频帧。需要指出的是,此处为了方便说明指获取第一音频帧和第二音频帧,但在实际计算中,为了匹配更加精确,可以获取第三音频帧、第四音频帧等更多的音频帧。
在步骤S102中,将所述第一音频帧转换为第一组子带,将所述第二音频帧转换为第二组子带。
在本发明实施例中,通过快速傅里叶变化将第一音频帧转换为第一组子带,将第二音频帧转换为第二组子带,使得在后续的步骤中,可以通过第一组子带和第二组子带获取音频片段的音频指纹,减少了音频指纹在系统中的冗余。
在步骤S103中,将所述第一组子带转换为第一组子哈希表,将所述第二组子带转换为第二组子哈希表。
在本发明实施例中,音频片段本质上是信号,对所述音频片段进行信号处理,即是对音频信号进行信号处理,通过对所述音频片段进行信号处理,即可获取所述至少两帧音频片段的音频指纹。所述将第一组子带转换为第一组子哈希表,将所述第二组子带转换为第二组子哈希表的步骤,包括:
(1)、对所述第一组子带和第二组子带的能量分别进行小波变化,至少保留所述第一组子带中能量最高的两个小波变换的系数和所述第二组子带中能量最高的两个小波变换的系数,将所述第一组子带中能量最高的小波变换的系数组成第一组系数,将所述第二组子带中能量最高的小波变换的系数组成第二组系数。
在本发明实施例中,第一组子带和第二组子带均至少保留两个小波变换的系数,以使在后续的步骤中,通过所述系数获取的候选音频在每组子带内进行比对。
(2)、对所述第一组系数和所述第二组系数分别进行二进制变化,并通过最小哈希算法将经过二进制变化的所述第一组系数压缩为第一组子指纹,将经过二进制变化的所述第二组系数压缩为第二组子指纹。
(3)、通过位置敏感哈希算法将所述第一组子指纹转换为第一组子哈希表,将所述第二组子指纹转换为第二组子哈希表,并通过分布式存储方法存储所述第一组子哈希表和所述第二组子哈希表。
在本发明实施例中,通过位置敏感哈希算法将所述子指纹分成子哈希表。但是位置敏感哈希算法有一个缺点,即位置敏感哈希算法的取值范围比较窄,具体到本实施例,所述缺点表现为不能保存所有的子哈希表,因此本实施例中加入了分布式存储方法,使得所有的子哈希表都可以得到保存。
在步骤S104中,将所述第一组子哈希表和所述第二组子哈希表分别与数据库中保存的音频片段进行比对,获取第一组候选音频和第二组候选音频。
在本发明实施例中,将第一组子哈希表和第二组子哈希表分别与数据库中保存的音频片段进行比对,记录每个子哈希表匹配的音频片段的标识,所述标识包括但不限于:名称,在数据库中的编号等。所述获取第一组候选音频和第二组候选音频,具体为:
(1)、假设第一组子哈希表包含:子哈希表1、子哈希表2。子哈希表1匹配音频片段1、音频片段2、音频片段3,子哈希表2匹配音频片段2、音频片段3、音频片段4,则第一组子哈希表的匹配结果为音频片段2和音频片段3,即第一组候选音频为音频片段2和音频片段3。
(2)、假设第二组子哈希表包含:子哈希表3和子哈希表4。子哈希表3匹配音频片段2、音频片段3、音频片段4,子哈希表4匹配音频片段3、音频片段4、音频片段5,则第二组子哈希表的匹配结果为音频片段3和音频片段4,即第二组候选音频为音频片段3和音频片段4。
在步骤S105中,从所述第一组候选音频和所述第二组候选音频中筛选匹配结果。
在本发明实施例中,通过第一组候选音频和第二组候选音频的比较,从其中筛选最终的匹配结果。所述从所述第一组候选音频和所述第二组候选音频中筛选匹配结果,具体为:
(1)、计算所述第一组候选音频和所述第二组候选音频中相同的音频的权重;
(2)、选择所述权重最高的音频作为匹配结果。
在本发明实施例中,将第一组候选音频和第二组候选音频进行比对,如第一组子哈希表的匹配结果为:音频片段2、音频片段3,第二组子哈希表的匹配结果为:音频片段3、音频片段4,则最终的匹配结果为音频片段3。其中权重计算使用现有的计算方法,并且根据实际情况可以使用不同的计算方法,此处不对权重的计算方法进行限定。
本发明实施例中,将待匹配音频片段分成子带,对子带进行小波变化后,保留能量最高的子带的系数,通过位置敏感哈希算法将所述系数转换为一组子哈希表,通过分布式存储方法保存所有的子哈希表,获取每组子哈希表的匹配结果,并将每组子哈希表的匹配结果与连续的一帧音频片段的匹配结果进行比对,获取最终的匹配结果,使得音频指纹不会冗余,通过位置敏感哈希算法获得的子哈希表得到全部保存,并通过至少两帧连续的音频片段的比对,增加了匹配的准确性。
实施例二
如图2所示为本发明实施例提供的音频内容匹配系统的结构图,为了便于说明,仅示出与本发明实施例相关的部分,所述系统包括:
音频帧获取单元201,用于从待匹配音频片段中获取第一音频帧和第二音频帧,所述第一音频帧和第二音频帧为两帧连续的音频。
在本发明实施例中,获取电台中播放的音频片段,所述音频片段即为待匹配的音频片段,音频帧获取单元201从所述音频片段中获取至少两帧连续的音频帧:第一音频帧、第二音频帧。所述音频帧获取单元201,具体包括:
分帧子单元2011,用于通过分帧处理将所述待匹配的音频片段分成连续的音频帧。
在本发明实施例中,分帧子单元2011将给定的待匹配音频片段按照m秒间隔、n秒窗长的进行分帧处理,即:每帧音频的长度为n秒,每两帧连续音频之间的间隔为m秒。
获取子单元2012,用于从所述分帧子单元2011分成的音频帧中获取第一音频帧和第二音频帧。
在本发明实施例中,获取子单元2012从所述音频帧中获取第一音频帧和第二音频帧。需要指出的是,此处为了方便说明指获取第一音频帧和第二音频帧,但在实际计算中,为了匹配更加精确,可以获取第三音频帧、第四音频帧等更多的音频帧。
在本发明的一个可选实施例中,在所述分帧子单元2011分帧之前,所述音频帧获取单元201还包括:
设置子单元2013,用于设置每帧音频片段的间隔和每帧音频片段的窗长。
子带转换单元202,用于将所述音频帧获取单元201获取的第一音频帧转换为第一组子带,将所述第二音频帧转换为第二组子带。
在本发明实施例中,子带转换单元202通过快速傅里叶变化将第一音频帧转换为第一组子带,将第二音频帧转换为第二组子带,使得在后续的步骤中,可以通过第一组子带和第二组子带获取音频片段的音频指纹,减少了音频指纹在系统中的冗余。
子哈希表转换单元203,用于将所述子带转换单元202装换的第一组子带转换为第一组子哈希表,将所述第二组子带转换为第二组子哈希表。
在本发明实施例中,音频片段本质上是信号,对所述音频片段进行信号处理,即是对音频信号进行信号处理,通过对所述音频片段进行信号处理,即可获取所述至少两帧音频片段的音频指纹。所述子哈希表转换单元203,具体包括:
系数获取子单元2031,用于对所述第一组子带和第二组子带的能量分别进行小波变化,至少保留所述第一组子带中能量最高的两个小波变换的系数和所述第二组子带中能量最高的两个小波变换的系数,将所述第一组子带中能量最高的小波变换的系数组成第一组系数,将所述第二组子带中能量最高的小波变换的系数组成第二组系数。
在本发明实施例中,第一组子带和第二组子带均至少保留两个小波变换的系数,以使在后续的步骤中,通过所述系数获取的候选音频在每组子带内进行比对。
子指纹获取子单元2032,用于对所述系数获取子单元2031获取的第一组系数和第二组系数分别进行二进制变化,并通过最小哈希算法将经过二进制变化的所述第一组系数压缩为第一组子指纹,将经过二进制变化的所述第二组系数压缩为第二组子指纹。
子哈希表转换子单元2033,用于通过位置敏感哈希算法将所述子指纹获取子单元2032获取的第一组子指纹转换为第一组子哈希表,将所述第二组子指纹转换为第二组子哈希表,并通过分布式存储方法存储所述第一组子哈希表和所述第二组子哈希表。
在本发明实施例中,子哈希表转换子单元2033通过位置敏感哈希算法将所述子指纹分成子哈希表。但是位置敏感哈希算法有一个缺点,即位置敏感哈希算法的取值范围比较窄,具体到本实施例,所述缺点表现为不能保存所有的子哈希表,因此本实施例中加入了分布式存储方法,使得所有的子哈希表都可以得到保存。
候选音频获取单元204,用于将所述子哈希表转换单元203装换的第一组子哈希表和第二组子哈希表分别与数据库中保存的音频片段进行比对,获取第一组候选音频和第二组候选音频。
在本发明实施例中,将第一组子哈希表和第二组子哈希表分别与数据库中保存的音频片段进行比对,记录每个子哈希表匹配的音频片段的标识,所述标识包括但不限于:名称,在数据库中的编号等。获取第一组候选音频和第二组候选音频,具体为:
(1)、假设第一组子哈希表包含:子哈希表1、子哈希表2。子哈希表1匹配音频片段1、音频片段2、音频片段3,子哈希表2匹配音频片段2、音频片段3、音频片段4,则第一组子哈希表的匹配结果为音频片段2和音频片段3,即第一组候选音频为音频片段2和音频片段3。
(2)、假设第二组子哈希表包含:子哈希表3和子哈希表4。子哈希表3匹配音频片段2、音频片段3、音频片段4,子哈希表4匹配音频片段3、音频片段4、音频片段5,则第二组子哈希表的匹配结果为音频片段3和音频片段4,即第二组候选音频为音频片段3和音频片段4。
匹配结果筛选单元205,用于从所述候选音频获取单元204获取的第一组候选音频和第二组候选音频中筛选匹配结果。
在本发明实施例中,通过第一组候选音频和第二组候选音频的比较,从其中筛选最终的匹配结果。所述匹配结果筛选单元205,具体包括:
权重计算子单元2051,用于计算所述第一组候选音频和所示第二组候选音频中相同的音频的权重;
选择子单元2052,用于选择所述权重计算子单元2051计算的权重最高的音频作为匹配结果。
在本发明实施例中,将第一组候选音频和第二组候选音频进行比对,如第一组子哈希表的匹配结果为:音频片段2、音频片段3,第二组子哈希表的匹配结果为:音频片段3、音频片段4,则最终的匹配结果为音频片段3。其中权重计算使用现有的计算方法,并且根据实际情况可以使用不同的计算方法,此处不对权重的计算方法进行限定。
本发明实施例中,将待匹配音频片段分成子带,对子带进行小波变化后,保留能量最高的子带的系数,通过位置敏感哈希算法将所述系数转换为一组子哈希表,通过分布式存储方法保存所有的子哈希表,获取每组子哈希表的匹配结果,并将每组子哈希表的匹配结果与连续的一帧音频片段的匹配结果进行比对,获取最终的匹配结果,使得音频指纹不会冗余,通过位置敏感哈希算法获得的子哈希表得到全部保存,并通过至少两帧连续的音频片段的比对,增加了匹配的准确性。
本领域普通技术人员可以理解为上述实施例二所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。