• 沒有找到結果。

歌詞處理(Lyrics  Processing)

3.   研究方法

3.2   歌詞處理(Lyrics  Processing)

圖四:張宇《捨得》音樂結構SSM  

§

Novelty Approach

Foote 等人[7]指出沿著 SSM 的對角線觀察,差異性較大的結構片段會呈現出西洋棋盤(Checkers Board)樣式。我們將自相似度矩陣中的值轉換至-1 到 1 之間,若兩個元素完全相似,則其值為 1,

反之若兩元素相似度為 0,則其轉換後的值為-1。我們將跳棋盤格樣式視為核心矩陣(Kernel Matrix) 來尋找結構的邊界,並且利用Kronecker Product 調整 Kernel Matrix 之大小。

§ 邊界峰值擷取(Boundary Peak Selection)

給定一個 n × n 大小的核心矩陣(Kernel Matrix),將核心矩陣沿著二階自相似度矩陣的對角線掃 描並且計算其相對應的邊界分數值。當結構邊界與核心矩陣樣式相似時,其邊界分數值會較高。圖

五為n=4 之核心矩陣由原點至終點掃描並計算邊界分數之分佈圖。在此我們選取峰值之依據為超過

平均值加一個標準差,若符合此限制條件則將此邊界視為曲式結構之邊界。

圖五 邊界峰值分佈圖

3.2   歌詞處理(Lyrics  Processing)

歌詞與歌曲類似也有主歌、副歌的歌詞結構。一般網路上流行音樂的歌詞皆以行為單位。圖十 五為鳳飛飛的《掌聲響起》。其歌詞共有 14 行,其中第 1 行到第 4 行與第 7 行到第 10 行的內容為主

歌片段。第 5 到 6 行、第 11 到 12 行與第 13 到 14 行為副歌片段。

在歌詞處理上,我們針對歌詞的每一行由字數結構、拼音結構、詞性結構、聲調音高四個角度 做特徵值擷取。接著由特徵序列計算兩行間的相似度,並建立Self-Similarity Matrix。最後進而利用 Self-Similarity Matrix 來判斷詞式。

圖六:鳳飛飛的《掌聲響起》

(1) 字數結構

每一行歌詞通常會由數個句子構成,句子之間用空白隔開。例如《掌聲響起》的第一行歌詞:”

孤獨站在這舞台 聽到掌聲響起來 我的心中有無限感慨”。此行歌詞中由三個句子所組成,由兩個 空白隔開。因此我們將其表示成<7, 7, 9>的字數結構序列。ㄧ般來說,同首歌中相同結構角色所包

含的字數往往會很接近;例如圖十六的趙傳的《我很醜,可是我很溫柔》的主歌1 第一行的字數結

構為<5, 5, 7>,主歌 2 第一行的字數結構為<5,6,7>,彼此非常相近。

圖八:趙傳的《我很醜,可是我很溫柔》

我們將兩行歌詞利用序列排比(Sequence   Alignment)為基礎的方式尋找最佳的特徵序列對應分 數,來當做兩行歌詞間的相似度。在排比的過程中,若兩行歌詞的字數不同,則必定會有詞對應到 Gap 的情形發生。

流行音樂的歌曲為求變化,即使是同樣的主歌片段,會增減音符來做變化,因此對應的歌詞也

會跟著增減。例如五月天《突然好想你》中主歌1 與主歌 2 的第一行:”最怕空氣突然安靜”與”我們

像一首最美麗的歌曲”。主歌 2 比主歌 1 的句子多了「最美麗」這個詞。這差異雖然有個字,但同

樣是三個字的差異,連續的三個字與分散的三個字相較之下,連續的Gap 其相似度高於分散的 Gap。

因此我們參考基因序列比對中Affine Gap Penalty 的概念,讓行與行之間排比時,連續 Gap 的情況 的Recurrence Relation 定義為:

S(a, b) =

定了詞性特徵元素之間的成本:

                                                c(ti, tj) = 1,

if t

i= tj 0, otherwise

!

"

#

$#

                                                                  (3.11)  

(4) 聲調結構

華語中的平仄、四聲本身就已包含音樂上的旋律因素,因此華語聲調與音樂旋律間會互相影響。

歌詞的聲調走勢與音樂的旋律互相搭配。因此歌手在唱歌的時候可以正歌詞的意義。相反地,如果

歌詞的走勢與歌曲的旋律走勢反向時,則會發生所謂的倒字現象。我們利用 Dynamic Time

Warping(DTW)的非線性比對的特性來比對兩條旋律線的相似程度。

因此,歌詞中任兩行的聲調結構序列

T

i

T

j,其距離

Dist(T

i

, T

j)定義為: Dist(Ti,Tj) =

D( T

i, Tj)

T

i + Tj

(3.12)

其中 |Ti |, |Tj |為各自音高特徵序列長度,

D 為兩序列 T

i

,T

j之間最短DTW 距離的函數。

我們認為在歌詞中若是兩行對仗的詞行,字數不會差距到兩倍,因此我們設定 Step Size 類型,

對於字數差距到兩倍的詞行,我們直接認為此兩行歌詞的距離為1。兩序列 Ti

,T

j間最短DTW 距離

函數D 一般性的遞迴關係如下

T

i[a]代表聲調音高序列 Ti的第

a 個元素,T

j[b]代表聲調音高序列 Tj的第

b 個元素。w

1,w2,w3代表不

同路徑的權重,越長的路徑權重通常越高,如此可以顯示出總字數的差異性。c 為兩音高的成本函

數其定義如下:  

 

c(t

i, tj) = ti− tj           (3.13)   由於式(3.23)的定義為距離,因此最後計算完成的矩陣會是一個 SSM,為了ㄧ致性我們將 SDM 同樣轉換成SSM。

圖九是趙傳的《我很醜,可是我很溫柔》的四種特徵序列經計算後所產生的四個SSM。這首歌

共有20 行歌詞,因此 SSM 均是 20x20 的矩陣中。在 SSM 中顏色越白表示兩行間的相似度愈高。

反之,越黑則表示相似度愈低。

圖九:《我很醜,可是我很溫柔》的四種特徵SSM

(5) 詞式分析

在取得歌詞的各個特徵值所產生的SSM 之後,我們利用線性組合將其組合成一個 SSMhybrid, 再透過分析SSMhybrid找出其重複的樣式,進而獲得詞式結構。

圖十是《瀟灑走一回》的歌詞及其SSMhybrid,其中在歌詞部分,用紅色方框所框起來的是這首 歌的主歌部分,而副歌則是用藍色方框所框起來。以第一段副歌(第 3 到 6 行)與第二段副歌(第 9 到 12 行)為例,我們可以觀察到由於兩者的歌詞完全一樣,因此相似度應該是 1。我們可以觀察到在

SSMhybrid中,第三到六行歌詞與第九到十二行歌詞的相似度是非常高的。

因此我們設計演算法,在每個樂曲段落中搜尋與每段片段相似的其他片段,形成該樂曲段落的 Family。接著再計算各個 Family 的內聚力,藉此挑出代表的樂曲段落及其相似片段。最後再利用判

斷Family 的內聚力及其成員個數來決定主歌、副歌、前奏、橋段及尾奏分別應該是哪些片段。

圖十:《瀟灑走一回》的歌詞及SSMhybrid

圖十一:相似片段搜尋

3.3   對齊與排名(Alignment  and  Ranking)

流行音樂中詞曲搭配並沒有一定的公式,但是其中卻隱含了一定的規則,因此如果在搭配時忽 略了某些規則,其搭配的結果必然不會好。本研究考慮了歌詞個數與音符個數不同時的搭配問題,

另外還有樂曲曲調及歌詞的聲調的關係對搭配所造成的影響。

我們可以將音符及歌詞分別視為一串序列(sequence),若如此做,詞曲的搭配便可以被視為是

一種Global Alignment 的問題。因此若將音符表示成序列 M  =  m1

m

2…mr,歌詞表示成序列

L  =  l

1

l

2…  ls, 我們定義何謂一個詞曲搭配(ML-Alignment)。

[定義 1] 詞曲搭配(

ML-Alignment)

給定兩個序列

M  =  m

1

m

2…mr

L  =  l

1

l

2…ls

s  ≤  r,詞曲搭配(ML-­‐alignment)是一個 monotonic onto

-function f : {1, 2,..., r} → {1, 2,..., s} 。  

圖十二為流行音樂《月亮代表我的心》的片段。以圖十二為例,M=ReMiReLaSiDoReDo,L=

月亮代表我的心,則其詞曲搭配函數

f 為 f(i)=i,

1 ≤ 𝑖 ≤ 5,  f(6)=f(7)=6, f(8)=7。其搭配結果配合歌詞 及音符表示如圖十三。

 

圖十二:詞曲搭配的例子

圖十三:詞曲搭配示意圖

為了得到比較好的詞曲搭配結果,我們考慮以下幾個詞曲搭配時的距離

n 一字多音

d

I(i, f (i)) =

m

i− mi−1 , if f (i) = f (i −1) 0 , otherwise

, 2 ≤ i ≤ r

#

$%

&

%

一般在詞曲搭配時最簡單的情形為一字對一音。但是也有可能有一字多音的情形。在一字多音 情形下,其所對應的音符之間的音程差不能太大,否則會造成演唱時的困難。因此當一字多音時,

我們計算其所對應到的音符的音程差,並將其音程差訂為距離。

(a) (b)

圖十四:任賢齊《對面女孩看過來》片段及兩種對齊方式

圖十四是任賢齊的《對面女孩看過來》片段的兩種詞曲對齊方式,我們將其表示成序列

M = Do

DoDoDoDoReReMiRe 及 L = 對面的女孩看過來。以上述的詞曲定義來看,兩個對齊方式差異只有

第八個音符「Mi」所對應到的歌詞不同,圖十四(a)是原曲的對齊方式,「Mi」所對應到的歌詞是第

七個字「過」,fa(8)=7;而圖十四(b)的對齊方式,第八個音符「Mi」對應到的歌詞是第八個字「來」,

f

b(8)=8。依圖十四(a)中的對應方式可發現序列 M 中的第七個元素「Re」及第八個元素「Mi」同樣都 對應到

L 序列中的第七個元素「過」,以數學方式表示也就是 f

a(7)=fa(8)=7。因此當計算到第八對音 符與歌詞配對的距離時,其距離為「Re」跟「Mi」的音程差: dI(8, fa(8)) = m8− m7= 1。

n 單位拍

音樂中各小節的單位拍是組成該小節最重要的部分,以 4/4 拍為例,其單位拍為四分音符,而 每個小節有四個單位拍。因此考慮若單位拍的音符與前一個音符不同,且沒有被歌詞對到,則給予 其一定的距離。

d

B(i, f (i)) = α ,

if f (i) = f (i −1) & m

i≠ mi−1

走勢應為低到高,所以可以得到

T

L(許,上)=1;但是所對應到的音符走勢為高到低,TM(Re, Si)= -1。

[定義 2] Optimal ML-alignment (歌曲與歌詞的最佳配對)

optimal ML - alignment = argmin

f

D

f(M, L) [定義 3] Dissimilarity Between Music and Lyrics (歌曲與歌詞序列的距離)

D(M, L) = min

f

D

f(M, L)

給定歌曲序列 M 與歌詞序列 L,為了求出 M 與 L 之間的最佳配對與距離,我們推導出下列的 Recurrence Relation,此 Recurrence Relation 所對應的 Dynamic Programming 演算法如圖十九所示。

S

i, j

= min

圖十九 ML-Alignmemnt Algorithm Algorithm  ML-­‐alignment  

圖十九是《快樂頌》的樂譜片段,表二是以 Dynamic Programming 求解詞曲搭配的過程(α=5,β=γ=3)。 其中,粗體字是 Dynamic Programming Backtracking 找到的最佳搭配方式。圖二十是搭配結果示意 圖。

4. 實驗與系統實作

我 們 分 別 由 KKBOX(http://kkbox.com) 、「 魔 鏡 網 」 (http://mojim.com) 及 「 MIDI 音 樂 廳 」 (http://sql.jaes.ntpc.edu.tw/javaroom/midi/alas/)擷取歌詞及歌曲的 MIDI 檔。在歌詞處理部分,我們透

過Python 設計程式,並搭配中研院的 CKIP 斷詞系統及線上字典來做處理。在音樂處理及詞曲對齊

方面,我們也是使用Python 來做處理。資料庫使用 MySQL,而前端則是撰寫 PHP 及 Javascript,

透過網站來呈現。在語音合成方面則是使用Yamaha 公司所出品的 VOCALOID 軟體。

圖二十一是以曲找詞系統的查詢畫面。使用者可以上傳歌曲,系統會自動推薦適合搭配的歌詞,

並且將詞曲合成,以供使用者試聽。圖二十二是使用者上傳《蝸牛》這首歌到系統後,系統所產生 的推薦清單。使用者可以點選查看所推薦的歌詞,或是試聽《蝸牛》這首歌曲與推薦的歌詞合成後 的結果。表三則顯示查詢歌曲及前五名的推薦歌詞。

圖二十一:以曲找詞推薦系統查詢畫面

圖二十二:《蝸牛》推薦前五名歌詞

 

表三

1. E.  Cambouropoulos,  The  Local  Boundary  Detection  Model  (LBDM)  and  its  Application  in  the  Study   of  Expressive  Timing,  In  Proc.  of  International  Computer  Music  Conference  ICMC'01,  2001.  

2.   W.  Chai  and  B.  Vercoe,  Folk  Music  Classification  Using  Hidden  Markov  Models,  In  Proc.  of  the   International  Conference  on  Artificial  Intelligence  ICAI’01,  2001.  

3.   W.  Chai  and  B.  Vercoe,  Using  User  Models  in  Music  Information  Retrieval  Systems,  Proceedings   of  International  Symposium  on  Music  Information  Retrieval,  2001.  

4.   H.  C.  Chen,  C.  H.  Lin,  and  A.  L.  P.  Chen,  Music  Segmentation  by  Rhythmic  Features  and  Melodic   Shapes,  In  Proc.  of  IEEE  International  Conference  on  Multimedia  and  Expo  ICME’04,  2004.  

5.   R.   Dannenberg,   B.   Thom,   and   D.   Watson,   A   Machine   Learning   Approach   to   Musical   Style   Recognition,  In  Proc.  of  International  Computer  Music  Conference  ICMC’97,  1997.  

6.   C.  T.  Davie,  Musical  Structure  and  Design,  Dover  Publications,  1966.  

7.   J.   Foote,   Automatic   Audio   Segmentation   Using   a   Measure   of   Audio   Novelty,   In   Proc.   of   IEEE   International  Conference  on  Multimedia  and  Expo,  2001.  

8.   C.   Fremerey,   M.   Muller,   and   M.   Clausen,   Handling   Repeats   and   Jumps   in   Score-­‐performance   Synchronization,  Proceedings  of  International  Conference  on  Music  Information  Retrieval,  2010.  

9.   H.   Fujihara,   M.   Goto,   J.   Ogata,   K.   Komatani,   T.   Ogata,   and   H.   G.   Okuno,   Automatic  

9.   H.   Fujihara,   M.   Goto,   J.   Ogata,   K.   Komatani,   T.   Ogata,   and   H.   G.   Okuno,   Automatic  

相關文件