張學(xué)旗
(臺(tái)州學(xué)院, 藝術(shù)與設(shè)計(jì)學(xué)院,浙江,臺(tái)州 318000)
語(yǔ)義分析是編譯過程中的一個(gè)邏輯階段,其任務(wù)是對(duì)審查結(jié)構(gòu)上正確的源程序進(jìn)行上下文有關(guān)性質(zhì)審查,目的是審查源程序是否存在語(yǔ)義錯(cuò)誤,從而為代碼的生成階段收集類型信息。例如語(yǔ)義分析的工作是實(shí)現(xiàn)類型審查,對(duì)各個(gè)算符進(jìn)行審查,觀察是否存在語(yǔ)言規(guī)范所允許的運(yùn)算對(duì)象,在不符合語(yǔ)言的規(guī)范時(shí),編譯程序報(bào)告錯(cuò)誤。它也是編譯程序中最有實(shí)質(zhì)性的工作,解釋源程序語(yǔ)義,從而引發(fā)源程序的質(zhì)變化[1]。
音樂是利用組織音所構(gòu)成的一種聽覺意象,所以可以用來(lái)表述社會(huì)現(xiàn)實(shí)生活以及思想感情的一種藝術(shù)形式,也是最能夠即時(shí)打動(dòng)人的藝術(shù)形式之一。同時(shí),音樂也是由很多復(fù)雜元素構(gòu)成的,所以在進(jìn)行比賽時(shí),人工評(píng)委很有可能會(huì)出現(xiàn)判斷錯(cuò)誤的情況,為此本文提出一種語(yǔ)義相關(guān)性數(shù)據(jù)庫(kù)構(gòu)建下音樂比賽評(píng)分方法多模塊化設(shè)計(jì),主要是為了系統(tǒng)化地對(duì)音樂選手進(jìn)行評(píng)分,使其結(jié)果更加客觀有效。
在潛在語(yǔ)義空間中構(gòu)造評(píng)分標(biāo)準(zhǔn),并在此語(yǔ)義空間中計(jì)算每個(gè)演奏者的音樂水平與標(biāo)準(zhǔn)答案之間的語(yǔ)義關(guān)聯(lián),利用VSM(語(yǔ)音業(yè)務(wù)模塊)表示主觀音樂水平的標(biāo)準(zhǔn)答案,而在VSM模型內(nèi),一個(gè)選手的標(biāo)準(zhǔn)水平,能夠看作是通過互相獨(dú)立若干音樂構(gòu)成的集合,就是SAj=(st1j,st2j,…,stmj)T,相對(duì)于每首音樂st1j,依據(jù)在標(biāo)準(zhǔn)答案水平內(nèi)所隱藏的重要程度和隱含語(yǔ)義,賦予固定權(quán)值,標(biāo)準(zhǔn)答案的水平特征向量為(ωt1j,ωt2j,…,ωtmj)T,通過權(quán)重評(píng)價(jià)函數(shù)tf×idf對(duì)各個(gè)特征項(xiàng)權(quán)重進(jìn)行定義[2],具體計(jì)算式為
(1)
式中,tfij表示項(xiàng)sti處于標(biāo)準(zhǔn)答案水平SAj內(nèi)的頻數(shù),idfi=log(N/ni)表示項(xiàng)法反比水平頻數(shù),N表示比賽主觀評(píng)價(jià)數(shù)量,ni表示項(xiàng)sti的水平頻數(shù),在音樂水平內(nèi)全部主觀比賽項(xiàng)目標(biāo)準(zhǔn)答案矩陣為
(2)
式中,ωtii表示第i行第i詞項(xiàng)對(duì)每個(gè)主觀評(píng)價(jià)水平答案貢獻(xiàn),而第j列表示第j個(gè)主觀比賽項(xiàng)目標(biāo)準(zhǔn)答案SAj內(nèi)的各個(gè)詞項(xiàng)貢獻(xiàn)。
通過潛在語(yǔ)義索引的方式,對(duì)比賽內(nèi)全部項(xiàng)目標(biāo)準(zhǔn)答案進(jìn)行構(gòu)建—矩陣潛在的語(yǔ)義空間。采用奇異值(SVD)的分解方法,計(jì)算A的解[3],具體為
A=U∑VT
(3)
(4)
通常來(lái)說,現(xiàn)場(chǎng)音樂評(píng)分系統(tǒng)框架結(jié)構(gòu)[5]包含3個(gè)部分,分別是特征類似度的匹配、提取音樂評(píng)分的特征以及構(gòu)建標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)。
(1)構(gòu)建標(biāo)準(zhǔn)數(shù)據(jù)庫(kù),依據(jù)音樂評(píng)分中提取到的特征,找出最佳提取所對(duì)應(yīng)的標(biāo)準(zhǔn)音頻特征,將其作為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù),一般會(huì)利用MIDI音樂文件做對(duì)應(yīng)特征提取,作為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)。
(2)提取評(píng)分音樂特征,該部分是對(duì)音樂特征旋律進(jìn)行提取,其中,包含音符切分、平滑處理以及特征估計(jì)等。
(3)數(shù)據(jù)庫(kù)中的音頻和需要評(píng)分的音樂進(jìn)行特征匹配[6],觀察二者相似的程度,實(shí)現(xiàn)對(duì)音樂的量化評(píng)估。
由于音樂評(píng)分系統(tǒng)需要準(zhǔn)確、客觀,所以要分析現(xiàn)場(chǎng)音樂的表演形式以及噪聲等問題,使其具有良好魯棒性特征。構(gòu)建系統(tǒng)框架如圖1所示。
圖1 音樂評(píng)分系統(tǒng)框架結(jié)構(gòu)圖
音樂比賽的好壞是通過多方面確定的,例如情感表達(dá)、音強(qiáng)、音色、節(jié)奏、音準(zhǔn)以及氣息平穩(wěn)度,不過最重要的是旋律,所以對(duì)于音樂評(píng)分,通常使用的是以旋律特征作為對(duì)比,音樂的獨(dú)特性就是通過旋律所確定的,如果旋律出現(xiàn)了變化,那么歌曲自身也就會(huì)變成另外的歌曲。旋律則是通過音量、音長(zhǎng)與音高此3種因素所構(gòu)成的。通常對(duì)于旋律特征表示,容易忽略掉音量的影響,從而直接表示音長(zhǎng)以及音高特征。旋律的特征包括2種,具體如下。
2.2.1 音符序列計(jì)算模塊
音符的作用是來(lái)記錄長(zhǎng)短不同音的一種特殊符號(hào),是作為西方音樂的基本元素,通過把音樂打散,變成最小的組成,利用音符的序列,表示音樂旋律內(nèi)的音長(zhǎng)以及音高,具體為
Note=[pitch,duration]
(5)
式中,pitch表示音高,duration表示音長(zhǎng)。音高和發(fā)聲體振動(dòng)的頻率相關(guān);音長(zhǎng)則是用來(lái)度量某一種音高持續(xù)的長(zhǎng)度,采用四分音符作單位。
在音符的序列內(nèi),不會(huì)利用基本頻率對(duì)音高進(jìn)行表示,一般會(huì)利用MIDI(樂器數(shù)字接口)文件內(nèi)的半音對(duì)音高進(jìn)行表示[7],頻率與Semitone存在對(duì)應(yīng)的關(guān)系,具體計(jì)算式為
(6)
式中,freq(j)表示音符。
2.2.2 基音周期估計(jì)模塊
自相關(guān)的函數(shù)可以對(duì)波形信號(hào)間的類似程度進(jìn)行估計(jì)。把分幀音頻進(jìn)行平移至一小段,計(jì)算起始幀音頻重疊部分的積,具體計(jì)算式為
(7)
式中,N表示每幀音頻長(zhǎng)度,Si(m)表示第i幀聲音的信號(hào),因?yàn)槁曇粜盘?hào)可以在短時(shí)間中存在周期性,同時(shí)周期恒定,會(huì)在時(shí)移k與聲音的周期相等或者k是聲音周期的整數(shù)倍時(shí),Ri(k)會(huì)取極大值,計(jì)算信號(hào)自相關(guān)的函數(shù),會(huì)標(biāo)記區(qū)域的最大值和零點(diǎn)之間的間隔,就是聲音的基本周期[8]。
在利用自相關(guān)的函數(shù)法估計(jì)基音周期時(shí),會(huì)存在一個(gè)嚴(yán)重問題。隨著偏移增大,k增大,這樣會(huì)導(dǎo)致在式(7)內(nèi)的求和項(xiàng)目變少,同時(shí)求和值也會(huì)減少,從而致使基音周期的估計(jì)出現(xiàn)不準(zhǔn)確情況。針對(duì)該問題,需要利用歸一化的自相關(guān)函數(shù),即可消除因?yàn)榍蠛晚?xiàng)的減少帶來(lái)的影響。具體計(jì)算式為
(8)
2.2.3 音符切分分析模塊
利用音符序列對(duì)音樂旋律的評(píng)分系統(tǒng)進(jìn)行表示,完成音高的序列提取后,同時(shí)還要進(jìn)行音符切分操作,從而獲取音符的序列[9]。
音符序列內(nèi)的音符,能夠被看成是連續(xù)不變的幾個(gè)音高值,以此可以將音符切分的基本思想劃分成合并連續(xù)相同的音高值。但實(shí)際音高估計(jì)結(jié)果中,連續(xù)音高的序列不會(huì)出現(xiàn)完全相等的情況,會(huì)具有很多的微小細(xì)節(jié)變化,因此需要對(duì)其進(jìn)行平滑處理,在平滑處理之后,還要對(duì)其進(jìn)行處理,以此來(lái)達(dá)到音符切分的效果。具體計(jì)算式為
(9)
式中,threshold表示閾值,當(dāng)一個(gè)音符的半音跳躍等于或不超過音高范圍的音高時(shí),它被認(rèn)為是同一個(gè)音符。因此,平均值應(yīng)作為統(tǒng)一的節(jié)距值來(lái)計(jì)算。在通過處理之后,要進(jìn)行音符切分,具體步驟如下。
(1)粗劃分音高序列,通過將前后的音高值閾值以及差值大小進(jìn)行對(duì)比,判斷相鄰兩幀數(shù)據(jù)是否是相同音符,加序列即可劃分成音高列段。
(2)把各個(gè)序列段內(nèi)中值音高轉(zhuǎn)變成半音值,將其作為音符,而統(tǒng)計(jì)持續(xù)的時(shí)間,將其作為音長(zhǎng)。
(3)將全部音高序列進(jìn)行合并,組成音符序列。
(4)對(duì)音符序列進(jìn)行檢查,對(duì)比鄰近的音符Pitch數(shù)值差異,即可判斷是否要進(jìn)行合并。
通過上述幾步,就能夠?qū)σ舴M(jìn)行切分,從而獲得精確的音符序列。
2.2.4 音樂特征匹配
提取旋律特征后,就會(huì)獲得2種旋律的特征序列分別為音符序列與音高序列。
為了匹配所提取特征的旋律相似度,需要將數(shù)據(jù)庫(kù)中的特征與旋律按照標(biāo)準(zhǔn)進(jìn)行匹配,然后觀察相似度來(lái)評(píng)價(jià)音樂的旋律。在匹配過程中,要注意以下幾個(gè)問題:音高偏差,因?yàn)槊總€(gè)聲帶結(jié)構(gòu)不同,所以歌唱水平也參差不齊。通常情況下,大量的人沒有接受過專業(yè)的訓(xùn)練,所以對(duì)音高的絕對(duì)高度不應(yīng)該有過高的要求,應(yīng)該掌握整個(gè)音樂過程。對(duì)于演唱者在演唱歌曲時(shí)出現(xiàn)的音高變化,以及是否有很好的過渡,需要對(duì)提取的音高序列進(jìn)行調(diào)整,并從音高序列中減去旋律的平均值。具體可以獲得表達(dá)式為
x(n)=x(n)-Meanx(n)+Shift
(10)
式中,Meanx(n)表示該段旋律音高的平均值,在后面加上統(tǒng)一偏移量Shift,目的是防止音高序列內(nèi)出現(xiàn)負(fù)數(shù)。
在旋律評(píng)分的框架中,加入新音高的序列提取方法,以此提升音高特征的提取精確性和對(duì)噪聲的魯棒性。具體評(píng)分過程如圖2所示。
圖2 音樂評(píng)分流程圖
為了驗(yàn)證本文構(gòu)建的音樂評(píng)分系統(tǒng)有效性,采用MATLAB進(jìn)行仿真測(cè)試分析,音樂評(píng)分的統(tǒng)計(jì)樣本數(shù)為2 000,迭代步數(shù)為180,稀疏度為0.24,采用Visual C++進(jìn)行音樂評(píng)分的數(shù)據(jù)庫(kù)模型構(gòu)造,音樂信息采樣的長(zhǎng)度為1 048,相似度系數(shù)為0.26,根據(jù)上述參數(shù)設(shè)定,進(jìn)行音樂評(píng)分。
首先需要構(gòu)建評(píng)價(jià)因素,請(qǐng)有關(guān)專家、學(xué)者、音樂人等領(lǐng)域的3位有關(guān)人員參加評(píng)價(jià),對(duì)設(shè)計(jì)的音樂評(píng)分系統(tǒng)各個(gè)模塊的功能進(jìn)行評(píng)價(jià),設(shè)定評(píng)判等級(jí)指標(biāo)為U={A,B,C,D,E}。其中:A代表非常好,分?jǐn)?shù)等級(jí)為(80,100];B代表良好,分?jǐn)?shù)等級(jí)為(60,80];C代表一般,分?jǐn)?shù)等級(jí)為(40,60];D代表較差,分?jǐn)?shù)等級(jí)為(20,40];E代表非常差,分?jǐn)?shù)等級(jí)為(0,20]。分別統(tǒng)計(jì)音符序列計(jì)算模塊a1、基音周期估計(jì)模塊a2、音符切分分析模塊a3、音樂特征匹配a4等4個(gè)部分的評(píng)價(jià)結(jié)果如表1所示。
表1 評(píng)分指標(biāo)隸屬度
分析表1數(shù)據(jù)可知,關(guān)于統(tǒng)計(jì)音符序列計(jì)算模塊a1的評(píng)分,30%的參評(píng)人員評(píng)級(jí)為A,40%的參評(píng)人員評(píng)級(jí)為B,20%的參評(píng)人員評(píng)級(jí)為C,10%的參評(píng)人員評(píng)級(jí)為D,沒有參評(píng)人員評(píng)級(jí)為E。從而得到a1的評(píng)價(jià)結(jié)果為(0.3,0.4,0.2,0.1,0)。a2、a3、a4的評(píng)價(jià)結(jié)果同上分析過程。在構(gòu)建等級(jí)模糊子集之后,由于各個(gè)因素ai(i=1,2,3,4)較多,運(yùn)用多級(jí)模型求解,將評(píng)價(jià)因素分為2個(gè)子系統(tǒng),獲取對(duì)應(yīng)的單因素評(píng)價(jià)模糊矩陣R1和R2,具體計(jì)算式為
(11)
選擇3位選手作為實(shí)驗(yàn)人員,其中:選手一為受過音樂的專業(yè)訓(xùn)練,登臺(tái)演唱過一些音樂;選手二為業(yè)余選手,喜愛音樂;選手三為對(duì)音樂完全沒有興趣,也很少唱歌。演唱同一首歌曲,時(shí)間設(shè)置為整首歌曲的時(shí)間。
選擇3位專業(yè)的評(píng)委對(duì)3位實(shí)驗(yàn)人員進(jìn)行評(píng)分,為了保證數(shù)據(jù)的有效性,現(xiàn)場(chǎng)的環(huán)境要從開始至結(jié)束保持不變,并將評(píng)委的評(píng)分?jǐn)?shù)據(jù)與系統(tǒng)的評(píng)分?jǐn)?shù)據(jù)進(jìn)行對(duì)比,以此來(lái)觀察構(gòu)建的系統(tǒng)效果。具體結(jié)果如表2~表4所示。
表2 選手一的評(píng)分?jǐn)?shù)據(jù)對(duì)比
表3 選手二的評(píng)分?jǐn)?shù)據(jù)對(duì)比
表4 選手三的評(píng)分?jǐn)?shù)據(jù)對(duì)比
通過觀察表2~表4的評(píng)分?jǐn)?shù)據(jù),將本文系統(tǒng)與3位評(píng)委的平均分?jǐn)?shù)進(jìn)行對(duì)比,利用Origin繪制結(jié)果如圖3所示。
圖3 評(píng)委與本文系統(tǒng)評(píng)分對(duì)比結(jié)果
由圖3可知,本文系統(tǒng)的評(píng)分結(jié)果:選手一的平均分為84分,演唱水平優(yōu)秀;選手二的平均分為63.28分,演唱水平良好;選手三平均分為48.93,演唱水平較差。這在一定程度上能夠滿足音樂比賽的評(píng)分需求,符合人們主觀的感受,且客觀性更強(qiáng)。
本文提出的語(yǔ)義相關(guān)性數(shù)據(jù)庫(kù)構(gòu)建下音樂比賽評(píng)分方法多模塊化設(shè)計(jì)方案,在實(shí)際現(xiàn)場(chǎng)音樂比賽評(píng)分中,不僅結(jié)果與人工偏差較小,評(píng)分結(jié)果符合人們喜愛音樂的主觀感受。但由于音樂形式發(fā)展以及社會(huì)的進(jìn)步,人們對(duì)于音樂的種類以及喜愛方式都會(huì)有所不同,樂器也會(huì)出現(xiàn)更新的情況,難免出現(xiàn)由于樣本不足,導(dǎo)致系統(tǒng)評(píng)分結(jié)果不符合現(xiàn)實(shí)需求,為此今后研究方向?yàn)樘砑由窠?jīng)網(wǎng)絡(luò),保證評(píng)分結(jié)果不陷入局部最優(yōu),提升系統(tǒng)適用性。