CN105608114A - 一种音乐检索方法及装置 - Google Patents

一种音乐检索方法及装置 Download PDF

Info

Publication number
CN105608114A
CN105608114A CN201510918496.5A CN201510918496A CN105608114A CN 105608114 A CN105608114 A CN 105608114A CN 201510918496 A CN201510918496 A CN 201510918496A CN 105608114 A CN105608114 A CN 105608114A
Authority
CN
China
Prior art keywords
music
candidate
collection
fundamental frequency
frequency sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510918496.5A
Other languages
English (en)
Other versions
CN105608114B (zh
Inventor
姚光超
唐文琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sogou Technology Development Co Ltd
Original Assignee
Beijing Sogou Technology Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sogou Technology Development Co Ltd filed Critical Beijing Sogou Technology Development Co Ltd
Priority to CN201510918496.5A priority Critical patent/CN105608114B/zh
Publication of CN105608114A publication Critical patent/CN105608114A/zh
Application granted granted Critical
Publication of CN105608114B publication Critical patent/CN105608114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/635Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/632Query formulation
    • G06F16/634Query by example, e.g. query by humming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

本发明实施例提供一种音乐检索方法和装置,所述方法包括:获取哼唱旋律对应的基频序列;对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。本发明实施例可以提高音乐检索的效率,减少用户等待时间,降低系统资源耗费,提高系统处理能力。

Description

一种音乐检索方法及装置
技术领域
本发明实施例涉及数据处理技术领域,具体涉及一种音乐检索方法及装置。
背景技术
基于内容的音频检索(英文全称为ContentBasedMusicInformationRetrieval,英文简称为CBMIR)是一种新的音乐检索方式,不同于传统的文本检索方式,基于内容的音频检索利用音乐本身的特征对其进行自动分类和匹配,从而取代文本描述的方式检索音乐,给用户带来更多的便利和更好的用户体验。哼唱检索(英文全称为QueryBySinging/Humming,英文简称为QBSH)是一种基于内容的音频检索方式,其通过用户哼唱音乐片段的方式进行检索,是对传统文本检索的扩展,给用户带来了很大的便利。
然而,为了达到较高的准确率,哼唱检索通常采用复杂度非常高的相似度计算方法,导致检索所需要的时间较长,用户等待的时间也相应较长。同时,由于算法的复杂度较高,其能够处理的音乐信息库规模也非常有限。这是因为音乐信息库规模越大,处理时间越长,对系统的资源耗费也越多,对系统的性能和计算能力都提出了挑战。为了快速准确地响应用户请求,同时处理尽可能大的音乐信息库,需要对哼唱检索采用的相似度计算方法进行优化。现有技术中,通常采用硬件优化的手段,例如可以采用GPU对相似度匹配算法进行并行化,也可以采用分布式计算将大的音乐信息库分散到不同的服务器上,减轻单个服务器的计算量,。采用上述硬件优化的手段,当应对海量音乐信息时,存在系统资源耗费大的问题。
发明内容
本发明实施例提供了一种音乐检索方法及装置,可以提高音乐检索的效率,减少用户等待时间,降低系统资源耗费,提高系统处理能力。
为此,本发明实施例提供如下技术方案:
一方面,本发明实施例提供了一种音乐检索方法,所述方法包括:
获取哼唱旋律对应的基频序列;
对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
另一方面,本发明实施例提供了一种音乐检索装置,所述装置包括:
基频序列获取单元,用于获取哼唱旋律对应的基频序列;
快速傅里叶变换单元,用于对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
分段平均近似距离PAA过滤单元,用于利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
检索结果获得单元,用于对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
再一方面,本发明实施例提供了一种用于音乐检索的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取哼唱旋律对应的基频序列;
对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
本发明实施例提供的音乐检索方法及装置,首先对哼唱旋律对应的基频序列进行快速傅里叶变换,可以快速过滤掉大部分与哼唱旋律不相似的音乐,而后再对获取的候选音乐集合执行PAA过滤,从而过滤掉剩余的大部分不相似的音乐,并据此获取最终的音乐检索结果。由于在执行哼唱旋律的基频序列与音乐信息库中的音乐的匹配过滤时,使用了FFT和PAA方法过滤掉大部分不相近似的音乐,从而有效提高了音乐检索的效率,减少用户等待时间,降低系统资源耗费,提高了系统的处理能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的音乐检索方法流程图;
图2为本发明另一实施例提供的音乐检索方法流程图;
图3为本发明再一实施例提供的音乐检索方法流程图;
图4A为用户哼唱旋律的走势示意图;
图4B为正确匹配音乐的走势示意图;
图4C为错误匹配音乐的走势示意图;
图5为本发明实施例提供的音乐检索装置示意图;
图6是根据一示例性实施例示出的一种用于音乐检索的装置的框图。
具体实施方式
本发明实施例提供了一种音乐检索方法及装置,可以提高音乐检索的效率,减少用户等待时间,降低系统资源耗费,提高系统处理能力。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
参见图1,为本发明一实施例提供的基频序列处理方法流程图。如图1所示,所述方法可以包括:
S101,获取哼唱旋律对应的基频序列。
获取用户的哼唱旋律,对所述哼唱旋律进行基频提取,获得与所述哼唱旋律对应的基频序列(或者称为基频轨迹)。基频提取的方法具体可以是灵活多样的,在此不进行限制。较佳地,可以应用第一方式提取出第一基频序列,应用第二方式提取出第二基频序列,应用第三方式提取出第三基频序列。比较所述第一基频序列、第二基频序列、第三基频序列,确定所述第一基频序列、第二基频序列、第三基频序列的基频值中的中值,由确定的所述中值作为基频值构成第四基频序列,将所述第四基频序列作为最终提取的与所述哼唱旋律对应的基频序列。其中,第一方式、第二方式、第三方式为不同的基频提取方式。所述第一基频序列、第二基频序列、第三基频序列的基频值中的中值为将第一基频序列、第二基频序列、第三基频序列的基频值按照升序或者降序排列处于中间位置的基频值。举例说明,对应ti时刻或者第i个基频点,第一基频序列的基频值为f1,第二基频序列的基频值为f2,第二基频序列的基频值为f3,则将f1、f2、f3按照升序或者降序排列,确定处于中间位置的值为f1,则用所述中值f1作为所述基频序列在ti时刻或者第i个基频点的基频值。以此类推,可以确定任意时刻或者第N个基频点的基频值,由此确定最终的基频序列。
S102,对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合。
发明人在实现本发明的过程中发现,不同的用户哼唱的旋律在速度、音调等方面都存在着巨大的差异。用户的哼唱旋律与标准音乐很难完全对应一致,均存在一定的偏差。其中,音乐包括但不限于乐曲、歌曲等。经过研究发现,用户哼唱旋律对应的基频序列与正确音符序列相比可能存在两个方面的误差:一方面,用户整体哼唱速度偏快或者偏慢,具体表现为哼唱旋律对应的基频序列与正确音符序列相比过短或者过长;另一方面,用户整体音调偏高或偏低,具体表现为哼唱旋律对应的基频序列过高或者过低。除此之外,用户还可能唱错某些音,导致局部错误。基于此,本发明实施例通过对哼唱旋律对应的基频序列进行拉伸处理来改善哼唱速度偏快或者偏慢的问题。此外,本发明实施例还可以对基频序列进行归一化来改善用户哼唱音高过高或过低的问题。具体地,本发明实施例对拉伸处理后的基频序列还进行快速傅里叶变换(英文全称为FastFourierTransformation,英文简称为FFT)处理。由于FFT可以将长度不等的序列通过补零操作变成等长,变换之后维度就会一致,特别适宜直接利用欧式距离快速计算。此外,用户哼唱过程中的局部错误不可避免,但是可以通过音乐的整体走势分辨用户所唱的音乐。FFT的另一个好处是可以从整体角度来衡量用户哼唱的质量,忽略局部误差。在本发明实施例中,基频轨迹进行FFT的结果中,低频系数其实表示了哼唱轨迹的整体走势,高频系数表示哼唱的局部细节。如果只用低频部分来计算距离,就表示将走势和用户哼唱接近的音乐保留下来,而走势完全不同、亦即完全没有可能是正确音乐的音乐全部过滤掉,从而达到快速缩小候选音乐集的目的。
下面将对具体的实现进行详细说明,S102具体可以包括:
S102A,对所述基频序列进行拉伸处理。
由于事先不能预测用户哼唱的快慢,因此需要预设一个拉伸范围,例如第一拉伸系数集合,具体的拉伸系数的取值范围可以根据经验选取。根据预设的拉伸系数对基频序列进行拉伸,以此忽略哼唱速度过快或过慢的影响。具体处理时,可以使用基频序列乘以第一拉伸系数集合中的拉伸系数,得到拉伸处理后的基频序列。
S102B,对拉伸处理后的基频序列进行快速傅里叶变换。
S102C,计算变换后的基频序列与音乐信息库中的每个乐句的欧式距离,获得各乐句的欧式距离值。所述音乐信息库中存储有乐句与音乐的对应关系。
具体实现时,可以采用公式(1)计算欧式距离:
D ( Q , L ) = Σ k = 1 n | q k - l k | - - - ( 1 )
其中,D(Q,L)为基频序列与乐句的欧式距离,qk为基频序列的值,lk为乐句对应的值。n为正整数,用于表示计算距离时的维度,可以小于FFT的维度。进一步地,可以对公式(1)的计算方式进行改进,例如为每一维的计算赋予不同的权值,突出感兴趣维度,以获得更好的变换效果。如果不加权重,每一维的作用等价,相当于权值都为1。
S102D,根据所述各乐句的欧式距离值获得第一候选音乐集合。
对上述计算的距离排序,然后根据阈值过滤掉绝大多数不相似的音乐。需要说明的是,在利用FFT快速过滤的时候,是针对音乐信息库中每首音乐的每个乐句实现的,后面的过滤步骤都是如此。由于用户在哼唱的时候一般只是哼唱两到三个乐句,因此使用乐句为单位进行过滤比较适宜。在此步骤中,除了考虑速度因素之外也要考虑准确率因素。由于FFT是快速过滤方法,准确率较低,为了避免过滤掉正确的音乐,在本发明实施例中不使用FFT计算出乐句位置,只是根据每首音乐的乐句距离最小值作为该首音乐的距离,然后根据音乐的距离对音乐进行过滤。
具体地,所述根据所述各乐句的欧式距离值获得第一候选音乐集合包括:
获取每首音乐包含的各乐句对应的欧式距离值,将所述欧式距离值中最小的欧式距离值作为所述音乐对应的欧式距离值;比较所述音乐对应的欧式距离值与第四阈值,利用小于所述第四阈值的欧式距离值对应的音乐生成第一候选音乐集合。
S103,利用分段平均近似距离(英文全称为PiecewiseAggregateApproximation,英文简称为PAA)方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合。
具体实现时,S103例如可以包括:
S103A,对所述第一候选音乐集合中的各乐句的开始部分进行拉伸处理。
在这一步骤中,不同于S102中对基频序列进行拉伸处理,此步骤是针对各乐句进行拉伸处理的。需要说明的是,音乐信息库中的歌曲或者乐曲也是音符序列,音符序列包含了多个乐句,相当于对音符序列进行了切分。在和哼唱旋律对应的基频序列进行比较时,是利用每个乐句的开始部分进行比较的。从每个乐句开始往后多长的音符序列是由哼唱的长度决定的,通常可能包含两个乐句。乐句的开始部分亦即从乐句的第一个音符开始往后的一段长度。此处进行拉伸处理时,也是利用预设的拉伸系数进行处理的。例如,可以乐句的开始部分对应的音符序列乘以第二拉伸系数集合中的拉伸系数,得到拉伸处理后的乐句。其中,第二拉伸系数集合可以与第一拉伸系数集合相同,也可以不同。
S103B,对拉伸处理后的乐句进行降采样处理。
S103C,计算降采样处理后的各乐句与所述哼唱旋律对应的基频序列的欧式距离值。
具体的计算方法可以参照S102C的实现方式。
S103D,根据所述欧式距离值获得第二候选音乐集合。
对上述计算的距离排序,然后根据阈值过滤掉绝大多数不相似的音乐。具体地,所述根据所述欧式距离值获得第二候选音乐集合包括:获取每首音乐包含的各乐句对应的欧式距离值,比较各乐句对应的欧式距离值与第五阈值,利用小于所述第五阈值的欧式距离值对应的乐句对应的音乐生成第二候选音乐集合。其中,预先保存了乐句与音乐的对应方式。在另外一种实现方式中,所述根据所述欧式距离值获得第二候选音乐集合包括:获取每首音乐包含的各乐句对应的欧式距离值,对所述欧式距离值进行排序,获取该首音乐包含的乐句中距离值最小的前Q个乐句;将第一候选音乐集合中各音乐中包含的乐句中距离值最小的前Q个乐句对应的欧式距离值进行排序,利用小于所述第五阈值的欧式距离值对应的乐句对应的音乐生成第二候选音乐集合。Q为正整数,例如Q等于3。
S104,对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
在一种可能的实现方式中,S104具体可以包括:利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合;利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合;利用所述第四候选音乐集合中的音乐获得并显示音乐检索结果。在这种实现方式中,在获得第二候选音乐集合后,进一步还利用EMD、DTW方法对得到的音乐进行过滤,从而获得并显示最终的推荐结果。由于经过了四层过滤,使得大部分不相近似的音乐被过滤掉,进一步提高了检索的效率,减少了用户的等待时间,得到的推荐结果也更加准确。此外,由于检索速度大大提高,因此整个系统的处理能力得到提升,能够处理更大规模的音乐信息库。后文将结合图2所示实施例对这一方式进行详细介绍。
在另外一种可能的实现方式中,S104具体可以包括:根据所述第二候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第一置信度;当确定所述第一置信度大于第一阈值时,根据所述第二候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述方法还包括:
当确定所述第一置信度小于所述第一阈值时,利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合;根据第三候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第二置信度;当所述第二置信度大于第二阈值时,根据所述第三候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述方法还包括:
当确定所述第二置信度小于所述第二阈值时,利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合;根据第四候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第三置信度;当确定所述第三置信度大于第三阈值时,根据所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
在上述的另一种实现方式中,在获得第二候选音乐集合后,先计算第一置信度。若用户哼唱旋律比较标准,则有可能直接得到检索结果,例如当第一置信度大于第一阈值时,则直接根据第二候选音乐集合获得并显示音乐检索结果。这种方式大大减少了用户的等待时间,提高了检索的效率。若确定第一置信度小于第一阈值时,才执行EMD过滤。若根据EMD过滤结果计算的置信度大于设定阈值,也直接显示推荐结果。只有当所述置信度仍小于设定阈值时,才会执行DTW方法对得到的音乐进行精确匹配,从而获得并显示最终的推荐结果。由于置信度大于设定阈值时即直接显示结果而无需进行最终的精确匹配,进一步提高了检索的效率,减少了用户的等待时间。此外,由于检索速度大大提高,因此整个系统的处理能力得到提升,能够处理更大规模的音乐信息库。后文将结合图3对这一实现方式进行详细介绍。
参见图2,为本发明另一实施例提供的音乐检索方法流程图。所示方法例如可以包括:
S201,获取哼唱旋律对应的基频序列。
具体实现请参照图1所示实现方式。在一种可能的实现方式中,所述获取哼唱旋律对应的基频序列具体为:获取哼唱旋律的第一部分,获取所述第一部分对应的基频序列。第一部分的长度可以预先设定。也就是说,在获取用户哼唱片段时,由于过滤模块需要的哼唱长度是递增的,所以可以采用分包策略获取用户哼唱。采用分包策略的好处是可以掩盖过滤模块的耗时。具体实现时,可以按照预设的分包策略,对每一部分用户的哼唱旋律进行基频提取。例如,先对获取的哼唱旋律的第一部分进行基频提取,得到所述第一部分对应的基频序列;再对获取的哼唱旋律的第二部分进行基频提取,得到所述第二部分对应的基频序列;再对获取的哼唱旋律的第三部分进行基频提取,得到所述第三部分对应的基频序列;最后对获取的哼唱旋律的第四部分进行基频提取,得到所述第四部分对应的基频序列。其中,第二部分的长度大于或者等于第一部分的长度,第三部分的长度大于或者等于第二部分的长度,第四部分的长度大于或者等于第三部分的长度。每一部分的具体长度可以根据经验选取,例如分别为6S,8S,10S,12S。举例说明,用户哼唱一首自己喜欢的音乐,通常情况下会哼唱两到三个乐句,时间大约为8到12s。FFT过滤模块一般需要6s的哼唱,PAA过滤模块一般需要8s的哼唱,EMD过滤模块一般需要10s的哼唱。在用户哼唱到6s的时候即可以对用户哼唱提取基频序列进行FFT快速过滤。当用户哼唱到8s的时候再执行PAA快速过滤。如果用户哼唱的总长度超过10s,则对前10s的哼唱旋律执行EMD快速过滤,最后对所有的哼唱执行DTW精确匹配。如果后面用户哼唱的总长度不到10s,则对整个用户哼唱执行EMD快速过滤,最后再对整个用户哼唱旋律执行DTW精确匹配。由于在录制6s~8s的片段时就可以进行FFT快速过滤,如此即可掩盖FFT过滤模块的计算时间,从而进一步减少用户等待时间,提高检索效率。
S202,对所述基频序列进行快速傅里叶变换FFT,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合。
具体实现请参照图1所示实现方式。相应的,当获取的基频序列为用户哼唱旋律的第一部分对应的基频序列时,所述对所述基频序列进行FFT具体为:对所述第一部分对应的基频序列进行FFT。举例说明,对前6S的用户哼唱旋律进行基频提取,然后对这6S的基频序列进行FFT。前面提到,FFT可以将不同长度的基频序列转换成等长的序列,特别适宜直接采用欧式距离计算两个序列之间的距离。此外,用户哼唱过程中的局部错误不可避免,但是可以通过音乐的整体走势分辨用户所唱的音乐。FFT可以忽略局部误差,从整体上考虑基频轨迹的变化。参照图4,为基频轨迹变化示意图。其中,图4A为用户哼唱旋律的走势示意图;图4B为正确匹配音乐的走势示意图;图4C为错误匹配音乐的走势示意图。从图中可以看出,用户哼唱旋律与正确匹配音乐的走势均为高-低-高-低,而错误匹配音乐的走势为低-高-低-高。也就是说,经过FFT变换后,即可以过滤掉大部分与哼唱旋律走势不相似的音乐,从而大大缩小了检索匹配范围,提高了检索效率,降低了用户等待时间,提高系统处理性能。
S203,利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合。
具体实现请参照图1所示实现方式。需要说明的是,在参照S103C计算乐句与基频序列的欧式距离值时,这时可以是计算乐句与用户哼唱旋律的第二部分对应的基频序列的欧式距离值。举例说明,例如对8S长度的哼唱旋律执行PAA过滤。
S204,利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合。
具体实现时,S204例如可以包括:
S204A,对所述第二候选音乐集合中的各乐句的开始部分进行拉伸处理。
需要说明的是,乐句的开始部分亦即从乐句的第一个音符开始往后的一段长度。此处进行拉伸处理时,也是利用预设的拉伸系数进行处理的。例如,可以乐句的开始部分对应的音符序列乘以第三拉伸系数集合中的拉伸系数,得到拉伸处理后的乐句。其中,第三拉伸系数集合通过第二拉伸系数集合得到。具体的,由于PAA过滤结果已经比较准确,所以根据PAA方法计算出的拉伸系数会应用到后面的步骤中。具体而言,EMD的拉伸系数会在PAA计算出的拉伸系数附近浮动(例如正负0.05),利用二分查找找到更加准确的拉伸系数。
S204B,计算拉伸处理后的各乐句与所述哼唱旋律对应的基频序列的EMD距离值。
具体的EMD距离计算方法可以参照现有技术的方法实现。
S204C,根据所述EMD距离值获得第三候选音乐集合。
对上述计算的距离排序,然后根据阈值过滤掉绝大多数不相似的音乐。具体地,所述根据所述EMD距离值获得第三候选音乐集合包括:获取每首音乐包含的各乐句对应的EMD距离值,将所述EMD距离值中最小的EMD距离值作为所述音乐对应的EMD距离值;比较所述音乐对应的EMD距离值与第六阈值,利用小于所述第六阈值的EMD距离值对应的音乐生成第三候选音乐集合。
S205,利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合。
具体实现时,S205例如可以包括:
S205A,对所述第三候选音乐集合中的各乐句的开始部分进行拉伸处理。
同样的,进行拉伸处理时,也是利用预设的拉伸系数进行处理的。例如,可以乐句的开始部分对应的音符序列乘以第四拉伸系数集合中的拉伸系数,得到拉伸处理后的乐句。其中,第四拉伸系数集合可以通过第三拉伸系数集合得到。具体地,第三拉伸系数集合包含第四拉伸系数集合。较佳地,在此步骤中可以直接使用S204所计算出的拉伸系数。
S205B,计算拉伸处理后的各乐句与所述哼唱旋律对应的基频序列的DTW距离值。
具体的DTW距离计算方法可以参照现有技术的方法实现。优选地,在计算DTW距离时,为了减小哼唱序列音高值整体偏高或偏低的问题,可以对基频序列进行上下平移处理,例如可以利用二分法确定一个最佳的上下偏移值。其中,设定偏移值目的是为了减小哼唱序列音高值整体偏高或偏低的问题,通过将音高轨迹整体升高或降低,来减小音高值偏低或者偏高的问题。但是具体该升高或者降低多少需要通过二分来确定一个最佳偏移值。在S204中,使用EMD过滤方法时需要确定第三拉伸系数,所述第三拉伸系数是根据PAA方法使用的拉伸系数得到的。此处设定偏移值的方法与S204中拉伸系数得到的方式相似,只不过拉伸系数是横向,偏移系数是纵向的。
S205C,根据所述DTW距离值获得第四候选音乐集合。
计算出第三候选音乐集合中的所有乐句的DTW距离并排序,每首音乐的得分即是该音乐最相似的乐句得分。在一种可能的实现方式中,所述根据所述DTW距离值获得第四候选音乐集合合包括:获取每首音乐包含的各乐句对应的DTW距离值,将所述DTW距离值中最小DTW距离值作为所述音乐对应的DTW距离值;比较所述音乐对应的DTW距离值与第七阈值,利用小于所述第七阈值的EMD距离值对应的音乐生成第四候选音乐集合。
S206,利用所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
举例说明,可以将第四候选音乐集合中的音乐作为最终的音乐检索结果,也可以将第四候选音乐集合中得分最高的前M首音乐作为最终的音乐检索结果。音乐的得分可以根据DTW距离值得到,例如DTW距离值最小的,得分最高。M为正整数,例如M小于等于3。
在这一实施例所示的方法中,在获得第二候选音乐集合后,进一步还利用EMD、DTW方法对得到的音乐进行过滤,从而获得并显示最终的推荐结果。由于经过了四层过滤,使得大部分不相近似的音乐被过滤掉,进一步提高了检索的效率,减少了用户的等待时间,得到的推荐结果也更加准确。此外,通过FFT对基频序列进行归一化处理以及DTW方法对基频序列进行上下平移处理,有效改善了用户哼唱音高过高或者高低造成的检索结果不准确的问题。另外,由于检索速度大大提高,因此整个系统的处理能力得到提升,能够处理更大规模的音乐信息库。
参见图3,为本发明再一实施例提供的音乐检索方法流程图。所示方法例如可以包括:
S301,获取哼唱旋律对应的基频序列。
在这一实现方式中,获取用户哼唱旋律对应的基频序列时,也可以采用分别策略来获取用户的哼唱旋律。具体请参照S201的实现方式。
S302,对所述基频序列进行快速傅里叶变换FFT,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合。
S303,利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合。
S304,根据所述第二候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第一置信度。若所述第一置信度大于或者等于第一阈值,执行S309;若所述第一置信度小于第一阈值,执行S305。
在计算第一置信度、第二置信度、第三置信度时,均可以根据乐句得分来计算置信度。乐句得分可以根据乐句与基频序列的距离得到。置信度是一个0~1之间的值。乐句得分越小表明越相似。置信度计算需要考虑两部分:绝对得分和相对得分。绝对得分表示根据用户哼唱的长度,得分小于多少表示正确匹配。相对得分表示两个乐句得分之间的差值到底有多大。可以通过加权的形式将它们融合在一起。为了能将置信度结果转换到0~1之间,在本发明实施例采用arctan函数。具体实现如下:
S304A,首先根据得分遍历乐句,挑选得分前X名的音乐。其中,X为正整数,下面以X等于3为例进行说明。因为同一首音乐可能存在重复演奏部分,所以乐句得分也可能出现前几名都是同一首音乐的乐句这种情况,挑选出三首音乐而不是三个乐句,以第三名的得分作为基准得分,记为base_score。
S304B,根据用户哼唱长度计算一个期望得分,此即为绝对得分,记为expected_score。计算期望得分的方式例如可以是,使用用户哼唱长度除以一个常数即可以得到期望得分。当然,也可以使用其他计算方式得到期望得分,在此不限定。
S304C,计算每首音乐的置信度。
其中,每个乐句的置信度可以参照公式(2)计算:
confidence[i]=atan(expected_score/s[i]*2base_score/s[i])/1.5708(2)
expected_score/s[i]表示得分低于期望得分置信度就高,反之亦然。后面的权重表示三个结果之间差异越大置信度越高,反之亦然。除以1.5708表示将结果转换到0~1之间。
举例说明,在计算完所有乐句的距离之后进行排序,结果可能如下:
song1_phrase120.34
song1_phrase420.45
song456_phrase830.21
song344phrase1540.31
将第三首音乐的乐句得分作为base_score,然后计算上面所有乐句即song1_phrase1、song1_phrase4、song456_phrase8、song344phrase15的置信度,s[i]就表示上面每一个乐句的得分,例如20.34,20.45,30.21,40.31。需要说明的是,这里的得分亦即距离。如果用户哼唱计算的距离大于阈值,说明唱得不好;反之,如果距离小于阈值,也即s[i]小于expected_score则表明用户唱得不错,从而置信度就高。
在计算完乐句的置信度后,将每首音乐的各乐句中置信度最高的乐句对应的置信度作为该首音乐的置信度。例如,对于音乐song1,其对应的乐句song1_phrase1的置信度高于song1_phrase4的置信度,因此将乐句song1_phrase1的置信度作为音乐song1的置信度。而后,分别将每首音乐的置信度与设定的第一阈值进行比较,若存在至少一个置信度(例如第一置信度)大于第一阈值时,则直接返回音乐检索结果。其中,所说音乐检索结果根据第二候选音乐集合得到,例如可以是音乐的置信度大于第一阈值的一首或若干首音乐。
需要说明的是,两条轨迹越相似,距离越小。根据经验,如果用户唱得比较正确,走音较少,则和正确音乐的距离就会很小,因此,设定一个阈值作为用户哼唱是否准确的界限。当第一置信度大于第一阈值时,则直接根据第二候选音乐集合获得并显示音乐检索结果。否则,执行S305。
S305,利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合。
S306,根据第三候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第二置信度。若所述第二置信度大于或者等于第二阈值,执行S309;若所述第二置信度小于第二阈值,执行S307。
计算第二置信度的方式可以参照计算第一置信度的方式实现。
S307,利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合。
S308,根据第四候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第三置信度。
S309,获得并显示音乐检索结果。
在这里,若第一置信度大于第一阈值时,则直接根据第二候选音乐集合获得并显示音乐检索结果。例如可以将第二候选音乐集合中的音乐作为最终的音乐检索结果,也可以将第二候选音乐集合中得分最高的前M首音乐作为最终的音乐检索结果。
又如,若第二置信度大于第二阈值时,则直接根据第三候选音乐集合获得并显示音乐检索结果。例如可以将第三候选音乐集合中的音乐作为最终的音乐检索结果,也可以将第三候选音乐集合中得分最高的前M首音乐作为最终的音乐检索结果。
再如,若第三置信度大于第三阈值时,则直接根据第四候选音乐集合获得并显示音乐检索结果。例如可以将第四候选音乐集合中的音乐作为最终的音乐检索结果,也可以将第四候选音乐集合中得分最高的前M首音乐作为最终的音乐检索结果。若第三置信度不大于第三阈值,则可以显示未匹配到正确音乐。
需要特别说明的是,这一实施例中仍然可以采用分包策略来处理哼唱旋律。举例说明,用户哼唱一首自己喜欢的音乐,通常情况下会哼唱两到三个乐句,时间大约为8到12s。在用户哼唱到6s的时候即对用户哼唱提取基频序列进行FFT快速过滤。当用户哼唱到8s的时候再执行PAA快速过滤。如果后面用户哼唱不到10s,对整个用户哼唱执行EMD快速过滤,最后执行DTW精确匹配。若每步的置信度较低,则都会执行到最终的DTW精确匹配步骤。若其中一步的置信度较高,则有可能不执行后续的过滤步骤,在用户哼唱未结束前即可以返回匹配结果,提高检索效率,降低用户等待时间,提高了用户体验。
在这一实施例中,引入了置信度计算从而快速获得音乐检索结果。具体地,在获得第二候选音乐集合后,先计算第一置信度。若用户哼唱旋律比较标准,则有可能直接得到检索结果,例如当第一置信度大于第一阈值时,则直接根据第二候选音乐集合获得并显示音乐检索结果。这种方式大大减少了用户的等待时间,提高了检索的效率。若确定第一置信度小于第一阈值时,才执行EMD过滤。若根据EMD过滤结果计算的置信度大于设定阈值,也直接显示推荐结果。只有当所述置信度小于设定阈值时,才会执行DTW方法对得到的音乐进行精确匹配,从而获得并显示最终的推荐结果。由于置信度大于设定阈值时即直接显示结果而无需进行最终的精确匹配,进一步提高了检索的效率,减少了用户的等待时间。此外,由于检索速度大大提高,因此整个系统的处理能力得到提升,能够处理更大规模的音乐信息库。
参见图5为本发明实施例提供的音乐检索装置示意图。
所示音乐检索装置500可以包括:
基频序列获取单元501,用于获取哼唱旋律对应的基频序列。
快速傅里叶变换单元502,用于对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合。
分段平均近似距离PAA过滤单元503,用于利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合。
检索结果获得单元504,用于对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
在一种实现方式中,所述检索结果获得单元504包括:
第一EMD过滤单元,用于利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合。
第一DTW过滤单元,用于利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合。
第一获得单元,用于利用所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
在另一种实现方式中,所述检索结果获得单元504包括:
第一置信度计算单元,根据所述第二候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第一置信度;
第二获得单元,用于当确定所述第一置信度大于第一阈值时,根据所述第二候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述装置还包括:
第二EMD过滤单元,用于当确定所述第一置信度小于所述第一阈值时,利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合;
第二置信度计算单元,用于根据第三候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第二置信度;
第三获得单元,用于当确定所述第二置信度大于第二阈值时,根据所述第三候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述装置还包括:
第二DTW过滤单元,用于当确定所述第二置信度小于所述第二阈值时,利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合;
第三置信度计算单元,用于根据第四候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第三置信度;
第四获得单元,用于当确定所述第三置信度大于第三阈值时,根据所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述快速傅里叶变换单元包括:
第一拉伸单元,用于对所述基频序列进行拉伸处理;
变化单元,用于对拉伸处理后的基频序列进行快速傅里叶变换;
第一欧式距离计算单元,用于计算变换后的基频序列与音乐信息库中的每个乐句的欧式距离,获得各乐句对应的欧式距离值;所述音乐信息库中存储有乐句与音乐的对应关系;
第一候选音乐集合获得单元,用于根据所述各乐句对应的欧式距离值,获得第一候选音乐集合。
进一步地,所述第一候选音乐集合获得单元具体用于:
获取每首音乐包含的各乐句对应的欧式距离值,将所述欧式距离值中最小的欧式距离值作为所述音乐对应的欧式距离值;比较所述音乐对应的欧式距离值与第四阈值,利用小于所述第四阈值的欧式距离值对应的音乐生成第一候选音乐集合。
进一步地,所述分段平均近似距离PAA过滤单元包括:
第二拉伸单元,用于对所述第一候选音乐集合中的各乐句的开始部分进行拉伸处理;
将采样单元,用于对拉伸处理后的乐句进行降采样处理;
第二欧式距离计算单元,用于计算降采样处理后的各乐句与所述哼唱旋律对应的基频序列的欧式距离值;
第二候选音乐集合获得单元,用于根据所述欧式距离值获得第二候选音乐集合。
进一步地,所述第一EMD过滤单元包括:
第二拉伸单元,用于对所述第二候选音乐集合中的各乐句的开始部分进行拉伸处理;
EMD距离计算单元,用于计算拉伸处理后的各乐句与所述哼唱旋律对应的基频序列的EMD距离值;
第三候选音乐集合获得单元,用于根据所述EMD距离值获得第三候选音乐集合。
进一步地,所述第一DTW过滤单元包括:
第三拉伸单元,用于对所述第三候选音乐集合中的各乐句的开始部分进行拉伸处理;
DTW距离计算单元,用于计算拉伸处理后的各乐句与所述哼唱旋律对应的基频序列的DTW距离值;
第四候选音乐集合获得单元,用于根据所述DTW距离值获得第四候选音乐集合。
进一步地,所述基频序列获取单元具体用于:
获取哼唱旋律的第一部分,获取所述第一部分对应的基频序列;
所述变换单元具体用于:
对所述第一部分对应的基频序列进行快速傅里叶变换。
其中,本发明装置各单元或模块的设置可以参照图1至图3所示的方法而实现,在此不赘述。
图6是根据一示例性实施例示出的一种用于音乐检索的装置600的框图。例如,装置600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,装置600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件606,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制装置600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理部件602可以包括多媒体模块,以方便多媒体组件606和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在设备600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为装置600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
多媒体组件606包括在所述装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件606包括一个前置摄像头和/或后置摄像头。当设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到设备600的打开/关闭状态,组件的相对定位,例如所述组件为装置600的显示器和小键盘,传感器组件614还可以检测装置600或装置600一个组件的位置改变,用户与装置600接触的存在或不存在,装置600方位或加速/减速和装置600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
具体地,本发明实施例提供了一种用于音乐检索的装置600,包括有存储器604,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器604中,且经配置以由一个或者一个以上处理器620执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取哼唱旋律对应的基频序列;
对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
进一步地,所述处理器620还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合;
利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合;
利用所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述处理器620还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据所述第二候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第一置信度;
当确定所述第一置信度大于第一阈值时,根据所述第二候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述处理器620还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
当确定所述第一置信度小于所述第一阈值时,利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合;
根据第三候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第二置信度;
当确定所述第二置信度大于第二阈值时,根据所述第三候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述处理器620还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
当确定所述第二置信度小于所述第二阈值时,利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合;
根据第四候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第三置信度;
当确定所述第三置信度大于第三阈值时,根据所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
进一步地,所述处理器620还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对所述基频序列进行拉伸处理;
对拉伸处理后的基频序列进行快速傅里叶变换;
计算变换后的基频序列与音乐信息库中的每个乐句的欧式距离,获得各乐句对应的欧式距离值;所述音乐信息库中存储有乐句与音乐的对应关系;
根据所述各乐句对应的欧式距离值,获得第一候选音乐集合。
进一步地,所述处理器620还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对所述第一候选音乐集合中的各乐句的开始部分进行拉伸处理;
对拉伸处理后的乐句进行降采样处理;
计算降采样处理后的各乐句与所述哼唱旋律对应的基频序列的欧式距离值;
根据所述欧式距离值获得第二候选音乐集合。
进一步地,所述处理器620还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对所述第二候选音乐集合中的各乐句的开始部分进行拉伸处理;
计算拉伸处理后的各乐句与所述哼唱旋律对应的基频序列的EMD距离值;
根据所述EMD距离值获得第三候选音乐集合。
进一步地,所述处理器620还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对所述第三候选音乐集合中的各乐句的开始部分进行拉伸处理;
计算拉伸处理后的各乐句与所述哼唱旋律对应的基频序列的DTW距离值;
根据所述DTW距离值获得第四候选音乐集合。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由装置600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种基频序列处理方法,所述方法包括:
获取哼唱旋律对应的基频序列;
对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…...”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种音乐检索方法,其特征在于,所述方法包括:
获取哼唱旋律对应的基频序列;
对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果包括:
利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合;
利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合;
利用所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
3.根据权利要求1所述的方法,其特征在于,所述对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果包括:
根据所述第二候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第一置信度;
当确定所述第一置信度大于第一阈值时,根据所述第二候选音乐集合中的音乐获得并显示音乐检索结果。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当确定所述第一置信度小于所述第一阈值时,利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合;
根据第三候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第二置信度;
当确定所述第二置信度大于第二阈值时,根据所述第三候选音乐集合中的音乐获得并显示音乐检索结果。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当确定所述第二置信度小于所述第二阈值时,利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合;
根据第四候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第三置信度;
当确定所述第三置信度大于第三阈值时,根据所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
6.根据权利要求1所述的方法,其特征在于,所述对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合包括:
对所述基频序列进行拉伸处理;
对拉伸处理后的基频序列进行快速傅里叶变换;
计算变换后的基频序列与音乐信息库中的每个乐句的欧式距离,获得各乐句对应的欧式距离值;所述音乐信息库中存储有乐句与音乐的对应关系;
根据所述各乐句对应的欧式距离值,获得第一候选音乐集合。
7.根据权利要求6所述的方法,其特征在于,所述根据所述各乐句对应的欧式距离值,获得第一候选音乐集合包括:
获取每首音乐包含的各乐句对应的欧式距离值,将所述欧式距离值中最小的欧式距离值作为所述音乐对应的欧式距离值;
比较所述音乐对应的欧式距离值与第四阈值,利用小于所述第四阈值的欧式距离值对应的音乐生成第一候选音乐集合。
8.根据权利要求1所述的方法,其特征在于,所述获取哼唱旋律对应的基频序列包括:
获取哼唱旋律的第一部分,获取所述第一部分对应的基频序列;
所述对所述基频序列进行快速傅里叶变换具体为:
对所述第一部分对应的基频序列进行快速傅里叶变换。
9.一种音乐检索装置,其特征在于,所述装置包括:
基频序列获取单元,用于获取哼唱旋律对应的基频序列;
快速傅里叶变换单元,用于对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
分段平均近似距离PAA过滤单元,用于利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
检索结果获得单元,用于对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
10.一种用于音乐检索的装置,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取哼唱旋律对应的基频序列;
对所述基频序列进行快速傅里叶变换,将变换后的基频序列与预存在音乐信息库中的音乐进行比较,根据比较结果获得第一候选音乐集合;
利用分段平均近似距离PAA方法对所述第一候选音乐集合中的音乐进行过滤,获得第二候选音乐集合;
对所述第二候选音乐集合中的各音乐进行处理,获得并显示音乐检索结果。
11.根据权利要求10所述的装置,其特征在于,所述处理器还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
利用地球移动距离EMD方法对所述第二候选音乐集合中的音乐进行过滤,获得第三候选音乐集合;
利用动态时间规整距离DTW方法对第三候选音乐集合中的音乐进行过滤,获得第四候选音乐集合;
利用所述第四候选音乐集合中的音乐获得并显示音乐检索结果。
12.根据权利要求10所述的装置,其特征在于,所述处理器还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据所述第二候选音乐集合中各音乐与所述哼唱旋律对应的基频序列的距离计算第一置信度;
当确定所述第一置信度大于第一阈值时,根据所述第二候选音乐集合中的音乐获得并显示音乐检索结果。
13.根据权利要求10所述的装置,其特征在于,所述处理器还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对所述基频序列进行拉伸处理;
对拉伸处理后的基频序列进行快速傅里叶变换;
计算变换后的基频序列与音乐信息库中的每个乐句的欧式距离,获得各乐句对应的欧式距离值;所述音乐信息库中存储有乐句与音乐的对应关系;
根据所述各乐句对应的欧式距离值,获得第一候选音乐集合。
14.根据权利要求10所述的装置,其特征在于,所述处理器还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取哼唱旋律的第一部分,获取所述第一部分对应的基频序列;
对所述第一部分对应的基频序列进行快速傅里叶变换。
CN201510918496.5A 2015-12-10 2015-12-10 一种音乐检索方法及装置 Active CN105608114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510918496.5A CN105608114B (zh) 2015-12-10 2015-12-10 一种音乐检索方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510918496.5A CN105608114B (zh) 2015-12-10 2015-12-10 一种音乐检索方法及装置

Publications (2)

Publication Number Publication Date
CN105608114A true CN105608114A (zh) 2016-05-25
CN105608114B CN105608114B (zh) 2019-08-30

Family

ID=55988054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510918496.5A Active CN105608114B (zh) 2015-12-10 2015-12-10 一种音乐检索方法及装置

Country Status (1)

Country Link
CN (1) CN105608114B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106292423A (zh) * 2016-08-09 2017-01-04 北京光年无限科技有限公司 针对人形机器人的音乐数据处理方法及装置
CN106649559A (zh) * 2016-11-09 2017-05-10 腾讯音乐娱乐(深圳)有限公司 音频推荐方法及装置
CN107295398A (zh) * 2017-07-29 2017-10-24 安徽博威康信息技术有限公司 一种基于正在观看的电视节目的音乐筛选方法
CN112015942A (zh) * 2020-08-28 2020-12-01 上海掌门科技有限公司 音频处理方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192087A1 (en) * 2006-02-10 2007-08-16 Samsung Electronics Co., Ltd. Method, medium, and system for music retrieval using modulation spectrum
CN201479509U (zh) * 2009-07-15 2010-05-19 合谥螺丝五金股份有限公司 具有无接缝式金属外壳的usb随身碟
US20110137855A1 (en) * 2009-12-08 2011-06-09 Xerox Corporation Music recognition method and system based on socialized music server
CN102982804A (zh) * 2011-09-02 2013-03-20 杜比实验室特许公司 音频分类方法和系统
CN104978962A (zh) * 2014-04-14 2015-10-14 安徽科大讯飞信息科技股份有限公司 哼唱检索方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192087A1 (en) * 2006-02-10 2007-08-16 Samsung Electronics Co., Ltd. Method, medium, and system for music retrieval using modulation spectrum
CN201479509U (zh) * 2009-07-15 2010-05-19 合谥螺丝五金股份有限公司 具有无接缝式金属外壳的usb随身碟
US20110137855A1 (en) * 2009-12-08 2011-06-09 Xerox Corporation Music recognition method and system based on socialized music server
CN102982804A (zh) * 2011-09-02 2013-03-20 杜比实验室特许公司 音频分类方法和系统
CN104978962A (zh) * 2014-04-14 2015-10-14 安徽科大讯飞信息科技股份有限公司 哼唱检索方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
(美)伯格: "《数字媒体技术教程》", 31 January 2015, 北京:机械工业出版 *
张明芝等: "《实用医学统计学与SAS应用》", 30 September 2015, 苏州:苏州大学出版社 *
陈纯: "《计算机图像处理技术与算法》", 31 July 2003, 北京:清华大学出版社 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106292423A (zh) * 2016-08-09 2017-01-04 北京光年无限科技有限公司 针对人形机器人的音乐数据处理方法及装置
CN106649559A (zh) * 2016-11-09 2017-05-10 腾讯音乐娱乐(深圳)有限公司 音频推荐方法及装置
CN106649559B (zh) * 2016-11-09 2019-09-17 腾讯音乐娱乐(深圳)有限公司 音频推荐方法及装置
CN107295398A (zh) * 2017-07-29 2017-10-24 安徽博威康信息技术有限公司 一种基于正在观看的电视节目的音乐筛选方法
CN112015942A (zh) * 2020-08-28 2020-12-01 上海掌门科技有限公司 音频处理方法和装置

Also Published As

Publication number Publication date
CN105608114B (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
CN108984731A (zh) 歌单推荐方法、装置及存储介质
CN110175223A (zh) 一种实现问题生成的方法及装置
CN107147618A (zh) 一种用户注册方法、装置及电子设备
CN105335754A (zh) 文字识别方法及装置
CN107239535A (zh) 相似图片检索方法及装置
CN107193983A (zh) 图像搜索方法及装置
CN106355429A (zh) 图像素材的推荐方法及装置
US20150169747A1 (en) Systems and methods for automatically suggesting media accompaniments based on identified media content
CN105117384A (zh) 分类器训练方法、类型识别方法及装置
CN112420069A (zh) 一种语音处理方法、装置、机器可读介质及设备
CN104615663B (zh) 文件排序方法、装置及终端
CN105074697A (zh) 用于推断关于实体的元数据的实时众包数据的累积
CN106406562A (zh) 数据处理方法及装置
CN105608114A (zh) 一种音乐检索方法及装置
CN103902654B (zh) 聚类方法、装置及终端设备
CN103941969A (zh) 菜单显示方法及装置
CN104035995A (zh) 群标签生成方法及装置
CN105354560A (zh) 指纹识别方法及装置
CN108831508A (zh) 语音活动检测方法、装置和设备
CN105205494A (zh) 相似图片识别方法及装置
US10950221B2 (en) Keyword confirmation method and apparatus
CN112529939A (zh) 一种目标轨迹匹配方法、装置、机器可读介质及设备
CN110070891B (zh) 一种歌曲识别方法、装置以及存储介质
CN114333804A (zh) 音频分类识别方法、装置、电子设备及存储介质
CN105551047A (zh) 图片内容的检测方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant