语义相关性数据库构建下音乐比赛评分方法多模块化设计
2022-04-20张学旗
张学旗
(台州学院, 艺术与设计学院,浙江,台州 318000)
0 引言
语义分析是编译过程中的一个逻辑阶段,其任务是对审查结构上正确的源程序进行上下文有关性质审查,目的是审查源程序是否存在语义错误,从而为代码的生成阶段收集类型信息。例如语义分析的工作是实现类型审查,对各个算符进行审查,观察是否存在语言规范所允许的运算对象,在不符合语言的规范时,编译程序报告错误。它也是编译程序中最有实质性的工作,解释源程序语义,从而引发源程序的质变化[1]。
音乐是利用组织音所构成的一种听觉意象,所以可以用来表述社会现实生活以及思想感情的一种艺术形式,也是最能够即时打动人的艺术形式之一。同时,音乐也是由很多复杂元素构成的,所以在进行比赛时,人工评委很有可能会出现判断错误的情况,为此本文提出一种语义相关性数据库构建下音乐比赛评分方法多模块化设计,主要是为了系统化地对音乐选手进行评分,使其结果更加客观有效。
1 潜在语义空间建立
在潜在语义空间中构造评分标准,并在此语义空间中计算每个演奏者的音乐水平与标准答案之间的语义关联,利用VSM(语音业务模块)表示主观音乐水平的标准答案,而在VSM模型内,一个选手的标准水平,能够看作是通过互相独立若干音乐构成的集合,就是SAj=(st1j,st2j,…,stmj)T,相对于每首音乐st1j,依据在标准答案水平内所隐藏的重要程度和隐含语义,赋予固定权值,标准答案的水平特征向量为(ωt1j,ωt2j,…,ωtmj)T,通过权重评价函数tf×idf对各个特征项权重进行定义[2],具体计算式为
(1)
式中,tfij表示项sti处于标准答案水平SAj内的频数,idfi=log(N/ni)表示项法反比水平频数,N表示比赛主观评价数量,ni表示项sti的水平频数,在音乐水平内全部主观比赛项目标准答案矩阵为
(2)
式中,ωtii表示第i行第i词项对每个主观评价水平答案贡献,而第j列表示第j个主观比赛项目标准答案SAj内的各个词项贡献。
通过潜在语义索引的方式,对比赛内全部项目标准答案进行构建—矩阵潜在的语义空间。采用奇异值(SVD)的分解方法,计算A的解[3],具体为
A=U∑VT
(3)
(4)
2 现场音乐比赛评分系统多模块化设计方案
2.1 评分系统多模块化结构
通常来说,现场音乐评分系统框架结构[5]包含3个部分,分别是特征类似度的匹配、提取音乐评分的特征以及构建标准数据库。
(1)构建标准数据库,依据音乐评分中提取到的特征,找出最佳提取所对应的标准音频特征,将其作为标准数据库,一般会利用MIDI音乐文件做对应特征提取,作为标准数据库。
(2)提取评分音乐特征,该部分是对音乐特征旋律进行提取,其中,包含音符切分、平滑处理以及特征估计等。
(3)数据库中的音频和需要评分的音乐进行特征匹配[6],观察二者相似的程度,实现对音乐的量化评估。
由于音乐评分系统需要准确、客观,所以要分析现场音乐的表演形式以及噪声等问题,使其具有良好鲁棒性特征。构建系统框架如图1所示。
图1 音乐评分系统框架结构图
2.2 音乐评分多模块化设计
音乐比赛的好坏是通过多方面确定的,例如情感表达、音强、音色、节奏、音准以及气息平稳度,不过最重要的是旋律,所以对于音乐评分,通常使用的是以旋律特征作为对比,音乐的独特性就是通过旋律所确定的,如果旋律出现了变化,那么歌曲自身也就会变成另外的歌曲。旋律则是通过音量、音长与音高此3种因素所构成的。通常对于旋律特征表示,容易忽略掉音量的影响,从而直接表示音长以及音高特征。旋律的特征包括2种,具体如下。
2.2.1 音符序列计算模块
音符的作用是来记录长短不同音的一种特殊符号,是作为西方音乐的基本元素,通过把音乐打散,变成最小的组成,利用音符的序列,表示音乐旋律内的音长以及音高,具体为
Note=[pitch,duration]
(5)
式中,pitch表示音高,duration表示音长。音高和发声体振动的频率相关;音长则是用来度量某一种音高持续的长度,采用四分音符作单位。
在音符的序列内,不会利用基本频率对音高进行表示,一般会利用MIDI(乐器数字接口)文件内的半音对音高进行表示[7],频率与Semitone存在对应的关系,具体计算式为
(6)
式中,freq(j)表示音符。
2.2.2 基音周期估计模块
自相关的函数可以对波形信号间的类似程度进行估计。把分帧音频进行平移至一小段,计算起始帧音频重叠部分的积,具体计算式为
(7)
式中,N表示每帧音频长度,Si(m)表示第i帧声音的信号,因为声音信号可以在短时间中存在周期性,同时周期恒定,会在时移k与声音的周期相等或者k是声音周期的整数倍时,Ri(k)会取极大值,计算信号自相关的函数,会标记区域的最大值和零点之间的间隔,就是声音的基本周期[8]。
在利用自相关的函数法估计基音周期时,会存在一个严重问题。随着偏移增大,k增大,这样会导致在式(7)内的求和项目变少,同时求和值也会减少,从而致使基音周期的估计出现不准确情况。针对该问题,需要利用归一化的自相关函数,即可消除因为求和项的减少带来的影响。具体计算式为
(8)
2.2.3 音符切分分析模块
利用音符序列对音乐旋律的评分系统进行表示,完成音高的序列提取后,同时还要进行音符切分操作,从而获取音符的序列[9]。
音符序列内的音符,能够被看成是连续不变的几个音高值,以此可以将音符切分的基本思想划分成合并连续相同的音高值。但实际音高估计结果中,连续音高的序列不会出现完全相等的情况,会具有很多的微小细节变化,因此需要对其进行平滑处理,在平滑处理之后,还要对其进行处理,以此来达到音符切分的效果。具体计算式为
(9)
式中,threshold表示阈值,当一个音符的半音跳跃等于或不超过音高范围的音高时,它被认为是同一个音符。因此,平均值应作为统一的节距值来计算。在通过处理之后,要进行音符切分,具体步骤如下。
(1)粗划分音高序列,通过将前后的音高值阈值以及差值大小进行对比,判断相邻两帧数据是否是相同音符,加序列即可划分成音高列段。
(2)把各个序列段内中值音高转变成半音值,将其作为音符,而统计持续的时间,将其作为音长。
(3)将全部音高序列进行合并,组成音符序列。
(4)对音符序列进行检查,对比邻近的音符Pitch数值差异,即可判断是否要进行合并。
通过上述几步,就能够对音符进行切分,从而获得精确的音符序列。
2.2.4 音乐特征匹配
提取旋律特征后,就会获得2种旋律的特征序列分别为音符序列与音高序列。
为了匹配所提取特征的旋律相似度,需要将数据库中的特征与旋律按照标准进行匹配,然后观察相似度来评价音乐的旋律。在匹配过程中,要注意以下几个问题:音高偏差,因为每个声带结构不同,所以歌唱水平也参差不齐。通常情况下,大量的人没有接受过专业的训练,所以对音高的绝对高度不应该有过高的要求,应该掌握整个音乐过程。对于演唱者在演唱歌曲时出现的音高变化,以及是否有很好的过渡,需要对提取的音高序列进行调整,并从音高序列中减去旋律的平均值。具体可以获得表达式为
x(n)=x(n)-Meanx(n)+Shift
(10)
式中,Meanx(n)表示该段旋律音高的平均值,在后面加上统一偏移量Shift,目的是防止音高序列内出现负数。
在旋律评分的框架中,加入新音高的序列提取方法,以此提升音高特征的提取精确性和对噪声的鲁棒性。具体评分过程如图2所示。
图2 音乐评分流程图
3 仿真实验
为了验证本文构建的音乐评分系统有效性,采用MATLAB进行仿真测试分析,音乐评分的统计样本数为2 000,迭代步数为180,稀疏度为0.24,采用Visual C++进行音乐评分的数据库模型构造,音乐信息采样的长度为1 048,相似度系数为0.26,根据上述参数设定,进行音乐评分。
首先需要构建评价因素,请有关专家、学者、音乐人等领域的3位有关人员参加评价,对设计的音乐评分系统各个模块的功能进行评价,设定评判等级指标为U={A,B,C,D,E}。其中:A代表非常好,分数等级为(80,100];B代表良好,分数等级为(60,80];C代表一般,分数等级为(40,60];D代表较差,分数等级为(20,40];E代表非常差,分数等级为(0,20]。分别统计音符序列计算模块a1、基音周期估计模块a2、音符切分分析模块a3、音乐特征匹配a4等4个部分的评价结果如表1所示。
表1 评分指标隶属度
分析表1数据可知,关于统计音符序列计算模块a1的评分,30%的参评人员评级为A,40%的参评人员评级为B,20%的参评人员评级为C,10%的参评人员评级为D,没有参评人员评级为E。从而得到a1的评价结果为(0.3,0.4,0.2,0.1,0)。a2、a3、a4的评价结果同上分析过程。在构建等级模糊子集之后,由于各个因素ai(i=1,2,3,4)较多,运用多级模型求解,将评价因素分为2个子系统,获取对应的单因素评价模糊矩阵R1和R2,具体计算式为
(11)
选择3位选手作为实验人员,其中:选手一为受过音乐的专业训练,登台演唱过一些音乐;选手二为业余选手,喜爱音乐;选手三为对音乐完全没有兴趣,也很少唱歌。演唱同一首歌曲,时间设置为整首歌曲的时间。
选择3位专业的评委对3位实验人员进行评分,为了保证数据的有效性,现场的环境要从开始至结束保持不变,并将评委的评分数据与系统的评分数据进行对比,以此来观察构建的系统效果。具体结果如表2~表4所示。
表2 选手一的评分数据对比
表3 选手二的评分数据对比
表4 选手三的评分数据对比
通过观察表2~表4的评分数据,将本文系统与3位评委的平均分数进行对比,利用Origin绘制结果如图3所示。
图3 评委与本文系统评分对比结果
由图3可知,本文系统的评分结果:选手一的平均分为84分,演唱水平优秀;选手二的平均分为63.28分,演唱水平良好;选手三平均分为48.93,演唱水平较差。这在一定程度上能够满足音乐比赛的评分需求,符合人们主观的感受,且客观性更强。
4 总结
本文提出的语义相关性数据库构建下音乐比赛评分方法多模块化设计方案,在实际现场音乐比赛评分中,不仅结果与人工偏差较小,评分结果符合人们喜爱音乐的主观感受。但由于音乐形式发展以及社会的进步,人们对于音乐的种类以及喜爱方式都会有所不同,乐器也会出现更新的情况,难免出现由于样本不足,导致系统评分结果不符合现实需求,为此今后研究方向为添加神经网络,保证评分结果不陷入局部最优,提升系统适用性。