胡麗敏 桂 浩 杜佶峻 湯健雄 陳開一
1(武漢音樂學(xué)院 湖北 武漢 430060)2(武漢大學(xué) 湖北 武漢 430072)
自動音樂轉(zhuǎn)錄(Automatic Music Transcription, AMT)是將聲學(xué)音樂信號轉(zhuǎn)換為音樂符號的過程[7]。AMT 作為音樂領(lǐng)域內(nèi)的一項新興技術(shù),不僅可以直接用于實現(xiàn)音頻到音樂符號表示的轉(zhuǎn)換,還能在樂曲匹配、哼唱識別等領(lǐng)域提供重要的技術(shù)支撐。AMT最直接的應(yīng)用就是讓科學(xué)家完整地記錄下來即興演奏的音符以便能夠再現(xiàn)它。即使對于專業(yè)音樂家來說,轉(zhuǎn)錄多音音樂(Polyphonic Music)也是一項十分困難的任務(wù),雖然單聲道信號的自動音高估計問題已經(jīng)解決,但是目前的多音音樂轉(zhuǎn)錄仍然存在著許多重大挑戰(zhàn)。
AMT 問題可以分為幾個子任務(wù),包括:多音級檢測、音符開始/結(jié)束檢測、響度估計和量化、樂器識別、節(jié)奏信息提取和時間量化。自動轉(zhuǎn)錄中核心問題是估計時間幀中的多音音高,也被稱為多音級檢測或多F0檢測。圖1所示為鋼琴自動轉(zhuǎn)譜的過程。近幾年,音高的檢測問題已經(jīng)在深度學(xué)習(xí)發(fā)展的基礎(chǔ)上取得了重大突破,而音符的時值檢測問題仍處于探索階段,因此本文的核心關(guān)注點也從音樂中音高和時值的識別展開。
圖1 自動轉(zhuǎn)譜過程
本文綜合應(yīng)用了基本樂理、聲學(xué)模型、深度學(xué)習(xí)和多標(biāo)簽多分類相關(guān)知識,針對當(dāng)下基于深度學(xué)習(xí)方法的自動轉(zhuǎn)錄技術(shù)進(jìn)行了深入的研究和探討,并提出了音符級自動音樂轉(zhuǎn)錄算法。此算法很好地利用了音符起止點處顯著的頻譜特征,捕獲鋼琴音樂在時間結(jié)構(gòu)和空間結(jié)構(gòu)上的特點,在識別上達(dá)到了優(yōu)越的性能。在這種優(yōu)化的自動轉(zhuǎn)錄技術(shù)上,提出了一種后處理方案,用以進(jìn)行音符級自動時間對齊,并應(yīng)用到現(xiàn)場演奏的鋼琴輔助練習(xí)中,取得了較好的效果。
常數(shù)Q變換(Constant Q Transform, CQT)是將數(shù)字音樂信號處理為基于頻譜的技術(shù)。該變換非常適合于音樂數(shù)據(jù),與快速傅里葉變換相比,其輸出在對數(shù)頻率下能有效地計算出與音樂頻率相關(guān)的振幅,因此可以使用更少的頻率區(qū)間來有效地覆蓋音樂頻率范圍,并且這在頻率跨越幾個八度音程的情況下被證明是有用的。
除此之外,該變換表現(xiàn)出的頻率分辨率隨著較高的頻率而降低,這反映了人的聽覺系統(tǒng)在較低的頻率下光譜分辨率更好,在較高的頻率下時間分辨率更好。由此可知,在處理鋼琴音頻的時候,常數(shù)Q變換是最為理想的。
但是,相對于傅里葉變換和梅爾頻譜,CQT的實現(xiàn)更加棘手。這是因為在計算每個頻率格時使用的樣本數(shù)量不同,這會影響所實現(xiàn)窗口函數(shù)的長度。下面是CQT的具體實現(xiàn)。
CQT本質(zhì)上可以看作是一系列對數(shù)間隔的濾波器,其中第k個濾波器的頻譜寬度為δfk,δfk與前一個濾波器之間的有著倍數(shù)關(guān)系:
(1)
式中:δfk是第k個濾波器的帶寬;fmin是最小濾波器上濾波帶的中心頻率;n指的是每個鋼琴八度上濾波器數(shù)。
(2)
(3)
接下來,在處理截取信號時間片段的問題上,一般會進(jìn)行周期延拓,做法是使用窗口函數(shù)。在上面定義的基礎(chǔ)上構(gòu)建等效的漢明窗口如下:
(4)
(5)
CQT的計算將線性頻譜轉(zhuǎn)為以2為底的log頻譜,充分利用了音符頻率的數(shù)值規(guī)律。CQT目前作為音樂信號處理最主流的方法,被大量使用于音樂聲學(xué)模型和前期音樂信號的特征處理中,在文獻(xiàn)[1,3,7,12]中,CQT將音樂信號轉(zhuǎn)換為頻譜圖,為后續(xù)機(jī)器學(xué)習(xí)方法和數(shù)值分析方法提供了優(yōu)質(zhì)的音譜特征。
近年來主流的AMT研究中,識別結(jié)果的重點主要強(qiáng)調(diào)了起音點和音高,對于音符止音點、響度和音色的問題并沒有給予太多的關(guān)注。而當(dāng)前音符級轉(zhuǎn)錄最重要的問題在于無法完全預(yù)估整個音符的時值信息以及多音級估計問題上無法得到提升。如果只是識別音符的起音點,并將起音點處的音高當(dāng)成兩個起音點之間聚合而成音符音高的話,會造成音符時值估計不準(zhǔn)的問題。同時多音級識別如果僅僅考慮當(dāng)前時刻上下文的音符頻譜,而不考慮音符序列全文中的上下文信息,多音級識別問題的性能將不能得到提升。
如圖2所示,可以看到圖中a處,由于圖中的音符在持續(xù)過程中有新的音符出現(xiàn),于是轉(zhuǎn)錄會直接將舊音符進(jìn)行截斷。圖中b處,其中一個音符的停止時間應(yīng)該提前,但是由于下一個音符出現(xiàn)時間較晚,因此這里音符的停止時間將會延后。如此一來,當(dāng)出現(xiàn)種種限制時,當(dāng)前音符級的自動音樂轉(zhuǎn)錄根本無法判斷準(zhǔn)確的音符時值。此外,圖中顯示的多音轉(zhuǎn)錄結(jié)果也并不是十分完美,錯音和漏音出現(xiàn)的頻率仍舊不低。針對此問題,提出了針對音符起止點的自動轉(zhuǎn)錄方法,幫助解決當(dāng)前無法準(zhǔn)確判別音符時值和多音級估計瓶頸的問題。
圖2 識別方法中存在的問題
基于CNN的轉(zhuǎn)錄方法提出一種單獨識別音符起止點和音高的模型,解決了文獻(xiàn)[12]不能完整預(yù)估時值的問題。鋼琴發(fā)聲的敲擊和衰減階段(對應(yīng)音符的起點和止點)在頻譜圖上特性會非常明顯,CNN具有良好的平移不變性,能夠處理頻譜圖中多個方位的起止點特征?;贑NN的轉(zhuǎn)錄模型如圖3所示。
圖3 基于CNN的轉(zhuǎn)錄方法模型
模型首先接受一個輸入音樂信號,在預(yù)處理過程中通過CQT提取時頻域信息。參與訓(xùn)練的有三個神經(jīng)網(wǎng)絡(luò),模型中起點識別和止點識別都使用兩個單獨的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行,再利用一個額外的多音級識別網(wǎng)絡(luò)識別起點和止點附近的音級。分開處理起點和止點問題能夠讓模型專注解決一個問題,使訓(xùn)練效果達(dá)到最優(yōu)。
(1) 數(shù)據(jù)預(yù)處理。
為了將音頻轉(zhuǎn)換為計算機(jī)能夠理解的形式進(jìn)行訓(xùn)練,數(shù)據(jù)預(yù)處理包括兩個階段:音頻預(yù)處理和MIDI標(biāo)注預(yù)處理。
音頻預(yù)處理即利用常數(shù)Q變換,將頻譜映射到log2的線性空間,使用的采樣頻率為44 100 Hz,窗口長1 024。網(wǎng)絡(luò)模型的輸入是一幅高確定、長不確定的頻譜圖,為頻譜圖中每幀劃定一個264頻帶×9幀的滑動窗口,固定該幀前后延伸4幀(在開始和結(jié)束部分補0),在多音級識別中,在起止點附近選擇同樣大小的窗口,作為多音級識別的輸入。多音級頻譜窗如圖4所示。
圖4 多音級識別的頻譜窗口
MIDI標(biāo)注預(yù)處理是將MIDI文件轉(zhuǎn)換為計算機(jī)能理解的格式。MIDI是一個二進(jìn)制文件,由頭文件塊和音軌塊組成[3]。利用MIDI元信息就可以獲取到MIDI的音符序列,將音符序列表示成三元組(NoteNum, Start, Duration)的形式,將多音軌合并到單音軌之后以Start作為排序鍵排序。之后需要將Start和Duration代表的MIDI內(nèi)部事件轉(zhuǎn)換成現(xiàn)實事件,計算出現(xiàn)實時間后利用音頻預(yù)處理中的時頻域變換法將時間變換到時間幀中,與頻譜圖對應(yīng)。變換后的三元序列為(NoteNumber, StartFrame, EndFrame)。
(2) 起止點與多音級識別。
基于CNN的轉(zhuǎn)錄方法第一階段是進(jìn)行起止點識別,起止點識別是一個二分類問題,模型的輸入是2.1(1)節(jié)中的頻譜窗在每個時間幀上的264×9的切片。若輸入音頻恰好為起/止點則標(biāo)注為1,否則為0。無差別起止點識別采用的是文獻(xiàn)[12]提出的結(jié)構(gòu)。最終得到的是無差別起點序列(式(6))和無差別止點序列(式(7)),其中T為音樂總時間幀數(shù)。
S=(s1,s2,…,sT)si∈{0,1}
(6)
E=(e1,e2,…,eT)ei∈{0,1}
(7)
針對音樂圖像信息的時序特征,設(shè)計了一種專用于提取頻譜音級特征的網(wǎng)絡(luò)結(jié)構(gòu)來識別多音級。第一層使用了標(biāo)準(zhǔn)的3×3的卷積核來提取空間和時間特征,然后使用了m×n的卷積核來卷積頻譜。m×n的卷積核能夠同時學(xué)習(xí)頻率和時間信息。這些濾波器可以根據(jù)m和n的設(shè)置方式學(xué)習(xí)不同的音樂元素,并且打擊樂樂器的特征在于頻率的時間演變不會很長,因此卷積核可以捕捉到小時間尺度內(nèi)的聲音特質(zhì)。之后使用2×2的最大池化層進(jìn)行特征壓縮,再使用11×1的頻域卷積核卷積空間信息,繼續(xù)池化拉平后通過兩層全連接層,經(jīng)Sigmoid激活函數(shù)激活神經(jīng)元后輸出在88個音級上的概率,采用Cross-entropy進(jìn)行損失計算,如圖5所示。
圖5 基于頻譜特征的網(wǎng)絡(luò)結(jié)構(gòu)
由于多音級識別和起止點識別是兩個獨立訓(xùn)練的過程,因此多音級識別的訓(xùn)練數(shù)據(jù)是在標(biāo)注的音符起止時間幀挑選出來的。在預(yù)測階段此方法首先會預(yù)測音符起止時間幀,然后再通過選取起止時間幀上的頻譜切片進(jìn)行多音級估計。
最后一步是進(jìn)行起止點對齊,它并不參與到網(wǎng)絡(luò)訓(xùn)練當(dāng)中。對齊即將式(6)和式(7)的序列進(jìn)行匹配,并生成對應(yīng)的三元序列與標(biāo)準(zhǔn)MIDI進(jìn)行比對。在測試階段,得到無差別起止點序列S和E之后,標(biāo)記其在頻譜上的時間幀位置得到起止點幀序列。音級識別基于起止點幀序列,最后得到多音級矩陣D來表達(dá)整首音樂的所有音符起止點:
(8)
遍歷D得到最后的音符三元組Note序列,并且過濾掉損壞的三元組,如式(9)所示。匹配Dp,t′=0對于任何的ts Note={(p,ts,te)∨Dp,ts=1,Dp,te=-1} (9) 式中:p為音級,代表88個鋼琴鍵,滿足0 2.1節(jié)中提出的CNN的轉(zhuǎn)錄方法沒有考慮起止點處多音級向量的時間關(guān)聯(lián)性,因此對齊效果不佳;并且丟失了原本音樂的時序性特征,忽略了多音級估計的音符內(nèi)與音符序列的上下文信息,因此多音級識別上效果不是十分顯著。針對以上問題,本文提出了一種基于卷積循環(huán)神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)錄方法,將CNN和RNN進(jìn)行結(jié)合,并添加了一層自注意力層形成CRNN網(wǎng)絡(luò),最后輸出與標(biāo)注同樣個數(shù)的單元數(shù),同樣采用Cross-Entropy進(jìn)行損失函數(shù)的計算。這種網(wǎng)絡(luò)結(jié)構(gòu)可以同時從時間和空間維度上學(xué)習(xí)音樂特征,實現(xiàn)端到端的音符起止點識別。見圖6。 圖6 基于CRNN的音符自動轉(zhuǎn)錄方法 與基于CNN的方法不同,該方法需要將頻譜圖按塊切分輸入網(wǎng)絡(luò)中,塊是n幀頻譜中的聚合態(tài),互相不重疊。第一步仍是利用CNN進(jìn)行特征提取,得到一個p×step的步長向量,p為特征高,step為時間步長。之后被切分為step個p×1的向量輸出到LSTM中,經(jīng)過自注意力層后全鏈接輸出n維向量,轉(zhuǎn)錄完成后同樣進(jìn)行起止點對齊生成音符序列。 (1) 數(shù)據(jù)預(yù)處理。 識別的預(yù)處理工作仍包含兩部分:音頻預(yù)處理和標(biāo)注預(yù)處理。 基于CNN的轉(zhuǎn)錄方法在進(jìn)行音頻預(yù)處理的時候是由單個幀為中心劃分窗口截取而成的,并且?guī)c幀之間還有重疊部分。本節(jié)中模型需要識別頻譜切片的內(nèi)部的時間結(jié)構(gòu)和音級結(jié)構(gòu),所以這種小時間切片不能滿足要求。除此之外還必須保證完整的上下文關(guān)系,針對以上要求,音頻預(yù)處理需要分為兩部分。第一步,選擇音頻時間切片長度。選取的音頻時間切片長度不應(yīng)過長,也不應(yīng)過短。過長會影響整體訓(xùn)練速度,導(dǎo)致LSTM整體性能下降;過短則沒有包含太多有意義的信息。因此在切片上選取了2 s、4 s和8 s的長度分別進(jìn)行了實驗。第二步,消除無上下文的音頻片段。無上下文的音頻片段指的是在音頻切片中有來自上一個切片的音頻,或者未完全結(jié)束的音頻。為了不影響訓(xùn)練和識別的質(zhì)量,因此在頻譜上對這些音頻進(jìn)行了平滑處理。 與2.1節(jié)中的方法不同的是,本節(jié)提出的網(wǎng)絡(luò)模型將起止點與音級三者一并進(jìn)行識別,因此采用了一種新編碼來表示音高和起止點信息。MIDI中的聲音狀態(tài)分為音符激活態(tài)和音符非激活態(tài),而音符的開始和結(jié)束狀態(tài)都是一種特殊的狀態(tài),于是該方法將音符的狀態(tài)分為三種,起狀態(tài)、止?fàn)顟B(tài)和非起非止?fàn)顟B(tài)。每個音級的三種狀態(tài)需要一個二維向量進(jìn)行編碼: (1,0)表示這個音符的起狀態(tài),這種狀態(tài)的條件是該音符前一幀處于未激活狀態(tài)而當(dāng)前幀處于激活狀態(tài); (0,1)表示這個音符的止?fàn)顟B(tài),這種狀態(tài)的條件是該音符當(dāng)前幀處于激活狀態(tài)而后一幀處于非激活狀態(tài); (0,0)表示這個音符的非起非止?fàn)顟B(tài),這種狀態(tài)的條件是該音符的前后幀都屬于激活或者非激活狀態(tài)。 對每個音級進(jìn)行這樣的編碼,則需要88×2=176維的向量。利用2.1節(jié)方法中的三元組(NoteNumber, StartFrame, EndFrame)就可以構(gòu)建一個標(biāo)注矩陣Mtrue,矩陣的高P=176,寬為輸入頻譜切片的時間幀數(shù)T。 (2) 基于CRNN的起止點識別模型。 本節(jié)的模型如圖7所示,首先使用CNN提取頻譜特征,然后將特征切片輸入到后續(xù)的序列識別層中,這個序列識別層在每個時間步上的輸出也會輸入到自注意力層,自注意力層主要可以通過尋找音符序列的內(nèi)部依賴性提高識別準(zhǔn)確率。經(jīng)過自注意力層的向量會通過一層全連接,使用Sigmoid激活函數(shù)輸出176維的概率真值,表示起止點在當(dāng)幀的激活情況,并同樣使用Cross-entropy計算損失函數(shù)。在預(yù)測階段會選擇一個閾值,將每一維輸出值分類為0或者1,表達(dá)音符起止點中的信息。下面詳細(xì)介紹該模型的各個部分。 圖7 基于CRNN的音符起止點識別模型 首先依照2.2(1)節(jié)的數(shù)據(jù)預(yù)處理方法,將音頻譜圖處理成切片,再得到音符起止點標(biāo)注矩陣,標(biāo)注矩陣的每一列就對應(yīng)著一個時間步的標(biāo)注。模型使用CNN作為頻譜切片的特征提取器,再利用后續(xù)的RNN來對頻譜特征進(jìn)行識別工作。本方法所采用的CNN網(wǎng)絡(luò)結(jié)構(gòu)類似于2.1(2)中的網(wǎng)絡(luò)結(jié)構(gòu),如圖8所示。 圖8 特征提取器結(jié)構(gòu) 此網(wǎng)絡(luò)結(jié)構(gòu)中的卷積核同樣含有在2.2節(jié)中敘述的卷積核特性。為了方便進(jìn)行特征壓縮,實驗將頻譜切片的時間軸和頻率倉軸進(jìn)行轉(zhuǎn)置。因此,特征提取器的輸入為一個高T幀、長264的頻譜倉的特征譜圖切片。首先譜圖會經(jīng)過一個3×3的卷積核,提取頻譜內(nèi)部的時間和空間上細(xì)節(jié)特征。接下來經(jīng)過一個3×12的卷積核,既可以用于在頻譜的頻域空間上提取音樂八度范圍內(nèi)的頻譜特征,又可以在小范圍的時間內(nèi)提取到頻譜的變化特征。再接下來經(jīng)過一個1×2的最大池化將頻譜的頻域進(jìn)行壓縮,減少由于卷積操作所導(dǎo)致的頻域特征均值偏移。1×11的卷積核主要可以用來提取頻域長范圍內(nèi)的空間特征。最后一層1×2的最大池化與之前的原理類似,通過將特征Reshape之后,特征維度將變換為(T,3 712),最后在頻域維度上再使用一層全鏈接層,將維度變換到(T,768),特征抽取工作就完成了。 在序列識別層中,采用RNN來對上文提取的特征進(jìn)行識別,通常采用LSTM作為序列模型進(jìn)行識別。由于LSTM只能根據(jù)前一時刻的時序信息來預(yù)測下一時刻的輸出,但音符序列不僅跟前一狀態(tài)有關(guān),還可能和未來狀態(tài)有聯(lián)系。比如預(yù)測音符起點時,不僅依賴于之前的狀態(tài)和當(dāng)前輸入的特征切片,還與未來該音符可能出現(xiàn)的止點狀態(tài)有關(guān),在預(yù)測止點音符時,同時需要依賴之前的起點音狀態(tài)。因此本模型中引入了雙向LSTM(Bidirectional LSTM,BiLSTM)。 LSTM傳遞的信息會隨著時間步主機(jī)傳遞而漸漸失效,因此當(dāng)音頻長度過長,LSTM對這種音樂特征的學(xué)習(xí)會呈現(xiàn)一定的下降趨勢,針對這一問題,繼而在網(wǎng)絡(luò)結(jié)構(gòu)中加入了自注意力機(jī)制,通過扁平化的位置計算方式來解決這種線性遺忘的問題。 實驗采用的是MAPS(MIDI Aligned Piano Sounds)數(shù)據(jù)集和MAESTRO(MIDI and Audio Edited for Synchronous TRacks and Organization)數(shù)據(jù)集。MAPS數(shù)據(jù)集提供了CD音質(zhì)(44 kHz采樣立體聲音頻)的鋼琴錄音和已對齊的MIDI文件作為錄音的標(biāo)注。數(shù)據(jù)集的大小約為40 GB,MAPS使用了一些自動生成技術(shù),提供了音樂MIDI文件與相對應(yīng)的音頻,提供了大量的聲音數(shù)據(jù)和可靠的標(biāo)注(音高和起止時間)。在實驗當(dāng)中,本文使用MUS音樂集中70首音樂作為訓(xùn)練集,19首音樂作為測試集。MAESTRO數(shù)據(jù)集是谷歌與國際鋼琴比賽Piano-e-Competition的組織者合作得到的數(shù)據(jù)集,該數(shù)據(jù)集中使用的都是比賽中鋼琴演奏的原始數(shù)據(jù),數(shù)據(jù)量達(dá)到90 GB左右。由于時間關(guān)系,本文僅選用了MAESTRO數(shù)據(jù)集中2017年的比賽曲目進(jìn)行訓(xùn)練和測試。MAESTRO 2017中有283首鋼琴曲目,本文將使用這些鋼琴曲中226首樂曲作為訓(xùn)練集,使用57首用作測試。實驗采用的硬件環(huán)境為Linux 4.15.0-72-generic,Memery220G,物理顯卡GeForce GTX 1080Ti,顯存11 GB。 基于CNN的音符級鋼琴轉(zhuǎn)錄方法的總共包含三個實驗:無差別起止點識別、多音級識別和起止點對齊?;贑RNN的音符級鋼琴轉(zhuǎn)錄方法包括兩個實驗:音符起止點識別和起止點對齊。首先,第一個模型的無差別起止點識別屬于二分類問題,使用二分類問題的評價標(biāo)準(zhǔn)。其次,第一個模型的多音級識別和第二個模型的音符起止點識別采用了同一個標(biāo)準(zhǔn)。最后兩個模型起止點對齊部分都使用了同一標(biāo)準(zhǔn)。 二分類問題利用精準(zhǔn)度(Precision)、召回率(Recall)和F值(F-Measure)值作為評價標(biāo)準(zhǔn),它們的計算方式如下: (10) (11) (12) 多音級識別是一個多標(biāo)簽多分類問題,文獻(xiàn)[1]提出了一種進(jìn)行多音級分類的評價標(biāo)準(zhǔn)。依照上分預(yù)測分類的四種定義,而這里這些量進(jìn)行了延伸。TP(t)的定義為,統(tǒng)計起止點幀t處預(yù)測音級i被分為正類時,實際音級i也為正類的個數(shù)。類似地,F(xiàn)P(t)定義為在起止點幀t處預(yù)測音級i被分類為負(fù)類時,實際屬于正類的個數(shù);FN(t)定義為在起止點幀t處音級i被分類為負(fù)類時,實際也屬于負(fù)類的個數(shù)。多音級分類的評價指標(biāo)如下: (13) (14) (15) 除此之外,為了讓轉(zhuǎn)錄更直觀地體現(xiàn)準(zhǔn)確性,實驗使用了一種精確匹配率的方式EMR(Exact Match Rate),EMR評價將多標(biāo)簽問題降級到二分類問題上,它認(rèn)為只有預(yù)測標(biāo)簽和真實標(biāo)簽全部匹配才被分為正類,否則就是假類,如式(16)所示。式中:T(t)函數(shù)表示當(dāng)預(yù)測幀和實際幀所有音級狀態(tài)完全匹配時輸出1,否則輸出0。 (16) 最后,針對起止點識別,通過將能對齊上的起止點數(shù)占起止點平均值中的比例來進(jìn)行計算。對齊率MR如下: (17) (1) 無差別起止點實驗。如表1和表2所示,CNN的判別是三種方法中效果最好的。在無差別起點識別中,CNN的F1值比DNN高出0.051 4,比雙向BiLSTM高出0.030 2;在無差別止點識別當(dāng)中,CNN的F1值比DNN要高0.071 7,比LSTM要高0.016 1。 表1 基于MPAS的無差別起止點識別 表2 基于MAESTRO的無差別起止點識別 (2) 多音級識別實驗。本文將設(shè)計的卷積網(wǎng)絡(luò)模型分別和DNN、LSTM、Troxel[7]和Sigtia[8]模型進(jìn)行了對比。在MAPS和MAESTRO數(shù)據(jù)集上,本文網(wǎng)絡(luò)在F1值上比DNN要高出0.137 7和0.140 5,比LSTM高出0.112 1和0.113 1,比Sigtia的模型要高出0.053 7和0.067 8,比Troxel的模型要高出0.009 4和0.000 5,在兩個數(shù)據(jù)集上分別達(dá)到了最高的80.68%和82.83%。如表3和表4所示。 表3 MAPS ENSTDkCl數(shù)據(jù)集——起點上多音級識別 表4 MAESTRO 2017數(shù)據(jù)集——起點上多音級識別 (3) 起止點對齊實驗。在得到識別的音符起止點后,再進(jìn)行起止點對齊,對齊結(jié)果見表5。 表5 基于CNN的起止點對齊 (1) 起止點識別實驗。如表6和表7所示,音符起止點的識別實驗分三種情況進(jìn)行,分別將頻譜切片切為2 s、4 s和10 s,然后將整個頻譜切片作為模型輸入,預(yù)測每一幀的起止點和多音級情況。與基于CNN的轉(zhuǎn)錄識別縱向?qū)Ρ龋梢钥吹交贑RNN的音符起止點識別在F1與前者相近時,整精確匹配率上要優(yōu)于前者??赡芤驗镃RNN對起止點及其音級是逐幀判別的,準(zhǔn)確預(yù)測空幀的能力給CRNN的精確匹配率上帶來了很大的優(yōu)勢。但是僅在F1值上可以看出,使用CRNN端到端地識別起止點,可以給識別率上帶來較大的提升。 表6 基于CRNN的音符起止點識別(MPS數(shù)據(jù)集) 表7 基于CRNN的音符起止點識別(MAESTRO數(shù)據(jù)集) (2) 起止點對齊實驗?;贑RNN的起止點對齊結(jié)果如表8所示??梢钥闯龌贑RNN的起止點對齊在對齊率上比基于CNN的起止點對齊要好,其中在MAPS的數(shù)據(jù)集和MAESTRO數(shù)據(jù)集比基于CNN的結(jié)果要高出0.403 3和0.308 9??梢宰C明,本文使用的CRNN很大程度上能彌補僅基于CNN的音符起止點在對齊上的劣勢。 表8 基于CRNN起止點對齊 如表9所示,音符序列正確性的定義為轉(zhuǎn)錄正確音符序列占全部實際音符序列之比。其中Troxel的CNN+音樂語言模型雖然在正確性上要優(yōu)于兩階段CNN+音樂語言模型,但是兩階段CNN的模型有完整的音符時值估計方法,而CRNN的音符轉(zhuǎn)錄方法是高于前兩種轉(zhuǎn)錄方法的,最后CRNN+自注意力機(jī)制的模型又優(yōu)于僅使用CRNN的模型,并且在長頻譜片段中擁有更完美的性能表現(xiàn)。 表9 音符序列正確性結(jié)果 本文提出的兩種音樂轉(zhuǎn)錄辦法還是借鑒自傳統(tǒng)的機(jī)器學(xué)習(xí)。傳統(tǒng)的機(jī)器學(xué)習(xí)對于多分類問題一般采用N元交叉熵函數(shù)進(jìn)行損失計算和反向傳播。傳統(tǒng)機(jī)器學(xué)習(xí)的標(biāo)簽類別之間呈正交關(guān)系(譬如貓狗識別),類與類之間沒有明顯的內(nèi)在聯(lián)系和結(jié)構(gòu)。對于音樂而言,特別是鋼琴樂,音與音之間存在特殊的物理聯(lián)系和邏輯聯(lián)系,簡單地采用交叉熵函數(shù)在很大程度上會損失掉鋼琴鍵值之間的數(shù)據(jù)聯(lián)系性。尤其是在對和弦類型的音符識別時候,會丟失大部分?jǐn)?shù)據(jù),在反向迭代的過程中不能很好地矯正模型?;诒疚?,后續(xù)希望能夠探索一種符合鋼琴樂的距離判定方法,從而在優(yōu)化器進(jìn)行梯度下降的時候能夠更全面地提供平滑準(zhǔn)確的梯度來訓(xùn)練參數(shù)。2.2 基于CRNN的轉(zhuǎn)錄方法
3 實 驗
3.1 實驗評價標(biāo)準(zhǔn)
3.2 基于CNN的轉(zhuǎn)錄實驗結(jié)果
3.3 基于CRNN的轉(zhuǎn)錄實驗結(jié)果
3.4 轉(zhuǎn)錄音符序列實驗
4 結(jié) 語