在基于遗传算法的自动作曲中,适应度函数是决定最终是否能成功得到较理想质量音乐片段的因素。就像环境对于人的成长一样,适应度函数对于演化结果的进化方向起着关键作用。一般遗传算法中适应度函数主要有两种考虑:其一是让人作为评价乐曲好坏的主观方,对进化的乐曲质量进行评价;其二是程序员制定演化乐曲进化规则,在程序运行过程中让规则对乐曲自动进行评价。
(1)让人在一代代进化过程中对进化的乐曲进行评价,来充当适应度函数评价。这种适应度函数的优点在于作为万物之灵的人类去评价,直接简单有效,能立竿见影。缺点在于,每次评价很耗时耗力,而且人在评价时间长了会产生厌烦、疲劳的情绪,评价的效率不高。但是在本作曲系统中,这种评价是用户可选的,预留一个接口供用户去指导演化的过程。这样既增加了参与人风格喜好的要素,又不会耽误很多用户的时间精力。
(2)制定进化规则对乐曲进行评价,这种适应度函数不需要人的参与,在自动作曲过程中也是起主要作用的。优点是可以用语言描述,能够较快较方便地转换成代码实现,作曲结果也是严格按照规则来生成的;缺点是规则千千万万,不胜枚举,而且规则本身的适用条件也有规定,考虑起来太繁复杂乱。
在本算法中主要考虑的规则有以下几个方面。
1.旋律的方向性
旋律是有方向性的,音符的序列,在五线谱上表现为一条起伏不平的旋律线、不同的旋律线、不同的音符时间走势图,有着细微或巨大的差别,反映出了不同旋律之间的不同情感和特点。
旋律方向特征:
式中,pitchi 指在旋律i位置上的音高,duration指全局的时值。
2.平均音高
如果把旋律线看成音符、时间的离散函数,那么平均音高是整个旋律中音高的期望值,具有很高的统计特性。平均音高的大小,直接反映出旋律所在音区位置的高低。
平均音高特征:
式中,pitchi 是指在旋律i位置上的音高。
3.音乐的速度
音乐的速度是指节拍的快慢,大致可以分为慢板、中板、快板3类,可以由作曲系统直接设置。快板的节奏使人兴奋,常用于表现欢快、激动的情绪;中板经常用于叙事抒情类旋律作曲中;慢板经常用于表达深深的回忆、宏大的颂歌和忧伤的情绪。
速度特征:
4.音乐的力度
音乐如果没有强弱力度的变化与起伏的旋律,则听起来平淡,没有激情。作为一种时间艺术,我们随时应该想到的是音乐力度对比与变化,这样的音乐才会对听众的听觉器官产生喜、怒、哀、乐、忧等情绪上的共鸣。
平均力度特征:
5.音符密度
根据歌曲不同,在相同单位长度的音乐旋律中,每段旋律所包含的音符个数也不一样,即音符密度不一样,通常慢歌里音符密度小,快歌里音符密度大。
音符密度特征:
6.音高的稳定性
我们可以根据求出来的旋律平均音高,得到旋律片段中音符上下浮动的情况。这有点类似于求一组给定样本的方差水平。浮动较小,可以理解为旋律上下波动较小,比较稳定,可以表现安静祥和、平静舒缓的乐曲风格。浮动较大,可以理解为旋律上下波动较大,音高不稳定,可以表达激烈、紧张、活跃等乐曲风格。
音高稳定性特征:
在实际编程实现中,range取整首乐段音高的平均值。
7.尽量避免相邻音符大的间隔度
由于重构的基于演化音乐编码的演化变异操作,是基于随机的选择,这种操作理论上是会产生较大的间隔的变异。如果在宁静、美好等情感类型作曲过程中,这些大间隔肯定是出现得越少越好。所以,程序使用默认的最大音程距离值为8,当音程超过了这个最大距离值,适应度函数给出惩罚。
惩罚特征:
式中,P 为人为规定大跳跃的惩罚值。对不同情感、不同类型风格、不同情形的乐曲生成,P值也不一样。
8.乐段的重复匹配度
在音乐段落中,为了突出主题、深化情感表达、加强音乐主题的发展,往往会采取重复乐句、重复乐段旋律的做法。这也非常符合动机片段重复出现在乐段中的特点。作曲时经常会用到一些旋律的反复,歌曲唱起来才会朗朗上口,产生很容易使人们记住歌曲的旋律。从听众心理学上解释:听众大多希望音乐中能出现类似重复的片段。所以,在演化算法适应度函数制定上,对重复乐句的现象采取奖励。
乐段的重复匹配奖励特征:
式中,t为人为规定重复乐段的奖励值。对不同情感、不同类型风格、不同情形、不同重复度的乐曲生成,t值也不一样。实际编程实现是先分别将音高、节奏转换成字符串,再对字符串统计出现3个音符到9个音符的地方,重复出现一次分别给予不同的奖励。
9.专家库专家认可度
系统提出专家评审认可制度,每一代交叉、变异操作后得到子代个体,用选出来的专家个体对子代个体进行评审,得到越多专家认可的子代个体,适应度越好。(www.xing528.com)
专家评审认可度:
式中,fi(n)是第i个专家对n 号个体的认可度,取值范围是-∞到0,它的取值越大越好。
式中,Noteij 是指第i个专家旋律第j 个音符。专家认可度的实质是生成乐段与选定专家之间的相似程度,物以类聚,所以相似程度越高的生成片段,专家个体对其的认可度越高。
10.协和音程
将两个音符放在一起听,听起来的和谐优美程度,为两个音符之间的协和度。协和音程原理是物理频率叠加的特点在人耳中的反应。其中,协和音程是人们听起来比较优美、比较悦耳的音程。如果,按照不同音程的两个音符在人们听觉上所产生的优美度感觉来分类,两个音符之间的音程关系,可分为协和音程及不协和音程两大类。协和音程又可分为3类:极完全协和音程、完全协和音程和不完全协和音程。
声音完全合一的纯一度和几乎完全合一的八度是极完全协和音程。声音相当融合的纯五度和纯四度是完全协和音程,其特性是声音听起来有点空。不很融合的大小三度和大小六度是不完全协和音程,其特性是声音较为丰满。每种音程都有各自的特点和善于表现的情感。例如,协和音程就适合表达优美、舒心、融合的感情色彩。而不协和音程就善于表达悲伤、烦躁、抑郁的心情。
表6-2从频率比、协和音程归类、和谐度、不和谐度分析了协和音程。式(6-15)是对协和音程进行和谐度的加权分析计算。
表6-2 协和音程和谐度对比表
式中,Harpitchi+1-pitchi 表示后一个音符与前一个音符的音程差,通过表6-2定义的不和谐度,结果为整个乐曲所有音程差所规定的和谐度的总和。由式(6-15)分析可知:和谐度总和的值越高,说明和谐度越高,也越接近人们所期望的和谐旋律。
11.旋律特征矩阵
旋律特征矩阵为7×7方阶。它记录了一个音符音阶到下一个音符音阶的转换概率。
式中,Øi 是第i类情感所占比例;φi 为用户在音乐心情设置框内设置的数值;Djk 为矩第j行第k 列的元素。
当然,评价一段旋律的好坏,每个研究自动作曲的人,在自己的认知范围内,都有自己的一套想法和标准,规则是无穷无尽的,本书就以上提出的对乐曲质量好坏的评价标准展开讨论和研究,总的适应度函数设计如下:
式中,εi 是适应度函数要素Fi 的权值。对于每一类风格、每一种情感乐曲的演化,εi 值的默认设置也不一样。
在实际编写程序中,旋律的方向性加权参数ε1 默认值为0.2;平均音高加权参数ε2 默认值为0.2;音乐速度加权参数ε3 默认值为0(直接使用用户设置值);音符的力度加权参数ε4 默认值为0(这里简化了音符的力度在维度上的演化,先默认所有音符的力度均为100);音符密度加权参数ε5 默认值为0,因为音符密度和速度相关性很大,也可以直接使用用户设置值;音高的稳定性加权参数ε6 默认值为0.1;尽量避免相邻音符大的间隔度加权参数ε7默认值为0.1;乐段的重复匹配加权参数ε8 默认值为0.1;专家库专家认可度加权参数ε9 默认值为0.2;协和音程加权参数 ε10 默认值为0.2;旋律特征矩阵加权参数ε11 默认值为0.2。
为了将用户对乐曲的感知和偏好体现出来,程序提供了用户参与εi 值的自定义设置接口。图6-15是用户参与εi 值的自定义设置界面。
图6-15 用户参与εi 值的设置界面
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。