音乐相似度计算方法、装置、设备及存储介质制造方法及图纸

技术编号:29212005 阅读:12 留言:0更新日期:2021-07-10 00:49
本发明专利技术涉及人工智能领域,公开了一种音乐相似度计算方法、装置、设备及存储介质。所述音乐相似度计算方法包括:提取基准乐谱中的第一音程序列与第一时值序列,以及提取目标乐谱中的第二音程序列与第二时值序列;分别对第一音程序列及第一时值序列进行多尺度分割,得到多个第一音程子序列及第一时值子序列;分别将各第一音程子序列与第二音程序列进行匹配,以及分别将各第一时值子序列与第二时值序列进行匹配,将匹配结果保存为堆栈,搜索堆栈中的各顶点,得到不重复的匹配子序列,最后计算基准乐谱和目标乐谱之间的相似度。本发明专利技术可以计算两个音乐之间的相似度,从而在样本音乐库中搜索相似度最高的音乐,满足用户的音乐搜索需求。求。求。

【技术实现步骤摘要】
音乐相似度计算方法、装置、设备及存储介质


[0001]本专利技术涉及人工智能领域,尤其涉及一种音乐相似度计算方法、装置、设备及存储介质。

技术介绍

[0002]随着互联网的发展,网络搜索成为了人们获取信息的关键渠道,现有的网络搜索方式大多是根据关键字匹配来实现的,基于用户已知的目标信息的关键文字,通过搜索引擎,搜索与关键字匹配的目标信息,从而得到与关键字相似的信息。
[0003]但当用户已知的信息是一段抽象的音乐时,现有的搜索系统往往难以做到预期的搜索功能,特别是对于一些有特殊风格的音乐,用户更是无处得知音乐的相关信息,现有的搜索系统对此也无能为力。

技术实现思路

[0004]本专利技术的主要目的在于解决现有音乐的调式和节奏组合变化多样而难以精确搜索的技术问题。
[0005]本专利技术第一方面提供了一种音乐相似度计算方法,所述音乐相似度计算方法包括:
[0006]获取基准音乐对应的基准乐谱和待比对音乐对应的目标乐谱;
[0007]提取所述基准乐谱中的第一音程序列与第一时值序列,以及提取所述目标乐谱中的第二音程序列与第二时值序列;
[0008]对所述第一音程序列进行多尺度分割,得到多个不同长度的第一音程子序列,以及对所述第一时值序列进行多尺度分割,得到多个不同长度的第一时值子序列;
[0009]分别使用不同长度的所述第一音程子序列与所述第二音程序列进行匹配,得到多个第一匹配结果,以及分别使用不同长度的所述第一时值子序列与所述第二时值序列进行匹配,得到多个第二匹配结果,将所述各第一匹配结果保存为音程序列堆栈以及将所述各第二匹配结果保存为时值序列堆栈;
[0010]搜索所述音程序列堆栈的各顶点,得到不重复的所有音程匹配子序列,以及搜索所述时值序列堆栈的各顶点,得到不重复的所有时值匹配子序列;
[0011]根据所述音程匹配子序列和所述时值匹配子序列,计算所述基准乐谱和所述目标乐谱之间的相似度。
[0012]可选的,在本专利技术第一方面的第一种实现方式中,所述对所述第一音程序列进行多尺度分割,得到多个不同长度的第一音程子序列包括:
[0013]S11、定义所述第一音程序列进行多尺度分割的起点位置与分割长度,其中,初始起点位置为所述第一音程序列的第一位音程,初始分割长度为一个音程长度;
[0014]S12、根据所述起点位置、所述分割长度,对所述第一音程序列进行分割;
[0015]S13、判断当前多尺度分割的分割长度是否未达到所述第一音程序列的最大分割
长度;
[0016]S14、若当前多尺度分割的分割长度未达到所述第一音程序列的最大分割长度,则将当前多尺度分割的分割长度增加一个音程长度,并循环执行S12

S13;
[0017]S15、若当前多尺度分割的分割长度达到所述第一音程序列的最大分割长度,则判断当前多尺度分割的起点位置是否为所述第一音程序列的非末位音程;
[0018]S16、若当前多尺度分割的起点位置为所述第一音程序列的非末位音程,则将当前多尺度分割的起点位置顺位移动一位音程,并循环执行S12

S15。
[0019]可选的,在本专利技术第一方面的第二种实现方式中,所述对所述第一时值序列进行多尺度分割,得到多个不同长度的第一时值子序列包括:
[0020]S21、定义所述第一时值序列进行多尺度分割的起点位置与分割长度,其中,初始起点位置为所述第一时值序列的第一位时值,初始分割长度为一个时值长度;
[0021]S22、根据所述起点位置、所述分割长度,对所述第一时值序列进行分割;
[0022]S23、判断当前多尺度分割的分割长度是否未达到所述第一时值序列的最大分割长度;
[0023]S24、若当前多尺度分割的分割长度未达到所述第一时值序列的最大分割长度,则将当前多尺度分割的分割长度增加一个时值长度,并循环执行S22

S23;
[0024]S25、若当前多尺度分割的分割长度达到所述第一时值序列的最大分割长度,则判断当前多尺度分割的起点位置是否为所述第一时值序列的非末位时值;
[0025]S26、若当前多尺度分割的起点位置为所述第一时值序列的非末位时值,则将当前多尺度分割的起点位置顺位移动一位时值,并循环执行S22

S25。
[0026]可选的,在本专利技术第一方面的第三种实现方式中,所述搜索所述音程序列堆栈的各顶点,得到不重复的所有音程匹配子序列包括:
[0027]提取所述音程序列堆栈中所述各第一音程子序列的匹配结果、序列起始点及序列长度,并以序列起始点为横轴、序列长度为纵轴,构建音程匹配堆栈图;
[0028]提取所述音程匹配堆栈图中各点的相邻点的所述第一匹配结果,并根据所述第一匹配结果识别所述音程匹配堆栈图的各顶点;
[0029]根据所述音程匹配堆栈图的各顶点,确定对应的所述第一音程子序列为不重复的音程匹配子序列。
[0030]可选的,在本专利技术第一方面的第四种实现方式中,所述搜索所述时值序列堆栈的各顶点,得到不重复的所有时值匹配子序列包括:
[0031]提取所述时值序列堆栈中所述各第一时值子序列的匹配结果、序列起始点及序列长度,并以序列起始点为横轴、序列长度为纵轴,构建时值匹配堆栈图;
[0032]提取所述时值匹配堆栈图中各点的相邻点的所述第二匹配结果,并根据所述第二匹配结果识别所述时值匹配堆栈图的各顶点;
[0033]根据所述时值匹配堆栈图的各顶点,确定对应的所述第一时值子序列为不重复的时值匹配子序列。
[0034]可选的,在本专利技术第一方面的第五种实现方式中,所述根据所述音程匹配子序列和所述时值匹配子序列,计算所述基准乐谱和所述目标乐谱之间的相似度包括:
[0035]对所述各时值匹配子序列中的各序列值求和,得到第一和值;
[0036]将所述第一和值与所述第一时值序列中各序列值的第一总和值相除,得到第一比例值,并将所述第一比例值作为所述基准乐谱与所述目标乐谱之间的第一相似度;
[0037]计算所述各音程匹配子序列的长度之和,作为第二和值;
[0038]将所述第二和值与所述第一时值序列中各序列值第一总和值相除,得到第二比例值,并将所述第二比例值作为所述基准乐谱与所述目标乐谱之间的第二相似度;
[0039]根据所述第一相似度和所述第二相似度,采用预置相似度公式计算所述基准乐谱和所述目标乐谱之间的整体相似度。
[0040]可选的,在本专利技术第一方面的第六种实现方式中,在所述提取所述基准乐谱中的第一音程序列与第一时值序列,以及提取所述目标乐谱中的第二音程序列与第二时值序列之前,还包括:
[0041]移除所述基准乐谱和所述目标乐谱中的装饰音,得到简化后的基准乐谱和目标乐谱;
[0042]分别将简化后的所述基准乐谱和所述目标乐谱中所有的音符设置为四分之一音符;
[0043]对简化后的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种音乐相似度计算方法,其特征在于,所述音乐相似度计算方法包括:获取基准音乐对应的基准乐谱和待比对音乐对应的目标乐谱;提取所述基准乐谱中的第一音程序列与第一时值序列,以及提取所述目标乐谱中的第二音程序列与第二时值序列;对所述第一音程序列进行多尺度分割,得到多个不同长度的第一音程子序列,以及对所述第一时值序列进行多尺度分割,得到多个不同长度的第一时值子序列;分别使用不同长度的所述第一音程子序列与所述第二音程序列进行匹配,得到多个第一匹配结果,以及分别使用不同长度的所述第一时值子序列与所述第二时值序列进行匹配,得到多个第二匹配结果,将所述各第一匹配结果保存为音程序列堆栈以及将所述各第二匹配结果保存为时值序列堆栈;搜索所述音程序列堆栈的各顶点,得到不重复的所有音程匹配子序列,以及搜索所述时值序列堆栈的各顶点,得到不重复的所有时值匹配子序列;根据所述音程匹配子序列和所述时值匹配子序列,计算所述基准乐谱和所述目标乐谱之间的相似度。2.根据权利要求1所述的音乐相似度计算方法,其特征在于,所述对所述第一音程序列进行多尺度分割,得到多个不同长度的第一音程子序列包括:S11、定义所述第一音程序列进行多尺度分割的起点位置与分割长度,其中,初始起点位置为所述第一音程序列的第一位音程,初始分割长度为一个音程长度;S12、根据所述起点位置、所述分割长度,对所述第一音程序列进行分割;S13、判断当前多尺度分割的分割长度是否未达到所述第一音程序列的最大分割长度;S14、若当前多尺度分割的分割长度未达到所述第一音程序列的最大分割长度,则将当前多尺度分割的分割长度增加一个音程长度,并循环执行S12

S13;S15、若当前多尺度分割的分割长度达到所述第一音程序列的最大分割长度,则判断当前多尺度分割的起点位置是否为所述第一音程序列的非末位音程;S16、若当前多尺度分割的起点位置为所述第一音程序列的非末位音程,则将当前多尺度分割的起点位置顺位移动一位音程,并循环执行S12

S15。3.根据权利要求1或2所述的音乐相似度计算方法,其特征在于,所述对所述第一时值序列进行多尺度分割,得到多个不同长度的第一时值子序列包括:S21、定义所述第一时值序列进行多尺度分割的起点位置与分割长度,其中,初始起点位置为所述第一时值序列的第一位时值,初始分割长度为一个时值长度;S22、根据所述起点位置、所述分割长度,对所述第一时值序列进行分割;S23、判断当前多尺度分割的分割长度是否未达到所述第一时值序列的最大分割长度;S24、若当前多尺度分割的分割长度未达到所述第一时值序列的最大分割长度,则将当前多尺度分割的分割长度增加一个时值长度,并循环执行S22

S23;S25、若当前多尺度分割的分割长度达到所述第一时值序列的最大分割长度,则判断当前多尺度分割的起点位置是否为所述第一时值序列的非末位时值;S26、若当前多尺度分割的起点位置为所述第一时值序列的非末位时值,则将当前多尺度分割的起点位置顺位移动一位时值,并循环执行S22

S25。4.根据权利要求1所述的音乐相似度计算方法,其特征在于,所述搜索所述音程序列堆
栈的各顶点,得到不重复的所有音程匹配子序列包括:提取所述音程序列堆栈中所述各第一音程子序列的匹配结果、序列起始点及序列长度,并以序列起始点为横轴、序列长度为纵轴,构建音程匹配堆栈图;提取所述音程匹配堆栈图中各点的相邻点的所述第一匹配结果,并根据所述第一匹配结果识别所述音程匹配...

【专利技术属性】
技术研发人员:蒋慧军徐伟杨艾琳韩宝强姜凯英肖京
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1