【技术实现步骤摘要】
一种通过音频查找曲谱的方法及系统
本专利技术涉及音频处理
,具体而言,涉及一种通过音频查找曲谱的方法及系统。
技术介绍
在音乐教育领域,在拿到一段音乐(例如一段现成的音频或是一段现场演奏的音频)时,我们需要知道这段音乐对应的曲谱。而相关技术中,对于一段音乐,尤其是不完整的片段音乐,只能识别该音乐对应的曲目,但无法识别出该音乐对应的曲谱,也无法获取曲谱的相关信息。
技术实现思路
为解决上述问题,本专利技术的目的在于提供一种通过音频查找曲谱的方法及系统,通过音频能在曲谱库中查找到相应的曲谱及相关信息。本专利技术提供了一种通过音频查找曲谱的方法,所述方法包括:将待查找音频转换成MIDI文件,并从所述MIDI文件中提取音高,形成待查找音高序列;将所述待查找音高序列中的两两音高组成一个待查找节点,得到多个待查找节点,形成待查找节点序列;将所述待查找节点序列中的每两个节点组成一个待查找索引节点,得到多个待查找索引节点,形成待查找索引节点序列,其中,每个所述待查找索引节点包括一个当 ...
【技术保护点】
1.一种通过音频查找曲谱的方法,其特征在于,所述方法包括:/n将待查找音频转换成MIDI文件,并从所述MIDI文件中提取音高,形成待查找音高序列;/n将所述待查找音高序列中的两两音高组成一个待查找节点,得到多个待查找节点,形成待查找节点序列;/n将所述待查找节点序列中的每两个节点组成一个待查找索引节点,得到多个待查找索引节点,形成待查找索引节点序列,其中,每个所述待查找索引节点包括一个当前节点和一个下一节点;/n在曲谱库中分别查找所述待查找索引节点序列中每个待查找索引节点对应的曲谱ID,得到第一结果列表,其中,所述第一结果列表包括各个曲谱ID以及每个曲谱ID对应的匹配总数; ...
【技术特征摘要】
1.一种通过音频查找曲谱的方法,其特征在于,所述方法包括:
将待查找音频转换成MIDI文件,并从所述MIDI文件中提取音高,形成待查找音高序列;
将所述待查找音高序列中的两两音高组成一个待查找节点,得到多个待查找节点,形成待查找节点序列;
将所述待查找节点序列中的每两个节点组成一个待查找索引节点,得到多个待查找索引节点,形成待查找索引节点序列,其中,每个所述待查找索引节点包括一个当前节点和一个下一节点;
在曲谱库中分别查找所述待查找索引节点序列中每个待查找索引节点对应的曲谱ID,得到第一结果列表,其中,所述第一结果列表包括各个曲谱ID以及每个曲谱ID对应的匹配总数;
将所述待查找音高序列和所述第一结果列表中每个曲谱ID对应的音高序列进行连续性匹配,得到第二结果列表,其中,所述第二结果列表包括各个曲谱ID、每个曲谱ID对应的匹配度以及每个曲谱ID对应的匹配序列区间个数;
根据所述第二结果列表,确定所述待查找音高序列对应的曲谱ID,并根据确定的曲谱ID获取曲谱的相关信息。
2.如权利要求1所述的方法,其中,所述曲谱库中包含多首曲谱、每首曲谱的曲谱ID、每首曲谱对应的MIDI文件,以及从每个MIDI文件中导出的曲谱对应的音高序列,
所述方法还包括:
对所述曲谱库中的每首曲谱,将曲谱对应的音高序列中的两两音高组成一个节点,得到多个节点,形成节点序列;
将所述节点序列中的每两个节点组成一个索引节点,并去除相同的索引节点,得到多个索引节点,形成索引节点序列,其中,每个所述索引节点包括一个当前节点和一个下一节点;
将曲谱ID以及各个所述索引节点分别对应的当前节点和下一节点分别插入到所述曲谱库中;
生成索引库,其中,所述索引库包括各个曲谱ID以及每个曲谱ID对应的各个索引节点。
3.如权利要求1所述的方法,其中,所述曲谱库包括索引库,所述索引库包括各个曲谱ID以及每个曲谱ID对应的各个索引节点,
所述在曲谱库中分别查找所述待查找索引节点序列中每个待查找索引节点对应的曲谱ID,得到第一结果列表,包括:
在所述索引库中分别查找所述待查找索引节点序列中每个待查找索引节点对应的曲谱ID,将查找到的各个曲谱ID按照被匹配次数进行汇总,并删除匹配总数少于预设阈值的曲谱ID;
将匹配总数进行降序排序,得到所述第一结果列表,其中,所述第一结果列表包括各个曲谱ID以及每个曲谱ID对应的匹配总数。
4.如权利要求1所述的方法,其中,所述将所述待查找音高序列和所述第一结果列表中每个曲谱ID对应的音高序列进行连续性匹配,得到第二结果列表,包括:
将所述待查找音高序列和所述第一结果列表中每个曲谱ID对应的音高序列分别组成一个二维表,其中,在所述二维表中,横向序列表示所述音高序列,竖向序列表示所述待查找音高序列;
根据所述横向序列和所述竖向序列中各个音高的匹配情况,对所述二维表中所有位置的值进行初始标记;
根据所述二维表中的最大值,从所述二维表中提取所述待查找音高序列对应的匹配序列区间,形成匹配序列区间组;
根据所述匹配序列区间组中所有匹配序列区间,计算每个曲谱ID对应的匹配度,并根据每个曲谱ID对应的匹配度以及匹配序列区间的数量,得到所述第二结果列表。
5.如权利要求4所述的方法,其中,所述根据所述横向序列和所述竖向序列中各个音高的匹配情况,对所述二维表中所有位置的值进行初始标记,包括:
所述二维表的宽为所述音高序列的长度加1,所述二维表的高为所述待查找音高序列的长度加1,所述二维表用0填充;
当所述横向序列中的元素Ai与所述竖向序列中的元素Bj相同时,将所述二维表中位置(i,j)的值Table(i,j)标记为1;
在所述二维表中查找标记为1的连续序列,并将所述连续序列中位置(i+1,j+1)的值Table(i+1,j+1)标记为位置(i,j)的值Table(i,j)加1,得到连续增长序列,保留所述连续增长序列中最后一个位置的值并将其他位置的值赋值为0,其中,所述Ai表示所述音高序列中第i个音高,所述元素Bj表示所述待查找音高序列中第j个音高。
6.如权利要求4所述的方法,其中,所述根据所述二维表中的最大值,从所述二维表中提取所述待查找音高序列对应的匹配序列区间,形成匹配序列区间组,包括:
在所述二维表中查找最大值m,并提取所述最大值m对应的位置(i,j),将所述二维表中的匹配序列区间[j-m,j]加入至匹配序列区间组中,其中,所述匹配序列区间[j-m,j]表示所述二维表中第j-m行至j行以及第0列至第i列之间的区间;
重复在所述二维表中查找最大值,直至查找到的最大值小于预设阈值,得到各个匹配序列区间组成的匹配序列区间组。
7.如权利要求6所述的方法,其中,所述根据所述匹配序列区间组中所有匹配序列区间,计算每个曲谱ID对应的匹配度,并根据每个曲谱ID对应的匹配度以及匹配序列区间的数量,得到所述第二结果列表,包括:
对所述匹配序列区间组中所有的匹配序列区间,将查找到的最大值作为每个匹配序列区间中匹配节点的个数,得到所有匹配节点的个数,并将所有匹配节点的个数除以所述竖向序列中元素的个数,得到每个曲谱ID对应的匹配度;
将每个曲谱ID对应的匹配度进行降序排序、每个曲谱ID对应的匹配序列区间数进行升序排序,得到第二结果列表,其中,所述第二结果列表包括各个曲谱ID、每个曲谱ID对应的匹配度以及每个曲谱ID对应的匹配序列区间数。
8.一种通过音频查找曲谱的系统,其特征在于,所述系统包括:
音高序列处理模块,用于将待查找音频转换成MIDI文件,并从所述MIDI文件中提取音高...
【专利技术属性】
技术研发人员:孙飞龙,
申请(专利权)人:小叶子北京科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。