經由前處理我們得到了音樂中基本的節奏資訊,本章節將建立一個流行化的 節奏轉換模型,輸入一段已知長度的旋律或節奏序列,經過計算後產生一個流行 化節奏序列,並且會將原本的旋律所屬的節奏序列直接代換成該節奏,然後產生 變化性的重複而後輸出。
我們配合了音樂中重複的特性而設計此模型架構,並參考傳統電腦編曲中產 生樂曲的方式[7]以及最小重複單位為一小節的定義,最小重複單位是每一小節 的節奏。做法為先建立了一個節奏序列,而後為節奏變換的重複,為該節奏序列 狀態上的一種轉移,因此模型也設計分為兩個階段,一個是區域性的在小節內的 節拍轉移,另一個是基於小節之上的狀態轉移,兩者接採用馬爾可夫模型。
4.1 基於節奏變換之馬爾可夫模型
為了能製造出流行化的節奏序列,我們統計了音長序列,並建立了一階的馬 爾可夫模型(first order Markov model)。我們將每一種拍子類別視為一個節點,
拍值的最小量測單位為 1/8 拍,最大量測拍值為 4 拍,因此有 32 種拍子類別。
每種拍子類別的拍值為最小拍值的整數倍,其倍數作為該節點的數值,如圖 4.1。
每條邊代表該音拍子類別轉換到另外一拍子類別之轉移機率,形成一個 32 個節 點的有向圖。
19
圖4.1: 真實的圖過於龐大複雜,此圖為示意圖,代表五種拍子類別的轉移。
給定一待改編的輸入旋律,我們的系統會根據輸入旋律的長度,從該長度的 音樂中,找出適合替代轉換成流行的節奏。為了保持穩定的重複或是可替代性,
增加了總拍值要相等的限制,因此產出的節奏序列要符合旋律長度相等和節拍總 和相同的兩大要件。由於每個拍子類別都代表一個節點,找出適合的節奏序列問 題如同在限制節點值總和、音符數量的條件下找出權重最大的路徑。然而,從資 料集建構的有向圖具有不少的自環(loop),並且拜訪過的節點亦可重複拜訪,
並無法轉換成基本問題來求解,倘若使用暴力法(Brute-Force),展開每種可能 的序列,該問題的時間複雜度為 O(2𝐿−1),其中 L 為輸入旋律的長度,時間複雜 度隨旋律長度呈指數成長。
假設輸入的旋律總拍值為B,雖在總值限制條件下可以降低拜訪路徑,在最 差的情況下(L = 0.5B),由於複雜度指數的成長,需要降低搜尋的次數,考量 到限制條件,可以將該限制條件轉換成整數分割的問題,總拍值分解成可能的節
20
點值的和。S 為 B 可能的整數分割(有序)的集合,每個集合接代表一個路徑,𝑆𝑗𝑖 表示第i 個可能的集合中的第 j 個元素,其對應的權重表示為𝑊𝑗𝑖,代表節拍類
別的轉移機率,集合的元素個數表示為|𝑆𝑖|,代表路徑的長度。
𝑆∗ = argmax ∑ 𝑙𝑜𝑔(𝑤𝑖)
𝑠∈𝑆
subject to |𝑠𝑖| = L , = 𝐵 式(二) 傳統的 Viterbi 演算法,雖常被用來解決馬可夫模型轉移機率的問題,但在 路徑的總拍值(解點的總權重)被限制下,greedy 的假設並不存在,因此傳統的
Viterbi 演算法並無法適用於此處,因此,我們採用動態規劃法列舉指定長度下的 可行分割以降低搜尋時間,此外,當最佳解在當序列太長時耗費時間,在不強求 最佳解的情況下,則可以使用啟發式演算法。
4.2 基於音樂結構之馬爾可夫鍊
藉由前章節的方法,產生了一段節奏片段,將該節奏長度視為變奏之基本單 位,參考理論作曲的手法,考慮節奏的發展,進行有變化性的重複或是直接重複,
我們以小節作為基本單位,利用自相似矩陣(Self-similarity matrix),計算小節之 間的相似性,相似度方法則採用最長共同子序列(Longest Common Subsequence) 作為相似程度計算,如式(三) ,𝑅𝑖 、𝑅𝑗 代表樂曲中任兩節奏片段,len(𝑅𝑖) 代 表節奏片段𝑅𝑖的長度。
similarity(𝑅𝑖, 𝑅𝑗) = 𝐿𝐶𝑆(𝑅𝑖, 𝑅𝑗)
max(len(𝑅𝑖, 𝑅𝑗)) 式(三) 計算後以大於 0.8 判斷為相似結構,等於 1 判斷為相同結構,並統計個數已
21
計算出是否重複的機率,該機率為 0.79,當選擇不重複時,會搜尋既有的節奏片 段,使用 LCS 相似度找出最相似的片段進行替代。
22