• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

9

2.3. 流行音樂與歌詞自動同步

再另一方面目前動態歌詞與 KTV 裡歌詞演唱節奏的引導,都還是利用人工來標 記歌詞與音樂對應的時間點。圖 2.2 為動態歌詞用的時間標記的檔案格式 (LRC)。

[mm:ss.xx] 第一行歌詞 [mm:ss.xx] 第二行歌詞

[mm:ss.xx] 最後一行歌詞 圖 2.2 動態歌詞檔案格式

[mm:ss.xx]為時間標記的格式,mm 為分鐘數,ss 為秒數,mm 為百分之一秒

因此有學者研究如何自動化的同步使用者輸入的數位訊號(例如:MP3 或是 WAV 檔案)流行歌曲與此流行歌曲的歌詞。當然歌詞與歌曲同步的基本單位會有 不同的大小,例如是歌詞中每一個段落與歌曲同步的時間點[11];歌詞中每一句 與歌曲同步的時間點(如 LRC 標記的方式)[5][9][15][29][30];歌詞中每一個字與 歌曲同步的時間點[14][16](如 KTV 的歌詞引導系統);或是歌詞中每一個音節與 歌曲同步的時間點[8]。Lee 等人[11]提出英文流行音樂與歌詞段落同步的研究。

系統分為兩個步驟,首先利用 SSM [3] (Self-Similarity Matrix)來找出流行音樂的 結構,例如前奏-主歌-副歌-主歌-副歌-尾奏。接下來利用動態規劃(Dynamic Programming)計算流行音樂段落與利用人工標記好的歌詞段落,彼此間最小的對 應成本,並以此當作段落同步的時間點。

Wang 等人[9][29]提出英文流行音樂與單句歌詞同步的研究,他們是第一個 提出流行音樂語歌詞同步的議題。系統首先找出歌曲的結構,他們定義了前奏、

主歌、副歌、間奏與尾奏五種結構,如此可以確定歌詞在歌曲段落中出現的粗略 位置。他們先偵測歌曲的拍點(Beat),進而推算出 IBI(Inter-Beat Interval)。接下

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

10

來將 IBI 當作一個計算單位,計算每個 IBI 可能的和絃,再計算歌曲可能所屬的 調性,接下來再修正剛剛和弦偵測的結果,最後利用修正過後的和弦邊界 (Boundary)找出歌曲的小節結構;另一方面,利用副歌偵測(Chorus Detection)演 算法找出副歌片段所為在的時間區間。有了副歌片段的時間區間以及小節結構,

利用 Forward/Backward 搜尋法找出剩下的歌曲結構片段(主歌、間奏以及尾奏) 出現的時間區間,例如主歌出現在第 6 小節到第 20 小節。

有了歌詞的粗略位置後,接下來要找出每段歌詞裡每句歌詞精確的同步時間 點。樂曲的部分以 MM-HMM(Multi-Model Hidden Markov Model)為分類模型,

預測每一個 IBI 是屬於人聲類別還是非人聲類別。歌詞的部分利用監督學習 (Supervised Learning)的方式訓練好每種音素(Phoneme)在不同發音時間長度下的 分佈情況,計算出每種音素帄均的發音時間,再把每句歌詞中的所有音素帄均發 音時間作加總,作為每句歌詞演唱的時間長度。有了人聲的段落位置以及每句歌 詞演唱的時間長度,接下來把兩個部分用一對一對應(One-to-one Mapping)的方式 找出單句歌詞的同步時間區間。在同步時有以下三種情況,群聚(Grouping),人 聲出現的段落數比歌詞的句數還多,如圖 2.3(a);拆解(Partitioning),人聲出現 的段落數比歌詞的句數還少,如圖 2.3(b);直接對應,人聲出現的段落數跟歌詞 的句數相同時,如圖 2.3(c)。

圖 2.3 人聲段落與歌詞句的對應情況,白色方框為人聲段落,黑色為單句歌詞 (a)群聚 (b)拆解 (c)直接對應

此篇研究的歌曲只有考慮主歌-副歌-主歌-副歌-間奏-尾奏的歌曲結構,這種

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

11

結構只有涵蓋 40%的流行歌曲,並且假設歌曲都是 4/4 拍,所以受限於歌曲的結 構以及拍號(Time Signature)的型態。此外,在歌詞演唱的時間長度評估上,用句 子中每個音素帄均時間加總的方式會有很大的問題,因為只有在說話時,每種音 素才會有固定的持續時間,但歌曲中每個音素發音長度是根據樂曲中音符長度來 決定。

Wong 等人[30]隨後提出廣東流行歌曲與單句歌詞同步研究。在音訊處理方 面,先把有人聲部分的訊號加強,再把此訊號利用 Onset 偵測,找出歌曲裡每個 音符發音的時間點。接下來以 MLP(Multiple-Layer Perceptron)為分類模型,把 Onset 時間點分成人聲類別或是非人聲類別。並且利用 YIN 演算法找出歌曲的基 頻(Fundamental Frequency 或 f0),如圖 2.4 是歌曲的基頻隨著 Onset 時間點的分 佈情形。

圖 2.4 YIN 音高追蹤演算法偵測出的歌曲基頻分佈

在歌詞處理方面,廣東話是屬於聲調語言(Tone Language)的特性。所謂聲調 語言是指發同一個語音的時候,會因為不同的發音長度或是聲調的高低會有不同 的意思,因此廣東話的歌詞基本上就隱含了樂曲旋律的基本輪廓。廣東話有六種 聲調,他們把六種聲調分成三種類別,一、二聲屬於高音,三、五聲屬於中音,

四 、 六 聲 屬 於 低 音 , 用 這 些 規 則 抓 取 歌 詞 所 代 表 的 旋 律 特 徵 。 最 後 利 用 DTW(Dynamic Time Warping)演算法求出人聲片段的歌曲旋律特徵與歌詞旋律 特徵最佳化的時間對應關係。如圖 2.5 為只有考慮相對音高特徵的同步示意圖。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

12

圖 2.5(b)中歌詞的第 10 到 14 個字最佳化對應到圖 2.5(a)中第 27 到 61 的 Onset 時間點。此研究用 Bottom-up 的方式來做同步對應,所以歌曲中 Onset 時間點的 人聲分類如果準確率不高的話,歌詞在做 DTW 同步時對應到錯誤的時間點機率 就會增加。並且他們把 Onset 偵測的 Frame 大小設定在 50 毫秒,如果遇到輸入 的流行音樂太長的情況,用 DTW 演算法做同步時會有計算量太大的問題,因此 他們系統限定輸入的音樂片段只能在 20 秒左右。

圖 2.5 單存考慮相對音高特徵的歌詞與 Onset 時間點同步示意圖 (a)音樂訊號的相對音高特徵隨 Onset 時間點的分佈情形

(b)歌詞的相對音高特徵隨歌詞單字位置的分佈情形

Maddage 等人[14]提出英文流行音樂與單字同步研究。此篇研究最大的不同 是同步的時間解析度是一個單字,其最關鍵的想法是利用 TTS(Text-To-Speech) 把歌詞轉換成聲音的訊號,再把流行音樂的訊號跟歌詞合成的訊號做同步。首先 他們以兩個 GMM 為分類模型,分別為歌曲訊號中每個 Frame 預測是屬於人聲類 別還是非人聲類別,其中以 OSCC(Octave Scale Cepstral Coefficient)為分類的特徵。

接下來利用 DTW 演算法為歌詞合成的訊號以及歌曲訊號作每個單字的時間對齊,

其中以 LFCC(Log Frequency Cepstral Coefficient)為計算兩兩 Frame 相似度的特徵。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

13

以上提到的都是屬於訊號基底(Signal-based)的作法,因為他們在為歌詞與流行音 樂同步時並不需要做額外的訓練(Training),而是直接分析歌詞與流行音樂相互對 應的特徵。相對於訊號基底的方法,另一方面也有模型基底(Model-based)的方法 [5][8][15][16]。此方法是利用大量人工標記好的歌曲以及歌詞同步時間點,讓電 腦自動學習它們之間的關聯,建立出關聯模型,再用此模型同步使用者輸入的歌 曲和歌詞。因此,如果有大量的訓練資料的情況下,利用模型基底的方法會有較 好的效果,反之如果只有少量的訓練資料用訊號基底的方法會有較出色的效果 [14]。

Iskandar 等人[8]就是利用模型基底的方式解決英文流行音樂與音節的同步,

其最主要的貢獻是在同步的時候加入了音樂知識的考量。他們導入語音辨識 (Speech Recognition)常用的方法,訓練一個 HMM(Hidden Markov Model)來建立 歌詞中的音素與歌曲訊號特徵的關聯,其中歌曲訊號的特徵為 MFCC。接下來再 利用訓練好的 HMM 用 Viterbi 演算法,求出流行音樂與音節最佳的同步時間點。

在同步時還結合了三個音樂的知識:(1)在音樂中音符的長度並不是一個任意的 連續時間長度,而是跟歌曲節拍有關係的時間長度,例如一首節拍是 60,拍子 是 4/4 拍的歌曲中,一個 4 分音符持續的時間就會是 1 秒,一個 8 分音符持續的 時間會是 0.5 秒,在這樣的歌曲設定下比較不會出現一個持續時間為 0.68 秒的音 符;(2)不同的音符長度會有不同的出現機率,例如 8 分音符跟 4 分音符會比 9/16 和 13/16 音符常出現;(3)在歌曲中不同的片段會有不同的音符分佈,例如副歌中 出現的音符往往會比在主歌中出現的音符來的長。實驗結果當同步容錯範圍為 1/4 小節時,同步的錯誤率為 18.7%。

機選字、文句樣版(Sentence Template)選字以及文法選字,來讓產生的歌詞達到 有押韻或是有符合文法規則。也有印度的學者[27]是以坦米爾語為歌詞產生的語 言,此語言通行於印度南部、斯里蘭卡東匇部,這個名稱是來自梵文。其語言的 特性為一個字母會對應到一個音素(Phoneme),因此他們可以把所有字母轉換成 KNM 表示法,K 表示短母音,N 表示長母音,M 表示子音。例如 thA-ma-rai(蓮 花)則表示為 N-K-N。其研究關鍵的想法是旋律產生的 K-N-M 樣式(pattern)要與 產 生 歌 詞 的 K-N-M 樣 式 互 相 匹 配 。 因 此 他 們 先 把 輸 入 的 旋 律 序 列 利 用 CRF(Conditional Random Field)把標記成 K-N-M 樣式序列。接下來利用 Dijkstra 最短路演算法從語料庫中找出與旋律的 K-N-M 樣式序列最相似的歌詞 K-N-M 樣 式序列。但是他們的語料庫只有利用 Bi-gram 方式學習一個字與下一個字產生的 機率,所以產生出來的歌詞沒有符合文法,並且歌詞中每一句也沒有意義上的承 接。因此相同的研究者[26]利用 Knowledge-based 的方式改良上述產生歌詞時的 缺點。

相關文件