蔣慧軍,徐 偉,肖 京
(平安科技(深圳)有限公司,廣東 深圳 518063)
音樂作品中的曲調(diào)抄襲是一種常見且經(jīng)常引起激烈爭(zhēng)論的現(xiàn)象,在判斷音樂作品是否實(shí)質(zhì)性相似時(shí),主要是對(duì)旋律進(jìn)行比較[1],法院在音樂版權(quán)案件中討論最多的也是旋律[2],在音樂抄襲判斷上,旋律相似性成為了法官運(yùn)用的最主要因素[3].盡管人們普遍認(rèn)為,兩首旋律之間對(duì)應(yīng)音符的數(shù)量有一個(gè)固定而簡(jiǎn)單的限制,但法院的實(shí)際判決是基于對(duì)音樂材料更為復(fù)雜的考慮.
旋律相似性在音樂分析[4]、版權(quán)檢測(cè)[5-6]、音樂信息提取[7-8]等領(lǐng)域中有著重要的作用.旋律相似性的定量研究已得到非常多的重視及關(guān)注[5,9-15].
評(píng)估兩首樂曲的相似性需要找出具體的相似部分.如果兩首流行樂曲的副歌部分高度相似,哪怕樂曲的其他部分不同,也很容易被判定為抄襲.當(dāng)前的相似度評(píng)測(cè)方法[16]一般是輸出整曲的相似值,但在某些侵權(quán)案例中,有些是通過對(duì)主題曲調(diào)改編及新增引子、尾聲等方式,降低樂曲的整體相似度,從而避免被檢測(cè)出樂曲抄襲的[17].
因此,我們提出一種多尺度旋律相似度評(píng)測(cè)方式,采用層級(jí)結(jié)構(gòu)由短至長(zhǎng)逐層掃描不同長(zhǎng)度的樂曲的相似性.其輸出結(jié)果是一個(gè)可視化層級(jí)圖和一個(gè)色帶圖.其中色帶圖可以明確指出相似片段的具體位置,這是大多數(shù)僅僅輸出一個(gè)相似值的旋律評(píng)測(cè)方法所不能提供的.
圖1 從旋律中提取旋律音程序列及時(shí)值序列的一個(gè)示例Fig.1 An example of pitch interval sequence and duration sequence extracted from melody
有眾多特征可用于旋律相似度分析,比如音高、旋律音程、音符時(shí)值、音符端點(diǎn)、帶音符時(shí)值權(quán)重的音高序列等.本文我們使用旋律音程序列表示音高特征,音符時(shí)值序列表示節(jié)奏特征.若記一首樂曲的旋律聲部為V,定義ε(V)為V的音高序列,π(V)為V的音程序列,ρ(V)為V的音符時(shí)值序列.可以通過相鄰音符的音高差值求得旋律音程,旋律音程保留了旋律的輪廓特征.如圖1所示的一個(gè)旋律聲部V1,可以分別得到ε(V1),π(V1)及ρ(V1).
旋律規(guī)范化作為旋律相似性比對(duì)的預(yù)處理部分,主要作用是保留旋律的主要部分.標(biāo)準(zhǔn)化處理過程主要包括識(shí)別及簡(jiǎn)化裝飾音、歸并相鄰重復(fù)音符、去除休止符.其實(shí)現(xiàn)如算法1所示.
算法1 規(guī)范化預(yù)處理
1:程序VNORM(V)
2:輸入:旋律V
3:輸出:簡(jiǎn)化后的旋律V′
4:V′←V
5: 識(shí)別及簡(jiǎn)化V′中裝飾音
5: 將V′中所有音符的時(shí)值設(shè)置為四分音符
6: 移除V′中的休止符
7: 合并V′中連續(xù)重復(fù)的音符
8: 返回V′
其中裝飾音的演奏法會(huì)影響兩首樂曲的局部相似性評(píng)測(cè),裝飾音包括顫音、波音、回音、滑音、倚音等[18].圖2所示為裝飾音記號(hào)、演奏法及簡(jiǎn)化版演奏法的示例說明.實(shí)際輸入的電子樂譜形如midi文件格式,其已經(jīng)將裝飾音按演奏法形式記錄,形如圖2(b)所示.我們通過對(duì)音符時(shí)值小于十六分音符(十六分音符的三連音除外)的檢測(cè)識(shí)別裝飾音,將其簡(jiǎn)化成形如圖2(c)的形式.
圖2 裝飾音預(yù)處理Fig.2 Ornament pretreatment
圖3我們給出了一個(gè)旋律片段規(guī)范化的示例,這些片段規(guī)范化后的音高序列ε()都為〈66,67,70,66〉.
圖3 旋律規(guī)范化示例Fig.3 Examples of melody normalization
多尺度分割是指將旋律特征序列分割成不同長(zhǎng)度的子串.將這些子串作為搜索單元,分別與目標(biāo)旋律特征序列做比對(duì),以確定其中匹配的子串,并將各子串是否匹配的信息繪制成一張二維圖,我們稱該圖為子串匹配可視化層級(jí)圖,在這張二維圖中可以直觀地看出不同長(zhǎng)度、不同位置的子串的相似度.
圖示例(這里假定S為序列ABCDE)Fig.4 An example of (Supposing S is the sequence of ABCDE)
Park等[19]使用編輯距離來計(jì)算兩個(gè)子串的相似度,其計(jì)算效率較低,若兩個(gè)特征序列的長(zhǎng)度分別為n和m,由Park等[19]的研究知算法的時(shí)間復(fù)雜度為O(nm4).接下來我們描述如何通過多尺度分割及最長(zhǎng)公共子串算法來尋找匹配旋律片段,并將算法的時(shí)間復(fù)雜度降到O(nm).
定義1給定模式P和樂譜S,在S中至少存在一個(gè)聲部V,使其子串v[b]…v[c]與模式P相同,則稱v[b]…v[c]與模式P匹配,即
π(VNORM(P))=π(VNORM(v[b]…v[c])).
算法2 尋找匹配旋律片段
同時(shí)我們定義特征序列匹配函數(shù):
當(dāng)完成Sa與Sb所有的子串匹配后,其結(jié)果會(huì)存放在一個(gè)2維匹配子串堆棧中.該2維匹配子串堆棧對(duì)于相似性分析至關(guān)重要,同時(shí)它也直觀展示了匹配子串的分布情況.匹配子串堆棧定義如下:
stack(Sa,Sb)=[an,k]|Sa|×|Sb|.
我們可以將2維匹配子串堆棧stack(Sa,Sb)繪制出來,如圖5(見 第378頁(yè))所示.其中橫軸表示Sb的各子串起始點(diǎn)的位置,縱軸表示Sb的各子串的長(zhǎng)度.2維匹配子串堆棧揭示了旋律特征序列的局部相似性.如前文所述,我們使用旋律音程和時(shí)值作為旋律的特征,為了區(qū)分這兩個(gè)特征,圖5中用橙色表示旋律音程特征,用綠色表示時(shí)值特征.圖6(見 第378頁(yè))是來自于數(shù)據(jù)集MTC-ANN[21]的兩首樂曲的旋律特征子串匹配堆棧圖,兩首樂曲分別為NLB072587_01和NLB072587_02.圖6(a)是音程特征,圖6(b)是節(jié)奏特征.從圖中可以看出在橫軸7~22的區(qū)域是高亮的,我們可以認(rèn)為該區(qū)域所對(duì)應(yīng)的旋律片段是相似的.
圖5 子串匹配可視化層級(jí)圖Fig.5 Visualization of segments matching stack
圖6 用于比較兩首樂曲旋律相似性的子串匹配堆棧圖Fig.6 An example of segments matching stack by comparing similarities between two songs紅色的點(diǎn)表示頂點(diǎn).子串起始點(diǎn)5表示子串從第5個(gè)音符開始.子串長(zhǎng)度的單位為音符個(gè)數(shù),5表示子串由5個(gè)音符構(gòu)成.
算法3 搜索頂點(diǎn)
1:程序FINDPEAKS(stack(Sa,Sb))
2:輸入:堆棧stack(Sa,Sb)
3:輸出:所有頂點(diǎn)
4:for i in 1 to |Sb|do
5: a(i,0)=0
6:for j in 1 to |Sa|do
7: a(0,j)=0
8:for i in 1 to |Sb|do
9: for j in 1 to |Sa|do
10: if a(i,j)=1 and a(i-1,j+1)=0 and a(i,j+1)=0 and j>=4 do
11:peaks←(i,j)
12: returnpeaks
正式地,音程序列的子串匹配堆棧圖的頂點(diǎn)peaksπ的公式為
peaksπ=FINDPEAKS(stack(VNORM(π(Va)),VNORM(π(Vb)))).
時(shí)值的子串匹配堆棧圖的頂點(diǎn)peakρ公式為
peaksρ=FINDPEAKS(stack(VNORM(ρ(Va)),VNORM(ρ(Vb)))).
我們?cè)谟?jì)算音程序列相似性時(shí),設(shè)計(jì)出時(shí)值調(diào)節(jié)器模塊,以時(shí)值作為權(quán)重將匹配的音程序列進(jìn)行擴(kuò)展.時(shí)值調(diào)節(jié)器的原理如算法4所示.通過時(shí)值調(diào)節(jié)器可以求得擴(kuò)展后的音程序列的子串匹配頂點(diǎn)序列:
peaks′π=regulator(peaksπ,Vb).
算法4 時(shí)值調(diào)節(jié)器
1:程序regulator(peaksπ,Vb)
2:輸入:音程序列匹配堆棧的頂點(diǎn)集peaksπ,旋律Vb
3:輸出:加入時(shí)值權(quán)重后的頂點(diǎn)集peaks′π
4:forpeakinpeaksπdo
5:k,n←peak
8:peaks′π←peaks′π∪(k′,n′)
9:returnpeaks′π
我們使用PMI(Percent Melodic Identity)來計(jì)算旋律相似性,使用PRI(Percent Rhythmic Identity)來計(jì)算節(jié)奏相似性.PMI和PRI的計(jì)算公式如下所示:
以MTC-ANN[21]的兩首樂曲NLB072587_01和NLB072587_02的比對(duì)為例,橙色表示音程特征,綠色表示節(jié)奏特征,將得到的頂點(diǎn)集按長(zhǎng)度從大到小排序,圖7展示的是相似旋律片段的色帶圖,橫軸上的刻度為十六分音符.同時(shí)還能得到兩首樂曲的旋律相似性為89%,節(jié)奏相似性為86%.
圖7 兩首樂曲相似旋律片段的色帶圖Fig.7 A ribbon chart of similar melodic segments between two songs
我們使用4個(gè)測(cè)試用例來比較我們的模型MusicPlag和Park模型[19]的比對(duì)性能.測(cè)試所用機(jī)器為Intel I7 8750H CPU,16 GB內(nèi)存.我們選取4個(gè)侵權(quán)案例,具體結(jié)果見表1.其中Mood Music與De Wolfe[22]案是英國(guó)發(fā)現(xiàn)的首個(gè)法院判定為音樂抄襲的案件,最終De Wolfe把《Girl in the Dark》的版權(quán)歸還給了Mood Music,并賠付了7萬(wàn)英鎊.TLC與E D Sheeran案[23]最終庭外和解,E D Sheeran將樂曲版權(quán)與TLC的3位作曲者共享.《烏蘇里船歌》案[17]最終法院認(rèn)定《烏蘇里船歌》為赫哲族民間曲調(diào)改編作品,而非原創(chuàng)作品.Sami Switch與E D Sheeran案[24]最終庭外和解,E D Sheeran支付25%版稅給Sami Switch.比較Park模型[19]和MusicPlag的執(zhí)行效率,可以看到隨著比對(duì)樂曲特征序列越長(zhǎng),MusicPlag在執(zhí)行效率上越有優(yōu)勢(shì).
表1 實(shí)驗(yàn)結(jié)果及性能比較Tab.1 Results for the proposed model and performance comparison
我們選取饒河縣四排赫哲族鄉(xiāng)政府訴郭頌等侵犯民間文學(xué)藝術(shù)作品著作權(quán)糾紛案作案例分析[17].該案件中涉及的兩首樂曲為《烏蘇里船歌》及《狩獵的哥哥回來了》.圖8為這兩首樂曲的色帶圖,從結(jié)果看,色帶圖可以直觀地看出相似片段的分布情況.整曲的旋律音程相似度為15%,節(jié)奏相似度為27%,可以看出兩首樂曲的整體相似度不高.我們分析兩者旋律的相似片段,如圖9所示,發(fā)現(xiàn)兩首樂曲主部第一樂句旋律幾乎相同,這與該案中,中國(guó)音樂著作權(quán)協(xié)會(huì)對(duì)其的鑒定結(jié)論一致,即《烏蘇里船歌》的主部即中部主題曲調(diào)與《狩獵的哥哥回來了》的曲調(diào)基本相同.更多案例分析可參見https:∥github.com/andyjhj/MusicPlag_Demo.
圖8 《烏蘇里船歌》及《狩獵的哥哥回來了》整曲旋律相似度色帶圖Fig.8 Melody similarity ribbon chart between the whole songs of “The Wusuli Boat Song”and “The Hunting Brother Is Back”
圖9 《烏蘇里船歌》及《狩獵的哥哥回來了》旋律相似度局部色帶圖Fig.9 Melody similarity ribbon chart between the segments of “The Wusuli Boat Song”and “The Hunting Brother Is Back”
本文我們提出了一種用于快速比對(duì)兩首樂曲旋律相似性的方法,利用色帶圖直觀地揭示了音樂作品的相似之處.該方法不僅能給出音程與節(jié)奏這兩個(gè)特征的整體相似度,還能指出相似旋律片段的具體長(zhǎng)度及位置,在音樂抄襲的客觀評(píng)價(jià)上具有可解釋性.該方法執(zhí)行速度快,不僅適用于兩個(gè)音樂作品的相似性比對(duì),還可以用于音樂作品查重、相似音樂內(nèi)容搜索等場(chǎng)景.