摘要:
現(xiàn)階段的聲樂教學面臨的教師資源短缺日益嚴重,因此利用計算機輔助教學功能開發(fā)一款聲樂教學系統(tǒng)顯得尤為重要。首先,根據(jù)計算機神經(jīng)網(wǎng)絡(luò)技術(shù)原理對系統(tǒng)的算法流程進行了詳細設(shè)計,利用傅里葉變換及其改進函數(shù)對聲樂的演奏特征進行提取,根據(jù)系統(tǒng)框架結(jié)構(gòu)和數(shù)據(jù)處理流程對系統(tǒng)的重點模塊進行設(shè)計,并給出了關(guān)鍵設(shè)計代碼,最后以鋼琴演奏為例,選取了不同鋼筋等級的演奏者對系統(tǒng)評判準確性進行測試,測試結(jié)果表明該系統(tǒng)能反映表演者的真實水平,有利于聲樂教學。
關(guān)鍵詞:
神經(jīng)網(wǎng)絡(luò); 聲樂演奏; 系統(tǒng); 評價; 教學
中圖分類號: G 643
文獻標志碼: A
Research on Vocal Music Performance Evaluation System Based on
Neural Network and Its Application in Piano Teaching
HE Hongyan
(Department of Pop Music, Shanxi Vocational Academy of Art, Xian, Shanxi 710054, China)
Abstract:
At present, vocal music teaching is facing on a growing shortage of teacher resources, so it is particularly important to develop a vocal music teaching system by using the computeraided teaching function. First of all, according to the principle of computer neural network technology, the algorithm flow of the system is designed in detail, the performance characteristics of vocal music are extracted by using Fourier transform and its improved function, the key modules of the system are designed according to the system frame structure and data processing flow, and the key design codes are given. Finally, taking piano performance as an example, performers withdifferent grades are selected to test the accuracy of the system evaluation, and the test results show that the system can reflect the real level of the performer, which is conducive to vocal music teaching.
Key words:
neural network; vocal music performance; system; evaluation; teaching
0引言
隨著我國經(jīng)濟的發(fā)展,居民生活水平日益提高,在物質(zhì)生活得到大幅度改善的同時,人們的精神生活也在不斷充實[1]。鋼琴演奏作為陶冶情操的一種重要手段受到眾多人追捧,學員人數(shù)眾多,而現(xiàn)階段,我國鋼琴演奏的教學者人數(shù)卻極為稀少,加之鋼琴教學需采用一對一的教學方式,加之鋼琴教學對環(huán)境、時間要求等因素,使得鋼琴普及率并不高[25]。因此針對鋼琴學習開發(fā)一款聲樂演奏評價系統(tǒng)并利用計算機的自動識別技術(shù),自動記錄學員的演奏信息,并利用系統(tǒng)內(nèi)已存樂曲信息對比,對學員的鋼琴演奏效果進行點評,找到演奏中的不足顯得尤為重要。該系統(tǒng)不僅在一定程度代替老師的教學工作,同時該系統(tǒng)還可對相關(guān)專業(yè)人員進行音樂創(chuàng)作有一定的輔助作用。
1神經(jīng)網(wǎng)絡(luò)技術(shù)研究
計算機神經(jīng)網(wǎng)絡(luò)技術(shù)是根據(jù)人體的神經(jīng)網(wǎng)絡(luò)原理產(chǎn)生的信息處理系統(tǒng)。BP(Back Propagation)網(wǎng)絡(luò)是目前最流行的神經(jīng)網(wǎng)絡(luò)技術(shù),它能夠?qū)W習并存儲輸入—輸出關(guān)系型映射[68]。按照功能和作用機理的不同,該網(wǎng)絡(luò)技術(shù)的學習模型包括輸入層、隱層和輸出層三個層級[9],其結(jié)構(gòu)示意如圖1所示。
假設(shè)輸入層節(jié)點個數(shù)為n,隱層節(jié)點個數(shù)為q,輸出層節(jié)點個數(shù)為m,輸入層至隱層間權(quán)值為vki,轉(zhuǎn)換關(guān)系用f1表示,隱層至輸出層間權(quán)值為wjk,轉(zhuǎn)換關(guān)系用f2表示,則由輸入層至隱層的轉(zhuǎn)換可用式(1)表示,由隱層至輸出層的轉(zhuǎn)換如式(1)。
式中:zk為輸入層轉(zhuǎn)換至隱層后的值,xi為輸入層值,i為1到n的整數(shù)如式(2)。
式中:yj為隱層轉(zhuǎn)換至輸出層后的值,k為1到m的整數(shù)。
網(wǎng)絡(luò)結(jié)構(gòu)中的誤差可用式(3)計算,如式(3)。
式中:e為計算誤差,y為隱含層平均值。
根據(jù)以上轉(zhuǎn)換規(guī)則,得到了計算機中BP神經(jīng)網(wǎng)絡(luò)算法流程,如圖2所示。
2聲樂特征提取技術(shù)
2.1音樂特征提取
音樂特征提取是評價系統(tǒng)中最為重要的內(nèi)容。音樂特征提取的準確性和科學性決定了系統(tǒng)信號識別的準確性和評價結(jié)果客觀與否,因此必須對聲樂特征提取進行系統(tǒng)分析。
音樂特征識別是一個將音樂素材轉(zhuǎn)變成電子信號的過程[10]。識別的基礎(chǔ)是音樂特征的采集,本文選取了4架鋼琴并分為不同制式,采用不同的演奏方法和彈奏力度,并包含了各個音區(qū),將采集到的音樂信息通過傅里葉變化得到不用音的時域波形和頻域波形,傅里葉變換公式如式(4),圖3為提取后的波形圖。
式中:v0為弦的初始運動速度,a為振動加速度,t為振動時間,l為弦長,δ為擊打的半寬度。
2.2提取后處理
分析圖3的波形圖可以發(fā)現(xiàn),提取后的音樂特征與實際值之間存在一定差距,電子音樂與實際音頻之間關(guān)系不能完全對應,因此有必要對提取后的波形處理使其與真實值更為接近。根據(jù)相關(guān)研究[1014],鋼琴的音高取決于基頻的大小,鋼琴的音色取決于倍頻的大小,鋼琴的音色受提取的頻譜中前五個峰值范圍內(nèi)的波形及五個峰值間的相互相對大小影響。因此必須對提取公式重新修正,從波形影響因素出發(fā),構(gòu)建了式(5)所示的修正公式,根據(jù)修正公式對提取波形進行修改,并依據(jù)公式(5)對圖3做出修改,修改后圖像如圖4所示。
式中:S(ω)為修改后的振動縱坐標值,α1為調(diào)節(jié)波形峰值附近波形曲線的參數(shù)值,
A為振幅,ωt為指定音頻或倍頻。
3系統(tǒng)設(shè)計與應用
3.1評價系統(tǒng)構(gòu)件
聲樂演奏評價系統(tǒng)是利用計算機的識別技術(shù)判斷演奏者的演奏效果,并按照嚴謹?shù)挠嬎銠C邏輯和預先制定的演奏標準對于演奏表演打分。系統(tǒng)會根據(jù)不同樂曲,事先將樂曲轉(zhuǎn)化成電子信息,演奏者在系統(tǒng)內(nèi)演奏的樂譜經(jīng)濾波處理后被提取音樂特征,經(jīng)過電子樂譜與演奏者樂譜信息比較,最后輸出比較結(jié)果并打分,其結(jié)構(gòu)框架如圖5所示。
根據(jù)系統(tǒng)框架結(jié)構(gòu),從系統(tǒng)內(nèi)部數(shù)據(jù)的處理順序出發(fā),按照系統(tǒng)的工作原理和工作順序,繪制了系統(tǒng)流程如圖6所示。
系統(tǒng)會將樂譜預處理并以電子信息形式存儲,演奏者樂譜信息經(jīng)過音樂特征提取并整理后與存儲的樂譜信息比較,最后依據(jù)比較結(jié)果評分并輸出評分結(jié)果。
相關(guān)提取模塊是系統(tǒng)實現(xiàn)的基礎(chǔ),并在上文中給出了提取公式,本章重點分析匹配比較模塊。該模塊的功能是對表演信息與表演樂譜的比較,以判斷表演者和樂譜的相似程度,找出二者間的差距。比較分為兩部分,一部分為演奏特征和電子樂譜的定性比較,判斷彈奏的準確性,另一部分為系統(tǒng)根據(jù)演奏結(jié)果與實際樂譜的定量對比并給出演奏分數(shù)。演奏準確性界面,如圖7所示。
界面中藍線表示彈奏者彈奏的音節(jié),一旦與樂譜出現(xiàn)差異部分,藍線會變成紅色,模塊的部分代碼如下。
提取模塊關(guān)鍵代碼:
//OnEventInput函數(shù)部分代碼
//_noteMgr為標準音管理NoteManager類的實例,實例化時候從課程信息類里
//獲得曲譜信息作為構(gòu)造參數(shù),并根據(jù)曲譜的小節(jié)、旋律、和弦信息對標準音歸類。
//Note類存儲標準音的信息,包括音高、大小、開始、結(jié)束等音的屬性。
Note curNote=NULL;
if (evt.command=90H)//當Midi消息為按下鍵時
curNote_noteMgr.getCurrentNote(true);//curNode為當前時間段內(nèi)標準音(開始發(fā)音)
else if (evt.command==80H)//當Midi消息為釋放鍵時
//curNode為當前時間段內(nèi)標準音(結(jié)束發(fā)音)
curNote_noteMgr.getCurrentNote(false);
//由系統(tǒng)時間和彈奏開始的時間換算得出當前的絕對時間
LONG curtime=getCurrentTime();
if (curNote!=NULL && abs(curNote.positionurtime) //limit time為判斷錯音的限制時間 //確定當前Midi消息的絕對時間 evt.position=curtime; //當前Midi消息與標準音對應,當對應數(shù)超過兩個則進行和弦判斷 curNote.attach(evt); //如果Midi信號超過限制時間,則認為這個鍵彈錯,即最壞的結(jié)果。 得到每個標準音Note對應的信息后,就可以根據(jù)小節(jié)、旋律的歸類計算神經(jīng)網(wǎng)絡(luò)模型的輸 //得到以記為標號的小節(jié)的節(jié)奏特性 float getSegmentRhythmValue (int id) { int noteNum=noteMgr>getSegmentNum(id);//小節(jié)的單符數(shù)量 value=0; for(int i=0;i { //按照小節(jié)編號獲得音 Note*note=_noteMgr>getSegmentNote(id,i); //計算標準音和Midi信號時長的差值 value+=note>CalculateRhythm(); } //startMidiEvent和endMidiEvent是Midi信號實例,如果在彈奏的時候沒有加入,則以默認的 float Note::ClculateRhythm() { return abs(_startTime-startMidiEvent.position) +abs(endTime-endMidiEvent.position); 系統(tǒng)中定量對比是調(diào)式調(diào)性、觸鍵、時值音高和速度的綜合結(jié)果。其中調(diào)式調(diào)性占評判總分的30%,觸鍵占評判總分的20%,時值音高占評判總分的30%,速度占評判總分的20%。模塊的關(guān)鍵代碼如下,模塊界面如圖8所示。 定量評價模塊關(guān)鍵代碼: //segmentMgr for(int i=0;i<_segmentMgr>getSegmentNum;i++)//循環(huán)次數(shù)為小節(jié)數(shù)量 { //rhythmInput為輸入節(jié)奏數(shù)據(jù)數(shù)組,類型為float rhythmInput[i]=_segmentMgr.getSegmentRhythmValue(i); //}itchInput為音高數(shù)據(jù)數(shù)組,實際上表示小節(jié)內(nèi)的錯音數(shù) }itchInput[i]=_segmentMgr.getSegmentPitchValue(i); //_metronomeInput為節(jié)拍數(shù)據(jù)數(shù)組 metronomeInput[i]=_segmentMgr.getSegmentmetronomeValue(i); } //同樣的方法可以獲得和弦和旋律輸入數(shù)據(jù),然后進行數(shù)據(jù)歸一化處理 for(i=0;i<_segmentMge>getSegmentNum;}i++)//輸入小節(jié)神經(jīng)網(wǎng)絡(luò)數(shù)據(jù) { BPNetVPork.SetInput(i*3+0,rhythmInput[i])://節(jié)奏 BPNetWork.SetInput(i*3+1,}itchInput[i]);//音高 BPNetWork.SetInput(i*3+2,metronomeInput[i]);//節(jié)拍 } //同樣的方法可以輸入神經(jīng)網(wǎng)絡(luò)和弦和旋律數(shù)據(jù) BPNetWork.FeedForward();//向前計算評價值 GetOutput();//獲得評價輸出值 3.2系統(tǒng)應用分析 系統(tǒng)完成后對其應用效果進行了試驗驗證。對于同一首樂譜分別選取了三位演奏者進行表演,其中一位是鋼琴教師,學生1為鋼琴8級別,學生2為鋼琴7級,三位演奏者演奏完成后分數(shù),如表1所示。 從表中可以發(fā)現(xiàn),無論是在演奏中的單次得分,還是多次演奏的平均分,在系統(tǒng)中得分由高到低分別為教師、學生1和學生2,與三位演奏者的真實鋼琴水平相比,此分數(shù)排名能夠客觀上反映表演者的演奏水平。因此系統(tǒng)在緩解聲樂教學資源不足和提高學生自主學習方面具有一定的借鑒意義。 4總結(jié) 在計算機技術(shù)日益發(fā)展的今天,如何將信息化技術(shù)帶入到鋼琴教學中一直是一個熱點問題。本文用計算機神經(jīng)網(wǎng)絡(luò)信息系統(tǒng),以評價聲樂演奏者的表演水平為目標,開發(fā)了一款聲樂表演評價系統(tǒng),并將其應用于鋼琴教學中。本文的研究主要得出了以下結(jié)論: (1)根據(jù)計算機神經(jīng)網(wǎng)絡(luò)內(nèi)在邏輯關(guān)系,對系統(tǒng)網(wǎng)絡(luò)算法流程進行設(shè)計,并將該算法應用于系統(tǒng)構(gòu)建中。 (2)音樂特征提取是系統(tǒng)的關(guān)鍵環(huán)節(jié),本文依據(jù)傅里葉變換將演奏者的聲音信息轉(zhuǎn)變成計算機能夠識別的波形圖,并根據(jù)轉(zhuǎn)變特點對圖像加以修正,結(jié)果表明修正后的音樂特征與演奏者實際音樂特征相符。 (3)對系統(tǒng)框架和關(guān)鍵模塊進行了設(shè)計研究,并給出了部分程序代碼,最后選取了三位表演者對系統(tǒng)的評價效果進行分析,結(jié)果表明該系統(tǒng)能反映演奏者的真實水平,能發(fā)現(xiàn)演奏者的不足,有利于鋼琴教學的開展。 參考文獻 [1]郭峰,錢黎明,沈煜,等.吉他演奏機器人的機械結(jié)構(gòu)設(shè)計[J].機械設(shè)計與制造,2020(1):248250. [2]秦鍵, 許舒亞.管弦樂作品中的電子聲學理念——以《夕陽、水晶》為例[J].星海音樂學院學報,2019(3):93104. [3]孟慶林,原猛,夏洋,等.幅度調(diào)制信息對樂器識別的影響[J].聲學學報,2015,40(2):300306. [4]曹莎莎,吳永忠,程文娟.鋼琴樂聲仿真頻譜模型研究[J].電子測量與儀器學報,2017,31(1):125131. [5]萬景.基于樂器演奏的樂音識別系統(tǒng)的研究[J].人民音樂,2011(11):3335. [6]張承忠,葉邦彥,梁立東,等.小提琴弓弦系統(tǒng)的振動形態(tài)及振動機理研究[J].振動工程學報,2015,28(3):359365. [7]徐儀,劉涓涓.頻譜音樂的歷史淵源、創(chuàng)作實質(zhì)與美學態(tài)度[J].黃鐘(武漢音樂學院學報),2017(3):412. [8]張琳,王珊,秦曉瑜,等.基于聽覺仿生模型的樂器識別[J].東北師大學報(自然科學版),2014,46(1):7579. [9]彭其圣,彭建盛,徐詠.基于PSoC3的多功能電子琴設(shè)計與實現(xiàn)[J].制造業(yè)自動化,2012,34(19):116118. [10]李笑珂.基于樂器學理論的河南特色劇種樂器音色數(shù)據(jù)庫的構(gòu)建研究[J].音樂創(chuàng)作,2016(11):193194. [11]陶珂.高師聲樂集體課教學目標與評價的多元化研究[J].教育與職業(yè),2012(30):180181. [12]楊艷.器樂課程教學評價研究[J].大舞臺,2013(5):159160. [13]張軼.高師聲樂教學評價標準體系的研究[J].人民論壇,2015(33):163164. [14]李子晉,付曉東,朱嘉星.民族低音拉弦樂器改良中音質(zhì)評價實驗方法研究[J].中國音樂,2018(3):157163. (收稿日期: 2020.03.11) 作者簡介:何鴻雁(1980),女,碩士,講師,研究方向:聲樂、音樂教育。 文章編號:1007757X(2020)08012504