串烧音乐的生成方法及装置与流程

文档序号:32504174发布日期:2022-12-10 06:03阅读:147来源:国知局
串烧音乐的生成方法及装置与流程

1.本技术涉及音频处理领域,尤其涉及一种串烧音乐的生成方法及装置。


背景技术:

2.随着现代生活节奏的加快,人们对音乐的多样化需求也日趋增长,例如,除了从音乐开头至结尾全部听完这种听歌体验之外,人们对于由不同风格以及类型的音乐片段组成而成的串烧音乐的需求也日益旺盛。
3.在相关技术中,串烧音乐主要由专业的音乐制作人进行选材和演唱,最后通过软件进行后期制作。其制作周期长,作品数量有限,难以满足人们日益增长的对串烧音乐的需求。


技术实现要素:

4.本技术的目的是提供一种串烧音乐的生成方法及装置,用于提高串烧音乐的制作效率,以满足人们对串烧音乐的需求。
5.本技术提供一种串烧音乐的生成方法,包括:
6.获取素材库中的第一音乐素材与第二音乐素材;所述素材库中包括多个音乐素材;在所述第一音乐素材与所述第二音乐素材满足预设拼接条件的情况下,将所述第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定音乐文件所对应乐曲的曲速、调式、音乐小节以及每个音乐小节的和弦。
7.可选地,所述素材库中的任一音乐素材均为通过以下步骤得到的:获取目标乐曲文件,并根据所述目标乐曲文件确定目标乐曲的每个乐音的音高和时值;根据每个乐音的音高和时值,确定所述目标乐曲的曲速以及每个乐段的调式;根据音乐小节的先验知识,通过先验模型对每个乐段进行小节划分,并得到小节划分结果;一个乐段对应至少一个小节划分结果;根据乐段对应的乐谱中音符与小节线的相对位置关系,对每个乐段中音符的位置进行纠错,将至少一个音符调整到节拍上;根据每个乐段的小节划分结果,对不同组合的小节划分结果进行和声进行匹配,若同一乐段内存在相邻的多个小节满足预设和声进行,则将所述多个小节对应的乐句作为音乐素材。
8.可选地,所述将所述多个小节对应的乐句作为音乐素材之后,所述方法还包括:在目标音乐素材的目标小节内存在目标音符的情况下,将所述目标音乐素材从所述素材库中移除;其中,所述目标音符为不属于所述目标小节的和弦内音、且不属于经过音、且不是作为弱起属于下一个小节的和弦内音。
9.可选地,所述将所述多个小节对应的乐句作为音乐素材之后,所述方法还包括:根据每个音乐素材的第一小节的旋律序列与第二小节的旋律序列之间的编辑距离,计算所述第一小节与所述第二小节的旋律序列的相似度;将所述旋律序列的相似度小于预设相似度的音乐素材从所述素材库中移除;其中,所述第一小节包括至少两个连续的小节;所述第二
小节包括至少两个连续的小节;所述第一小节与所述第二小节不连续。
10.可选地,所述获取目标乐曲文件,并根据所述目标乐曲文件确定目标乐曲的每个乐音的音高和时值,包括:在所述目标乐曲文件为乐器数字接口midi文件的情况下,将midi文件中的开始事件中的相对位置、结束事件中的相对位置以及歌词中的相对位置转化为绝对位置;将绝对位置相同的开始事件、歌词以及结束事件组合为乐音词条,并根据各个乐音的绝对位置将乐音词条进行排序,得到乐音队列;所述乐音词条中乐音的时值通过长度进行表示;根据所述乐音队列,确定所述目标乐曲的乐句和乐段,以及每个乐音的音高和时值;其中,所述开始事件的参数包括:相对位置、音高和音量;所述结束事件的参数包括:相对位置、音高和音量;所述歌词包括:相对位置和歌词文本。
11.可选地,所述根据每个乐音的音高和时值,确定所述目标乐曲的曲速以及每个乐段的调式,包括:获取所述目标乐曲的最短乐音的时值,并将单位时间内重复所述最短乐音的次数确定为所述目标乐曲的曲速;所述根据每个乐音的音高和时值,确定所述目标乐曲的每个乐段的调式,包括:获取目标乐段的每个乐音的音高,并得到目标音高集合;在所述目标音高集合为目标调式所包含的音高的子集的情况下,将所述目标调式确定为所述目标乐段的调式;其中,所述目标乐段为所述目标乐曲中任一乐段。
12.可选地,所述根据音乐小节的先验知识,通过先验模型对每个乐段进行小节划分,并得到小节划分结果,包括:根据音乐小节的先验知识,通过先验模型预测所述目标乐曲所对应的乐谱中每个乐段的首个小节线的位置;根据每个乐段的首个小节线的位置、所述目标乐曲的曲速以及每个乐段的拍号,确定每个乐段剩余小节线的位置;其中,所述先验模型针对每个乐段的预测结果不唯一。
13.可选地,所述根据乐段对应的乐谱中音符与小节线的相对位置关系,对每个乐段中音符的位置进行纠错,将至少一个音符调整到节拍上,包括:计算所述目标乐曲对应的乐谱中目标乐段的每个音符与最近的节拍之间的距离,并得到距离集合;对所述距离集合中的距离值进行聚类分析,将所述距离集合中距离值分为正值类和负值类;根据聚类分析结果,将所述目标乐段的音符进行整体平移,使得至少一个音符位置与节拍的位置相同;其中,所述目标乐段为所述目标乐曲的任一乐段;所述目标乐段的每个小节内的节拍为根据所述目标乐曲的曲速以及所述目标乐曲的拍号确定的。
14.可选地,所述根据每个乐段的小节划分结果,对不同组合的小节划分结果进行和声进行匹配,若同一乐段内存在相邻的多个小节满足预设和声进行,则将所述多个小节对应的乐句作为音乐素材,包括:根据目标乐段的每个小节内强拍乐音和次强拍乐音的音高,以及每个小节的和弦,确定所述目标乐段的每个小节的和弦;在所述目标乐段内存在相邻的多个小节的和弦满足预设和声进行的情况下,将所述多个小节对应的乐句作为音乐素材。
15.本技术还提供一种串烧音乐的生成装置,包括:
16.获取模块,用于获取素材库中的第一音乐素材与第二音乐素材;所述素材库中包括多个音乐素材;生成模块,用于在所述第一音乐素材与所述第二音乐素材满足预设拼接条件的情况下,将所述第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定音乐文件所对应乐曲的曲速、调式、音乐小节以及每个音乐小
节的和弦。
17.可选地,所述装置还包括:确定模块、小节划分模块、音符位置纠错模块以及和声进行匹配模块;所述获取模块,还用于获取目标乐曲文件,并根据所述目标乐曲文件确定目标乐曲的每个乐音的音高和时值;所述确定模块,用于根据每个乐音的音高和时值,确定所述目标乐曲的曲速以及每个乐段的调式;所述小节划分模块,用于根据音乐小节的先验知识,通过先验模型对每个乐段进行小节划分,并得到小节划分结果;一个乐段对应至少一个小节划分结果;所述音符位置纠错模块,用于根据乐段对应的乐谱中音符与小节线的相对位置关系,对每个乐段中音符的位置进行纠错,将至少一个音符调整到节拍上;所述声进行匹配模块,用于根据每个乐段的小节划分结果,对不同组合的小节划分结果进行和声进行匹配,若同一乐段内存在相邻的多个小节满足预设和声进行,则将所述多个小节对应的乐句作为音乐素材。
18.可选地,所述装置还包括:素材筛选模块;所述素材筛选模块,用于在目标音乐素材的目标小节内存在目标音符的情况下,将所述目标音乐素材从所述素材库中移除;其中,所述目标音符为不属于所述目标小节的和弦内音、且不属于经过音、且不是作为弱起属于下一个小节的和弦内音。
19.可选地,所述装置还包括:计算模块;所述计算模块,用于根据每个音乐素材的第一小节的旋律序列与第二小节的旋律序列之间的编辑距离,计算所述第一小节与所述第二小节的旋律序列的相似度;所述素材筛选模块,还用于将所述旋律序列的相似度小于预设相似度的音乐素材从所述素材库中移除;其中,所述第一小节包括至少两个连续的小节;所述第二小节包括至少两个连续的小节;所述第一小节与所述第二小节不连续。
20.可选地,所述装置还包括:乐曲文件处理模块;所述乐曲文件处理模块,用于在所述目标乐曲文件为乐器数字接口midi文件的情况下,将midi文件中的开始事件中的相对位置、结束事件中的相对位置以及歌词中的相对位置转化为绝对位置;将绝对位置相同的开始事件、歌词以及结束事件组合为乐音词条,并根据各个乐音的绝对位置将乐音词条进行排序,得到乐音队列;所述乐音词条中乐音的时值通过长度进行表示;所述确定模块,还用于根据所述乐音队列,确定所述目标乐曲的乐句和乐段,以及每个乐音的音高和时值;其中,所述开始事件的参数包括:相对位置、音高和音量;所述结束事件的参数包括:相对位置、音高和音量;所述歌词包括:相对位置和歌词文本。
21.可选地,所述获取模块,还用于获取所述目标乐曲的最短乐音的时值;所述确定模块,还用于将单位时间内重复所述最短乐音的次数确定为所述目标乐曲的曲速;所述获取模块,还用于获取目标乐段的每个乐音的音高,并得到目标音高集合;所述确定模块,还用于在所述目标音高集合为目标调式所包含的音高的子集的情况下,将所述目标调式确定为所述目标乐段的调式;其中,所述目标乐段为所述目标乐曲中任一乐段。
22.可选地,所述小节划分模块,具体用于根据音乐小节的先验知识,通过先验模型预测所述目标乐曲所对应的乐谱中每个乐段的首个小节线的位置;所述确定模块,还用于根据每个乐段的首个小节线的位置、所述目标乐曲的曲速以及每个乐段的拍号,确定每个乐段剩余小节线的位置;其中,所述先验模型针对每个乐段的预测结果不唯一。
23.可选地,所述计算模块,还用于计算所述目标乐曲对应的乐谱中目标乐段的每个音符与最近的节拍之间的距离,并得到距离集合;所述计算模块,还用于对所述距离集合中
的距离值进行聚类分析,将所述距离集合中距离值分为正值类和负值类;所述音符位置纠错模块,具体用于根据聚类分析结果,将所述目标乐段的音符进行整体平移,使得至少一个音符位置与节拍的位置相同;其中,所述目标乐段为所述目标乐曲的任一乐段;所述目标乐段的每个小节内的节拍为根据所述目标乐曲的曲速以及所述目标乐曲的拍号确定的。
24.可选地,所述确定模块,还用于根据目标乐段的每个小节内强拍乐音和次强拍乐音的音高,以及每个小节的和弦,确定所述目标乐段的每个小节的和弦;所述确定模块,还用于在所述目标乐段内存在相邻的多个小节的和弦满足预设和声进行的情况下,将所述多个小节对应的乐句作为音乐素材。
25.本技术还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一种所述串烧音乐的生成方法的步骤。
26.本技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述串烧音乐的生成方法的步骤。
27.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述串烧音乐的生成方法的步骤。
28.本技术提供的串烧音乐的生成方法及装置,首先获取素材库中的第一音乐素材与第二音乐素材,之后,在第一音乐素材与第二音乐素材满足预设拼接条件的情况下,降第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定所述音乐文件所对应乐曲的曲速、调式和音乐小节。如此,能够根据素材库中的音乐素材快速、批量的生成串烧音乐,极大地满足了人们对串烧音乐的需求。
附图说明
29.为了更清楚地说明本技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1是本技术提供的串烧音乐的生成方法的流程示意图之一;
31.图2是本技术提供的串烧音乐的生成方法的流程示意图之二;
32.图3是本技术提供的串烧音乐的生成装置的结构示意图;
33.图4是本技术提供的电子设备的结构示意图。
具体实施方式
34.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互
换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
36.首先,对本技术实施例所涉及的专业属于进行解释:
37.歌词:在文本格式的乐曲文件中,具有分句和分段信息的文本序列。
38.音符:音符是用来记录不同长短的音的进行符号。全音符、二分音符、四分音符、八分音符、十六分音符是最常见的音符。是五线谱中最重要的元素。在文本格式的乐曲文件中,具有音高、位置、长度和歌词文本4个属性。
39.乐音:发音物体有规律地振动而产生的具有固定音高的音称乐音。乐音的三要素包括:音调、音高和音色。
40.音高:根据乐器数字接口(musical instrument digital interface,midi)规范,用0-127之间的整数表示。例如,中央c,c4=60。
41.曲速:一分钟内的拍子数,单位为bpm(beat per minute)。
42.调式:构成乐曲的若干个乐音按照一定的关系组合在一起,并以其中的一个音为主音,其余各音都倾向于它,这个体系叫作调式。本技术实施例中指大调式,包括c,c#,d,d#,e,f,f#,g,g#,a,a#,b。
43.乐句:表示为一句歌词对应的所有音符。
44.乐段:乐句的集合,表示为一段歌词对应的所有音符。
45.乐曲:乐段的集合,表示为全部歌词对应的所有音符,保存为乐谱。
46.小节:音乐进行中,其强拍、弱拍总是有规律地循环出现,从一个强拍到下一个强拍之间的部分即称一小节。在乐谱中,小节与小节之间用短竖线(小节线)划开。拍数不足的小节又称不完全小节,常出现于乐句(或乐曲)的首尾,首尾两个不完全小节合为一个完全小节。以弱拍(或弱位置)开始的小节又称弱起小节。小节的结构由拍号标明。
47.拍号:拍号是在乐谱中使用的符号,用分数的形式来标画。每一个乐谱前面都有拍号,中间如果改变节奏会标出改变的拍号,拍号如同分数。例如,4/4拍,表示以4分音符为1拍,1小节有4拍。
48.三和弦:由三个音按三度叠置而成的一种和弦。
49.八度:在音乐中,相邻的音组中相同音名的两个音,包括变化音级,称之为八度。根据midi规范,cn到cn+1称之1个八度,n=1,

,7。
50.和声进行:调式音乐中和弦在一定范围内的连接。和声进行中的某级和弦是相对的概念,例如我们选择卡农和声进行15634125,意味着连续8个小节的和弦依次是i级和弦,v级和弦,vi级和弦,iii级和弦,iv级和弦,i级和弦,ii级和弦和v级和弦。而i级和弦在c大调中是c和弦,在d大调中是d和弦以此类推。
51.针对相关技术中存在的串烧音乐的制作周期长、效率低的技术问题,本技术实施例提供了一种串烧音乐的生成方法,能够快速、批量的生成串烧音乐,满足人们对串烧音乐的需求。
52.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的串烧音乐的生成方法进行详细地说明。
53.如图1所示,本技术实施例提供的一种串烧音乐的生成方法,该方法可以包括下述步骤101和步骤102:
54.步骤101、获取素材库中的第一音乐素材与第二音乐素材。
55.其中,所述素材库中包括多个音乐素材;所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定音乐文件所对应乐曲的曲速、调式、音乐小节以及每个音乐小节的和弦。
56.示例性地,为了减少音乐素材以及用于生成音乐素材的音乐文件占用空间的大小,同时,也为了加快串烧音乐的制作,本技术实施例中使用文本格式的音乐文件来生成音乐素材。
57.示例性地,上述文本格式的音乐文件可以包括:第一类音乐文件和第二类音乐文件,其中,第一类音乐文件为midi文件,第二类音乐文件为与midi文件存储的音符信息相似,但音符的位置和长度以时间单位(通常为毫秒ms)进行表示。
58.示例性地,在本技术实施例中,按照本技术实施例提供的预设处理方法处理上述文本格式的音乐文件,能够得到可以用于串烧音乐生成的音乐素材,并将按照预设处理方法得到的多个音乐素材添加至素材库。
59.步骤102、在所述第一音乐素材与所述第二音乐素材满足预设拼接条件的情况下,将所述第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐。
60.示例性地,在得到素材库之后,便可以将素材库中的任意两个或者多个音乐素材拼接成串烧音乐。
61.在一种可能的实现方式中,为了将素材组合成为一首歌曲,需要事先将素材的调式、八度和曲速统一。
62.具体地,上述步骤102之前,本技术实施例提供的串烧音乐的生成方法,还可以包括以下步骤103,以及步骤104、步骤105、步骤1026中的任一项:
63.步骤103、获取所述素材库中任一待处理音乐素材的最小音高和最大音高。
64.步骤104、在所述最小音高小于预设最小音高的情况下,将所述待处理音乐素材的旋律进行整体平移,使得每个乐音的音高均大于所述预设最小音高。
65.步骤105、在所述最大音高大于预设最大音高的情况下,将所述待处理音乐素材的旋律进行整体平移,使得每个乐音的音高均小于所述预设最大音高。
66.步骤106、在所述最大音高大于预设最大音高、且所述最小音高小于预设最小音高的情况下,将所述待处理音乐素材从所述素材库中移除。
67.可以理解的是,统一调式只需要将素材旋律整体音高进行平移即可。统一八度时,预设可接受的最大音高是d#5,最小音高是c3。计算素材旋律音符中的最大音高和最小音高,如果最大音高超过d#5,便将旋律音符整体降低1个八度,如果最小音高低于c3,便将旋律音符整体升高1个八度,就可以素材的旋律音符统一在固定范围中。
68.示例性地,在对上述第一音乐素材以及第二音乐素材进行调式、八度和曲速统一后,便可以将素材进行拼接。
69.具体地,上述步骤102,可以包括以下步骤102b、步骤102c以及步骤102d:
70.步骤102b、在所述第一音乐素材的结尾小节能够容纳所述第二音乐素材的开始小节弱起,或者所述第二音乐素材的开始小节为反拍起小节的情况下,将将所述第一音乐素
材与所述第二音乐素材进行拼接,生成串烧乐谱。
71.示例性地,在将上述第一音乐素材与第二音乐素材进行拼接后,只能得到串烧乐谱,为了能够得到串烧音乐,还需要根据串烧乐谱生成串烧音乐。
72.步骤102c、通过声音合成器生成串烧乐谱对应的人声,得到声乐音轨。
73.步骤102d、基于所述第一音乐素材与所述第二音乐素材的和声进行,通过midi合成器生成器乐音轨,并将所述声乐音轨与器乐音轨进行合并,生成所述串烧音乐。
74.需要说明的是,在使用两个以上的音乐素材生成串烧音乐的情况下,任意两个音乐素材之间的拼接方法均可以按照上述步骤102中第一音乐素材与第二音乐素材的拼接方法进行拼接,进而得到串烧音乐。
75.可选地,在本技术实施例中,可以通过以下步骤来生成素材库中的音乐素材。
76.示例性地,本技术实施例中,如图2所示,可以通过以下步骤201至步骤205生成音乐素材:
77.步骤201、获取目标乐曲文件,并根据所述目标乐曲文件确定目标乐曲的每个乐音的音高和时值。
78.示例性地,基于上述针对目标乐曲文件的描述,该乐曲文件可以包括第一类乐曲文件和第二类乐曲文件。通过上述目标乐曲文件,可以确定目标乐曲文件所对应的目标乐曲中每个乐音的音高和时值。
79.示例性地,在目标乐曲文件为第一类乐曲文件的情况下,需要对目标乐曲文件进行处理,进而确定目标乐曲中每个乐音的音高和时值。
80.具体地,上述步骤201可以包括以下步骤201a1至步骤201a3:
81.步骤201a1、在所述目标乐曲文件为乐器数字接口midi文件的情况下,将midi文件中的开始事件中的相对位置、结束事件中的相对位置以及歌词中的相对位置转化为绝对位置。
82.步骤201a2、将绝对位置相同的开始事件、歌词以及结束事件组合为乐音词条,并根据各个乐音的绝对位置将乐音词条进行排序,得到乐音队列;所述乐音词条中乐音的时值通过长度进行表示。
83.步骤201a3、根据所述乐音队列,确定所述目标乐曲的乐句和乐段,以及每个乐音的音高和时值。
84.其中,所述开始事件的参数包括:相对位置、音高和音量;所述结束事件的参数包括:相对位置、音高和音量;所述歌词包括:相对位置和歌词文本。
85.示例性地,midi文件中以时间队列形式存储midi事件,midi事件可以分为开始事件、结束事件和歌词。开始事件由一个三元组表示,开始事件的参数包括:相对位置,音高,音量,结束事件也由一个三元组表示,结束事件的参数包括:相对位置,音高,音量,歌词由一个二元组表示,歌词包括:相对位置,歌词文本,如以下表1所示:
86.开始事件(200,60,120)歌词(0,《sts》我)结束事件(200,60,0)开始事件(0,62,120)歌词(0,是)
结束事件(200,62,0)
87.表1
88.示例性地,midi文件中一般存储midi事件的相对位置,为了匹配开始事件和结束事件和歌词,需要将相对位置转化为绝对位置,如以下表2所示:
89.开始事件(200,60,120)歌词(200,《sts》我)结束事件(400,60,0)开始事件(400,62,120)歌词(400,是)结束事件(600,62,0)
90.表2
91.示例性地,在将相对位置转化为绝对位置之后,将开始事件、结束事件和歌词分别形成各自的时间队列。开始事件队列的长度应与结束事件队列的长度相同,并且队列中相同索引的开始事件和结束事件的音高相同。如以下表3、表4和表5所示:
92.开始事件(200,60,120)开始事件(400,62,120)
93.表3
94.歌词(200,《sts》我)歌词(400,是)
95.表4
96.结束事件(400,60,0)结束事件(600,62,0)
97.表5
98.需要说明的是,通常情况下,开始事件的音量范围为(65,128),结束事件的音量范围为[0,64],在没有事件名称的情况下,可以根据事件的音量范围确定开始事件和结束事件。
[0099]
示例性地,在匹配歌词时,当绝对位置出现与开始事件绝对位置相同的歌词时,将该歌词匹配到该开始事件,匹配后将该歌词移出歌词队列。歌词中可能出现的《sts》表示句子的开始,换行符表示句子的结束。
[0100]
示例性地,将匹配到的开始事件、结束事件和歌词另存为乐音队列,乐音的位置为开始事件的位置,乐音长度为结束事件与开始事件的位置差值。歌词需要一般为1个中文汉字,当乐音没有歌词时,记歌词为空,表示转音。如以下表6所示:
[0101]
音高=60,位置=200,长度=200,歌词=我音高=62,位置=400,长度=200,歌词=是
[0102]
表6
[0103]
需要说明的是,乐音与音符均表示相同的内容,乐音在乐谱上通过音符来表示。
[0104]
示例性地,针对上述第二类乐曲文件,由于其采用时间单位表示乐音的位置和长度,因此,可以直接确定每个乐音的音高和时值。
[0105]
步骤202、根据每个乐音的音高和时值,确定所述目标乐曲的曲速以及每个乐段的调式。
[0106]
示例性地,在确定每个乐音的音高和时值后,需要计算目标乐曲的曲速以及目标乐曲中每个乐段的调式。
[0107]
具体地,上述步骤202中确定目标乐曲的曲速的步骤,可以包括以下步骤202a1:
[0108]
步骤202a1、获取所述目标乐曲的最短乐音的时值,并将单位时间内重复所述最短乐音的次数确定为所述目标乐曲的曲速。
[0109]
具体地,上述步骤202中确定任一乐段的调式的步骤,可以包括以下步骤202a2和步骤202a3:
[0110]
步骤202a2、获取目标乐段的每个乐音的音高,并得到目标音高集合。
[0111]
步骤202a3、在所述目标音高集合为目标调式所包含的音高的子集的情况下,将所述目标调式确定为所述目标乐段的调式。
[0112]
其中,所述目标乐段为所述目标乐曲中任一乐段。
[0113]
示例性地,目标乐曲的曲速由目标乐曲中的最短乐音的时值决定,记最短乐音的时值为unit(单位为毫秒ms),则该目标乐曲的曲速v
bmp
可以由以下公式一计算得到:
[0114]vbmp
=60000/unit
ꢀꢀ
(公式一)
[0115]
需要说明的是,针对上述第一类乐曲文件,其最短音符采用固定值120毫秒ms,其曲速采用固定值62.5次每分钟(bmp)。
[0116]
示例性地,针对目标乐曲中任一目标乐段的调式的确定,可以根据参考以下示例:假设乐曲的每个乐均段有不同的调式,记12个大调的音阶集合分别为pk,其中k∈{c,c#,d,d#,e,f,f#,g,g#,a,a#,b},c大调包含的音阶pc={c,d,e,f,g,a,b}。一个乐段内所有乐音的音高组成集合为p,如果存在n,使得其中,n∈
[0117]
{c,c#,d,d#,e,f,f#,g,g#,a,a#,b},那么可以判断该乐段的调式为n,由于n可能不唯一,可以在后续的算法中排除不可能的调式。根据调式,可以将音高转换为简谱标记。即当乐音所处段落的调式为c大调pc={c,d,e,f,g,a,b},乐音的音高为d时,该乐音在乐谱上对应的音符的简谱标记为2。
[0118]
步骤203、根据音乐小节的先验知识,通过先验模型对每个乐段进行小节划分,并得到小节划分结果。
[0119]
其中,一个乐段对应至少一个小节划分结果。
[0120]
需要说明的是,小节是判断和弦、推导和声进行并进行串烧的关键信息,由于乐谱中没有小节线的标记,因此我们需要预测小节线的位置。
[0121]
具体地,上述步骤203,可以包括以下步骤203a1和步骤203a2:
[0122]
步骤201a1、根据音乐小节的先验知识,通过先验模型预测所述目标乐曲所对应的乐谱中每个乐段的首个小节线的位置。
[0123]
步骤201a1、根据每个乐段的首个小节线的位置、所述目标乐曲的曲速以及每个乐段的拍号,确定每个乐段剩余小节线的位置。
[0124]
其中,所述先验模型针对每个乐段的预测结果不唯一。
[0125]
示例性地,在本技术实施例中,可以通过统计大量流行歌曲,得到音乐小节的先验知识,进而得到先验模型,通过先验模型预测乐谱中小节线的位置。
[0126]
需要说明的是,由于对midi文件的处理采用固定的曲速和拍号,因此,通过第一类乐曲文件可以精确的得到乐谱的小节划分,本技术实施例中主要针对第二类乐曲文件的小节划分进行描述,第一类乐曲文件同样可以参照第二类乐曲文件的小节划分方法进行音乐小节的划分。
[0127]
示例性地,上述先验知识可以包括以下内容:1.段落与段落之间的衔接小节的拍号可能发生改变,例如段落内是4/4拍,段落间是2/4拍,因此小节线需要分段预测;2.第一个强拍一般是8分音符以上的长音符;3.第一个8分音符以上的长音符一般在每段第一句前5个音符内出现;4.当第1个音符是长音符时,如果长音符是4分音符,那么第一个小节线可能出现在这个音符,和这个音符的后1拍,后2拍上;如果长音符超过4分音符,那么第一个小节线可能出现在这个音符上。如果长音符小于4分音符,那么第一个小节线可能出现在这个音符,和这个音符的前1拍,前半拍,后半拍,后1拍,后1.5拍,后2.5拍上;5.当第2个音符是长音符时,那么第一个小节线可能出现在这个音符,和这个音符的前1拍,后0.75拍上;6.当第3个音符是长音符时,那么第一个小节线可能出现在这个音符,和这个音符的前1拍上;7.当第4个音符是长音符时,那么第一个小节线可能出现在这个音符,和这个音符的前1.25拍,0.75拍上;8.当第5个音符是长音符时,那么第一个小节线可能出现在这个音符,和这个音符的前1.5拍,前1拍上;9.当前5个音符中没有出现长音符时,那么第一个小节线可能出现在这个音符,和这个音符的前1.75拍,后1.75拍上。
[0128]
示例性地,上述先验模型主要用于预测乐段的首个小节线的位置,之后,根据曲速和拍号以及首个小节线的位置,可以确定乐段中其他小节线的位置。
[0129]
示例性地,由于先验模型对乐段的首个小节线的预测结果不唯一,因此,每个乐段都可以得到一个或者多个小节划分结果。后续算法可以排除错误的小节划分结果。
[0130]
步骤204、根据乐段对应的乐谱中音符与小节线的相对位置关系,对每个乐段中音符的位置进行纠错,将至少一个音符调整到节拍上。
[0131]
示例性地,乐谱中音符的位置可能和生成的小节线的位置存在偏移,因此需要对音符的位置进行纠错,确保至少一个音符在节拍上。
[0132]
具体地,上述步骤204,可以包括以下步骤204a1至步骤204a3:
[0133]
步骤204a1、计算所述目标乐曲对应的乐谱中目标乐段的每个音符与最近的节拍之间的距离,并得到距离集合。
[0134]
步骤204a2、对所述距离集合中的距离值进行聚类分析,将所述距离集合中距离值分为正值类和负值类。
[0135]
步骤204a3、根据聚类分析结果,将所述目标乐段的音符进行整体平移,使得至少一个音符位置与节拍的位置相同。
[0136]
其中,所述目标乐段为所述目标乐曲的任一乐段;所述目标乐段的每个小节内的节拍为根据所述目标乐曲的曲速以及所述目标乐曲的拍号确定的。
[0137]
举例说明,假设一个乐句中至少有1个音符能够与拍子对应,音符的长度正确,但音符的位置发生偏移,此时只需要将音符整体向左或向右移动即可。首先,需要计算出该乐句中所有的音符的位置与其最近的节拍的距离,并形成列表(即上述距离集合),记为mindistance。当出现音符与其最近的节拍距离为0时,不对该乐句中的音符进行移动。其余情况,需要考虑将乐句的音符作为一个整体向左或向右移动。
[0138]
基于此,需要在距离集合中通过聚类分析的方式找到两个数字作为移动的距离,一个是正数,一个是负数。
[0139]
在距离集合中选择正负移动距离时,首先将距离集合中正值和负值进行聚类,聚类的数目最多为2,然后分别在正值和负值的每一类中选择任意值作为移动距离。聚类后可能出现以下4种情况:
[0140]
情况1、正值和负值都能被唯一确定;情况2、只有正值或负值可以被唯一确定;情况3、都不能被唯一确定;情况4、缺少正值或负值。
[0141]
情况1可以直接确定在曲谱中向左和向右的移动距离。情况2中若正值可以被唯一确定,则在负值中,选择最近节拍与正值相同的节拍进行调整。即相对于同一节拍进行左右移动;若负值可以被唯一确定,则在正值中,选择最近节拍与负值相同的节拍进行调整。即相对于同一节拍进行左右移动。情况3中正值和负值中都选择较大的类别中的值。情况4中,当缺少正值或负值时,只向一个方向移动。
[0142]
最后,当向左移动的距离超过向右移动的距离,或者,向右移动的距离超过向左移动的距离时,只选择移动距离较小的一个方向进行移动。
[0143]
以句子整体移动后,还需要调整乐句对应歌词的位置。此时,计算移动后的歌词的位置与最近节拍的距离,如果距离小于一定阈值认为该歌词是在节拍上的,此时将歌词位置移动到该节拍上。最后,在同一段落中如果乐句出现两种移动结果,那么向左和向右移动的乐句分别组成两个新的乐段。
[0144]
步骤205、根据每个乐段的小节划分结果,对不同组合的小节划分结果进行和声进行匹配,若同一乐段内存在相邻的多个小节满足预设和声进行,则将所述多个小节对应的乐句作为音乐素材。
[0145]
示例性地,如果存在连续小节的和弦满足预设的和声进行,则完成一次匹配,覆盖这些连续小节的乐句作为一个音乐素材。
[0146]
具体地,上述步骤205,可以包括以下步骤205a1和步骤205a2:
[0147]
步骤205a1、根据目标乐段的每个小节内强拍乐音和次强拍乐音的音高,以及每个小节的和弦,确定所述目标乐段的每个小节的和弦。
[0148]
步骤205a2、在所述目标乐段内存在相邻的多个小节的和弦满足预设和声进行的情况下,将所述多个小节对应的乐句作为音乐素材。
[0149]
示例性地,在匹配和声进行时,首先需要确定各个小节的和弦。小节的和弦可以通过小节内强拍和次强拍上音符的简谱标记进行推断。具体地,可以根据小节的调式将小节的音高转换为小节的简谱标记。在本技术实施例中,以三和弦的推断为例,若强拍或次强拍上的音符的简谱标记是某个三和弦的组成音符,那么这个小节的和弦可以推断为这个三和弦。以上推断出的小节的和弦不唯一,但错误的和弦不会影响寻找出一条正确和声进行。和声进行匹配可以排除错误调式,当小节通过错误的调式转为简谱标记并推断和弦后,一般不会出现符合预设的和声进行。
[0150]
可选地,在本技术实施例中,在得到上述音乐素材后,还需要对音乐素材进行筛选,以确保所有的音乐素材对应的乐曲与实际情况相符。
[0151]
示例性地,上述步骤205之后,本技术实施例提供的串烧音乐的生成方法,还可以包括以下步骤206:
[0152]
步骤206、在目标音乐素材的目标小节内存在目标音符的情况下,将所述目标音乐素材从所述素材库中移除。
[0153]
其中,所述目标音符为不属于所述目标小节的和弦内音、且不属于经过音、且不是作为弱起属于下一个小节的和弦内音。
[0154]
示例性地,通过上述步骤201至步骤205得到的音乐素材全部符合预设和声进行,但存在由错误的小节和弦匹配到的正确和声进行,因此需要排除这部分错误素材。
[0155]
示例性地,若某个小节内存在音符既不属于这个小节和弦的内音,又不是经过音,又不是作为弱起属于下一个小节的和弦内音,则判断这个小节的和弦是错误和弦,需要将该素材从所述素材库中移除。
[0156]
示例性地,上述步骤205之后,本技术实施例提供的串烧音乐的生成方法,还可以包括以下步骤207和步骤208:
[0157]
步骤207、根据每个音乐素材的第一小节的旋律序列与第二小节的旋律序列之间的编辑距离,计算所述第一小节与所述第二小节的旋律序列的相似度。
[0158]
其中,所述第一小节包括至少两个连续的小节;所述第二小节包括至少两个连续的小节;所述第一小节与所述第二小节不连续。
[0159]
步骤208、将所述旋律序列的相似度小于预设相似度的音乐素材从所述素材库中移除。
[0160]
示例性地,在给音乐素材打分时,音乐素材的得分为小节线的准确度,小节线越准确的音乐素材得分越高。定义小节线的准确度为音乐素材第1、2小节和第5、6小节的旋律序列的编辑距离,即第1、2小节和第5、6小节的旋律序列越相似得分越高。
[0161]
示例性地,在得到每个音乐素材的评分后,可以通过设置预设阈值的方式,将评分低于该预设阈值的音乐素材从所述素材库中移除。
[0162]
本技术实施例提供的串烧音乐的生成方法,1.全自动串烧技术实现了输入两首或多首歌曲的完整曲谱和一个和声进行,输出符合这个和声进行并由人工智能歌手重新演唱的串烧作品;2.全自动串烧技术只需要输入曲谱,不需要额外的bpm、调式的标注,省去了大量的人工标注工作;3.小节线预测模型,能够从原始曲谱中预测出小节线的位置,省去了大量的人工标注工作;4.音符位置纠错模型允许输入的曲谱的音符位置是通过算法自动识别的,该模型能够将偏差的音符纠正到节拍上,省去了大量的人工标注工作;5.对素材和对串烧作品打分能够排除预测错误的小节线和筛选出旋律相似的素材,从而控制作品的质量。
[0163]
本技术实施例提供的串烧音乐的生成方法,首先获取素材库中的第一音乐素材与第二音乐素材,之后,在第一音乐素材与第二音乐素材满足预设拼接条件的情况下,降第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定所述音乐文件所对应乐曲的曲速、调式和音乐小节。如此,能够根据素材库中的音乐素材快速、批量的生成串烧音乐,极大地满足了人们对串烧音乐的需求。
[0164]
需要说明的是,本技术实施例提供的串烧音乐的生成方法,执行主体可以为串烧音乐的生成装置,或者该串烧音乐的生成装置中的用于执行串烧音乐的生成方法的控制模块。本技术实施例中以串烧音乐的生成装置执行串烧音乐的生成方法为例,说明本技术实施例提供的串烧音乐的生成装置。
[0165]
需要说明的是,本技术实施例中,上述各个方法附图所示的。串烧音乐的生成方法均是以结合本技术实施例中的一个附图为例示例性的说明的。具体实现时,上述各个方法附图所示的串烧音乐的生成方法还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
[0166]
下面对本技术提供的串烧音乐的生成装置进行描述,下文描述的与上文描述的串烧音乐的生成方法可相互对应参照。
[0167]
图3为本技术一实施例提供的串烧音乐的生成装置的结构示意图,如图3所示,具体包括:
[0168]
获取模块301,用于获取素材库中的第一音乐素材与第二音乐素材;所述素材库中包括多个音乐素材;生成模块302,用于在所述第一音乐素材与所述第二音乐素材满足预设拼接条件的情况下,将所述第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定音乐文件所对应乐曲的曲速、调式、音乐小节以及每个音乐小节的和弦。
[0169]
可选地,所述装置还包括:确定模块、小节划分模块、音符位置纠错模块以及和声进行匹配模块;所述获取模块301,还用于获取目标乐曲文件,并根据所述目标乐曲文件确定目标乐曲的每个乐音的音高和时值;所述确定模块,用于根据每个乐音的音高和时值,确定所述目标乐曲的曲速以及每个乐段的调式;所述小节划分模块,用于根据音乐小节的先验知识,通过先验模型对每个乐段进行小节划分,并得到小节划分结果;一个乐段对应至少一个小节划分结果;所述音符位置纠错模块,用于根据乐段对应的乐谱中音符与小节线的相对位置关系,对每个乐段中音符的位置进行纠错,将至少一个音符调整到节拍上;所述声进行匹配模块,用于根据每个乐段的小节划分结果,对不同组合的小节划分结果进行和声进行匹配,若同一乐段内存在相邻的多个小节满足预设和声进行,则将所述多个小节对应的乐句作为音乐素材。
[0170]
可选地,所述装置还包括:素材筛选模块;所述素材筛选模块,用于在目标音乐素材的目标小节内存在目标音符的情况下,将所述目标音乐素材从所述素材库中移除;其中,所述目标音符为不属于所述目标小节的和弦内音、且不属于经过音、且不是作为弱起属于下一个小节的和弦内音。
[0171]
可选地,所述装置还包括:计算模块;所述计算模块,用于根据每个音乐素材的第一小节的旋律序列与第二小节的旋律序列之间的编辑距离,计算所述第一小节与所述第二小节的旋律序列的相似度;所述素材筛选模块,还用于将所述旋律序列的相似度小于预设相似度的音乐素材从所述素材库中移除;其中,所述第一小节包括至少两个连续的小节;所述第二小节包括至少两个连续的小节;所述第一小节与所述第二小节不连续。
[0172]
可选地,所述装置还包括:乐曲文件处理模块;所述乐曲文件处理模块,用于在所述目标乐曲文件为乐器数字接口midi文件的情况下,将midi文件中的开始事件中的相对位置、结束事件中的相对位置以及歌词中的相对位置转化为绝对位置;将绝对位置相同的开始事件、歌词以及结束事件组合为乐音词条,并根据各个乐音的绝对位置将乐音词条进行排序,得到乐音队列;所述乐音词条中乐音的时值通过长度进行表示;所述确定模块,还用于根据所述乐音队列,确定所述目标乐曲的乐句和乐段,以及每个乐音的音高和时值;其
中,所述开始事件的参数包括:相对位置、音高和音量;所述结束事件的参数包括:相对位置、音高和音量;所述歌词包括:相对位置和歌词文本。
[0173]
可选地,所述获取模块301,还用于获取所述目标乐曲的最短乐音的时值;所述确定模块,还用于将单位时间内重复所述最短乐音的次数确定为所述目标乐曲的曲速;所述获取模块301,还用于获取目标乐段的每个乐音的音高,并得到目标音高集合;所述确定模块,还用于在所述目标音高集合为目标调式所包含的音高的子集的情况下,将所述目标调式确定为所述目标乐段的调式;其中,所述目标乐段为所述目标乐曲中任一乐段。
[0174]
可选地,所述小节划分模块,具体用于根据音乐小节的先验知识,通过先验模型预测所述目标乐曲所对应的乐谱中每个乐段的首个小节线的位置;所述确定模块,还用于根据每个乐段的首个小节线的位置、所述目标乐曲的曲速以及每个乐段的拍号,确定每个乐段剩余小节线的位置;其中,所述先验模型针对每个乐段的预测结果不唯一。
[0175]
可选地,所述计算模块,还用于计算所述目标乐曲对应的乐谱中目标乐段的每个音符与最近的节拍之间的距离,并得到距离集合;所述计算模块,还用于对所述距离集合中的距离值进行聚类分析,将所述距离集合中距离值分为正值类和负值类;所述音符位置纠错模块,具体用于根据聚类分析结果,将所述目标乐段的音符进行整体平移,使得至少一个音符位置与节拍的位置相同;其中,所述目标乐段为所述目标乐曲的任一乐段;所述目标乐段的每个小节内的节拍为根据所述目标乐曲的曲速以及所述目标乐曲的拍号确定的。
[0176]
可选地,所述确定模块,还用于根据目标乐段的每个小节内强拍乐音和次强拍乐音的音高,以及每个小节的和弦,确定所述目标乐段的每个小节的和弦;所述确定模块,还用于在所述目标乐段内存在相邻的多个小节的和弦满足预设和声进行的情况下,将所述多个小节对应的乐句作为音乐素材。
[0177]
本技术提供的串烧音乐的生成装置,首先获取素材库中的第一音乐素材与第二音乐素材,之后,在第一音乐素材与第二音乐素材满足预设拼接条件的情况下,降第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定所述音乐文件所对应乐曲的曲速、调式和音乐小节。如此,能够根据素材库中的音乐素材快速、批量的生成串烧音乐,极大地满足了人们对串烧音乐的需求。
[0178]
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行串烧音乐的生成方法,该方法包括:获取素材库中的第一音乐素材与第二音乐素材;所述素材库中包括多个音乐素材;在所述第一音乐素材与所述第二音乐素材满足预设拼接条件的情况下,将所述第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定音乐文件所对应乐曲的曲速、调式、音乐小节以及每个音乐小节的和弦。
[0179]
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以
软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0180]
另一方面,本技术还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的串烧音乐的生成方法,该方法包括:获取素材库中的第一音乐素材与第二音乐素材;所述素材库中包括多个音乐素材;在所述第一音乐素材与所述第二音乐素材满足预设拼接条件的情况下,将所述第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定音乐文件所对应乐曲的曲速、调式、音乐小节以及每个音乐小节的和弦。
[0181]
又一方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的串烧音乐的生成方法,该方法包括:获取素材库中的第一音乐素材与第二音乐素材;所述素材库中包括多个音乐素材;在所述第一音乐素材与所述第二音乐素材满足预设拼接条件的情况下,将所述第一音乐素材与所述第二音乐素材进行拼接,生成串烧音乐;其中,所述素材库中的音乐素材均为文本类型的音乐文件按照预设处理方法进行处理后得到的;所述预设处理方法用于确定音乐文件所对应乐曲的曲速、调式、音乐小节以及每个音乐小节的和弦。
[0182]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0183]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0184]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1