一种音乐创作辅助装置的制作方法



1.本发明属于音乐制作领域,具体涉及一种音乐创作辅助装置。


背景技术:



2.人工智能辅助作曲指的是利用人工智能技术来对旋律进行一定程度上的预测或是帮助编配与旋律相适应的和弦,以辅助作曲家完成创作任务。相较于人工智能作曲,人工智能辅助作曲虽然对于创作的参与度较低,但是其可以很好地帮助作曲家减少创作过程中的迟疑和刻板状态。因此,人工智能辅助作曲有着巨大的潜在价值及意义。
3.现有的辅助作曲模型大致可分为基于数据与规则的作曲和应用自然语言处理技术的作曲。例如中国专利申请201410582178.1中公开了一种基于遗传算法的和弦伴奏生成方法,其采用遗传算法生成单音序列的和弦。这种过于依赖数据与规则,生成的和弦也差强人意。
4.随着自然语言处理和深度学习技术的高速发展,研究者也开始尝试将自然语言处理和深度学习技术应用到音乐和弦生成上。例如:微软亚洲研究院和浙江大学撰写的《popmag:pop music accompaniment generation》一文,在传统音乐编码方式midi的基础上,提出了一种扩展音乐编码方式mumidi,显式地建模音符之间的依赖关系,从而以单个序列的形式生成多轨音乐,解决了不同轨道之间的和谐问题,使得生成的音乐更加和谐。然而,popmag虽然利用了在自然语言处理领域有着良好表现的transformer模型,并且关注到了音符之间的依赖关系,但是其研究者没有考虑利用专业的音乐知识来分析音乐,导致模型忽略了对音乐至关重要的高层音乐特征,没有注意到自然语言和音乐之间的差异。
5.根据用于可控文本生成transformer模型与在条件约束下的音乐生成具有异曲同工之处,所以一些研究者开始尝试将加入了条件引导的transformer模型应用到音乐生成领域,以提高生成音乐的质量和可控性。例如:musenet将音高、音量、乐器等信息组成为一个令牌加入到训练数据中,在训练过程中transformer模型可以学习到相关信息,如作曲风格等,从而使其能够在此基础上进行创作。即musenet利用和声、旋律和风格等浅层特征来引导transformer模型的生成,musenet虽然一定程度上考虑了音乐的特征,但是仍停留在音乐的浅层特征如风格,或者是旋律和声这种底层数据,未考虑到音乐的高层特征,缺少结合音乐分析理论对音乐的量化分析提取特征。


技术实现要素:



6.鉴于上述,本发明的目的是提供一种音乐创作辅助装置,通过从旋律中提取高层特征,并基于高层特征构建transformer模型的编码解码阶段的引导条件,利用引导条件以实现更深层的音乐和弦引导生成,进一步提高音乐质量和准确性。
7.为实现上述发明目的,实施例提供的一种音乐创作辅助装置,包括:
8.特征提取模块,用于提取输入旋律的高层特征,所述高层特征包括权重音、权重和弦、终止和弦以及结构和弦;
9.特征编码与拼接模块,用于将当前音符、权重音以及权重和弦进行编码并进行编码向量的拼接以得到编码引导向量,还用于将上一节拍的和弦、终止和弦以及结构和弦进行编码并进行编码向量的拼接以得到解码引导向量;
10.和弦生成模块,用于以编码引导向量作为transformer模型的编码器的输入,以解码引导向量作为为transformer模型的解码器的输入,经transformer模型前向传导运算以生成和弦。
11.在一个实施例中,所述特征提取模块,包括:
12.权重音提取单元,用于提取旋律中节奏重音、切分音以及长音后,选择是节奏重音但不是切分音的音符、或者不是节奏重音但同时为切分音和长音的音符作为权重音;
13.权重和弦提取单元,用于提取以权重音为起始的当前旋律片段中具有代表性的音符组成的和弦作为权重和弦;
14.终止和弦提取单元,用于识别和弦进行中的终止式或半终止式来确定终止和弦;
15.结构和弦提取单元,用于提取旋律中的非转位和弦,且在非转位和弦为当前调式调性的i、ii、iv或v级和弦,则当前非转位和弦为结构和弦。
16.在一个实施例中,所述特征提取模块,所述权重和弦提取单元中,权重和弦的提取过程包括:
17.(a)构建包含多个和弦的和弦对照表;
18.(b)对以权重音为起始的当前旋律片段中的所有音符,按照权重音权重为α、其他音符权重为β的方式进行加权的音高出现频率统计,以得到当前旋律片段的第一加权统计结果,其中,α>β;
19.(c)将以权重音为起始的当前旋律片段与邻近历史分组中的所有旋律片段进行拼接形成旋律序列,对旋律序列中的所有音符,按照权重音权重为α、其他音符权重为β的方式进行加权的音高出现频率统计,以得到旋律序列的第二加权统计结果,其中,α>β;
20.(d)分别将第一加权统计结果和第二加权统计结果与和弦对照表进行比较,从和弦对照表中选择编辑代价最小的和弦作为权重音对应的权重和弦,其中,编辑代价是指将加权统计结果转化为和弦对照表中和弦的操作复杂度,编辑代价最小的和弦包含的音符为当前旋律片段中具有代表性的音符。
21.在一个实施例中,从和弦对照表中选择编辑代价最小的和弦作为权重音对应的权重和弦,包括:
22.将第一加权统计结果与和弦对照表进行比较,按照编辑代价对和弦对照表中的和弦进行升序排序得到第一和弦排序列表,从第一和弦排序列表中选择根音为当前调式调性下自然音阶的和弦为候选和弦,并从中选择最小编辑代价的候选和弦为第一候选权重和弦;
23.将第二加权统计结果与和弦对照表进行比较,按照编辑代价对和弦对照表中的和弦进行升序排序得到第二和弦排序列表,从第二和弦排序列表中选择根音为当前调式调性下自然音阶的和弦为候选和弦,并从中选择最小编辑代价的候选和弦为第二候选权重和弦;
24.从第一候选权重和弦和第二候选权重和弦中选择编辑代价最小者为最终权重和弦;
25.当最终权重和弦选自第一候选权重时,将当前旋律片段化为新分组,该新分组作为下一时刻权重和弦计算的邻近历史分组;当最终权重和弦选自第二候选权重时,将当前旋律片段化分到邻近历史分组以更新邻近历史分组。
26.在一个实施例中,所述特征编码与拼接模块,包括:
27.第一特征编码与拼接单元,用于将当前音符、权重音以及权重和弦进行编码并进行编码向量的拼接以得到编码引导向量,包括:
28.第一特征编码与拼接单元,用于将当前音符、权重音以及权重和弦进行编码并进行编码向量的拼接以得到编码引导向量,包括:
29.首先,对当前音符进行嵌入编码得到音符向量,对权重和弦进行嵌入编码后再进行线性化处理以得到权重和弦向量;
30.其次,对权重音进行标记编码以得到权重音的第一标记向量;
31.最后,将音符向量、权重和弦向量与第一标记向量进行对应位置拼接,再对拼接结果进行线性化处理,即实现根据第一标记向量对当前音符和权重和弦进行权重音位置标记,以得到编码引导向量;
32.第二特征编码与拼接单元,用于将上一节拍的和弦、终止和弦以及结构和弦进行编码并进行编码向量的拼接以得到解码引导向量,包括:
33.首先,对上一节拍的和弦进行嵌入编码以得到和弦向量,对历史一段时间的结构和弦进行嵌入编码后再进行线性化处理以得到结构和弦向量;
34.其次,对终止和弦进行标记编码以得到终止和弦的第二标记向量;
35.最后,将和弦向量、结构和弦向量与第二标记向量进行对应位置拼接,再对拼接结果进行线性化处理,即实现根据第二标记向量对上一拍和弦和结构和弦进行终止和弦位置标记,以得到解码引导向量。
36.在一个实施例中,所述和弦生成模块中,利用transformer模型进行和弦生成时,对输入的编码器的编码引导向量进行对应音符的位置标记,等待预设音符个数后,将预设音符个数的编码引导向量拼接后输入至transformer模型的编码器,以进行和弦编配,其中,预设音符个数优选为每节拍包括的音符个数。
37.在一个实施例中,所述和弦生成模块中,利用transformer模型进行和弦生成时,解码器对输入的解码引导向量和编码器输出的编配和弦进行和弦生成计算,以生成和弦,当前时刻的生成和弦与历史生成和弦排列形成排列和弦序列;
38.其中,排列和弦序列作为数据源用于构建下一和弦生成任务的解码引导向量。
39.在一个实施例中,所述装置还包括:
40.演奏模块,所述演奏模块包括音响和/或演奏乐器,其中,演奏乐器为带有键盘的乐器,包括钢琴、电子琴、手风琴,演奏乐器的键盘的每个音符键上贴有灯源,灯源优选为发光二极管;
41.演奏控制模块,用于控制音响和/或和对弦生成模块输出的排列和弦序列进行演奏。
42.在一个实施例中,所述演奏模式控制模块控制对排列和弦序列进行演奏时,采用的演奏模式包括学习模式、作曲模式、练习模式以及重播模式;
43.其中,学习模式是指实时演奏过程中,每弹奏一拍旋律后,演奏乐器的音符键上的
光源亮起以指示和弦组成音,但不通过音响播放和弦;
44.作曲模式是指在实时演奏过程中,每弹奏一拍旋律后,演奏乐器的音符键上的光源亮起以指示和弦组成音,并且通过音响播放和弦;
45.练习模式是指第一遍演奏时仅弹奏旋律,不弹奏和弦进行,将和弦生成模块生成的柱式和弦保存层完整的乐曲,练习时,依据乐曲,演奏乐器的音符键上的光源亮起,但不通过音响播放乐曲,需要演奏者自行弹奏乐曲;
46.重播模式是指演奏完乐曲后,重放乐曲录音,并且以柱式演奏的方式加入和弦生成模块生成的和弦,演奏乐器的音符键上的光源同时亮起。
47.在一个实施例中,所述装置还包括:
48.可视化编辑模块,用于通过可视化界面设置演奏模式、音频输入模式、音乐调性、节拍;
49.预处理模块,用于依据设置的音频输入模式选择与音频输入模式对应的预处理方式,对输入音频数据进行预处理以得到音频对应的旋律,并将旋律输入至特征提取模块。
50.与现有技术相比,本发明具有的有益效果至少包括:
51.通过特征提取模块从输入旋律中提取权重音、权重和弦、终止和弦以及结构和弦这四类高层特征,并通过特征编码与拼接模块基于高层特征构建编码引导向量和解码引导向量,利用编码引导向量和解码引导向量来引导transformer模型进行更深层次的和弦的生成,以提高生成和弦的准确性和质量,通过还配有演奏乐器和演奏模式,以对生成和弦进行显示演奏和应用。
附图说明
52.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
53.图1是实施例提供的音乐创作辅助装置的结构示意图;
54.图2是实施例提供的编码引导向量的生成示意图;
55.图3是实施例提供的解码引导向量的生成示意图;
56.图4是实施例提供的transformer模型生成和弦的原理图;
57.图5是实施例提供的五线谱格式图;
58.图6是实施例提供的音乐创作辅助装置的应用流程图。
具体实施方式
59.为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
60.针对忽略音乐高层特征和引导条件不准确导致的和弦生成质量不高的问题,实施例提供了如图1所示的一种音乐创作辅助装置,通过特征提取模块、特征编码与拼接模块以及和弦生成模块的协同配合工作,实现高质量、高准确性和弦的生成。
61.特征提取模块
62.实施例中,为了考虑音乐的高层特征,需要对transformer模型进行知识引导,使其生成的和弦音乐更加准确悦耳。基于此,提供的特征提取模块用于提取输入旋律的高层特征,其中,基于申克理论和音乐常识提出了四种音乐特征作为高层特征,包括权重音、权重和弦、结构和弦和终止和弦。这四种高层特征作为控制transformer模型生成和弦的条件。其中,权重音与权重和弦是旋律特征,结构和弦与终止和弦是transformer模型生成和弦的特征。
63.实施例中,首先介绍一些基本的音乐术语:
64.4/4拍:乐曲中常见的节拍,以四分音符为一拍,每小节四拍。
65.强弱规律:每一拍音符的强度,节拍不同,强弱规律也不同。
66.和弦进行:两个以上和弦按时间顺序演奏,如
ⅴ‑ⅰ
和弦进行即先演奏五级和弦,再演奏一级和弦。
67.调式调性:由若干个音合理地组织在一起,并以某个音为中心构成一个体系叫调式,调式的性质、特点叫调性。
68.和弦级数:将当前调式调性的音阶按顺序排列,和弦根音对应的序号就是和弦级数,如c大调的一级和弦是c和弦,根音为do,四级和弦是f和弦,根音为fa。
69.识别和弦级数时,参照由调性确定的主音及由调式确定的音程差,明确该调式调性下的自然音阶,从而确定和弦根音在自然音阶中的相对位置,对应的序号即为和弦级数。
70.实施例中,特征提取模块包括权重音提取单元、权重和弦提取单元、终止和弦提取单元以及结构和弦提取单元。
71.其中,权重音提取单元用于提取旋律中节奏重音、切分音以及长音后,选择是节奏重音但不是切分音的音符、或者不是节奏重音但同时为切分音和长音的音符作为权重音。权重音是对音乐具有决定性意义的,其对伴奏的生成具有指导性作用。由于权重音的定义基于权重音、切分音和长音,所以权重音提取包括:
72.首先,采用公式(1)-(3)提取权重音t、切分音c和长音l;
73.t=n
strong
∪n
semi-strong
ꢀꢀꢀ
(1)
[0074][0075]
l=n
latest
∩n
longest
ꢀꢀꢀ
(3)
[0076]
其中,n表示音符,l(n)表示音符时长,n的下标表示音符性质,其中,n
strong
表示处于节奏强拍处的音符,n
semi-strong
表示处于节奏次强拍的音符,n
weak
表示处于节奏弱拍的音符,steps表示音符起始位置到下一强拍或次强拍的距离,表示音符时长大于的音符,n
latest
表示最后一次出现的长音音符,n
longest
表示持续时长最长的音符。
[0077]
然后,在提取权重音、切分音和长音后,采用滑动窗口的方式分析权重音,窗口的大小设置为最近的16个16分音符,即4拍。在每个滑动窗口内采用公式(4)来选择节奏重音t但不是切分音的音符、或者不是节奏重音但同时为切分音c和长音l的音符作为权重音wn;
[0078]
[0079]
实施例中,权重和弦提取单元用于提取以权重音为起始的前序旋律片段中具有代表性的音符组成的和弦作为权重和弦。权重和弦是以权重音为基础的,代表着前序旋律的整体特征,具体由前序旋律中最具有代表性的几个音符组成的和弦。
[0080]
在一个实施方式中,权重和弦的提取过程包括:
[0081]
(a)构建包含多个和弦的和弦对照表,其中,和弦对照表可以包含36*12=432和弦,理解为每个根音有36个和弦组合,对应每个根音的36个属性,在此基础上,以八度中的12个音分别作为根音组成36*12=432个和弦,该和弦对照表是确定权重和弦和结构和弦时进行比对的模板,实施例中,可以采用哈希表数据结构存储数量众多的和弦模板以提高运行速度。
[0082]
(b)对以权重音为起始的当前旋律片段中的所有音符,按照权重音权重为α、其他音符权重为β的方式进行加权的音高出现频率统计,以得到当前旋律片段的第一加权统计结果,其中,α>β,例如,α取值为2,β取值为1;
[0083]
(c)将以权重音为起始的当前旋律片段与邻近历史分组中的所有旋律片段进行拼接形成旋律序列,对旋律序列中的所有音符,按照权重音权重为α、其他音符权重为β的方式进行加权的音高出现频率统计,以得到旋律序列的第二加权统计结果,其中,α>β;
[0084]
(d)分别将第一加权统计结果和第二加权统计结果与和弦对照表进行比较,从和弦对照表中选择编辑代价最小的和弦作为权重音对应的权重和弦,其中,编辑代价是指将加权统计结果转化为和弦对照表中和弦的操作复杂度,编辑代价最小的和弦包含的音符为当前旋律片段中具有代表性的音符。
[0085]
实施例中,从和弦对照表中选择编辑代价最小的和弦作为权重音对应的权重和弦,包括:
[0086]
将第一加权统计结果与和弦对照表进行比较,按照编辑代价对和弦对照表中的和弦进行升序排序得到第一和弦排序列表,从第一和弦排序列表中选择根音为当前调式调性下自然音阶的和弦为候选和弦,并从中选择最小编辑代价的候选和弦为第一候选权重和弦,其中,自然音阶是键盘上相隔一个键的两个音;
[0087]
将第二加权统计结果与和弦对照表进行比较,按照编辑代价对和弦对照表中的和弦进行升序排序得到第二和弦排序列表,从第二和弦排序列表中选择根音为当前调式调性下自然音阶的和弦为候选和弦,并从中选择最小编辑代价的候选和弦为第二候选权重和弦;
[0088]
从第一候选权重和弦和第二候选权重和弦中选择编辑代价最小者为最终权重和弦;
[0089]
当最终权重和弦选自第一候选权重时,将当前旋律片段化为新分组,该新分组作为下一时刻权重和弦计算的邻近历史分组;当最终权重和弦选自第二候选权重时,将当前旋律片段化分到邻近历史分组以更新邻近历史分组,需要说明的是,邻近历史分组包含与当前旋律片段时间上最邻近的多个旋律片段,属于同一邻近历史分组的旋律片段具有相同的权重和弦。
[0090]
实施例中,终止和弦提取单元用于识别和弦进行中的终止式或半终止式来确定终止和弦。其中,终止和弦用来标志和弦进行的终止,其可以用来分割乐句使和弦有更加清晰的结构。对终止和弦的识别即对和弦进行中的终止式和半终止式进行识别。其中,终止式包
含以下三种:第一,正格终止,
ⅴ‑ⅰ
终止进行,即五级到一级的和弦进行,理解为当出现从五级和弦到一级和弦这种情况时表示为正格终止;第二,变格终止,
ⅳ‑ⅰ
终止进行,即四级到一级的和弦进行;第三,阻碍中止,即原本为
ⅴ‑ⅰ
的进行被
ⅴ‑ⅵ
取代,即五级到一级的和弦进行被五级到六级的和弦进行取代。半终止式是指任意和弦到v级或vii级和弦。
[0091]
在一个实施方式中,提取终止和弦的过程包括:
[0092]
首先,按照公式(5)和(6)提取终止式terminal mode和半终止式semi-terminal mode;
[0093]
terminal mode=chord
v-i
∪chord
iv-i
∪chord
v-vi sub v-i
ꢀꢀꢀ
(5)
[0094]
semi-terminal mode=chord

ꢀ‑
v/vii
ꢀꢀꢀ
(6)
[0095]
其中,chord
v-i
表示
ⅴ‑ⅰ
终止进行和弦,即五级到一级终止进行和弦,chord
iv-i
表示
ⅳ‑ⅰ
终止进行和弦,即四级到一级终止进行和弦,chord
v-vi sub v-i
表示原本为
ⅴ‑ⅰ
的进行被
ⅴ‑ⅵ
取代和弦,即五级到一级的和弦进行被五级到六级的和弦进行取代,chord

ꢀ‑
v/vii
表示任意和弦到v级或vii级和弦,即任意和弦到五级或七级的和弦进行。
[0096]
然后,得到终止式和半终止式后,通过公式(7)判断终止和弦tc;
[0097]
tc=chord
terminal
∪chord
semi-terminal
ꢀꢀꢀ
(7)
[0098]
实施例中,识别乐曲的调性与调式时,以下级数均指该调性调式下的级数。对于半终止式:进行vii级(即七级)和弦的识别;对于正格终止:对连续三个和弦进行ii/iv/vi——v——i(即二级和弦或四级和弦或六级和弦接五级和弦再接一级和弦)的模式识别;对于变格终止:对连续两个和弦进行ii/iv/vi——i(即二级和弦或四级和弦或六级和弦接一级和弦)的模式识别;对于阻碍终止:对连续两个和弦进行v——vi(即五级和弦接六级和弦)的模式识别。
[0099]
实施例中,具体的终止和弦的算法流程包括:设置全部变量is_cadence初始化为0,0代表不是终止和弦,1代表是终止和弦,在每一拍末尾时,进行如下步骤:
[0100]
(a)取包含当前拍和弦在内的前面连续16拍和弦序列作为分析对象,在transformer模型循环应用时,和弦序列可以是transformer模型已经生成的和弦序列;
[0101]
(b)运用上述规则进行半终止式、正格终止、变格终止、阻碍终止的识别;
[0102]
(c)若当前拍和弦符合其中一个终止模式,则识别当前拍和弦为终止和弦。
[0103]
(d)对全局变量is_cadence进行更新,若是终止和弦,则将其值更新为1;注意,若该终止式的最后一个和弦持续进行,则在持续期间各拍对应的is_cadence均赋值为1,否则is_cadence为0,代表没有识别到终止和弦。
[0104]
实施例中,结构和弦提取单元用于提取旋律中的非转位和弦,且在非转位和弦为当前调式调性的i、ii、iv或v级和弦,则当前非转位和弦为结构和弦。结构和弦对于维持伴奏的前后稳定和和谐有重要的作用。transformer模型生成的和弦必须满足以下要求才能被判定为结构和弦,首先,此结构和弦是非转位和弦,即此结构和弦以根音为最低音。再者,此结构和弦是当前调式调性的i、ii、iv或v级和弦。所以,结构和弦sc的提取公式如公式(8)所示:
[0105]
sc=chord
non-inverted
∩(chordⅰ∪chordⅱ∪chordⅳ∪chord

)
ꢀꢀꢀ
(8)
[0106]
其中,chord
non-inverted
表示非转位和弦,chordⅰ、chordⅱ、chordⅳ、chord

分别表示当前调式调性的i、ii、iv、v级和弦。
[0107]
具体地,定义全局列表型变量structural_chord[],其元素为和弦组成音,一般为3-5个元素,极少数情况下为6-8个元素。输入为以列表形式保存的和弦音高序列curchord[],其中每个元素为整数,表示和弦组成音的音高。具体结构和弦提取流程如下:
[0108]
首先,将输入和弦与和弦对照表进行比对,若输入和弦存在于和弦对照表中,则将输入和弦作为候选和弦;其中,针对首次输入,输入和弦为当前调式调性下的i级和弦,训练生成任务中,输入和弦为transformer模型输出的生成和弦;
[0109]
然后,判断候选和弦是否为当前调式调性下的i、ii、iv、v级和弦,当为当前调式调性下的i、ii、iv或v级和弦时,候选和弦为结构和弦。
[0110]
特征编码与拼接模块
[0111]
实施例中,基于类似于注意前控制的策略,条件会在自注意力层之前输入,同时为了弥补条件引导的不足导致的transformer模型生成差质量和弦,引入了特征编码与拼接模块。其中,特征编码与拼接模块用于根据基于特征提取模块提取的权重音、权重和弦、终止和弦以及结构和弦这四类高层特征进行编码,编码后的向量作为条件来对transformer模型进行知识引导,以提高transformer模型生成和弦的质量。
[0112]
实施例中,特征编码与拼接模块包括:第一特征编码与拼接单元和第二特征编码与拼接单元。其中,第一特征编码与拼接单元用于将当前音符、权重音以及权重和弦进行编码并进行编码向量的拼接以得到编码引导向量,如图2所示,具体包括:
[0113]
首先,对当前音符进行嵌入编码得到音符向量,对权重和弦进行嵌入编码后再进行线性化处理以得到权重和弦向量;其次,对权重音进行标记编码以得到权重音的第一标记向量;最后,将音符向量、权重和弦向量与第一标记向量进行对应位置拼接,再对拼接结果进行线性化处理,即实现根据第一标记向量对当前音符和权重和弦进行权重音位置标记,以得到编码引导向量;用公式表示为:
[0114][0115][0116]
其中,wn表示权重音,flag1表示权重音的位置标记结果,当音符为权重音时,则权重音标记为1,否则标记为0,emb(note)表示音符note的编码向量,emb(wf)表示权重和弦wf的编码向量,linear(
·
)表示线性层映射处理,表示拼接操作,output
en
表示编码引导向量,该output
en
用于在transformer模型的编码阶段进行条件约束。
[0117]
第二特征编码与拼接单元用于将上一节拍的和弦、终止和弦以及结构和弦进行编码并进行编码向量的拼接以得到解码引导向量,如图3所示,具体包括:
[0118]
首先,对上一节拍的和弦进行嵌入编码以得到和弦向量,对历史一段时间的结构和弦进行嵌入编码后再进行线性化处理以得到结构和弦向量;其次,对终止和弦进行标记编码以得到终止和弦的第二标记向量;最后,将和弦向量、结构和弦向量与第二标记向量进行对应位置拼接,再对拼接结果进行线性化处理,即实现根据第二标记向量对上一拍和弦和结构和弦进行终止和弦位置标记,以得到解码引导向量,用公式表示为:
[0119][0120]
[0121]
其中,tc表示终止和弦,flag表示终止和弦的位置标记结果,当和弦为终止和弦时,则终止和弦标记为1,否则标记为0,emb(chord)表示和弦chord的编码向量,emb(sc)表示结构和弦sc的编码向量,linear(
·
)表示线性层映射处理,表示拼接操作,output
dn
表示解码引导向量,该output
dn
用于在transformer模型的解码阶段进行条件约束。
[0122]
和弦生成模块
[0123]
实施例中,和弦生成模块用于以编码引导向量作为transformer模型的编码器的输入,以解码引导向量作为为transformer模型的解码器的输入,经transformer模型前向传导运算以生成和弦。
[0124]
实施例中,利用transformer模型进行和弦生成式,对输入和输出做了创造性改进,即不同于基于规则模型在生成阶段做出约束,实施例在transformer模型的编码器与解码器的输入层面都进行特征处理,作为预设条件引导模型生成和弦。这样可以创作出更加符合乐理、与旋律更和谐、听感更悦耳的和弦。
[0125]
由于实施例提供的音乐创作辅助装置是实时情况下的自动和弦生成,transformer模型就只能看到当前时刻之前的输入。随着时间的推移,transformer模型处理的结构会越来越长,处理时间也会越来越大,这是实时任务中不可容忍的,为解决这个问题,限制了音乐序列的输入长度,但是这又会导致长序列信息的丢失,造成预测不准确。针对这个问题,实施例中,将从历史较长时间的旋律中提取的权重音、权重和弦、终止和弦以及结构和弦这四类高层特征作为全局信息,巧妙地解决了输入序列长度受限的问题,还保证了长序列信息的全局信息,提升了和弦预测准确性。
[0126]
实施例中,为了提升transformer模型的速度,将transformer模型处理长度规定为至少一拍,例如一拍。这样虽然会导致transformer模型忽略完整的输入序列,但是基于一段长旋律提取的权重和弦和结构和弦能够有效避免该问题。此外,为了保证transformer模型能够获得足够的信息,还提出了一种“等待一段时间k”(wait-k)的策略。它不是每输入一个采样信息就编配一次,而是等待n次采样,例如采样4次,即一拍,才进行编配。通过这种方式,transformer模型可以以高准确度和低时延进行和弦编配。
[0127]
具体地,如图4所示,在和弦生成模块中,利用transformer模型进行和弦生成时,对输入的编码器(transformer encoder)的编码引导向量进行对应音符的位置标记,等待预设音符个数(即采用n次)后,将预设音符个数的编码引导向量拼接后输入至transformer模型的编码器,以进行和弦编配,其中,预设音符个数优选为每节拍包括的音符个数,优选为4个音符,即采样4次,得到一拍的编码引导向量再进行和弦编配。
[0128]
如图4所示,利用transformer模型进行和弦生成时,解码器(transformer dncoder)对输入的解码引导向量和编码器输出的编配和弦进行和弦生成计算,以生成和弦,当前时刻的生成和弦与历史生成和弦排列形成排列和弦序列;在实时和弦预测任务中,排列和弦序列作为数据源用于构建下一和弦生成任务的解码引导向量。
[0129]
transformer模型由多个相继的自注意力层堆叠而成,在被应用于实时和弦生成任务时,能够捕捉到音乐数据中的关键信息。经过输入输出修改后的transformer模型直接处理音乐特征信息,可以以高准确性生成音乐和弦。通过蒸馏,将transformer模型的处理时间缩短到了0.17s左右,足以支持实时和弦生成。实时生成的柱式和弦信息保存到数组中输出到相应硬件。
[0130]
需要说明的是,transformer模型被应用于和弦生成之前,还需要进行训练,以优化模型参数。在训练过程中,为了模拟音乐的实时输入,创造性地采取了一种流式处理的方法,即将旋律信息按顺序输入transformer模型,而非一次性输入,以模仿实时情景。训练时采用的数据集的处理和构建方式详见后续数据集的构建阶段。
[0131]
演奏模块和控制模块
[0132]
实施例提供的音乐创作辅助装置还包括演奏模块和演奏控制模块,其中,演奏模块包括音响和/或演奏乐器,其中,演奏乐器为带有键盘的乐器,包括钢琴、电子琴、手风琴,演奏乐器的键盘的每个音符键上贴有灯源,灯源优选为贴片发光二极管(led)。演奏控制模块用于控制音响和/或和对弦生成模块输出的排列和弦序列进行演奏。
[0133]
实施例中,音响用来演奏程序预测的和声,或者进行和弦演奏的回放。在和声演奏方面,设计了柱式和弦作为伴奏播放的形式,系统会根据生成的和弦,进行伴奏播放。和弦演奏模式在程序内部可描述为如下的格式:[开始时间(拍),持续时间(拍)]。其简要示例如下:[0,2],[2,1],[3,1]。例如当播放的和弦为c大调的c大三和弦时,上面的示例的实际演奏结果如图5所示的五线谱格式。按照这种格式,在装置内部设置4种不同节奏的和弦伴奏:
[0134]
1.[0,4]
[0135]
2.[0,2],[2,2]
[0136]
3.[0,2],[2,1],[3,1]
[0137]
4.[0,1],[1,1],[2,1],[3,1]
[0138]
程序内部会把当前需要播放的和弦按照上述节奏控制的格式转化成midi指令,midi指令可通过midifile输出成midi格式文件、也可调用音源库tiny sound font直接播放。
[0139]
贴片led是指一组led灯在演奏控制模块的控制下按照设定的顺序和时间来发光和熄灭,形成一定的视觉效果。实施例中,led灯用来指示当前由模型生成的和弦音高序列,以醒目和便捷的方式使演奏者获悉生成的和弦,并根据提示弹奏或创作。
[0140]
在实际使用中,可以采用六十一个独立的led灯,分别表示当前调性调式下五个八度的十二音,也与标准的六十一键电子琴键位相适应。led灯可手工粘贴至琴键上方,提示效果较好,成本较低,解决了不同间距、不同键数的钢琴的兼容问题,从而扩大使用受众,改善演奏者体验。
[0141]
演奏控制模块内部采用数组存储不同led灯亮暗的标记,当接收到由模型传递的当前拍和弦时,由于模型传递出的和弦值位于36到96之间,正好对应六十一键,所以可以轻松地根据和弦音高计算出led灯的开关情况,并将对应的信号传递至硬件逻辑,即完成了对led灯的控制。
[0142]
实施例中,可以根据演奏中和演奏后、输出设备的不同划分为四种模式:学习模式、创作模式、重播模式、练习模式,演奏控制模块控制对排列和弦序列以上述四种模式进行演奏,这四种设计模式巧妙地解决了在四种场景下困扰着音乐人的不同问题,对于有着不同需求的体适配度较高,受众范围较广。
[0143]
学习模式是指实时演奏过程中,每弹奏一拍旋律后,演奏乐器的音符键上的光源亮起以指示和弦组成音,但不通过音响播放和弦。在这一学习模式下,演奏者可以通过亮起的led灯明确刚刚的和弦进行,并且进行跟弹,利用模型预测的结果作为参照,不断加深对
旋律和和声分析的理解。同时可以通过灯光的指示更直观地感受常见和弦走向,使演奏技巧愈发熟练,提升其对于即兴伴奏技法的熟悉程度。
[0144]
作曲模式是指在实时演奏过程中,每弹奏一拍旋律后,演奏乐器的音符键上的光源亮起以指示和弦组成音,并且通过音响播放和弦。由于在编排音乐时更多关注的是主旋律,在这一模式下,作曲者可以通过音响效果了解刚刚这一拍旋律所对应的和弦,从而对后续旋律的创作起到指引作用。led灯的亮起可以辅助作曲者解构和弦,帮助其更充分合理地运用编曲技巧,使乐思流畅,创作过程更加自然轻松,进而达到辅助创作的目的。
[0145]
练习模式是指第一遍演奏时仅弹奏旋律,不弹奏和弦进行,将和弦生成模块生成的柱式和弦保存层完整的乐曲,练习时,依据乐曲,演奏乐器的音符键上的光源亮起,但不通过音响播放乐曲,需要演奏者自行弹奏乐曲。在该模式中,和弦和旋律的序列信息已经被提前存储,因此再次练习时可以做到实时显示。演奏者通过led灯的提示,进行和弦与旋律的跟弹,会对整首乐曲的演奏更加熟练,理解更加深刻。
[0146]
重播模式是指演奏完乐曲后,重放乐曲录音,并且以柱式演奏的方式加入和弦生成模块生成的和弦,演奏乐器的音符键上的光源同时亮起。这能方便演奏者更加清晰直观地审视这一段乐曲,一方面可以欣赏刚刚的演奏片段,另一方面也可以为修改和进一步创作提供灵感。
[0147]
可视化编辑模块和输入模式选择并预处理模块
[0148]
实施例中,可视化编辑模块用于通过可视化界面设置演奏模式、音频输入模式、音乐调性、节拍;预处理模块用于依据设置的音频输入模式选择与音频输入模式对应的预处理方式,对输入音频数据进行预处理以得到音频对应的旋律,并将旋律输入至特征提取模块。
[0149]
在应用中,用户通过可视化编辑模块通过提供的可视化界面设置演奏模式、音频输入模式、音乐调性、节拍。其中,音频输入模式包括麦克风输入、midi键盘输入。
[0150]
针对麦克风输入,采用麦克风采集音频数据并输入至预处理模块,预处理模块可以根据当前拍速bpm计算四分之一拍的物理时长,每隔四分之一拍会将麦克风采集的音频数据读取进来,并保存到一个数组中,然后采用与麦克风输入模式对应的预处理方式对音频数据进行预处理,包括:
[0151]
首先,计算每段音频数据的过零率,根据过零率大小判断是否输入了钢琴声,如果过零率大于所设定阈值,则认为没有琴声进入,否则就进行音高识别。然后,进行音高识别,包括音频数据进行加窗处理,从而减少频谱泄露,并通过短时傅里叶变换构建出频谱图,其内含时间、频率、响度的三维数据。为了更方便进行音高识别,先将频谱图转换为频谱的包络图,即将某一个时刻频谱的每一个响度的峰值处用曲线连起来,这些频率中有基音和泛音,因为泛音是基音频率的整数倍,所以可以利用这一特点通过权重计算识别出每个基音的频率。同时还为泛音设置了一个阀值,如果泛音的音高大于该阀值,则认为麦克风输入了八度音,将该泛音也计入到基音中
[0152]
麦克风的主要应用场景在于普通钢琴等不具备midi输入条件的乐器,这样可以有效且相对准确地完成物理信号到数字信号的转换过程,使得演奏者在不具备midi输入条件的情况下也可以轻松使用本音乐创作辅助装置。
[0153]
针对midi输入,对于具有标准midi接口的设备,如电子琴、风琴、手卷钢琴等,可以
直接利用midi信号进行输入,即将采集的midi信号输入至预处理模块,然后采用与midi键盘输入模式对应的预处理方式对音频数据进行预处理,获取音高序列以进行和声预测。对处理midi信号进行预处理包括:根据当前拍速bpm,接收midi信号的音高输入,每十六分音符进行一次采样,并且设置缓冲区用来存储四个十六分音符(即一拍)。每当缓冲区存满四个十六分音符后就会向特征提取模块发送当前拍的音高序列以进行高音特征提取,同时继续读取下一拍数据。
[0154]
midi信号输入的优势主要在于准确性更高,处理信号复杂程度更低,并且对于不同种类的乐器均有对应的输入信号方法。
[0155]
实施例中,上述特征提取模块、特征编码与拼接模块、和弦生成模块、演奏控制模块以及集成于芯片中,可以采用asic芯片,该芯片用于运行和弦生成算法并对总体流程进行控制。对芯片而言,需要考察的指标除性能之外,还需考虑同构性、成本和功耗等,因此,可以优选寒武纪、地平线等公司生成的asic芯片。利用asic芯片包含的多个模块实现输入音频数据的预处理、高层特征提取,编码条件向量和解码条件向量的构建,、根据编码条件向量和解码条件向量的和弦生成,根据弹奏模式控制生成和弦的显示输出,即控制贴片led和音响对和弦的输出。具体地,应用实施例提供的音乐创作辅助装置进行音乐创造的过程如图6所示。对于旋律信息提取,可以通过麦克风采集环境中的旋律进行信号转换,或者通过midi键盘直接输入音高信息。这些信息在经过和弦生成后,会根据内设定的伴奏弹奏形式实时地进行演奏提示或者伴奏生成,也可以设定练习模式在演奏结束后重播旋律及和弦序列进行练习和改编,给予用户更生动的听觉和视觉辅助效果。
[0156]
实施例提供的音乐创作辅助装置可以助音乐人完整乐思,减少卡顿。音乐人根据节拍器的提示,右手每弹一拍旋律,系统经过一小段时间后会生成过去这一拍旋律对应的和弦,键盘对应位置上粘贴的led灯会部分亮起,用以指示和弦的组成音。演奏者随后可以根据选择模式的不同,在亮灯的同时,跟随指示进行演奏,或是使用音响播放柱式和弦。创作者在创作过程中,在每创作一拍旋律后,都会获得刚刚创作的旋律应编配的和弦提示,帮助创作者更好地构思和演奏。
[0157]
但需要注意的是,这种模式生成的和弦并非完全的实时伴奏,而是在弹奏一拍完毕后才会生成上一拍的和弦,其在旋律中的位置应在上一拍的开头。因此在实时任务中,生成的和弦主要目的是帮助作曲者进行辅助创作,以适当降低其在和弦编配上的难度,结合led灯的设计,创作者接收的提示信息明显且准确,可在一定程度上利用于作曲工作。对于学习者而言,实时生成旋律的和弦信息是对其和声学学习的绝好实践方式,学习者可以根据模型生成的和弦信息与自己的想法相比较,从而得到提高和进步。
[0158]
实施例提供的音乐创作辅助装置,利用音乐分析的方法提取了音乐高层特征,以解决忽略问题。同时对transformer模型进行了进一步的改进,在其encoder和decoder的输入阶段都加入了约束,以实现更深层的音乐引导生成,是音乐的质量和准确性进一步提高。最后,整个创造过程软件实现与相应硬件配合以实现整个装置的功能。
[0159]
数据集的构建阶段
[0160]
实施例中,数据集的构建过程包括:
[0161]
1、获取以xml格式保存的音乐文件,乐谱数量为15000张。其中,xml文件包含头部信息、主体数据,其中主体数据包含旋律部分与和声部分。头部信息如表t1所示:
[0162]
表t1 头部信息表
[0163][0164]
头部信息表包含了歌曲的整体信息,具体为:艺术家《artist》、乐曲标题《title》、每小节拍数《beats_in_measure》、每分钟拍数《bpm》、调性《key》、调式《mode》。
[0165]
主体数据中的旋律部分如表t2所示:
[0166]
表t2 主体数据(旋律部分)表
[0167][0168][0169]
旋律部分包含了歌曲的旋律信息,由若干音符《note》构成。具体为:音符在整首歌曲中的开始节拍《start_beat_abs》、音符在整首歌曲中属于第几小节《start_measure》、音符在当前小节内的第几拍开始《start_beat》、音符节拍长度《note_length》、音级《scale_degree》、八度《octave》、是否为休止《isrest》。
[0170]
主体数据中的和声部分如表t3所示:
[0171]
表t3 主体数据(和声部分)表
[0172][0173][0174]
和声部分包含了歌曲的和声信息,由若干和弦《chord》构成。具体为:和弦级数《sd》、和弦类型《fb》《sec》《sus》《pedal》《alternate》《borrowed》、和弦持续时长《chord_duration》、和弦在整首歌曲中属于第几小节《start_measure》、和弦在当前小节内的第几拍开始《start_beat》、和弦在整首歌曲中的开始节拍《start_beat_abs》、是否为休止《isrest》。
[0175]
2、去除数据集中不可用数据。数据集需要排除有较多空音符或者和弦序列不全的情况。这种数据需要当作脏数据进行筛查清洗,否则会导致旋律与和声不匹配,对模型产生较大影响。
[0176]
3、仅保留每小节4拍的数据。由于不同的拍号在后续去掉时间维度、降为一位数据时会产生歧义,所以仅保留每小节节拍数为4的数据,即头部信息中《beats_in_measure》值为4的数据。
[0177]
4、去掉除大调和小调以外的其他调式。流行音乐多为大调或小调,而对于中古调式等调式,其和弦进行较难被预测。所以仅保留xml文件头部信息中《mode》值为1或6的数据(其中1表示大调,6表示小调)。上述删除过程完毕后,共有约6000条乐曲数据。
[0178]
5、转化为音高和时值序列储存。读取xml文件中《data》部分的数据,并且解析为旋律序列与和弦序列。每个序列均为音高-时值对应序列。旋律序列为单个音符的序列,和弦序列则按照多音符集合所构成的序列来表示。音高标注采用midi标准音高(midi绝对音高)标注方法,时值按每拍1.0、每小节4.0来计算。
[0179]
首先确定头部信息,由《key》和《mode》标签确定音乐调性。
[0180]
旋律序列音符转化过程如下:
[0181]
对于单个音符,根据《scale_degree》确定音符音级,再根据之前由头部信息确定的音乐调性,确定音符音高,最后根据《octave》标签,确定是否由八度迁移。例如:音乐调性为a大调,音符《scale_degree》为1,《octave》为0,则此音符为a大调中的第一音级,即为a,简谱中为6,又因为《octave》为0,所以此音高为科学音高记谱法中的a4,所以对应到midi标准音高(midi绝对音高)中为57。
[0182]
和弦序列音符转化过程如下:
[0183]
对于单个音符,根据《scale_degree》确定和弦音级,再根据之前由头部信息确定的音乐调性,确定和弦音高,最后和弦类型,确定和弦音组成。例如:音乐调性为a大调,和弦《sd》标签为1,和弦类型标签为默认值,则此和弦为a大调中的一级大三和弦,根音为a3,三音与根音是大三度,三音为升c4,三音与五音是小三度,五音为e4,所以对应到midi标准音高(midi绝对音高)中为[45,49,52]。
[0184]
和弦与音符的时值直接提取《chord_duration》与《note_length》的值。时值序列与音高序列元素一一对应。
[0185]
转化后的部分数据样例如表t4所示:
[0186]
表t4 转化后的部分数据样例表
[0187][0188]
6、将所有数据的调性转化为c大调或者a小调。不同调性下的同级数音的pitch不
同,无法用来训练同一种模型。但关系大小调之间的数据则通用,比如c大调和a小调。所以将全部乐曲数据通过表t5与t6计算函数,依调性《key》值对旋律序列与和弦序列的所有音高pitch进行一定的加减运算,实现调式上的转化;大调歌曲全部转为c大调,小调歌曲全部转为a小调。
[0189]
表t5 计算函数表1
[0190][0191][0192]
表t6 计算函数表2
[0193][0194]
原始数据样例经上述函数转化后结果如表t7所示:
[0195]
表t7 转化后的原始数据样例表
[0196][0197][0198]
可以观察到,音符个数和持续时长都没有变化,仅有音高pitch发生了数值上的增减,代表着原曲被转为c大调。
[0199]
7、去掉时间维度,将数据维度转为一维。
[0200]
将每个音按时长duration进行采样,主旋律序列按十六分音符进行采样,和弦序列按四分音符进行采样。步骤6中样例数据转化为一维数据后的结果如表t8所示:
[0201]
表t8 一维样例数据表
[0202][0203]
最终每首歌曲的数据变成两个序列,任务转化为一个序列到序列的问题,可采用自然语言处理的模型和方法进行验证。
[0204]
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理
解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

技术特征:


1.一种音乐创作辅助装置,其特征在于,包括:特征提取模块,用于提取输入旋律的高层特征,所述高层特征包括权重音、权重和弦、终止和弦以及结构和弦;特征编码与拼接模块,用于将当前音符、权重音以及权重和弦进行编码并进行编码向量的拼接以得到编码引导向量,还用于将上一节拍的和弦、终止和弦以及结构和弦进行编码并进行编码向量的拼接以得到解码引导向量;和弦生成模块,用于以编码引导向量作为transformer模型的编码器的输入,以解码引导向量作为为transformer模型的解码器的输入,经transformer模型前向传导运算以生成和弦。2.根据权利要求1所述的音乐创作辅助装置,其特征在于,所述特征提取模块,包括:权重音提取单元,用于提取旋律中节奏重音、切分音以及长音后,选择是节奏重音但不是切分音的音符、或者不是节奏重音但同时为切分音和长音的音符作为权重音;权重和弦提取单元,用于提取以权重音为起始的当前旋律片段中具有代表性的音符组成的和弦作为权重和弦;终止和弦提取单元,用于识别和弦进行中的终止式或半终止式来确定终止和弦;结构和弦提取单元,用于提取旋律中的非转位和弦,且在非转位和弦为当前调式调性的i、ii、iv或v级和弦,则当前非转位和弦为结构和弦。3.根据权利要求1所述的音乐创作辅助装置,其特征在于,所述特征提取模块,所述权重和弦提取单元中,权重和弦的提取过程包括:(a)构建包含多个和弦的和弦对照表;(b)对以权重音为起始的当前旋律片段中的所有音符,按照权重音权重为α、其他音符权重为β的方式进行加权的音高出现频率统计,以得到当前旋律片段的第一加权统计结果,其中,α>β;(c)将以权重音为起始的当前旋律片段与邻近历史分组中的所有旋律片段进行拼接形成旋律序列,对旋律序列中的所有音符,按照权重音权重为α、其他音符权重为β的方式进行加权的音高出现频率统计,以得到旋律序列的第二加权统计结果,其中,α>β;(d)分别将第一加权统计结果和第二加权统计结果与和弦对照表进行比较,从和弦对照表中选择编辑代价最小的和弦作为权重音对应的权重和弦,其中,编辑代价是指将加权统计结果转化为和弦对照表中和弦的操作复杂度,编辑代价最小的和弦包含的音符为当前旋律片段中具有代表性的音符。4.根据权利要求1所述的音乐创作辅助装置,其特征在于,从和弦对照表中选择编辑代价最小的和弦作为权重音对应的权重和弦,包括:将第一加权统计结果与和弦对照表进行比较,按照编辑代价对和弦对照表中的和弦进行升序排序得到第一和弦排序列表,从第一和弦排序列表中选择根音为当前调式调性下自然音阶的和弦为候选和弦,并从中选择最小编辑代价的候选和弦为第一候选权重和弦;将第二加权统计结果与和弦对照表进行比较,按照编辑代价对和弦对照表中的和弦进行升序排序得到第二和弦排序列表,从第二和弦排序列表中选择根音为当前调式调性下自然音阶的和弦为候选和弦,并从中选择最小编辑代价的候选和弦为第二候选权重和弦;从第一候选权重和弦和第二候选权重和弦中选择编辑代价最小者为最终权重和弦;
当最终权重和弦选自第一候选权重时,将当前旋律片段化为新分组,该新分组作为下一时刻权重和弦计算的邻近历史分组;当最终权重和弦选自第二候选权重时,将当前旋律片段化分到邻近历史分组以更新邻近历史分组。5.根据权利要求1所述的音乐创作辅助装置,其特征在于,所述特征编码与拼接模块,包括:第一特征编码与拼接单元,用于将当前音符、权重音以及权重和弦进行编码并进行编码向量的拼接以得到编码引导向量,包括:首先,对当前音符进行嵌入编码得到音符向量,对权重和弦进行嵌入编码后再进行线性化处理以得到权重和弦向量;其次,对权重音进行标记编码以得到权重音的第一标记向量;最后,将音符向量、权重和弦向量与第一标记向量进行对应位置拼接,再对拼接结果进行线性化处理,即实现根据第一标记向量对当前音符和权重和弦进行权重音位置标记,以得到编码引导向量;第二特征编码与拼接单元,用于将上一节拍的和弦、终止和弦以及结构和弦进行编码并进行编码向量的拼接以得到解码引导向量,包括:首先,对上一节拍的和弦进行嵌入编码以得到和弦向量,对历史一段时间的结构和弦进行嵌入编码后再进行线性化处理以得到结构和弦向量;其次,对终止和弦进行标记编码以得到终止和弦的第二标记向量;最后,将和弦向量、结构和弦向量与第二标记向量进行对应位置拼接,再对拼接结果进行线性化处理,即实现根据第二标记向量对上一拍和弦和结构和弦进行终止和弦位置标记,以得到解码引导向量。6.根据权利要求1所述的音乐创作辅助装置,其特征在于,所述和弦生成模块中,利用transformer模型进行和弦生成时,对输入的编码器的编码引导向量进行对应音符的位置标记,等待预设音符个数后,将预设音符个数的编码引导向量拼接后输入至transformer模型的编码器,以进行和弦编配,其中,预设音符个数优选为每节拍包括的音符个数。7.根据权利要求1所述的音乐创作辅助装置,其特征在于,所述和弦生成模块中,利用transformer模型进行和弦生成时,解码器对输入的解码引导向量和编码器输出的编配和弦进行和弦生成计算,以生成和弦,当前时刻的生成和弦与历史生成和弦排列形成排列和弦序列;其中,排列和弦序列作为数据源用于构建下一和弦生成任务的解码引导向量。8.根据权利要求1所述的音乐创作辅助装置,其特征在于,所述装置还包括:演奏模块,所述演奏模块包括音响和/或演奏乐器,其中,演奏乐器为带有键盘的乐器,包括钢琴、电子琴、手风琴,演奏乐器的键盘的每个音符键上贴有灯源,灯源优选为发光二极管;演奏控制模块,用于控制音响和/或和对弦生成模块输出的排列和弦序列进行演奏。9.根据权利要求8所述的音乐创作辅助装置,其特征在于,所述演奏模式控制模块控制对排列和弦序列进行演奏时,采用的演奏模式包括学习模式、作曲模式、练习模式以及重播模式;其中,学习模式是指实时演奏过程中,每弹奏一拍旋律后,演奏乐器的音符键上的光源
亮起以指示和弦组成音,但不通过音响播放和弦;作曲模式是指在实时演奏过程中,每弹奏一拍旋律后,演奏乐器的音符键上的光源亮起以指示和弦组成音,并且通过音响播放和弦;练习模式是指第一遍演奏时仅弹奏旋律,不弹奏和弦进行,将和弦生成模块生成的柱式和弦保存层完整的乐曲,练习时,依据乐曲,演奏乐器的音符键上的光源亮起,但不通过音响播放乐曲,需要演奏者自行弹奏乐曲;重播模式是指演奏完乐曲后,重放乐曲录音,并且以柱式演奏的方式加入和弦生成模块生成的和弦,演奏乐器的音符键上的光源同时亮起。10.根据权利要求1或8或9所述的音乐创作辅助装置,其特征在于,所述装置还包括:可视化编辑模块,用于通过可视化界面设置演奏模式、音频输入模式、音乐调性、节拍;预处理模块,用于依据设置的音频输入模式选择与音频输入模式对应的预处理方式,对输入音频数据进行预处理以得到音频对应的旋律,并将旋律输入至特征提取模块。

技术总结


本发明公开了一种音乐创作辅助装置,包括:特征提取模块,用于提取输入旋律的高层特征,所述高层特征包括权重音、权重和弦、终止和弦以及结构和弦;特征编码与拼接模块,用于将当前音符、权重音以及权重和弦进行编码并进行编码向量的拼接以得到编码引导向量,还用于将上一节拍的和弦、终止和弦以及结构和弦进行编码并进行编码向量的拼接以得到解码引导向量;和弦生成模块,用于以编码引导向量作为Transformer模型的编码器的输入,以解码引导向量作为为Transformer模型的解码器的输入,经Transformer模型前向传导运算以生成和弦。该装置可以提高音乐质量和准确性。该装置可以提高音乐质量和准确性。该装置可以提高音乐质量和准确性。


技术研发人员:

王子豪 刘文博 王轶楷 王雨行 汪嘉麒 包云泰 梁启豪 俞快 陈圣宣 冯永升 薛婧 王旭泓 魏东来 宁若汐 王玉国 季亚南

受保护的技术使用者:

王子豪

技术研发日:

2022.04.01

技术公布日:

2022/7/8

本文发布于:2024-09-23 11:18:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/11288.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:和弦   权重   向量   音符
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议