一种音乐检索方法及装置的制造方法

文档序号:9839630阅读:382来源:国知局
一种音乐检索方法及装置的制造方法
【技术领域】
[0001] 本发明实施例涉及数据处理技术领域,具体涉及一种音乐检索方法及装置。
【背景技术】
[0002] 基于内容的音频检索(英文全称为Content Based Music Information Retrieval,英文简称为CBMIR)是一种新的音乐检索方式,不同于传统的文本检索方式,基 于内容的音频检索利用音乐本身的特征对其进行自动分类和匹配,从而取代文本描述的方 式检索音乐,给用户带来更多的便利和更好的用户体验。哼唱检索(英文全称为Query By Singing/Humming,英文简称为QBSH)是一种基于内容的音频检索方式,其通过用户哼唱音 乐片段的方式进行检索,是对传统文本检索的扩展,给用户带来了很大的便利。
[0003] 然而,为了达到较高的准确率,哼唱检索通常采用复杂度非常高的相似度计算方 法,导致检索所需要的时间较长,用户等待的时间也相应较长。同时,由于算法的复杂度较 高,其能够处理的音乐信息库规模也非常有限。这是因为音乐信息库规模越大,处理时间越 长,对系统的资源耗费也越多,对系统的性能和计算能力都提出了挑战。为了快速准确地响 应用户请求,同时处理尽可能大的音乐信息库,需要对哼唱检索采用的相似度计算方法进 行优化。现有技术中,通常采用硬件优化的手段,例如可以采用GPU对相似度匹配算法进行 并行化,也可以采用分布式计算将大的音乐信息库分散到不同的服务器上,减轻单个服务 器的计算量,。采用上述硬件优化的手段,当应对海量音乐信息时,存在系统资源耗费大的 问题。

【发明内容】

[0004] 本发明实施例提供了一种音乐检索方法及装置,可以提高音乐检索的效率,减少 用户等待时间,降低系统资源耗费,提高系统处理能力。
[0005] 为此,本发明实施例提供如下技术方案:
[0006] -方面,本发明实施例提供了一种音乐检索方法,所述方法包括:
[0007] 获取哼唱旋律对应的基频序列;
[0008] 对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库 中的音乐进行比较,根据比较结果获得第一候选音乐集合;
[0009] 利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获 得第二候选音乐集合;
[0010] 对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
[0011] 另一方面,本发明实施例提供了一种音乐检索装置,所述装置包括:
[0012] 基频序列获取单元,用于获取哼唱旋律对应的基频序列;
[0013] 快速傅里叶变换单元,用于对所述基频序列进行快速傅里叶变换,将变换后的基 频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
[0014] 分段平均近似距离PAA过滤单元,用于利用分段平均近似距离PAA方法对所述第一 候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
[0015] 检索结果获得单元,用于对所述第二候选音乐集合中的各音乐进行处理,获得并 显示音乐检索结果。
[0016] 再一方面,本发明实施例提供了一种用于音乐检索的装置,包括有存储器,以及一 个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个 或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0017] 获取哼唱旋律对应的基频序列;
[0018] 对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库 中的音乐进行比较,根据比较结果获得第一候选音乐集合;
[0019] 利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获 得第二候选音乐集合;
[0020] 对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
[0021] 本发明实施例提供的音乐检索方法及装置,首先对哼唱旋律对应的基频序列进行 快速傅里叶变换,可以快速过滤掉大部分与哼唱旋律不相似的音乐,而后再对获取的候选 音乐集合执行PAA过滤,从而过滤掉剩余的大部分不相似的音乐,并据此获取最终的音乐检 索结果。由于在执行哼唱旋律的基频序列与音乐信息库中的音乐的匹配过滤时,使用了 FFT 和PAA方法过滤掉大部分不相近似的音乐,从而有效提高了音乐检索的效率,减少用户等待 时间,降低系统资源耗费,提高了系统的处理能力。
【附图说明】
[0022] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
[0023] 图1为本发明一实施例提供的音乐检索方法流程图;
[0024] 图2为本发明另一实施例提供的音乐检索方法流程图;
[0025] 图3为本发明再一实施例提供的音乐检索方法流程图;
[0026]图4A为用户哼唱旋律的走势示意图;
[0027]图4B为正确匹配音乐的走势示意图;
[0028]图4C为错误匹配音乐的走势示意图;
[0029] 图5为本发明实施例提供的音乐检索装置示意图;
[0030] 图6是根据一示例性实施例示出的一种用于音乐检索的装置的框图。
【具体实施方式】
[0031 ]本发明实施例提供了一种音乐检索方法及装置,可以提高音乐检索的效率,减少 用户等待时间,降低系统资源耗费,提高系统处理能力。
[0032]为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实 施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施 例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通 技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护 的范围。
[0033]参见图1,为本发明一实施例提供的基频序列处理方法流程图。如图1所示,所述方 法可以包括:
[0034] S101,获取哼唱旋律对应的基频序列。
[0035] 获取用户的哼唱旋律,对所述哼唱旋律进行基频提取,获得与所述哼唱旋律对应 的基频序列(或者称为基频轨迹)。基频提取的方法具体可以是灵活多样的,在此不进行限 制。较佳地,可以应用第一方式提取出第一基频序列,应用第二方式提取出第二基频序列, 应用第三方式提取出第三基频序列。比较所述第一基频序列、第二基频序列、第三基频序 列,确定所述第一基频序列、第二基频序列、第三基频序列的基频值中的中值,由确定的所 述中值作为基频值构成第四基频序列,将所述第四基频序列作为最终提取的与所述哼唱旋 律对应的基频序列。其中,第一方式、第二方式、第三方式为不同的基频提取方式。所述第一 基频序列、第二基频序列、第三基频序列的基频值中的中值为将第一基频序列、第二基频序 列、第三基频序列的基频值按照升序或者降序排列处于中间位置的基频值。举例说明,对应 ti时刻或者第i个基频点,第一基频序列的基频值为,第二基频序列的基频值为f2,第二基 频序列的基频值为f 3,则将按照升序或者降序排列,确定处于中间位置的值为fi,则 用所述中值fi作为所述基频序列在t时刻或者第i个基频点的基频值。以此类推,可以确定 任意时刻或者第N个基频点的基频值,由此确定最终的基频序列。
[0036] S102,对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐 信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合。
[0037] 发明人在实现本发明的过程中发现,不同的用户哼唱的旋律在速度、音调等方面 都存在着巨大的差异。用户的哼唱旋律与标准音乐很难完全对应一致,均存在一定的偏差。 其中,音乐包括但不限于乐曲、歌曲等。经过研究发现,用户哼唱旋律对应的基频序列与正 确音符序列相比可能存在两个方面的误差:一方面,用户整体哼唱速度偏快或者偏慢,具体 表现为哼唱旋律对应的基频序列与正确音符序列相比过短或者过长;另一方面,用户整体 音调偏高或偏低,具体表现为哼唱旋律对应的基频序列过高或者过低。除此之外,用户还可 能唱错某些音,导致局部错误。基于此,本发明实施例通过对哼唱旋律对应的基频序列进行 拉伸处理来改善哼唱速度偏快或者偏慢的问题。此外,本发明实施例还可以对基频序列进 行归一化来改善用户哼唱音高过高或过低的问题。具体地,本发明实施例对拉伸处理后的 基频序列还进行快速傅里叶变换(英文全称为Fast Fourier Transformation,英文简称为 FFT)处理。由于FFT可以将长度不等的序列通过补零操作变成等长,变换之后维度就会一 致,特别适宜直接利用欧式距离快速计算。此外,用户哼唱过程中的局部错误不可避免,但 是可以通过音乐的整体走势分辨用户所唱的音乐。FFT的另一个好处是可以从整体角度来 衡量用户哼唱的质量,忽略局部误差。在本发明实施例中,基频轨迹进行FFT的结果中,低频 系数其实表示了哼唱轨迹的整体走势,高频系数表示哼唱的局部细节。如果只用低频部分 来计算距离,就表示将走势和用户哼唱接近的音乐保留下来,而走势完全不同、亦即完全没 有可能是正确音乐的音乐全部过滤掉,从而达到快速缩小候选音乐集的目的。
[0038] 下面将对具体的实现进行详细说明,S102具体可以包括:
[0039] S102A,对所述基频序列进行拉伸处理。
[0040]由于事先不能预测用户哼唱的快慢,因此需要预设一个拉伸范围,例如第一拉伸 系数集合,具体的拉伸系数的取值范围可以根据经验选取。根据预设的拉伸系数对基频序 列进行拉伸,以此忽略哼唱速度过快或过慢的影响。具体处理时,可以使用基频序列乘以第 一拉伸系数集合中的拉伸系数,得到拉伸处理后的基频序列。
[0041 ] S102B,对拉伸处理后的基频序列进行快速傅里叶变换。
[0042] S102C,计算变换后的基频序列与音乐信息库中的每个乐句的欧式距离,获得各乐 句的欧式距离值。所述音乐信息库中存储有乐句与音乐的对应关系。
[0043]具体实现时,可以采用公式(1)计算欧式距离:
(1 )
[0044]
[0045] 其中,D(Q,L)为基频序列与乐句的欧式距离,qk为基频序列的值,lk为乐句对应的 值。η为正整数,用于表示计算距离时的维度,可以小于FFT的维度。进一步地,可以对公式 (1)的计算方式进行改进,例如为每一维的计算赋予不同的权值,突出感兴趣维度,以获得 更好的变换效果。如果不加权重,每一维的作用等价,相当于权值都为1。
[0046] S102D,根据所述各乐句的欧式距离值获得第一候选音乐集合。
[0047]对上述计算的距离排序,然后根据阈值过滤掉绝大多数不相似的音乐。需要说明 的是,在利用FFT快速过滤的时候,是针对音乐信息库中每首音乐的每个乐句实现的,后面 的过滤步骤都是如此。由于用户在哼唱的时候一般只是哼唱两到三个乐句,因此使用乐句 为单位进行过滤比较适宜。在此步骤中,除了考虑速度因素之外也要考虑准确率因素。由于 FFT是快速过滤方法,准确率较低,为了避免过滤掉正确的音乐,在本发明实施例中不使用 FFT计算出乐句位置,只是根据每首音乐的乐句距离最小值作为该首音乐的距离,然后根据 音乐的距离对音乐进行过滤。
[0048]具体地,所述根据所述各乐句的欧式距离值获得第一候选音乐集合包括:
[0049]获取每首音乐包含的各乐句对应的欧式距离值,将所述欧式距离值中最小的欧式 距离值作为所述音乐对应的欧式距离值;比较所述音乐对应的欧式距离值与第四阈值,利 用小于所述第四阈值的欧式距离值对应的音乐生成第一候选音乐集合。
[0050] S103,利用分段平均近似距离(英文全称为Piecewise Aggregate Approximati
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1