李榮鋒,畢明輝,李學(xué)明,柳 楊
(1.北京郵電大學(xué) 數(shù)字媒體與設(shè)計藝術(shù)學(xué)院,北京 100876; 2.北京大學(xué) 藝術(shù)學(xué)院,北京 100871)
工尺譜是應(yīng)用范圍最廣的中國傳統(tǒng)樂譜.工尺譜的鼎盛年代在清代,也就是中國戲曲盛行的年代.而詞唱曲唱大量出現(xiàn)于當時盛行的昆劇中,因此詞曲的工尺譜便作為昆劇中的一個重要部分被大量記載,現(xiàn)存許多珍貴資料.據(jù)《中國音樂書譜志》[1]記載,清代至民國年間共約有1071種工尺譜曲本,現(xiàn)存的樂譜是中國傳統(tǒng)樂譜中保存最多的一種.相比中國的其他傳統(tǒng)樂譜而言,工尺譜的符號體系是相對規(guī)范和統(tǒng)一的,對音高和節(jié)拍信息的記錄也相對精確.然而,在節(jié)奏方面,工尺譜使用了一種相對自由的記譜方式,即只規(guī)定節(jié)拍的起始位置,而對于每一拍內(nèi)的時值則未作任何規(guī)定.這種在節(jié)奏上的不確定性,是工尺譜在解讀方面歷來的難題.自古以來,如何決定工尺譜中的音符時值,主要是通過口傳心授的方式代代相傳的.如今,能夠順利解讀工尺譜的專家越來越少,這就使得工尺譜的學(xué)習成本越來越高,從而使用這種傳統(tǒng)樂譜的音樂形式(例如昆曲、京劇)的教學(xué)難度也變得越來越大.本文著力于研究如何使用現(xiàn)有的工尺譜的五線譜或簡譜人工翻譯結(jié)果作為數(shù)據(jù),建立統(tǒng)計模型,讓計算機進行工尺譜自動翻譯.
在詳細介紹關(guān)于工尺譜自動翻譯的統(tǒng)計模型之前,首先要回答的問題便是這種自動翻譯的做法的必要性與合理性.我們需要回答兩個問題: 在昆曲、京劇的傳統(tǒng)教學(xué)過程中,將工尺譜翻譯成簡譜或者五線譜是否必要?在翻譯過程中,將工尺譜中不確定的音符時值對應(yīng)到簡譜或者五線譜中確定的節(jié)奏型是否合理?
工尺譜作為一種獨立于西方音樂的樂譜形式,其中包含中國傳統(tǒng)音樂的內(nèi)涵是其他樂譜所不具備的.從信息傳遞的角度來說,工尺譜相比西方的五線譜系統(tǒng),除了基本的音高以及節(jié)奏符號之外,還記錄了許多關(guān)于字腔表現(xiàn)、具體演唱與演奏法、音的虛實等符號以及關(guān)于句讀、平仄方面的文學(xué)符號.因此其文化內(nèi)涵是其他樂譜所不能代替的.然而隨著時代的變遷,由于現(xiàn)代的中小學(xué)音樂啟蒙教育大多基于西方的音樂理論基礎(chǔ),工尺譜在現(xiàn)今的基礎(chǔ)教育中已經(jīng)不再涉及.因此近幾十年來,從事昆曲、京劇的教師、學(xué)生、樂師當中,使用簡譜甚至五線譜進行傳習與演奏已經(jīng)變得越來越普遍,甚至已經(jīng)成為主流.樂手們更愿意在簡譜或者五線譜上添加原工尺譜中所標記的演奏記號來進行學(xué)習和演奏.可以說,雖然簡譜或者五線譜在信息記載上,丟失了很多很重要的音樂、文學(xué)、文化上的符號,但由于其精確性、系統(tǒng)性更符合當代人學(xué)習音樂的現(xiàn)狀,因此使用簡譜或者五線譜學(xué)習中國傳統(tǒng)音樂,是一種必要的妥協(xié),并且已經(jīng)成為不可逆轉(zhuǎn)的趨勢.
在這種妥協(xié)被普遍接受并已經(jīng)成為一種需求的同時,中國傳統(tǒng)音樂的簡譜五線譜版本的數(shù)量相對而言是十分匱乏的.盡管經(jīng)過幾代音樂家在曲譜出版方面的努力,許多經(jīng)典昆曲、京劇劇目的簡譜以及五線譜版本[2-4]已經(jīng)出版,然而現(xiàn)存的可以考證的中國傳統(tǒng)曲譜中,絕大多數(shù)仍然只有工尺譜版本,被翻譯成簡譜或者五線譜的數(shù)量相比之下還是相當?shù)纳?作為一種已經(jīng)漸漸失傳的傳統(tǒng)文化,能正確解讀工尺譜的專家已經(jīng)越來越少,這便意味著通過人工出版曲譜的形式可行性已經(jīng)越來越低.為此,本文基于現(xiàn)有的翻譯工作基礎(chǔ)上,通過統(tǒng)計分析,讓計算機自動地翻譯現(xiàn)存的工尺譜,以滿足當今的學(xué)生學(xué)習中國傳統(tǒng)音樂的需求.
有關(guān)即興演奏,大部分研究者秉持的是一種雖不精確但又不失邏輯的一種觀點.其中,民族音樂研究學(xué)者奈特爾[5]認為,盡管影響同一首曲子每一次演奏的即興因素有很多,隨著時間和地點的不同還會有微妙的變化,然而這并不代表即興等同于沒有邏輯或者完全由演奏者根據(jù)個性隨機決定的演奏,而是依賴一系列約定俗成的、隱性的規(guī)則.關(guān)于工尺譜的即興演奏中的節(jié)奏問題,楊蔭瀏先生在《工尺譜淺說》[6]中明確地回答: “1、如何決定一板中每個音的長短?有沒有簡捷的口訣可以很快學(xué)會?回答是: 沒有.只能結(jié)合民間音樂實際學(xué)習工尺譜才能學(xué)會.2、每個音的長短可否由應(yīng)用者自由決定?回答是: 不能.因為在同一曲調(diào)中,在這些細微節(jié)奏的處理上,在民間實際流行的唱法中,一般來說是比較固定的.而且在各個流派之間,大體上是一致的.”由此可見,中外學(xué)者有關(guān)傳統(tǒng)音樂中的即興部分的觀點是一致的.具體到工尺譜節(jié)奏翻譯問題上,關(guān)于同一拍內(nèi)音符時值的分配,雖然工尺譜沒有公式化的規(guī)則,但是演奏者不能完全隨機決定,而需要通過一定的演奏經(jīng)驗來進行合理的即興.這種經(jīng)驗通常需要通過長時間的口傳心授,并結(jié)合大量的演唱經(jīng)驗才能獲得,這對本來就相對小眾的中國傳統(tǒng)音樂來說,更加讓學(xué)習者望而卻步.通過將工尺譜翻譯成在節(jié)奏上更加精確的簡譜或者五線譜,結(jié)果并不唯一但卻可以做到合理,這將會給工尺譜的學(xué)習者帶來極大的便利.
本文便是希望基于現(xiàn)有的譯本,在統(tǒng)計模型中將凝結(jié)在譯本中演奏者的經(jīng)驗通過數(shù)據(jù)的方式,部分地轉(zhuǎn)換成可重復(fù)使用并且可不斷更新的計算模型.此工作旨在為工尺譜的合理翻譯提供一種計算機的角度,而非完全代替人工翻譯.
關(guān)于工尺譜的符號系統(tǒng),國內(nèi)的學(xué)者[6-8]已經(jīng)進行了多年的研究并對其規(guī)則與內(nèi)涵進行了大量總結(jié).本文不討論工尺譜中關(guān)于演奏法的符號(例如字腔與潤腔符號),僅就與工尺譜翻譯成簡譜或五線譜關(guān)系最密切的音高與節(jié)拍符號做以下簡要介紹.
近代工尺譜是首調(diào)唱名體系,譜字(即音符)之間只有音程關(guān)系,當明確調(diào)高后,才能確定譜字的實際音高.
工尺譜的音高由10個漢字來表示.它們是: 合、四、一、上、尺、工、凡、六、五、乙.音程關(guān)系相當于sol、la、si、do、re、mi、fa(或升Fa)、sol、la、si.“六”是“合”的高八度,“五”是“四”的高八度,“乙”是“一”的高八度.這10個譜字實際為一個七聲音節(jié)擴展了3個自然音級.若將“上”作為“宮”(c1),它的音域為g-b1.當超過這個音域時,采用如下的輔助記號來擴展工尺譜的音域.
1) 將字音提高八度的寫法 在譜字的左旁添加單人旁“亻”,表示該字升高八度如“上”字的高八度寫做“仩”.在字音旁邊添加雙人旁表示該字升高兩個八度.也有采用在字音書寫的末筆添加一個“挑”表示該字升高八度,添加兩個“挑”表示把字升高兩個八度的記法.
2) 將字音降低八度的寫法 在譜字書寫的最末筆法后添加一個“撇”,表示該字降低一個八度,添加兩個“撇”表示該字降低兩個八度.
工尺譜與簡譜一樣,譜字只決定相對的音高,其絕對的音高需要通過“上”字所在的律位(實際聲音頻率,中國古代以黃鐘、太呂、太簇等稱謂)表示音的高度,現(xiàn)代通用的音樂理論采用十二平均律中的A、bB、B、C等固定音高來表示12個音律的位置.中國古代所使用的律制是五度相生律和純律,與十二平均律比較起來頻率有細微的差異,但這里為了闡述方便,我們依然使用十二平均律的音高標記作為調(diào)名的對照.工尺譜的調(diào)高與笛、簫一類管樂器密切相關(guān).這類管樂器有6個孔位,連同筒音共為7聲,因此在轉(zhuǎn)調(diào)時最多產(chǎn)生7調(diào).工尺譜的命調(diào)方法一般以“工”字作為命調(diào)的關(guān)鍵音.以工字調(diào)(即D調(diào))作為“正調(diào)”,其他6種調(diào)名都按照工字調(diào)的某字來命名.即工字調(diào)的某字作為新調(diào)的工字,則某字即為新調(diào)的命名.比如工字調(diào)的“上”字作為新調(diào)的“工”字,則新調(diào)就稱為“上字調(diào)”,余者類推,如表1所示.
表1 工尺譜音高對應(yīng)表
表2 工尺譜的板眼符號
工尺譜中表示節(jié)拍的符號主要是“板”、“眼”兩種記號.音樂的節(jié)奏時值需要以“拍”作為衡量單位,一板與一眼都表示為一拍的時值量.板的符號用“、”或者“×”表示,記寫在譜字右上角.眼用“?!被蛘摺?”表示,具體如表2所示.
“板”原來是中國的打擊樂器,用擊板來統(tǒng)一多種樂器合奏或人聲合樂時的節(jié)拍.工尺譜中的“板”就是表示樂曲進行中的相對單位拍值,用“板”位來明確譜字的組合.根據(jù)不同數(shù)量的板眼組合成的不同的循環(huán)樣式,即板式,也就是我們今天所說的節(jié)拍形式.例如每一個循環(huán)中由一板一眼構(gòu)成相當于2/4拍的節(jié)奏,而一板三眼則構(gòu)成4/4拍的節(jié)奏.至于板和眼是否相當于西方音樂中的強拍和弱拍,學(xué)者之間有不同的看法,這里我們姑且只將其作為表示節(jié)拍循環(huán)的符號,而不討論其強弱.從表2中我們可以看出板與眼具有“實”與“腰”之分,其區(qū)別是: 實板/實眼落在一個音符的開頭,而腰板/腰眼則落在一個音的中間部分.
音樂學(xué)上的前輩們對人工翻譯工尺譜已經(jīng)有多年的研究,其中許莉莉[9]總結(jié)了工尺譜節(jié)奏翻譯方面的5個步驟: 添腰、分拍、斷節(jié)、轉(zhuǎn)寫和整理.
1) 添腰
由于腰板/眼的位置發(fā)生在音符的中間部分,這說明該音符是在上一個拍子上已經(jīng)開始,因此對于腰板/腰眼,我們需要在前一拍上加上腰板/腰眼的音符.例如“上、工△”我們應(yīng)該翻譯成“上、工(工).”
2) 分拍
在添腰的基礎(chǔ)上,以一板或一眼所覆蓋的范圍為單位,劃分拍子.
3) 斷節(jié)
根據(jù)樂曲的板式(例如是一板一眼還是一板三眼),以一個循環(huán)為小節(jié)單位,劃分小節(jié),并用豎線隔開.
4) 轉(zhuǎn)寫
將工尺譜中的譜字一一轉(zhuǎn)寫成對應(yīng)的簡譜數(shù)字.
5) 整理
為每一拍中的音符分配時值.
前4步工作可以看作是機械工作,其轉(zhuǎn)換規(guī)則是顯式的.而第5步——整理這一步驟,需要根據(jù)上下文關(guān)系,結(jié)合演唱者的經(jīng)驗來決定.本文中的統(tǒng)計模型,便是專門針對此問題,將前人的翻譯經(jīng)驗作為一種數(shù)據(jù)來對模型的參數(shù)進行估計,從而得到一種相對合理的節(jié)拍時值計算方法.
圖1 工尺譜節(jié)奏翻譯的序列模型Fig.1 Sequence model for Gongchepu interpretation
與文獻[10]中的序列模型類似,我們用序列{Rn}表示一段樂中每一拍的節(jié)奏型,{Bn}表示每一拍數(shù)據(jù)的特征,例如一拍內(nèi)的音高序列、歌詞序列,歌詞的平仄等.{Rn}與{Bn}的依賴關(guān)系由圖1決定.
為了能體現(xiàn){Rn}與{Bn}之間的數(shù)量關(guān)系,我們需要對它們進行量化.假設(shè)第n拍具有m個音符,我們?yōu)檫@一拍節(jié)奏型定義如下節(jié)拍“抑揚值”{Rn}:
Rn=第一個m分點所在音符時值/音符的平均時值.
(1)
對于每一拍的特征值{Bn},我們主要采用被文獻[10]所驗證的歌詞平仄序列,并同樣在一拍內(nèi)定義以下平仄“抑揚值”:
圖2 平仄抑揚值計算示例Fig.2 Example for Yiyang values computing
(2)
其中的平仄修正值取決于第一個歌詞的聲調(diào),平聲為1,上聲為1.5,去聲與入聲為0.5.例如在圖2的工尺譜中,歌詞“秦樓”兩個字在同一拍,歌詞字數(shù)為2,其中第一個字“秦”占1個音符且為平聲,因此平仄修正值為1,而“樓”字占2個音符,因此總音符數(shù)為3,于是得到的平仄“抑揚值”為(3×1)/(1×2)=1.5.平仄的抑揚值根據(jù)音符在歌詞上的分布,配合平仄修正值在一定程度上描述了歌詞的讀音時值的左偏程度,與節(jié)拍“抑揚值”一一對應(yīng).
定義了節(jié)拍與平仄的“抑揚值”后,我們便可以根據(jù)圖1的序列模型建立如下的時間序列模型:
Rt=β0+β1Rt-1+αBt+et.
(3)
這是一個帶自回歸項的線性回歸模型,其中α,β0,β1為待定的回歸系數(shù),et為期望為0的正態(tài)分布變量,其方差為:
(4)
該模型可以通過最小二乘法求得回歸系數(shù)α,β0,β1的估計值.獲得回歸系數(shù)后,我們就可以得到以下的預(yù)測方程:
(5)
根據(jù)以上基于“抑揚值”的時間序列模型,我們可以從平仄抑揚值序列{Bn}預(yù)測出節(jié)拍抑揚值序列{Rn},前者可以直接從工尺譜的數(shù)據(jù)中計算得出,后者可以推算出每一拍的節(jié)奏型.因此,一旦求解出模型(3)的回歸系數(shù),自動翻譯模型便自動完成.
表3 《請君試唱前朝曲》的工尺譜數(shù)據(jù)集
在實驗中,我們的工尺譜翻譯數(shù)據(jù)來自錢仁康先生所著的《請君試唱前朝曲》[11].該書翻譯了《碎金詞譜》[12]中的96首曲譜,大部分為唐宋以來的著名古詞.我們選擇了其中的60首具備板眼符號的曲目作為時間序列模型的訓(xùn)練與測試數(shù)據(jù).目前該數(shù)據(jù)使用人工錄入的方式,并存儲在MySQL數(shù)據(jù)庫.該數(shù)據(jù)庫包含了969個樂句,6347個拍子.我們將整個數(shù)據(jù)集隨機分成兩組(在同一樂句的拍子分在同一組),分別用于訓(xùn)練與測試.其中訓(xùn)練集的拍子數(shù)為3174拍,測試集的拍子數(shù)為3173拍,不同音符數(shù)的拍子數(shù)量統(tǒng)計見表3.
我們使用Python的scikit-learn模塊實現(xiàn)了3.2節(jié)中式(3)的自回歸時間序列模型.實驗中,式(3)的模型中的系數(shù)估計以及自回歸分析中的R值和p值見表4,數(shù)據(jù)表明該模型能夠通過90%置信度的假設(shè)檢驗.
同時,作為比較,我們同樣用Python的scikit-learn模塊實現(xiàn)了文獻[10]所使用的隱馬爾可夫模型和條件隨機場模型.這3種模型的正確率,結(jié)果見表5.由于隱馬爾可夫模型和條件隨機場模型是基于標注的模型,因此會出現(xiàn)訓(xùn)練集以外的標注,因此將正確率分為標準正確率(不計算訓(xùn)練集以外的標注)以及OOV正確率(即把標注以外的數(shù)據(jù)也進行統(tǒng)計)2種.
可以看出本文的時間序列模型的標準正確率為88.25%,略高于隱馬爾可夫模型,而略低于條件隨機場模型.但是時間序列模型的優(yōu)勢在于不會出現(xiàn)OOV情況,也即時間序列可以預(yù)測出每一拍的“抑揚值”,而一拍的“抑揚值”一旦確定,則該拍的節(jié)奏型也就完全確定.因此使用時間序列一定能保證翻譯的結(jié)果中每一拍都有確定的節(jié)奏型,不會出現(xiàn)結(jié)果在訓(xùn)練集中沒有標注而無法確定其節(jié)奏型的情況.因此時間序列模型在計算標準正確率時,是按照其他兩個模型在計算OOV正確率時的標準,將所有測試數(shù)據(jù)統(tǒng)計在內(nèi)計算出的正確率.如果按照實際應(yīng)用的標準,考慮在小數(shù)據(jù)集上進行訓(xùn)練時,訓(xùn)練集中的標注不可能足夠全面,一定會出現(xiàn)OOV的情況.此時,時間序列模型依然能保持88.25%的正確率,高于隱馬爾可夫模型以及條件隨機場模型.
表4 自回歸時間序列模型的參數(shù)估計及結(jié)果
表5 工尺譜自動翻譯正確率
此外,由于時間序列模型是一種參數(shù)模型,反映的是同一拍子內(nèi)的節(jié)奏型與歌詞平仄的數(shù)量關(guān)系.這種關(guān)系揭示的是一種樂理關(guān)系,是可解釋的,而非序列標注模型中的概率轉(zhuǎn)移關(guān)系.因此時間序列的模型在小數(shù)據(jù)集上的訓(xùn)練結(jié)果,應(yīng)該比隱馬爾可夫模型以及條件隨機場模型這類模型在理論上具備更好的穩(wěn)定性,并且可以減少過擬合的情況,盡管這種猜測依然需要在更大的數(shù)據(jù)集上進行驗證.
雖然本實驗所采用的數(shù)據(jù)集規(guī)模比較小,即便達到接近90%的翻譯正確率,也不能說明在更大規(guī)模的工尺譜數(shù)據(jù)中,其翻譯能保持合理.然而由于現(xiàn)存的工尺譜的簡譜或五線譜版本數(shù)量實在太少,我們無法用計算的方式在更大規(guī)模的實驗中檢驗其翻譯的合理性.雖然各地的京昆社都有不少翻譯的樣本,但翻譯的作者無從考證,更多是集體翻譯的結(jié)果.在類似的片段,不同人翻譯的數(shù)據(jù)有可能互相矛盾,不符合本文的假設(shè),因此難以使用.此后我們將從樂譜數(shù)據(jù)以外,從實際演唱的語音記錄中進行自動的節(jié)奏識別,從而擴大數(shù)據(jù)庫.
另一種可行的對翻譯結(jié)果的檢驗方法是利用自動翻譯模型,將更多不為人知的中國傳統(tǒng)音樂的工尺譜翻譯成可以用于樂隊演奏的簡譜五線譜版本,并呈現(xiàn)給廣大觀眾,讓大眾來進行評價.2012年,中央音樂學(xué)院作曲家李博禪先生所創(chuàng)作的《古風變奏曲》中的琵琶齊奏段落,便是取材自本文的自動翻譯模型所翻譯的晏殊的《浣溪沙》片段.該曲子由北京大學(xué)中樂學(xué)社在英國愛丁堡國際音樂節(jié)上演出(https:∥www.youtube.com/watch?v=g-4p6o7Rh8Y),在各種媒體報道中獲得了一致好評.
本文提出了一種基于時間序列模型的工尺譜自動翻譯模型.模型中,在前人的研究基礎(chǔ)上,我們提出了節(jié)拍“抑揚值”與歌詞平仄“抑揚值”的概念,并給出了具體計算公式.借助該計算公式,對工尺譜中每一拍的節(jié)奏型和歌詞的平仄進行了量化,并由此建立了該時間序列的帶差分項的線性自回歸模型.相比隱馬爾可夫模型和條件隨機場模型這類基于序列標記的非參數(shù)模型,本文的模型在解決了OOV問題的基礎(chǔ)上依然能夠達到較高的正確率(88.25%),并可以期望在更大的數(shù)據(jù)集上保持其穩(wěn)定性.
本文的研究雖然無法代替需要通過漫長的時間進行口傳心授與演出實踐所積累的人工解讀工尺譜的經(jīng)驗,卻在一定程度上將這種人的經(jīng)驗,通過數(shù)據(jù)的形式轉(zhuǎn)換為可重復(fù)使用并且不斷更新的計算模型.通過自動翻譯模型,我們將有可能將無法用文字語言傳達的有關(guān)中國傳統(tǒng)音樂實踐中的經(jīng)驗記錄并傳承下去.