一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

音频指纹提取和建库方法、及音频识别和检索方法与系统与流程

2021-07-16 16:35:00 来源:中国专利 TAG:音频 方法 指纹 提取 音频处理


1.本公开涉及一种音频处理领域,尤其设置一种音频指纹提取和建库方法,以及相应的音频识别和检索方法与系统。


背景技术:

2.随着数字技术和音乐市场的发展,每个音乐流媒体服务商所拥有的曲库(音频库)也变得越来越大。例如,一个成熟的商用曲库可能包括千万级的音乐数据。为此,需要一种能够以相对精简的方式描述音乐数据的方法,例如,音频指纹。为每个音频提取的音频指纹可以被放入音频指纹库中,用以对输入音频进行匹配与检索,例如,音乐播放app对应的“听歌识曲”功能。
3.面对百万甚至千万级的音乐数据,如何准确且高效地描述音乐数据,如何快速进行音频检索和匹配,成为了本领域内的一大难题。


技术实现要素:

4.本公开要解决的一个技术问题是提供一种改进的音频指纹提取方案,进而提供一种基于上述提取指纹的建库方案,建立的音频指纹库可用于与客户端的交互以实现音频检索功能。
5.根据本公开的第一方面,提供了一种音频指纹提取方法,包括:获取音频的频谱;基于频谱内参考峰值点与其他峰值点的频率时间关系,生成峰值点对;基于峰值点对生成所述音频的音频指纹。
6.根据本公开的第二方面,提供了一种音频指纹库建立方法,包括:获取曲库内的音频;根据本公开第一方面所述的方法,提取获取音频的音频指纹;以及将提取的音频指纹进行排序。
7.根据本公开的第三方面,提供了一种音频检索方法,包括:获取查询音频;提取所述查询音频的查询音频指纹;将所述查询音频指纹送入根据本公开第二方面建立的音频指纹库;基于所述音频指纹库进行音频指纹的匹配;以及基于音频指纹的匹配,返回音频检索结果。
8.根据本公开的第四方面,提供了一种音频识别方法,包括:根据本公开第一方面所述的方法,提取目标音频的音频指纹;以及基于所述音频指纹,判定音频身份。
9.根据本公开的第五方面,提供了一种音频检索系统,包括客户端,服务器和音频指纹库,其中,所述客户端用于:获取用户输入的查询音频,所述服务器用于:将从查询音频提取的查询音频指纹输入所述音频指纹库进行匹配;以及基于音频指纹的匹配,向所述用户返回音频检索结果,其中,查询音频和音频指纹库中音频的音频指纹基于如下操作生成:基于音频的频谱内参考峰值点与其他峰值点的频率时间关系,生成峰值点对;基于峰值点对生成对应音频的音频指纹。
10.由此,本发明的音频指纹提取方案能够提取出精准描述且易于检索的音频指纹,
上述音频指纹还可以进行旋律与伴奏的分类,从而为以此建立的音频指纹库提供更为丰富的指纹素材,并为后续的指纹检索提供了更多的检索方式。另外,建立的指纹库可以按照音频热度进行分片,以便在后续提供冷热分离式的高效检索。
附图说明
11.通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
12.图1示出了根据本发明一个实施例的音频指纹提取方法的示意性流程图。
13.图2示出了哈希时间对生成的一个例子。
14.图3示出了根据本发明一个实施例的音频指纹库建立方法的示意性流程图。
15.图4示出了根据本发明一个实施例的音频检索方法的示意性流程图。
16.图5示出了根据本发明进行音频检索的示意图。
17.图6示出了可以实现本发明音频检索功能的音频检索系统的组成示意图。
18.图7示出了服务端内部配置的一个例子。
19.图8示出了应用本发明的音乐检索的一个具体场景例。
具体实施方式
20.下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
21.一个成熟的商用曲库可能包括千万级的音乐数据。为此,需要一种能够以相对精简的方式描述音乐数据的方式,例如,使用音频指纹。在此,音频指纹指代基于音频内容计算出来的极精简的可以概括该音频内容本身的数据片段。可以从曲库的音频文件里,通过算法的手段提取出每个音频的音频指纹。这些提取的音频指纹随后可以被放入统一的音频指纹库中,用以对输入音频进行匹配与检索。例如,音乐播放app的“听歌识曲”功能可以针对一个用户输入的音频片段,找到该片段属于曲库里的哪段音频。面对百万甚至千万级的音乐数据,如何准确且高效地描述音乐数据,如何快速进行音频检索和匹配,成为了本领域内的一大难题。
22.为此,本方面提出了一种改进的的音频指纹提取方案,进而提供一种基于上述提取指纹的建库方案,建立的音频指纹库可用于与客户端的交互以实现音频检索功能。本发明的音频指纹提取方案能够提取出精准描述且易于检索的音频指纹,上述音频指纹还可以是从音频中提取的旋律和/或伴奏的指纹,从而为以此建立的音频指纹库提供更为丰富的指纹素材,并为后续的指纹检索提供了更多的检索方式。另外,建立的指纹库可以按照音频热度进行分片,以便在后续提供冷热分离式的高效检索。
23.图1示出了根据本发明一个实施例的音频指纹提取方法的示意性流程图。在一个实施例中,上述音频指纹提取方法可以是音频指纹库建立操作的一部分,例如,针对曲库中的每首音频进行基于该方法的音频指纹提取。在其他实施例中,上述音频指纹提取方法也
可用于后续音频检索的操作,即,针对给定的音频片段进行指纹提取,用于与已建立的音频指纹库中的现有指纹进行匹配。
24.在步骤s110,获取音频的频谱。在一个实施例中,为了建立针对曲库的音频指纹库,可以逐条或者按照规定顺序获取曲库内的音乐数据(音频),对该音频信号进行预处理(例如,包括傅里叶变换)并获取音频频谱。在另一个实施例中,对于用于检索的音频片段,也进行预处理以得到音频频谱。
25.随后在步骤s120,基于频谱内参考峰值点与其他峰值点的频率时间关系,生成峰值点对。在步骤s130,基于峰值点对生成所述音频的音频指纹。由此,通过频谱中锚点和其他重要点之间的时间频率分布来表示音频的特征。
26.在此,峰值点对可以由包括哈希值和参考峰值点时间的哈希时间对(hash-time对)表征。哈希值表示参考峰值点与其他峰值点的频率时间关系。上述哈希值可以作为峰值点对匹配的键(key)。在后续的音频指纹库构造中,可以将音频指纹库构造成哈希表。哈希表包括由key(键)和value(值)组成的entry(项),一个哈希表中可以包括多个项。哈希表是根据键(key)可以直接访问在内存存储位置的数据结构,由此方便后续基于哈希值的直接访问和匹配。在本发明中,可以将哈希时间对中的哈希值作为哈希表的key,每一个key都附带一个value串。value串可以包括具有该哈希值的歌曲id以及该哈希值在该歌曲中对于的时间t所组成的对(id,t)。
27.为此,哈希表中一个entry可以具有如下形式:
28.key|value,即
29.hash-(id1,t1),(id2,t2),...
30.在此,id1、id2

表示包含该hash值的歌曲id,t1和t2表示该哈希值中参考峰值点在相应歌曲中的时间。在本发明中,可以为每个分区(如下所述)构建一个哈希表,该哈希表中可以具有可供检索的海量条目,例如百万量级。
31.图2示出了哈希时间对生成的一个例子。如左上图所示,音频可以经过变换(例如,短时傅立叶变换)得到相应的频谱。随后,对频谱进行二维选峰,得到右上图所示的“星云图(constellationmap)”,即有峰值的地方为1,无峰值的地方为0。对于星云图里面每一个峰值点,可以选取其后面的一个固定区域大小的空间作为“有效区域”,该区域内可能包含其他一些峰值点,如右下图所示。它们组成了一个【参考峰值点,有效区域】对。对于有效空间内的每一个峰值点,都可以得到一个峰值点对[p1,p2],p1是参考峰值点,p2是有效区域内的峰值点。随后,找到该峰值点对[p1,p2]的时间和频率的关系[f1,f2,dt:t1]以唯一表征该峰值点对,记作hash:time。其中,f1表示p1的频率点,f2表示p2的频率点,dt表示p2和p1的时间差,t1表示p1的时间,hash表示f1、f2和dt三者联合组成的一个数据,time表示t1,如左下图所示。在具体实践中,可以调整峰值划分阈值,有效区域的位置和大小等,以达到最优效果。在其他实施例中,也可以采用其他的方式来生成用于表征峰值点对的哈希-时间对,例如,可以调换hash中f1、f2和dt的位置等,本发明对此不作限制。
[0032]
可以为有效区域内的其他峰值点生成哈希时间对。随后,可以选取星云图中的其他峰值点作为参考峰值点,并进行类似的有效区域选取和哈希时间对生成的操作。针对同一音频(例如,同一张频谱星云图)生成的所有哈希时间对可以作为该音频的指纹。在针对曲库内的歌曲建立音频指纹库时,这些哈希时间对可以关联的存储在一起,例如,与该歌曲
的id关联存储在同一个哈希表内。应该理解的是,由于一首歌的时长较长,例如,流行歌曲的时长通常在3-5分钟,古典乐的时长通常更长,其频谱星云图中通常会包括更多的峰值点,因此每一首曲子的完整音频指纹会可以包括很多个哈希时间对。而为进行音频匹配检索而输入的音频通常只有几秒钟,其包括的哈希时间对要比一首完整的歌曲少得多。
[0033]
在本发明中,可以针对音频的完整信息,例如,一首完整的歌曲,建立音频指纹,也可以对音频本身进行自动分轨(或源分离),再对分轨或分离的数据进行指纹提取(例如,图2所示的峰值对哈希值提取),由此方便从不同角度对音频特征进行描述。在不同实施例中,可以提取音频中的旋律信息和伴奏信息。
[0034]
根据乐理知识可知,“旋律(melody)”是听众感知为单个实体的音乐音调的线性连续,是由一系列不同或相同音高的音,以特定的高低关系和节奏关系联系起来的一种音的序列。旋律对于人的听觉感观来说相当于视觉感观中的线条的概念。从字面意义上来说,旋律是音高和节奏的结合,而比喻性地,旋律还可以包括其他音乐元素,例如音色的连续。可以认为旋律是背景伴奏的前景。“伴奏(accompaniment)”是音乐部分,可为歌曲或乐器的旋律或主要主题提供节奏和/或和声的支持。不同音乐风格的伴奏有很多不同的风格和类型。流行音乐中主要使用和弦伴奏来支持清晰的人声旋律。在流行音乐和传统音乐中,伴奏部分通常为音乐提供“拍子”,并勾勒出歌曲或器乐作品的和弦进行过程。
[0035]
在现有技术中,业已存在相对成熟的算法来提取音频中的旋律信息和伴奏信息。在一个实施例中,本发明的音频指纹提取方法可以实现为或是包括旋律指纹提取方法。为此,该方法还可以包括,提取音频的旋律信息,并基于旋律信息提取音频旋律指纹。具体地,可以对旋律信息进行傅里叶变换,以获取旋律频谱,基于旋律频谱内参考峰值点与其他峰值点的频率时间关系,生成峰值点对;基于峰值点对生成所述旋律的音频旋律指纹。例如,针对提取出的旋律信息,同样可以执行如图2所示的哈希时间对提取操作,并将一首歌的旋律指纹与歌曲id关联存储在旋律哈希表内。如下将详述,可以在将音频指纹库实现为旋律指纹库,或是包括旋律指纹库,以作为完整音频指纹检索的代替或补充。
[0036]
在一个实施例中,提取的旋律信息优选指代人声信息。对于常规的流行歌曲,歌手的演唱或是说唱可被认为是该首歌的旋律,即,最容易被听众感知的歌曲的主要部分。为此,可以基于例如现有的人声提取算法,从音频中提取人声信息,并对人声信息进行傅里叶变换,以获取人声频谱。随后,可以如上所述,基于人声频谱内参考峰值点与其他峰值点的频率时间关系,生成峰值点对;基于峰值点对生成所述人声的音频人声指纹。例如,针对提取出的人声信息,同样可以执行如图2所示的哈希时间对提取操作,并将一首歌的人声指纹与歌曲id关联存储在人声哈希表内。人声指纹可以作为旋律指纹的代替或补充。例如,在检测到一首歌是主要包括人声演唱的歌曲,例如,流行歌曲的情况下,可以选择提取人声信息作为该歌曲的旋律信息。由于在人声响起之前和结束之后,通常还包括前奏、间奏和结尾旋律,因此可以将上述旋律补入人声信息,以作为呈现一首歌完整旋律信息的人声信息。
[0037]
作为代替或是补充,本发明的音频指纹提取方法可以包括伴奏指纹提取方法。为此,该方法还可以包括,提取音频的伴奏信息,并基于伴奏信息提取音频伴奏指纹。具体地,可以对伴奏信息进行傅里叶变换,以获取伴奏频谱,基于伴奏频谱内参考峰值点与其他峰值点的频率时间关系,生成峰值点对;基于峰值点对生成所述音频的音频伴奏指纹。例如,针对提取出的伴奏信息,同样可以执行如图2所示的哈希时间对提取操作,并将一首歌的伴
奏指纹与歌曲id关联存储在伴奏哈希表内。如下将详述,可以在音频指纹库中包括伴奏指纹库,以作为完整音频指纹检索或是旋律指纹检索的补充。
[0038]
更进一步地,本发明的音频指纹提取方法还可以包括旋律伴奏联合指纹提取方法。在此,“旋律伴奏联合指纹”可以指针对旋律信息和伴奏信息以及相关性提取的指纹信息。为此,该方法还可以包括,提取音频的旋律信息和伴奏信息,并基于旋律信息和伴奏信息提取旋律伴奏联合指纹。可以基于旋律频谱内参考旋律峰值点与其他旋律峰值点以及伴奏频谱内其他伴奏峰值点之间的频率时间关系,生成旋律伴奏联合峰值点对;以及基于所述旋律伴奏联合峰值点对生成所述音频的音频旋律伴奏联合指纹。例如,针对提取出的旋律和伴奏信息,可以执行类似于如图2所示的哈希时间对提取操作。具体地,可以分别对提取出的旋律信息和伴奏信息进行傅里叶变换以得到各自的旋律和伴奏频谱,随后,将两张频谱表对齐,各自进行二维选峰操作。随后,在旋律频谱星云图上,选择一个参考峰值点,并将其后的某一空间选定作为有效区域,并计算该参考峰值点与该区域内其他峰值点之间的频率时间关系。对于伴奏频谱星云图,则可以将相同空间选定作为有效区域,并计算旋律参考峰值点与该区域内其他伴奏峰值点之间的频率时间关系。由此,可以得到基于3峰值构建的哈希值时间对。由于伴奏星云图的引入会大幅增加哈希时间对的量,因此可以按照一定规则对其他旋律和伴奏峰值进行随机抽样,以将获取的哈希时间对维持在一个相对合理的数量。随后,可以基于上述频率时间关系生成音频旋律伴奏联合指纹,并将一首歌的旋律伴奏联合指纹与歌曲id关联存储在伴奏旋律伴奏联合哈希表内。如下将详述,可以在音频指纹库中包括伴奏指纹库,以作为完整音频指纹检索或是旋律指纹检索的补充。应该理解的是,在其他实施例中,可以基于其他方式来提取旋律和伴奏之间的频率时间关系用以进行指纹表征,本发明对此不作限制。
[0039]
在进行指纹提取之后,可以建立音频指纹库,用于音频特征的标记和检索。图3示出了根据本发明一个实施例的音频指纹库建立方法的示意性流程图。
[0040]
在步骤s310,获取曲库内的音频。在不同的实施例中,可以按照曲库内音频的存储顺序,或是歌曲索引顺序,或是流派顺序等等进行音频的读取,优选为并行读取操作。
[0041]
随后,在步骤s320,提取所获取音频的音频指纹。可以基于如上公开的本发明的音频指纹提取方法来实现音频指纹的提取。在步骤s330,将提取的音频指纹进行排序。
[0042]
在不同的实现中,本发明可以针对一个歌曲,提取常规音频指纹、旋律指纹(和/或人声指纹)、伴奏指纹、和/或旋律伴奏联合指纹,并得到相应的常规音频指纹库、旋律指纹(和/或人声指纹)库、伴奏指纹库、和/或旋律伴奏联合指纹库,或是包括上述旋律指纹、伴奏指纹和/或联合指纹的音频指纹库。在本发明中,“音频指纹”可以指代基于音频提取的指纹,其在狭义上仅包括从常规音频(例如,包括旋律和伴奏)变换的频谱中提取的指纹。而从广义而言,“音频指纹”可以指代所有基于原始音频所提取的指纹,包括如上的常规音频指纹,以及旋律指纹(和/或人声指纹)、伴奏指纹、以及旋律伴奏联合指纹等。同理,“音频指纹库”在狭义上仅包括从常规音频指纹库,从广义上则包括常规音频指纹库、旋律指纹(和/或人声指纹)库、伴奏指纹库、以及旋律伴奏联合指纹库。
[0043]
在一个实施例中,由于旋律信息(例如,包含了前奏、间奏和结尾旋律的人声信息)包含了一首歌曲的大部分信息,并且相比于常规指纹包含更少的特征,因此可以用旋律指纹代替常规的完整音频指纹建立音频指纹库,并在进行检索时对输入的查询音频进行同样
的旋律指纹提取,并进行后续匹配,由此简化音频检索所需的计算。在一个实施例中,可以建立旋律指纹库(或仅仅是人声指纹库)作为常规完整音频指纹库的补充。由此在例如输入的查询音频包括人声时,首先进行人声指纹库的检索,在无返回结果或存在多个返回结果的情况下在检索完整音频指纹库,以进行补充或是去重检索。在一个实施例中,可以建立旋律和伴奏指纹库,代替现有的完整音频指纹库,并先匹配旋律指纹,当返回多个结果时再利用伴奏指纹去重的方法进行检索。在一个实施例中,还可以建立旋律伴奏联合指纹库,以实现相比于常规音频指纹检索更高筛选率的音频检索。这些旋律指纹(和/或人声指纹)、伴奏指纹、和/或旋律伴奏联合指纹可被存储在各自的库中,例如,各自的哈希表中。
[0044]
在步骤s330中,可以基于各种规则对曲库中提取的音频指纹进行排序。在一个实施例中,可以将所述音频指纹按照音频的热度进行排序。音频的热度可以包括该音频的播放热度、搜索热度以及识曲热度。在用户使用安装在终端上的音乐播放app或是在终端上打开的网页进行听歌操作时,可以记录某一音频被播放的热度、被在搜索栏搜索或是以其他方式被查询的热度、和/或利用听歌识曲被查询的热度。可以基于不同的规则来利用上述热度之一或全部(例如,加权)进行音频在音频指纹库中的排序。
[0045]
作为替换或是补充,还可以将所述音频指纹按照音频的属性进行排序,其中,所述音频的属性包括如下至少一项:所述音频的语种;所述音频的流派;以及所述音频的场景标签。由此方便后续例如基于用户画像标签的快速检索。
[0046]
应该理解的是,音频在音频指纹库中的排序可以是在获取音频时就以完成的,例如,可以首先把整个曲库按照特定规则进行排序,再进行后续的音频获取、指纹提取和存储操作。在其他实施例中,也可以在指纹生成后进行排序(顺序调整)。出于效率的考虑,优选曲库排序的方案。
[0047]
按照上述排序得到的音频指纹库可被分为不同的片区,以在后续对不同片区的音频指纹提供不同的检索支持。
[0048]
例如,针对一个千万级的曲库,可以首先把整个曲库按照播放热度进行排序。随后可以以100万首作为单位,对排序后的曲库进行分片。对于每一片里面的每一首歌,可以按照例如图2提取其音频指纹,并以音频指纹中的hash作为key制作哈希表,time和歌曲id作为哈希表里的其他值。按照上述过程建库后,原曲库转变成一个音频指纹库。在后续的检索服务中,可以将头100万的曲库实现为热点指纹库,该指纹库会有较多服务器提供相同的服务,其他指纹库则使用较少的(甚至是一台)服务器来提供服务。作为替换,可以在热点指纹库中额外添加搜索和听歌识曲热度较高的音频指纹,例如,由前95万的视听热度、前4万的搜索热度和前1万的识曲热度的音频(可以去重或不去重)的指纹库组成指纹库的第一分片。在第一分片内,可以按照歌曲属性对歌曲进行子分区存储,以方便后续按照用户画像的分类检索。另外,可以针对一首歌曲id链接多个哈希表,例如,音频指纹哈希表、旋律指纹哈希表、伴奏指纹哈希表和/或联合指纹哈希表等,以方便应对不同的检索需要。
[0049]
在建立了音频指纹库之后,可以基于音频指纹库,对输入的查询音频进行检索。图4示出了根据本发明一个实施例的音频检索方法的示意性流程图。
[0050]
在步骤s410,获取查询音频。可以使用各种方法获取查询音频。例如,音乐播放app可以响应于用户点击“听歌识曲”按钮,调用智能设备的内置麦克风来拾取环境里的音频,例如,大街上或是电视中正播放的音频。音频在被设备拾取之后,可以首先进行降噪处理,
以滤除无关环境音。随后,可以对音频进行动态压缩处理,由此降低音频的动态范围,使音频更加饱满容易辨识。在此,可以将输入用于进行匹配查询的音频称为“查询音频”,也可以将经过上述降噪和动态压缩预处理的音频称为“查询音频”,本发明对此不做限制。
[0051]
在步骤s420,提取所述查询音频的查询音频指纹。在步骤s430,将所述查询音频指纹送入如上所述建立的音频指纹库。在步骤s440,基于所述音频指纹库进行音频指纹的匹配,并在步骤s450,基于音频指纹的匹配,返回音频检索结果。
[0052]
在此,应该理解的是,可以如上结合图1和2及其优选实施例所述提取查询音频的音频指纹,并将其送入如上结合图3及其优选实施例描述的音频指纹库。查询音频的音频指纹提取方法应该与其要查询的对应指纹库中指纹的提取方法相一致。例如,如果要查询基于2峰值构建的指纹库,那么查询音频的指纹也应被提取为2峰值指纹。如果要查询基于3峰值构建的联合指纹库,那么查询音频的指纹也应被提取为3峰值联合指纹。但对于被提取的频谱源要求不一定要一致。例如,对于提取的查询音频指纹,可以检索对应的常规音频指纹库,也可以检索旋律指纹库或是伴奏指纹库。相应地,对于提取的查询旋律指纹,可以检索对应的旋律指纹库,也可以检索常规音频指纹库或是伴奏指纹库。
[0053]
于是,在一个实施例中,步骤s420可以包括提取所述查询音频的查询旋律指纹。步骤s430可以包括将查询音频的旋律指纹送入如上所述建立的旋律指纹库或是同样包括旋律信息的常规音频指纹库。相应地,步骤s440可以包括基于上述指纹库进行旋律指纹的匹配。
[0054]
作为补充,在旋律或音频指纹库返回多个结果的情况下,还可以进行针对其他库(例如,伴奏库)的二次检索。于是步骤s420可以包括提取所述查询音频的查询伴奏指纹。相应地,步骤s430可以包括将查询音频的伴奏指纹送入如上所述建立的伴奏指纹库。步骤s440可以包括基于旋律指纹库返回的检索结果,进行基于伴奏指纹库的伴奏指纹匹配。例如,如果针对一个查询音频,旋律指纹库返回了匹配的两首歌曲id,则可以针对这两首歌曲进行伴奏指纹的匹配检测,并将伴奏指纹也匹配的歌曲作为识别结果进行返回。
[0055]
在其他情况下,伴奏信息也可用于二次检索之外的场景,例如,背景音识别的场景中,可以提取查询音频的伴奏信息并生成伴奏指纹。此时的伴奏指纹包括要查询背景音的主要信息,因此可以输入常规音频指纹库和伴奏指纹库进行检索,甚至也可输入旋律指纹库进行检索。
[0056]
具体地,可以专门开发短视频配乐识别功能,由此针对配乐短视频进行背景乐的识别。配乐短视频是包括前景音和背景音的混合查询音频。因此,所述方法还可以包括将所述混合查询音频进行源分离(人声伴奏分离,或旋律伴奏分离),以获取经源分离的伴奏数据,并将提取所述经源分离的伴奏数据的指纹作为查询音频指纹。在前景包括人声(或录制时的其他环境音),背景配乐不包括人声(例如,纯乐曲)的情况下,源分离出的伴奏数据包含基本完整的背景配乐数据,因此据此提取的伴奏指纹适用于直接送入常规音频指纹库或是旋律指纹库进行搜索。在前景包括人声,背景配乐包括人声(例如,人声演唱的歌曲)的情况下,源分离出的伴奏数据由于滤除了人声,通常仅包含背景配乐的伴奏数据,因此据此提取的伴奏指纹适用于直接送入伴奏指纹库进行搜索。为了涵盖对输入音频背景音的搜索,本发明的检索方案可以直接对每个输入音频进行源分离,并进行细分指纹库的检索;或是在常规指纹音频提取和检索无匹配时进行源分离和细分指纹库的检索。在作为替换或补
充,本发明的检索方案还可以为用户提供额外的按钮,例如,“背景音检索”或是“短视频配乐检索”作为“听歌识曲”功能下的细分功能。由此,可以在用户按下对应的“背景音检索”或是“短视频配乐检索”按钮时,触发针对查询音频的源分离操作,以及针对经分离的伴奏指纹的常规音频指纹库、旋律指纹库和/或伴奏指纹库的检索。应该理解的是,上述方案也适用于配乐短视频之外其他前景音和背景音的混合查询音频。
[0057]
可以引入联合指纹检索作为常规音频指纹检索的更为精确的代替或是补充。上述联合指纹检索也可以与如上的旋律和/或伴奏指纹检索相结合。于是,在一个实施例中,步骤s420可以包括提取所述查询音频的旋律伴奏联合指纹。相应地,步骤s430可以包括将查询音频的律伴奏联合指纹送入如上所述建立的律伴奏联合指纹库。步骤s440则可以包括基于旋律伴奏联合指纹库进行旋律伴奏联合指纹的匹配。
[0058]
如前所述,音频指纹中的峰值点对由包括哈希值和参考峰值点时间的哈希时间对表征。因此匹配步骤s440可以使用所述哈希值作为峰值点对进行匹配的键值(key),随后,在步骤s450,可以基于所述查询指纹和所述音频指纹库中对应于某一音频的音频指纹的峰值点对的匹配结果,返回音频检索结果。具体地,可以针对所述查询音频和哈希值存在匹配的候选音频中所有哈希值匹配的哈希时间对,计算参考峰值点之间的时间差或商;并且基于所述时间差或商的计算结果,确定所述查询音频与所述候选音频的匹配结果。
[0059]
图5示出了根据本发明进行音频检索的示意图。经过预处理的查询音频经由指纹提取操作变换成一串hash:time对。将这一串hash:time对被称作“查询指纹”或“查询音频指纹”。可以将这串hash:time对作为查询请求(query)送入音频指纹库。音频指纹库包括由海量key|value条目组成的哈希表。图5左下侧示出了哈希表的一段存储结构,其中hash0和offset0、hash1和offset1和hash2和offset2可以对应于哈希表中三个条目(entry)的key|value。每个条目的key是哈希值,value是具有该哈希值的歌曲id和该哈希值在该歌曲中的时间t组成的(id,t)对。在某个哈希值被多首歌曲所包括时,其相应的value串中可以包括多个(id,t)对,例如(id1,t1)、(id2,t2)和(id3,t3)。输入query中的每一个hash都需要在音频指纹库进行匹配,返回一系列的t和id。图5中部示出了返回的一段数据结构,例如包括id1,t1、id2,t2和id3,t3。返回的每个t和id对可以具有32-64bit的长度。随后,可以以id为单位,找到该id下返回的所有时间,与查询指纹中对应hash值的t值进行作差,得到该id的dt集合,如图5右上侧所示。假如某个id的dt集合中,相等或非常相近的dt的数量大于某个阈值,那么该id就是查询音频所匹配的歌曲id。如图5右下侧所示,相等dt数最大且大于阈值的id2可被认为是查询命中的歌曲。除了与查询指纹中对应hash值的t值作差得到该id的dt集合之外,还可以将这些对应的时间值作商(即,相除),从而针对在原曲的基础上被调速的音频,也能够实现原曲的命中。
[0060]
如前所示,在建立音频指纹库时,可以按照音频的排序进行分片。于是,在实际查询时,该查询请求可以首先请求热点指纹库,假如返回失败,再请求其他指纹库。作为替换或是补充,还可以获取用户的音乐偏好,并且在进行音频指纹匹配时,优先检索与所述音乐偏好相符的音频指纹库分片。例如,当用户标签指代用户爱听古典乐时,可以优先检索古典乐的指纹库,例如,热点指纹库中的古典乐分区。
[0061]
如上公开了利用提取的音频指纹进行例如“听歌识曲”检索匹配的优选方案。在更为广义的实施例中,本发明的音频指纹还可以在更多场景下用于音频身份的确定。为此,本
发明还可以实现为一种音频身份判定方法。在该方法中,首先可以根据如上所述的方法,提取目标音频的音频指纹。在此,提取的音频指纹可以是包括旋律和伴奏信息的常规音频指纹、旋律指纹、伴奏指纹,和/或旋律伴奏联合指纹,随后,基于所述音频指纹,进行音频身份的判定。
[0062]
具体地,可以将提取的所述目标音频的音频指纹保存为基准音频指纹。相应地,基于所述音频指纹,判定音频身份可以包括:基于待定音频提取的音频指纹与所述基准音频指纹的比对,判定所述待定音频的身份。
[0063]
例如,在新歌官方发布时,可以将发布新歌作为目标音频进行指纹提取,并保留该指纹作为基准音频指纹。随后,针对后续产生的音频(在此可以称为“待定”音频),可以通过该待定音频的提取指纹与基准指纹的匹配关系,确定该待定音频与目标音频的关系。在此,匹配可以指如上所述的基于一种或多种指纹的匹配,并且基于该匹配的结果(例如,常规指纹重合度、旋律或伴奏指纹重合度等),判定该待定音频是否与目标音频相关,例如,是否是基于目标音频的抄袭作品、基于目标音频的二次创作等等。
[0064]
而在ugc(user generated content,用户生成内容)即用户原创内容场景中,可以对原创作品进行指纹提取作为该作品的原创标签(基准音频指纹),并且在原创作者或其他作者进行继续创作时,可以逐一进行指纹提取以进行跟踪比对。
[0065]
为了提升可信度,将提取的所述目标音频的音频指纹保存为基准音频指纹可以包括:将提取的所述目标音频的音频指纹上传基准音频指纹库。此处的基准音频指纹库可由权威或是高公信力机构维护,由此提升基准音频指纹作为“基准”的可信度。在此,基准音频指纹库可以是版权指纹库和/或原创指纹库。于是,在对待定音频的身份具有争议时,可以基于待定音频提取的音频指纹与所述版权指纹库和/或原创指纹库中的基准音频指纹的比对,判定所述待定音频与所述目标音频之间的关系。例如,基于指纹匹配度,判定该待定音频是否是目标音频的抄袭、二次创作作品。
[0066]
相应地,本发明还可以实现为一种音频检索系统。图6示出了可以实现本发明音频检索功能的音频检索系统的组成示意图。该系统可以包括多个客户端610、服务端620和音频指纹库630。
[0067]
客户端610可以是安装有音乐播放app或是打开相应音乐播放或听歌识曲网页的智能终端,例如,手机、平板或是台式机。用户可以进入音乐播放app的听歌识曲页面,或者直接点击页面中的听歌识曲按钮,使得音乐播放app调用智能设备的麦克风进行环境音的拾取。
[0068]
随后,针对环境音(查询音频)的预处理和指纹提取可以在客户端610或是服务端620(云端)上执行,本发明对此不做限制。随后,服务端620可以将查询音频指纹送入音频指纹库630进行匹配,并且基于音频指纹的匹配,向所述用户返回音频检索结果。
[0069]
查询音频和音频指纹库中音频的音频指纹可以基于如上操作,例如结合图1和图2描述的指纹提取操作生成。音频指纹库630可以包括如下至少一个库:旋律指纹库;伴奏指纹库;旋律伴奏联合指纹库,作为常规音频指纹库的替换或是补充。服务端620可以将对应的查询指纹送入如上之一的指纹库进行匹配。
[0070]
音频指纹库630可以包括按照音频热度区分的多个分片。每个分片可以维护一个哈希表,每个哈希表内包括海量条目,其中每个条目包括key|value的结构。每个条目的key
是哈希值,value是具有该哈希值的歌曲id和该哈希值在该歌曲中的时间t组成的(id,t)对。在某个哈希值被多首歌曲所包括时,其相应的value串中可以包括多个(id,t)对。
[0071]
服务器首先将查询音频指纹送入存储有高热度音频的分片。音频的热度包括如下至少一项:所述音频的播放热度;所述音频的搜索热度;以及所述音频的识曲热度。可以使用多个服务器进行针对所述高热度音频分片的查询音频检索操作。
[0072]
在一个实施例中,所述音频指纹库还可以是如上所述的版权和/或原创音频指纹库,并且基于音频指纹的匹配,向所述用户返回音频检索结果包括:基于查询音频提取的音频指纹与所述版权和/或原创音频指纹库中的基准音频指纹的比对,判定所述查询音频与所述目标音频之间的关系。由此帮助确定查询音频的身份。
[0073]
图7示出了服务端内部配置的一个例子。应该理解的是,为了应对千万量级的歌曲检索,本发明的服务端是一个由海量服务器组成的云端服务平台,用于提供音乐检索服务的服务端可以是在线音乐服务平台的一部分。
[0074]
如图所示,当服务端接收到查询请求(query)时,分发接口(例如,管理节点)可以首先如标号

所示,将查询请求同时分发给用于存放访问频次较高的数据的热点服务器。在这些热点服务器中存储有例如高热度的前100万首歌曲的音频指纹信息。这些热点服务器之间可以存储有相同或至少部分相同的指纹信息,以便为热门曲目提供高效的检索服务。在热点服务器无命中的情况下,分发接口再如标号

所示,将查询请求同时分发给用于存放常规数据的分区服务器,例如,分别存储不同分片音频指纹内容的a、b、c和d区服务器等。热点服务器和分区服务器的内容可以定期更新,例如,按照当前热点更新每两周更新热点服务器,分区服务器则更长的周期更新一次,例如每月更新一次。
[0075]
上文中已经参考附图详细描述了根据本发明的音频指纹提取和建库方法,本发明的音频指纹提取方案能够提取出精准描述且易于检索的音频指纹,上述音频指纹还可以进行旋律与伴奏的分类,从而为以此建立的音频指纹库提供更为丰富的指纹素材,并为后续的指纹检索提供了更多的检索方式。另外,建立的指纹库可以按照音频热度进行分片,以便在后续提供冷热分离式的高效检索。
[0076]
图8示出了应用本发明的音乐检索的一个具体场景例。如图左侧所示,智能手机内置的麦克风可以持续识曲环境音,并在有限的秒数内(例如,3秒、5秒、15秒等),在服务端(云端)完成查询和命中,将查询结果返回,并向用户呈现如图右侧所示的音频检索结果。服务端可以利用本发明的音频指纹提取方法、建库方法和检索方法来实现在线的音频检索服务。客户端可以获取环境音,并例如在本机完成环境音的预处理(甚至是指纹提取),并将查询请求发送给服务端,以供服务端利用其维护的指纹库实现查询和命中结果的返回。
[0077]
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
[0078]
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
[0079]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模
块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
[0080]
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0081]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜