APP下载

基于模板匹配的中国民族音乐调式识别研究

2020-06-29游梦琪陈柳姣贺晶娴

复旦学报(自然科学版) 2020年3期
关键词:核验音阶音高

游梦琪,陈柳姣,周 莉,贺晶娴

(中国地质大学(武汉) 艺术与传媒学院,湖北 武汉 430074)

算法作曲是用形式化的作曲规则作为音乐创作的手段,使音乐家们可以利用计算机作为音乐创作的工具,实现自动作曲[1].早在11世纪就出现了1种根据经文中的元音设计音高的模型来实现经文旋律的创作[2],Horner等[3]通过遗传算法在计算机作曲中的应用实现了完成主题桥接的计算机辅助作曲程序,Biles等[4]实现了GenJam实时交互式演奏系统,Prisco等[5]实现了基于十二音作曲体系的乐曲创作系统.国内方面,郑银环等[6]设计了音程序列挖掘算法,曹西征等[7]提出了面向蒙古族歌曲旋律的自动伴奏算法,郑晓妹等[8]实现了基于旋律马尔科夫链的中国民歌的自动作曲模式,邓阳等[9]设计出和弦体系构造函数自动和弦编配的动态规划算法,实现了机器自动和弦编配.基于以上研究,可知算法作曲是复杂多样的,研究者主要使用遗传算法、马尔科夫链等工具进行研究,且研究对象大多集中于西方音乐,对于中国民族音乐涉及较少.

模板匹配是1种最原始、最基本的模式识别方法,其原理是选择己知的对象作为模板,与图像中选择的区域进行比较,从而识别目标.目前模板匹配多用于图像检测,赵丽红等[10]介绍了人脸检测相关的算法和理论,分析了各种方法的优缺点,并提出了关于人脸检测问题的进一步研究方向;田梅等[11]构建和弦转位的状态转移图和和弦手势模板库进行识别;张大宝等[12]提出了1种基于音视模板匹配的新闻视频识别方法.在音乐相关方面,蔡岳建等[13]用剪辑的8首乐曲片断作为实验材料,对其调式和速度对大学生情绪的影响进行了研究;吴晶晶等[14]提取音乐中的调式调性等特征,通过计算机对音频信号的自动分析及处理,实现对钢琴音乐演奏的特征识别.

音乐调式是音乐构成的重要因素之一,音乐调式的识别是人工智能作曲的1个关键技术环节.对中国民族音乐调式的智能识别的研究目前较少,例如邓阳等[15]在2018年提出的基于决策树的中国民族音乐五声调式识别算法,对中国民族音乐的六声、七声调式尚未涉及.以上对音乐调式的研究主要是通过音频分析或人工分析等进行的.

针对以上问题,对中国民族音乐调式的判断可将典型调式特征作为模板,与待处理的调式进行比较,识别待处理调式中调式特征的存在与符合度情况,与模板匹配原理一致,因此可采取构建调式模板进行调式识别.本文提出通过寻找中国民族音乐调式的特征,将MIDI形式的单声部旋律进行模板匹配,判断该旋律的调式调性,并用该方法来识别是否为中国民族音乐调式,对转调、西洋大小调式、中古调式、阿拉伯调式等其他调式的研究尚不涉及.

1 中国民族音乐调式分析

调式[16]是乐音组织结构形式,是指若干高低不同的乐音围绕某个有稳定感的中心音,按一定的音程关系组织在一起,构成1个有机的体系.以调式的中心音为起始音和结束音,其他各音按音高的顺序依次排列成音阶的形式,称调式音阶.

调式根据调式音阶中乐音的数量可分为3大类别: 七声音阶调式、五声音阶调式以及特殊调式.七声音阶调式有中古调式、西洋大小调式、中国民族音乐七声调式以及吉卜赛调式;五声音阶调式有中国民族音乐五声调式以及日本民谣调式和律调式;特殊调式有印度尼西亚音乐、阿拉伯音乐、印度音乐、泰国音乐等调式.

不同的历史时期与不同的民族和地域形成了各种不同的调式.各种调式因其音阶结构、调式音级间相互关系以及音律等方面的差异而各具特色与表现力.调式可赋予音乐以一定的情感与风格.

1.1 调式类别

我国民族众多,民间音乐的调式丰富多样,应用最广泛的是五声调式和以五正声音阶为基础的各种调式[16].

五声调式是指在“五度相生律”的基础上按照纯五度排列起来的5个音所构成的调式,如图1所示.将这5个音依高低顺序排列起来便是五正声音阶,各音级的名称是宫、商、角、徵、羽,如图2所示,其中任何1个音都可当做主音,可分别构成五声宫调式、五声商调式、五声角调式等5个调式.

图1 五声调式Fig.1 Pentatonic mode

图2 五正声音阶Fig.2 Positive pentatonic scale

以五声调式为基础,在角-徵、羽-宫两个小三度之间加上1个音,使五声调式得以扩大成六声调式或七声调式,这些增加的音称为偏音,同样是由“五度相生律”得来,其名称为: 清角、变徵、变宫、闰,如图3所示.

图3 正音与偏音Fig.3 Positive tone and offset tone

七声调式是指在五声调式基础上增加两个偏音构成的调式,其中传统的七声调式有3种: 雅乐音阶(偏音为变徵与变宫)、清乐音阶(偏音为清角与变宫)以及燕乐音阶(偏音为清角与闰).

1.2 调式特征

五声(五正声)音阶中存在唯一的大三度——宫角大三度,即宫音与角音的音程关系为大三度.在音阶中找到唯一的大三度就可以确定该音阶为五正声音阶以及其宫音,调式中最主要的音为主音,主音是出现频率最高的音符,根据主音与宫音可以确定其调式.

七声音阶中偏音出现的频率极大地少于主干音,而主干音也就是5个正音,存在唯一的大三度,可以通过对比出现频率以及出现频率较高的音之间的大三度确定该音阶是否为七声音阶.在确定为七声音阶后进行音阶排序,则可确定宫音以及偏音名称,再结合主音可以确定其调式.

2 模板匹配

模板匹配是1种基本的模式识别方法[17],主要应用在计算机视觉、图像处理和语音识别等领域.模板就是1幅已知的小图像,而模板匹配就是在1副大图像中搜寻目标,已知该图中存在目标,且该目标同模板有相同的尺寸、方向和图像元素,通过一定的算法可以在图中找到目标,确定其坐标位置.该原理同样应用在中国民族音乐调式的模式识别中,已知五声调式和七声调式的模板,可以通过对旋律进行特征搜寻、模板匹配,最终得出该旋律的调式.图4为本文算法的流程图.

图4 本文算法的流程图Fig.4 The flow chart of the algorithm in this paper

通过提取并陈列旋律中所有的音高来判断有无偏音并确定该旋律所属的模板来进行匹配: 无偏音的旋律归属于中国民族音乐五声调式模板,有偏音的旋律归属于中国民族音乐七声调式模板,符合中国民族音乐调式音阶组成逻辑的旋律属于中国民族音乐调式.

2.1 调式模板构建

基于判别五声调式和七声调式的方法进行调式模板的构建,如图5,图6所示.

图5 五声调式模板Fig.5 Template for pentatonic mode

图6 七声调式模板Fig.6 Template for heptatonic mode

2.2 MIDI文件预处理

音乐乐器数字接口(Musical Instrument Digital Interface, MIDI)是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”.与波形文件不同,MIDI文件不对音乐进行抽样,而是将音乐的每个音符记录为1个数字,所以与波形文件相比要小得多,可以满足长时间音乐的储存需要.由于MIDI文件包含的信息较多,为了能较好地提取出所需的音高信息,得到乐曲调式,选取对象的MIDI文件在音轨数量上需有一定的限制.

MIDI文件的预处理主要是针对MIDI字节进行解码与重复音的去除,通过MIDI解码器f(MIDI)进行MIDI到音符的映射计算,例如:

f(MIDI)=[Note(1),Note(2),Note(3),…,Note(N)],

(1)

式中:Note(i)(i=1,2,…,N)表示音阶列表scale中相同的所有音高的出现次数.

由式(1),设列表Pitch=f(MIDI),设计1个八度重复删除算法f(Delete,Pitch)如下:

f(Delete,Pitch)=[scale(1),scale(2),scale(3),…,scale(N) ],

(2)

式中:Delete与Pitch为相同的输入音高列表;函数f(Delete,Pitch)的映射关系为对比计算,将Delete与Pitch的每个元素进行遍历后得到音阶列表:scale=f(Delete,Pitch);scale(i) ,i代表音阶中音高的序号,记为音符序列号.通过f(MIDI)映射关系,将MIDI字节转化为1个整型的音高列表数据,用于后续的计算.图7为MIDI文件预处理的流程图.

图7 MIDI文件预处理的流程图Fig.7 The flow chart for the preprocessing of MIDI file

2.3 采用调式模板进行调式判断

对MIDI文件进行预处理后得到了1组较为准确的音高序列并进行模板匹配,对由5个音高组成的音阶进行五声调式模板匹配,找出该音阶中的音程关系存在唯一的大三度即找出宫音与角音,如果没有调式外的音程关系出现,则可以直接得出最终调式.由于调式的复杂性,并不能完全去除其所受的干扰,当无大三度时将考虑是否为陕北调式,由于陕北调式中存在唯一特征音程小三度,所以将再次在音阶中寻找是否存在唯一小三度音程,从而通过羽音找出宫音,确定其调式.

对由7个音高组成的音阶进行七声调式模板匹配,通过对出现的7个音高的频率进行排序,由于偏音出现频率明显小于正音,找出频率次数最小的两个音高即为偏音,对于出现频率前5的音高进行五度音程关系排序,方法如下.

设排序算子为f(Note)sort,将上述预处理MIDI文件f(MIDI)的列表经过排序算子f(Note)sort生成1个新的列表文件,文件包含每个音符出现的次数,计算公式如下:

(3)

通过这种映射关系计算出每个音符的出现次数,最后通过模板匹配函数.由式(3)最终将模板所需要的样本进行归一化处理,得到1个列表数据:Modeldata,设模板匹配函数为:f(Model)data,具体映射关系如下:

(4)

若偏音出现频率较少且出现频率前5的音高能根据五度音程关系进行排列,则为Style1(中国民族七音乐声调式);在出现频率排在前5位的音高中存在唯一的大三度,确定宫音与角音,再结合出现的偏音确定偏音名称,通过主音、宫音与偏音名称最终定调,由于调式的复杂性,有一些旋律所提取出来的音高信息与模块不完全匹配,如一些旋律会存在音阶使用不全的情况,对于最终定调会产生影响,而偏音“闰”和“变徵”只存在于中国民族音乐七声调式音阶中,因此可通过偏音进行判定;由6个音高组成的音阶与七声音阶不同之处在于六声音阶只有1个偏音,判断方法与七声调式一致.可对匹配度进行排序,较高匹配率的进行模板匹配并核验,低匹配度的则可能为Style2(非常规调式或非中国民族音乐调式).

2.4 调式特征核验

进行调式模块匹配后,需用对调式特征进行核验来最终确定其调式.

调式特征1:“宫”音核验.找出宫音后将按照基于宫音的调式音程关系对乐曲中的所有音符进行归类,如果所有音符都能够准确地按照与宫音音程关系进行分类,那么核验通过.反之,如果出现调式外的特殊音程,例如出现在宫音上方的音与宫音构成小二度,这是在中国民族音乐调式中不存在的音符,核验失败.

调式特征2: 偏音次数核验.找出偏音后将其与整首乐曲中所有音符进行核对,在对大量的中国民族音乐调式分析后得出偏音在全曲中所占比重主要在10.3%~21.6%之间,少数在31.9%.因此若偏音次数出现频率在21.6%以下,则核验通过.反之,如若出现在21.6%~31.9%之间,则需通过其他调式特征继续核验来判断,如若出现在31.9%以上,则核验失败.

调式特征3: 特征音列组核验.将整首乐曲所有的音符进行3个音1组划分,如若3音组为以二度与三度或二度与四度为主构成以及由宫、商、角3音构成的连续二度3音组,则核验通过.反之,如若出现“和弦式进行”、“音阶式进行”等特征音列组则判定核验失败.

调式特征4: 尾音(主音)核验.将主音与整首乐曲中最后一个尾音进行核对,如若主音与尾音为同一音,则核验成功.反之,则可能为非常规调式、转调调式或非民族调式,核验失败.

调式特征5: 第7级音核验.将初步定调的调式中提取出第7级音与第1级音进行向上二度判定,如若未构成向上小二度关系,则核验通过.反之,则核验不通过.

表1 MIDI文件格式的实验样本Tab.1 The experimental samples of MIDI file format

3 实 验

3.1 实验样本

实验样本主要为单声部旋律: 中国五声调式与七声调式民歌以及少量西方大小调式进行干扰,测试算法对于中国民族音乐调式判断的可靠性.

选取如表1所示的8首中国民歌以及4首西方大小调式歌曲作为样本进行试验.

3.2 结果分析

3.2.1 五声调式分析

选取五声调式民歌《茉莉花》进行测试.将计算所得的音高、出现频率等数据进行绘图.图8为《茉莉花》的原始音高图.

图8 《茉莉花》的原始音高图Fig.8 The original pitch chart of Jasmine

表2 《茉莉花》的计算结果Tab.2 The calculation results for Jasmine

图9为《茉莉花》的音高频率图.根据每个音高出现的频率进行排序,可以较清晰地看出作品的主干音都是出现频率较高的音符.从预处理后的图10中可以看出将原始音高图整理成了1条由5个音高构成的具有单调性的音阶图.《茉莉花》的计算结果如表2所示.

根据以上实验结果,我们可以得出: 通过对《茉莉花》的音符进行统计,可以清晰地得出每个音符出现的次数,再对其MIDI文件进行预处理,得到1条具有明显单调性的音高分布图,由此可得作品的旋律的音阶,最终通过计算得出调式为G徴五声调式,与人工判断一致.

图9 《茉莉花》的音高频率图Fig.9 The pitch frequency chart of Jasmine

图10 《茉莉花》的音阶图Fig.10 The scale chart of Jasmine

3.2.2 七声调式分析

选取七声调式民歌《是咱知心人》进行测试.图11为《是咱知心人》的原始音高图.

图11 《是咱知心人》的原始音高图Fig.11 The original pitch chart of I know you

图12为《是咱知心人》的音高频率图.根据每个音符出现的频率进行排序,可以较清晰地看出作品中每个音出现的频率次数,其中有些音明显少于其他音出现的频率次数.从预处理后的图13中可以看出将原始音高图整理成了1条由7个音高构成的具有单调性的音阶图,结合音高频率图可以发现58号音与64号音高的频率次数明显少于其他音高.《是咱知心人》的计算结果如表3所示.

图12 《是咱知心人》的音高频率图Fig.12 The pitch frequency chart of I know you

图13 《是咱知心人》的音阶图Fig.13 The scale chart of I know you

表3 《是咱知心人》的计算结果Tab.3 The calculation results for I know you

根据以上实验结果,我们可以得出: 通过对《是咱知心人》的音符进行统计,可以清晰地得出每个音符出现的次数,再对其MIDI文件进行预处理,得到1条具有明显单调性的音高分布图,由此可得作品的旋律的音阶,找出偏音,最终通过计算得出调式为燕乐G徴七声调式,与人工判断一致.

3.2.3 大小调式音乐分析

选取大调《一闪一闪小星星》进行测试.图14(见第268页)为《一闪一闪小星星》的原始音高图.

图14 《一闪一闪小星星》的原始音高图Fig.14 The original pitch chart of twinkle twinkle little star

图15 《一闪一闪小星星》的音高频率图Fig.15 The pitch frequency chart of twinkle twinkle little star

图16 《一闪一闪小星星》的音阶图Fig.16 The scale chart of twinkle twinkle little star

表4 《一闪一闪小星星》的计算结果Tab.4 The calculation results for twinkle twinkle little star

图15为《一闪一闪小星星》的音高频率图.从音高频率图中可以较清晰地看出每个音的出现频率次数相差较小,民族调式特征不明显.从预处理后的图16中可以看出将原始音高图整理成了1条由6个音高构成的具有单调性的音阶图,结合音高频率图可以发现69号音高的频率次数少于其他音高,民族调式特征不明显.《一闪一闪小星星》的计算结果如表4所示.

表5 实验样本的计算结果Tab.5 The calculation results of the experimental samples

通过对《一闪一闪小星星》的分析得出: 调式特征不符合所构建的民族音乐调式模板,特征音列组为西洋大小调的音列组,由此判断为非中国民族音乐调式.判断结果符合预期.

3.2.4 样本测试的结果

从表5的实验结果来看,对中国民族音乐调式与非中国民族音乐调式的识别基本正确,本算法对中国民族音乐调式的识别具有较高的准确性.

4 结 语

调式是音乐构成的重要因素之一,不同的调式确定了不同的音乐风格.本文提出的中国民族音乐调式识别算法以中国民族音乐理论为基础,通过对MIDI文件的音高数据进行提取,再借用模板匹配思想设计完成中国民族音乐的调式的判定,最后再对判定结果进行核验,通过核验得出了音乐调式识别的最终结果.

从实验数据来看,本算法对中国民族音乐调式的判断具有较高的准确率,能够准确地辨别出中国民族音乐调式和非中国民族音乐调式,并且能够细分出中国民族音乐五声调式和七声调式.

此前的人工智能作曲算法大多以西洋大小调体系的西方音乐和流行音乐为主要研究内容,较少涉及中国民族音乐.本文提出的基于模板匹配的中国民族音乐调式的识别算法为中国民族音乐的智能作曲研究提供了新方法,为推动人工智能与中国民族音乐的交互发展提供了新的发展路径.

猜你喜欢

核验音阶音高
潮州乐调的音阶流变梳理与分析
为何有人唱歌总是跑调
2020年度新闻记者证核验人员名单公示
音高听觉的培养与视唱练耳教学中因材施教探究
《金桥》2020年度新闻记者证拟通过年度核验人员名单公示
大小调五声音阶,来了解一下
乔治·克拉姆《螺旋的银河系》的镜像世界
对称音阶(Symmetrical Scale)解析
《中外玩具制造》编辑部2020 年度核验新闻记者证公示名单
三步让你安心住好房