一种针对音频指纹库数据的多级索引方法

文档序号:8445632阅读:410来源:国知局
一种针对音频指纹库数据的多级索引方法
【技术领域】
[0001]本发明涉及音频指纹识别技术领域,具体涉及一种针对音频指纹库数据的多级索引方法。
【背景技术】
[0002]音频指纹识别(俗称“听音识曲”)是一种新兴的音乐搜索技术,该技术通过分析音频文件的频谱,提取称为“音频指纹”的数字特征,并使用数字特征构建“海量音频指纹库”,部署于网络服务器上,客户端可将录制的未知音频片段发送到服务器,服务器使用相同的算法提取“音频指纹”,然后通过搜索算法在海量音频指纹库中查找相似特征,并根据找到的若干特征推测目标音频文件,将结果返回给客户端即完成了整个识别过程。音频指纹识别是一种兼具数据密集型和计算密集型的应用:海量音频指纹库必须包含足够多的音频文件的特征,才能保证应用的识别率,该规模通常为千万级,而音频指纹的数量更是为数十亿级的,这导致搜索算法的计算量巨大。现有技术中的音频指纹一般可以表示为key-value对,目前的搜索算法一般借助二叉树或hash表实现,首先通过key,找到海量音频指纹库中所有具有key的指纹的所有value,然后遍历value,找到与查询指纹中的value相同的所有value,假设key的平均value数目为10000,平均一次查询包含指纹2000个,则每次识别至少需要2000万次比较,庞大的计算量严重的影响了搜索的性能,而实际上,key的value数目分布较为不平均,因此搜索性能尚存在极大的优化潜力,其搜索速度亟待获得进一步的提尚。
[0003]因此,研发一种针对海量音频指纹库数据的高效的索引方法,以提高搜索引擎的搜索速度,进而提高搜索的效率成为一种必需。

【发明内容】

[0004]为此,本发明提供一种针对音频指纹库数据的多级索引方法和设备,解决现有技术中海量音频指纹库搜索性能低下,比较查询时计算次数偏高的技术问题。
[0005]为此,本发明提供一种针对音频指纹库数据的多级索引方法,包括:将所述音频指纹库数据中每一个音频指纹的value的数据位切分成索引部分和指纹数据部分,其中,所述索引部分为多级索引;将所述索引部分中的各级通过指针指向下一级;以及将所述索引部分的最后一级的指针指向所述指纹数据部分。
[0006]根据本发明的一个实施方式,其中,所述索引部分位于所述音频指纹的数据位的前一半;所述指纹数据部分位于所述音频指纹的数据位的后一半。
[0007]根据本发明的一个实施方式,其中,所述方法还包括:构建索引列表,其中,将所述索引列表中的每一级包含多个索引位;将位于所述索引列表中前一级的每一个索引位与位于后一级的多个索引位相对应;将位于最后一级的索引位均与其所指向的指纹数据相对应。
[0008]根据本发明的一个实施方式,其中,所述索引部分为二级索引。
[0009]根据本发明的一个实施方式,其中,所述二级索引中,每一级索引所占据的数据位的数量相同。
[0010]根据本发明的一个实施方式,其中,所述音频指纹的value的数据位为32位或64位。
[0011]根据本发明的一个实施方式,其中,所述二级索引,分别为第一级索引和第二级索引;步骤“构建索引列表”还进一步包括将所述索引部分结构序列化存储,步骤如下:在所述第一级索引后分别依次存放指向其自身的若干个第二级索引的数据位,及被所述第二级索引指向的指纹数据,以形成与所述第一级索引的数据位相同数量的数据块;将上述数据块依次存储。
[0012]根据本发明的一个实施方式,其中,所述索引列表的存在形式为数组。
[0013]为此,本发明提供一种针对音频指纹库数据的多级索引设备,包括:用于将所述音频指纹库数据中每一个音频指纹的value的数据位切分成索引部分和指纹数据部分的装置,其中,所述索引部分为多级索引;用于将所述索引部分中的各级通过指针指向下一级的装置;以及用于将所述索引部分的最后一级的指针指向所述指纹数据部分的装置。
[0014]根据本发明的一个实施方式,其中,所述多级索引设备还包括:用于构建索引列表的装置,包括:用于将所述索引列表中的每一级包含多个索引位的装置;用于将位于所述索引列表中前一级的每一个索引位与位于后一级的多个索引位相对应的装置;用于将位于最后一级的索引位均与其所指向的指纹数据相对应的装置。
[0015]本发明通过将位于音频指纹库数据中每一个音频指纹的value的数据位切分成索引部分和指纹数据部分,为实现多级索引提供了数据结构方面的技术支持;检索时仅需在满足上一级索引条件的value中检索满足下一级索引条件的value,由于采用逐级比较,位于下一级的检索量远低于上一级,极大地降低了检索数据所需的访问量,降低数据比较所需的运算次数,有效的提高了音频指纹库数据的索引效率。进一步的,由于本发明的数据处理仅为将位于音频指纹库数据中每一个音频指纹的value的数据位进行切分,切分后的value的各部分数据依旧以指针的形式保持彼此关联,在没有破坏切分前value的原始数据信息的前提下,还有利于为“将value进行序列化存储”提供数据结构上的技术支持,进而更有利于实现节约存储空间。
[0016]优选的,本发明将切分后的value的前一半作为索引部分,将切分后的value的后一半作为指纹数据部分,仅利用value的前一半作为检索该value的索引码,在不影响索引准确率的前提下,减少索引比对时所需的计算量。
[0017]优选的,本发明为了更方便索引,构建了数据格式与索引部分相一致的索引列表,索引列表的构建为进一步实现将value进彳丁序列化存储及进彳丁尚效的音频指纹数据索引提供了有力的技术支持。查找音频指纹数据时仅需访问索引列表既能完成对“待查找value”所需进行的数据检索。
[0018]优选的,本发明通过采用二级索引,并构建与其适配的索引列表,实现将索引部分结构序列化存储,使内存的使用更加紧凑,可有效减少内存碎片的产生;其中,索引列表用于维护第二级索引相对于第一级索引的偏移位置。
[0019]优选的,本发明提出了将32位或64位的整数切分,并构建多级索引的方法,可以在搜索时迅速缩小查找范围和需要比较的数据量,从而可以减少计算量,提升查询性能。
[0020]优选的,本发明还提供一种针对音频指纹库数据的多级索引设备,为实现本发明上述索引功能提供更好的硬件结构支持。
【附图说明】
[0021]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1为本发明实施例1中针对音频指纹库数据的多级索引方法示意图。
[0023]图2为本发明实施例2中切分后value的结构示意图;
[0024]图3为本发明实施例3中针对音频指纹库数据的多级索引方法示意图;
[0025]图4为本发明实施例4中针对音频指纹库数据的多级索引方法示意图;
[0026]图5为本发明实施例5中针对音频指纹库数据的多级索引设备结构示意图;
[0027]图6为本发明实施例6中针对音频指纹库数据的多级索引设备结构示意图;
[0028]图7为本发明实施例7中value结构拆分示意图;
[0029]图8为本发明实施例7中多级索引结构构建方法示意图;
[0030]图9为本发明实施例7中索引结构序列化存储方式示意图。
【具体实施方式】
[0031]下面结合说明书附图及实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例仅用于说明本发明,但不能用来限制本发明的范围。
[0032]实施例1:
[0033]不失一般性,如图1所示,本发明提供一种针对音频指纹库数据的多级索引方法,包括:
[0034]S1000:将所述音频指纹库数据中每一个音频指纹的value的数据位切分成索引部分和指纹数据部分,其中,所述索引部分为多级索引;
[0035]S2000:将所述索引部分中的各级通过指针指向下一级;以及
[0036]S3000:将所述索引部分的最后一级的指针指向所述指纹数据部分。
[0037]本发明通过将位于音频指纹库数据中每一个音频指纹的value的数据位切分成索引部分和指纹数据部分,为实现多级索引提供了数据结构方面的技术支持;检索时仅需在满足上一级索引条件的value中检索满足下一级索引条件的value,由于采用逐级比较,位于下一级的检索量远低于上一级,极大地降低了检索数据所需的访问量,降低数据比较所需的运算次数,有效的提高了音频指纹库数据的索引效率。进一步的,由于本发明的数据处理仅为将位于音频指纹库数据中每一个音频指纹的value的数据位进行切分,切分后的value的各部分数据依旧以指针的形式保持彼此关联,在没有破坏切分前value的原始数据信息的前提下,还有利于为“将value进行序列化存储”提供数据结构上的技术支持,进而更有利于实现节约存储空间。
[0038]实施例2:
[0039]优选的,如图2所示,本发明将切分后的value的前一半作为索引部分YN,将切分后的value的后一半作为指纹数据部分SJ,仅利用value的前一半作为检索该value的索引码,在不影响索引准确率的前提下,减少索引比对时所需的计算量。
[0040]实施例3:
[0041]优选的,如图3所示,本发明在实施例1的基础上,在针对音频指纹库数据的多级索引方法的步骤中进一步包括步骤:
[0042]S4000:构建索引列表,其中,包括:
[0043]S4100:将所述索引列表中的每一级包含多个索引位;
[0044]S4200:将位于所述索引列表中前一级的每一个索引位与位于后
[0045]一级的多个索引位相对应;
[0046]S4300:将位于最后一级的索引位均与其所指向的指纹数据相对应。
[0047]本发明为了更方便索引,构建了数据格式与索引部分相一致的索引列
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1