中 華 大 學

54  Download (0)

Full text

(1)

中 華 大 學 碩 士 論 文

一種適用於 MP3 音樂的高效能音訊指紋設計 An Efficient Audio Fingerprint Design

for MP3 Music

系 所 別:資訊工程學系碩士班 學號姓名:M09702003 張柏峰 指導教授:劉志俊博士

中 華 民 國 100 年 8 月

(2)

摘 要

由於MP3高音質與高壓縮比的特性,人們很容易利用它在網路上散播數位音 樂。雖說這種行為往往是非法的,但是卻沒有很好的方法來嚇阻。我們希望能使 用自動偵測MP3數位音樂傳輸的方法,可以自動根據一小段MP3音樂的指紋特徵 來辨識其身份,以達到自動監控MP3數位音樂非法傳輸之目的。在本文中,我們 提出能有效辨識MP3音樂身份的MP3音訊指紋的設計及其搜尋比對方法。MP3音 訊指紋所使用的音訊特徵包含梅爾頻率倒頻譜係數、MPEG-7音訊描述、音澤向 量、修正式離散餘弦轉換係數等四大類特徵。為提高音訊特徵值計算的效率,這 些特徵值是在壓縮領域中進行計算。之後對四種音訊指紋特徵進行主要成份分析,

並依照分析的結果,使用QUC-Tree索引結構進行最近鄰居搜尋,找到包含此未 知MP3音樂片段的反向索引。然後再根據此反向索引做查詢,來快速找出歌曲的 身份。

關鍵字: 音訊指紋、MP3數位音樂傳輸偵測、梅爾頻率倒頻譜係數、MPEG-7音 訊描述子、音澤向量、QUC-Tree索引結構

(3)

ABSTRACT

Because the high fidelity and high compression ratio properties of MP3 audio format, it is commonly used to spread the digital music on the Internet. While the spread of MP3 music is largely illegal, there is no a good way to detect it. We hope to develop an automatic mechanism to detect the MP3 digital music transmission. Based on the fingerprints of an MP3 music, we can automatically monitor the transmission of MP3 music bitstreams. In this paper, we propose an MP3 audio fingerprint design which can be used to recognize the identity of an MP3 music effectively. The features of the proposed MP3 fingerprint include Mel Frequency Cepstral Coefficients, MPEG-7 audio descriptors, chroma vectors, and the modified discrete cosine transform coefficients. To improve the computing efficiency of the proposed MP3 fingerprint, these features are calculated in the compression domain. After these features are extracted, the principle component analysis is applied to reduce the number of their dimension. We use the QUC-tree index structure to achieve the nearest neighbor searching, and the inverted index technique to find the unknown MP3 music clips. Experiments are performed and analysised to show the efficiency of the proposed method.

Keywords: audio fingerprinting, detection of MP3 music transmission, Mel frequency cepstral coefficients, MPEG-7 audio descriptors, chroma vectors, QUC-Tree

(4)

致謝

這篇論文可以完成,首先要感謝我的恩師-劉志俊博士。由於劉老師獨到的 眼光、敏銳的觀察力、快速且正確的判斷,使我在進行研究時少走了很多彎路。

沒有劉老師在旁協助指導,就沒有這篇論文。

除了劉老師外,同學和學弟的協助也都是我在這幾年來能一步一腳印慢慢完 成論文之中的,功不可沒的一群助力。而學校可以提供如此一個美好的環境讓我 致力於研究,也使我銘感在心。

最後,僅將此論文獻與我的父母,他們是我研究中最大的支柱。

(5)

目錄

1. 緒論 ... 1

2. 相關研究 ... 4

2.1. 依音訊指紋分類 ... 4

2.1.1. 使用梅爾頻率倒頻譜係數作為音訊指紋... 5

2.1.2. 使用 MPEG-7 音訊描述子作為音訊指紋 ... 6

2.1.3. 使用音澤向量作為音訊指紋 ... 7

2.1.4. 使用其他特徵值作為音訊指紋 ... 7

2.2. 依搜尋比對方法分類 ... 8

2.2.1. 使用最近鄰居搜尋作為搜尋比對方法 ... 8

2.2.2. 使用分類器作為搜尋比對方法 ... 9

2.2.3. 使用反向索引清單作為搜尋比對方法 ... 10

2.2.4. 使用雜湊作為搜尋比對方法 ... 10

3. 音訊指紋系統 ... 12

3.1. 音訊指紋系統之需求 ... 12

3.2. MP3 音訊指紋系統之架構 ... 14

3.3. MP3 音訊指紋之設計... 15

3.3.1. 修正式離散餘弦轉換係數 ... 15

3.3.2. 梅爾頻率倒頻譜係數 ... 16

3.3.3. MPEG-7 音訊描述子 ... 18

3.3.4. 音澤向量 ... 20

3.4. MP3 音訊指紋之索引與搜尋 ... 21

3.4.1. 最近鄰居搜尋樹尋找候選音訊指紋 ... 22

3.4.2. 反向索引清單... 25

4. 實驗 ... 28

4.1. 實驗環境 ... 28

(6)

4.3. 實驗結果 ... 30

4.3.1. 貣音點偵測實驗 ... 30

4.3.2. 音訊指紋健固度實驗 ... 31

4.3.3. 音訊指紋之主要成份分析實驗 ... 33

4.3.4. 音訊指紋辨識準確率實驗 ... 34

4.3.5. 音訊指紋反向索引效能實驗 ... 36

5. 結論 ... 42

6. 參考文獻 ... 43

(7)

圖目錄

圖 1. 財團法人台灣唱片出版事業基金會歷年銷售趨勢圖... 1

圖 2. 音訊指紋系統之架構... 14

圖 3. MP3 解碼流程圖 ... 16

圖 4. 梅爾頻率倒頻譜係數之計算流程 ... 17

圖 5. MPEG-7 音訊描述計算過程 ... 19

圖 6. 音澤向量計算方法 ... 21

圖 7. 最近鄰居搜尋樹建立流程圖 ... 22

圖 8. 音訊指紋主成份陡坡圖 ... 24

圖 9. 音訊指紋主成份分析... 25

圖 10. 最近鄰居搜尋樹示意圖 ... 25

圖 11. 反向索引清單建立流程 ... 26

圖 12. 反向索引示意圖 ... 26

圖 13. 6 首歌曲前 20 秒貣音點偵測結果 ... 30

圖 14. 反向索引發生誤判之示意圖 ... 37

圖 15. 搜尋空間距離之示意圖 ... 37

圖 16. 過濾能力實驗(100 筆記錄) ... 38

圖 17. 過濾能力實驗(1000 筆記錄) ... 39

圖 18. 過濾能力實驗(10000 筆記錄) ... 39

圖 19. 反向索引位元數與查詢處理執行時間 ... 40

圖 20. 資料大小與查詢處理執行時間 ... 40

(8)

表目錄

表 1. 扭曲實驗整理表 ... 13

表 2. 音訊指紋健固度實驗樣本 ... 31

表 3. 四種音訊指紋之扭曲實驗 ... 32

表 4. 各主要成份維度之主要成份 ... 33

表 5. 主成份分析後之音訊指紋誤差百分比 ... 34

表 6. 主要成份空間最近鄰居之距離 ... 35

表 7. 主要成份分析後之音訊指紋比對準確率 ... 35

(9)

1. 緒論

隨著科技的進步,網路傳輸速度與電腦的儲存及計算能力,都不時的在持續增加,

各種多媒體壓縮技術也都不斷的在推陳出新。近年來,在數位音樂儲存方面的主流是 MP3 格式[15],MP3 音樂藉由去除人耳無法感知的聲音訊號,以達到高壓縮比又可維 持 CD 等級音質的目的。由於使用 MP3 來儲存數位音樂,佔用的儲存空間少,聽貣 感覺來也與 CD 無異,因此在網路上公開散播、分享 MP3 數位音樂,變的愈來越容 易。雖說這種行為通常是非法的,但是卻沒有好的方法來阻止。再加上,許多論壇會 以積分的方式來鼓勵使用者分享數位音樂,造成愈來越多人在進行這種非法行為。也 因此,侵害版權的 MP3 數位音樂,在網路上愈來越氾濫。由於非法 MP3 數位音樂隨 手可得,肯花費代價去取得正版音樂的使用者愈來越少。這種情況對音樂創作者來說,

實是一大打擊,同時也是音樂工業的一場大劫難。財團法人台灣唱片出版事業基金會 是國內專門管理音樂銷售及相關法律問題的一個組織,圖 1 是他們歷年來的 CD 銷 售金額統計,由這張圖可以看出實體 CD 的銷售額正逐年的下降,而數位音樂的銷售 額卻逐年上升。

圖 1. 財團法人台灣唱片出版事業基金會歷年銷售趨勢圖

0.0 2000.0 4000.0 6000.0 8000.0 10000.0 12000.0 14000.0

1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009

銷售額(百萬)

實體 數位

(10)

所以我們需要一個能自動偵測是否有非法 MP3 數位音樂在散播的方法。MP3 數 位音樂在經過壓縮之後,通常會有失真的情況。以人類的感知觀點來說,這些失真並 不會對判斷造成影響。而且,若是遇到熟悉的音樂,即使只聽一小部分,也可以判斷 出是哪一首音樂。但若是以人工的方式來監控,查看是否有非法的傳輸,那將會是一 件耗時費力的工作。先不論這樣做的效能如何,光是監控所有傳輸所需要的人力,就 是一筆龐大的數目。所以我們需要一個方法,可以自動根據一小段 MP3 音樂辨識其 身份,以達到自動監控 MP3 數位音樂非法傳輸之目的。

音訊指紋(audio fingerprint)是用來識別一段未知音樂片段之身份的一組精簡特徵 簽名,其數值是根據音樂的內容摘要所計算而得。音訊指紋系統則是使用音訊指紋來 對數位音樂做辨識的系統。由於音訊指紋具有識別特定樂曲的特性,我們可以使用音 訊指紋系統,達到自動監控 MP3 數位音樂非法傳輸的目的。

音訊指紋的研究源貣於 1990 年代。當時由於電腦的計算能力進步,使用電腦來 儲存音訊資料變的可行,因此,當時有很多論文開始探討如何使用電腦來對音樂做數 位典藏[26][27][30][33][34][40][41][42]。然而,數位音樂典藏不單只是儲存,還必需 要可以對數位音樂做搜尋與管理,所以後來的研究重點逐漸由數位音樂儲存技術轉為 如何對數位音樂做比對辨識[32][35]。當音樂比對辨識的研究做到一定的程度後,辨 識的架構流程大多已經定型,後續研究方向逐漸轉為著重於音訊特徵值的設計。對於 音訊特徵值的設計,[1]一文中第一次使用音訊指紋此一名詞來描述音訊特徵值。而 後續也有許多論文分別給音訊指紋下了不同的定義[1][2][7] [13][37]。

音訊指紋系統除了可以用來對傳輸做監控外,還有其他許多用途:

廣告監控:監控某個廣播是否有按時播放特定廣告。打廣告的業者,會想 要知道某廣播到底有沒有確實的播放足數的完整廣告。

音樂相關節目搜尋:尋找與某音樂相關的節目。特別是當某首歌曲流行時,

使用者會想要知道有哪些節目裡會出現該首歌。

自動附加 ID3 資訊:自動對音樂檔案做 ID3 資訊的附加。當檔案錄製成 MP3

(11)

後,通常不會有 ID3 的資訊,音訊指紋系統可以自動的為其找到相對應的 ID3 資訊並附加上去。

音樂分類:自動附加 ID3 資訊後,可以順便將之分類,像是依歌手名稱、

歌曲類型、歌曲年代分類,變成一個有規則的音樂資料庫。

十大查詢排行榜:提供音樂資訊查詢的業者,也可以利用這些查詢資訊來 做統計,列出十大查詢排行榜。

音樂推薦:提供音樂資訊查詢的業者,也可以利用這些查詢資訊來做資料 探勘,列出使用者可能會感興趣的音樂。

提供加值服務:只有使用正版音樂來做查詢的使用者,才可以下載某些加 值的獎勵。

檔案過濾系統:一些網路的公開分享空間,常會被放上一些有版權的音樂 來做分享,若是有音訊指紋系統先行把關,就可以過濾掉此種情況。

(12)

2. 相關研究

音樂識別系統最主要的部分,是由兩個子系統所構成。這兩個子系統分別是音訊 指紋擷取系統和音訊指紋搜尋比對系統。要使用音樂識別系統,對未知音樂片段做辨 識時,第一步要先做的是建立音訊指紋資料庫。先使用音訊指紋擷取系統,將音樂資 料庫中,所有音樂的音訊指紋擷取出來,並將之存入音訊指紋資料庫中。當我們要辨 識一段未知音樂片段時,一樣使用音訊指紋擷取系統,從該未知音樂片段中,擷取出 音訊指紋。再利用音訊指紋搜尋比對系統,從音訊指紋資料庫中,找出音訊指紋最相 似的幾筆資料,作為搜尋結果。

在音訊指紋擷取系統和音訊指紋搜尋比對系統中,各有許多不同的做法。以音訊 指紋擷取系統為例,各研究方法最大的差別就在於使用的音訊指紋的種類。而對音訊 指紋搜尋比對系統來說,最大的差異就是儲存音訊指紋的方法以及音訊指紋搜尋比對 的索引結構。以下分別以音訊指紋擷取系統與音訊指紋搜尋比對系統兩個不同的觀點 來做相關研究的深入探討。

2.1. 依音訊指紋分類

在音訊指紋擷取系統中,會選擇不同音訊指紋的原因,固然是因為各種音訊指紋 應用系統的需求不同,但大多不外乎是想要達到四點目的:第一,可以將資料庫中的 所有音樂區分開來。若在音訊指紋空間中,兩兩音樂之間的距離越大,那麼也就會越 容易辨識出不同的音樂。第二,可以不受失真的影響。雖說用來做辨識用的未知音樂 片段,在大多數的情況下都會有失真的情形,但是,音訊指紋最好能不受失真扭曲的 影響。第三,比對速度要快。很明顯的,若是計算一組音訊指紋要很長,那不管識別 效果有多好也不能實際使用。第四,可以只藉由一小部分的未知音樂片段,辨識出該 首音樂的身份。若是有一組音訊指紋,只需要 1 秒鐘的音樂片段就可以辨識出一首歌 的身份,而另一組音訊指紋則需要完整的整首歌才可以辨識出來,那麼一定是前者的

(13)

比較好。

在本論文中,我們將音訊指紋歸類為四大類,分別是:梅爾頻率倒頻譜係數 (Mel-Frequency Cepstral Coefficients, MFCCs)、MPEG-7 聲音描述子(MPEG-7 audio description)、音澤向量(chroma vector)、以及其他音訊指紋。在接下來的章節中,我 們會逐一介紹使用各類特徵值的相關研究。

2.1.1. 使用梅爾頻率倒頻譜係數作為音訊指紋

梅爾頻率倒頻譜係數(MFCC)是描述頻譜輪廓的一種音訊特徵值。但有別於一般 的頻譜輪廓描述方法,其特別的地方在於:梅爾頻率倒頻譜係數在能量和頻率的呈現 方面,針對人耳感知特性進行最佳化。人耳對於能量變化的感知靈敏度,會根據能量 大小的程度而變化。能量低時,只要能量大小有些許的差異,人耳即可查覺。但是當 能量愈來越大時,能量的變化也必頇愈來越大,人耳才能查覺的到。人耳在頻率變化 的感知上,也呈現出與能量相似的現象。當頻率低的時候,只要頻率有些許的變化,

人耳就聽得出來。但是當頻率愈來越高的時候,頻率的變化也必頇愈來越大,人耳才 能查覺。梅爾頻率倒頻譜係數對於上述這兩種現象,做了最佳化的處理。因此,梅爾 頻率倒頻譜係數是針對人耳作最佳化的頻譜輪廓描述。此外,梅爾頻率倒頻譜係數是 語音辨識最常用的特徵值之一。使用梅爾頻率倒頻譜係數來做為其音訊指紋的研究有 [4] [6][35]。

[4][6][35]等文提出的梅爾頻率倒頻譜係數計算方法大致如下:首先將整首音樂切 成一連串的音框(frame),然後對各音框做窗函數(windowing)以去除雜訊。接下來對 各音框做傅立葉轉換,取得頻率與能量的分布情形。再來,以梅爾尺度對頻率軸作切 割,切割成不同的子頻帶,並分別計算出各個子頻帶的能量值。最後,將得到的能量 值,做對數轉換和離散餘弦轉換,所得的值即為其 MFCC 特徵。[4][6][35]在計算梅 爾頻率倒頻譜係數的方法上大致相同,不同的是,[35]一文沒有做窗函數,[4][6]文中 提出的方法有做窗函數。在應用方面,[35]一文的主要目的是在於數位音樂的管理,

(14)

而[4][6]是針對廣播作音樂識別。

2.1.2. 使用 MPEG-7 音訊描述子作為音訊指紋

MPEG-7 是 ISO 組織所訂定的一套規範,有別於 MPEG-1、MPEG-2、MPEG-4 用來儲存多媒體檔案,MPEG-7 的目的在於儲存多媒體內容的描述[16]。MPEG-7 針 對多媒體內容的描述方面,訂定了許多的規範,像是如何描述影片內容的物件與動作。

而對於音訊的部分,MPEG-7 也有訂定出一些描述音訊內容的規範,稱做 MPEG-7 音 訊描述子[17]。MPEG-7 音訊描述子有兩種,分別是低層級描述和高層級描述。低層 級描述分為六大類,其中有兩類描述音色(timbral temporal、timbral spectral),兩類用 來描述頻譜(basic spectral、spectral basis),一類描述聲音的物理特性(basic),剩下的 一類描述樂理特性(signal parameter)。高層級描述有 5 個,分別是音訊簽名(audio signature description) 、 音 色 (musical instrument timbre description) 、 旋 律 (melody description)、聲音識別及索引(general sound recognition and indexing description)以及語 音內容(spoken content)。使用 MPEG-7 音訊描述子來做音樂識別的相關研究有[1][20],

說明如下。

[1]一文使用 MPEG-7 低層級音訊描述中的能量(audio power)、頻譜平坦度(audio spectrum flatness)、頻譜展開度(audio spectrum spread)作為音訊指紋。其計算音訊指紋 的過程如下:先將音訊切割成一連串連續的音框,分別對其作離散傅立葉轉換,轉換 到頻率領域。接下來將頻率切割成數個子頻帶,並分別計算出各個子頻帶的能量、頻 譜平坦度、頻譜展開度三個值。本文的實驗顯示:若以他們較調的參數來做聲音識別 的話,能量值對於等化造成的扭曲相當好的抵抗能力,頻譜平坦度和頻譜展開度則對 MP3 壓縮造成的扭曲有不錯的抵抗能力。

[20]一文使用 MPEG-7 音訊指紋中,高層級描述的音訊簽名,作為其音訊指紋。

其實驗結果顯示本文提出之音訊簽名,對於 MP3 壓縮、重製、等化所造成的扭曲,

都有不錯的抵抗能力。另外,根據[17]一文所述,音訊簽名在音訊比對上有相當好的

(15)

健固度,用其作為音訊指紋是相當不錯的選擇。

2.1.3. 使用音澤向量作為音訊指紋

音澤(chroma)一詞是源於人耳在有關調性感知方面的一種特性。在頻率上相鄰八 度音的兩個音,人耳聽貣來會有一種相似的性質,我們稱此性質作音澤。一般來說,

最常見的音澤就是指樂理上的 12 半音,不論是在第幾個八度音層,都會有相對應的 12 個半音/音澤。若將能量值依照音澤做加總,會得到一組 12 維的總能量值,我們稱 這組能量值作音澤向量(chroma vector)。音澤向量可以用來表示不同的和絃,或是反 應出音訊的組成能量在不同調性上的分布情況。以往使用音澤向量來做音樂識別的相 關研究有[3][23],說明如下。

[3]一文提出一種利用副歌(chorus)做為音樂摘要(music summary)的方法。其副歌 搜尋的做法如下:首先以[9]所提出的拍子追蹤法,將整首歌切割成一連串的拍段(beat segment)。接著以 12 個半音所組成的音澤向量(chroma vectors)來代表拍段的內涵,分 別計算出每個拍段的音澤向量。再以這些內涵找出一首音樂中有的重複片段。最後挑 選出最長的一個重複片段,作為其副歌,此副歌即為這首歌之音樂摘要。

[23]一文根據[3]一文提出的方法為基礎,提出一種識別音樂的方法;該方法以 12 半音所組成的音澤向量為基礎來做音訊指紋擷取,再使用反向檔(inverted file)來進行 比對。取音訊指紋的過程如下:首先將整首音樂切成一連串的音框(frames),然後對 各音框做傅立葉轉換,取得頻率與能量的分布情形。接著以這分佈情形來計算出各音 框的音澤向量。再以音澤向量統計出 12 半音之能量分布比率,並以對數比(logarithm scale)為基礎來對 12 半音的能量分佈率做量化。最後再對這些一連串 12 半音量化後 的值做窗函數(window function)及降取樣率(downsample)以計算出最後的音訊指紋。

此篇論文解釋做窗函數和降取樣率的目的,是為了可以增加模糊比對的能力。

2.1.4. 使用其他特徵值作為音訊指紋

(16)

[13]一文中,Haitsma 提出一種辨識音樂的方法,文中設計了一組音訊指紋,以 此音訊指紋對所有的歌曲建立反向索引表,並以此反向索引表來進行辨識。此方法中,

特徵值的取法如下:首先將歌曲切割成一連串的音框,並做傅立葉轉換。接著,依照 樂理的半音頻率為基準,將樂音頻帶分成許多的子頻帶,之後分別統計各個子頻帶的 能量值。然後計算出相鄰兩個子頻帶的能量差,稱為頻域能量差。最後再計算出相鄰 兩音框的頻域能量差之差值,稱做時頻能量差。若時頻能量差為正則輸出 1,否則輸 出 0,最後所得的二元字串就是最後的音訊指紋。

[2]一文根據[13]提的方法做修改,設計了一組音訊指紋。當[13]一文提出的時頻 能量差計算出來後,會先累積多個音框的值,以形成時頻能量差的頻譜。接下來對此 頻譜做小波轉換,取得表示時頻能量差變化率的圖形。之後去除掉圖形上的一些雜訊,

只保留變化率高的地方。再來依照變化率的值,將其轉為二元字串。此時,二元字串 會是一個稀疏矩陣,因此,最後使用最小雜湊(min hash)將其資訊做濃縮。濃縮後的 值即為音訊指紋。

2.2. 依搜尋比對方法分類

在做未知音樂辨識時,當音訊指紋擷取系統擷取出音訊指紋之後,接下來會交由 音訊指紋搜尋比對系統來做查詢處理。音訊指紋搜尋比對系統會以擷取出來的音訊指 紋,來對音訊指紋資料庫做查詢。搜尋比對方法的好壞,會影響到搜尋比對的效能,

以及系統的容錯能力。搜尋比對的方法有很多,而我們將之分成五類:全域搜尋、最 近鄰居搜尋(nearest neighbor search)、分類器(classifier)、反向索引清單(inverted list)、

雜湊表(hash table)。除了全域搜尋不探討以外,以下章節將會深入探討其餘四類搜尋 比對方法的相關研究。

2.2.1. 使用最近鄰居搜尋作為搜尋比對方法

顧名思義,最近鄰居搜尋就是找尋與給定查詢標的最接近的資料。在音樂識別上,

(17)

其涵義就是依據所給的音訊指紋,找出在音訊指紋資料庫中,音訊指紋與其距離最相 近的音樂。其做法有很多種,最普通的就是逐一的將每個資料的特徵值與查詢標的的 特徵值之歐幾里得距離計算出來,並找出距離最接近的一個。此外並可預先建立一個 索引結構,用來將所有的資料作階層式分類,以縮小需要計算比對的個數。典型使用 最近鄰居搜尋作為音訊指紋搜尋比對方法的有[1] [20][29]等文。

[1][20]使用 MPEG-7 音訊簽名作為音訊指紋,並預先利用叢集技術來對資料庫中 的所有音樂做分類。比對時,先從未知音樂片段中取出音訊指紋,並且找出該音訊指 紋是屬於哪一個叢集。之後再對該叢集中的所有音訊指紋一一進行比對,計算出查詢 音訊指紋與資料庫所有的音訊指紋間歐幾里得距離,並找出最近的作為輸出結果。

2.2.2. 使用分類器作為搜尋比對方法

分類器的概念就是將有相同性質的東西聚集貣來,以便縮小查詢比對的範圍。以 音樂的辨識來說,我們可以將歌曲分為搖滾、抒情、古典等幾大類,被分為同一類型 的歌曲都會有相同的性質。以搖滾音樂來說,聽貣來會讓人不自主的隨之搖擺,抒情 歌聽貣來慢慢且輕柔,古典音樂聽貣來有結構又嚴謹,各類音樂的性質在訊號分析上,

通常都稱為特徵值,也可以想作前文所提的音訊指紋。電腦若是要對音樂做分類,則 可以依靠各類音樂的特徵值。分類器大多是分為兩階段來執行。第一是訓練(traning)。

這階段是在教導分類器如何做分類。通常會給定一些預先分類好的資料集合,稱為訓 練資料集,並且定義出一些特徵值。分類器會自動學習,該如何依照定義的特徵值來 做分類,以符合給定的資料集合。第二階段就是對待辨識資料進行分類。當有一個未 分類的物件加入時,分類器會依照之前所學習的分類依據,來對此物件做分類,並給 定結果。分類器有許多種,像是高斯混和模型(GMM)、隱藏式馬可夫模型(HMM)、

支持向量機器(SVM)等。而使用分類器技術作為音訊指紋搜尋比對方法的論文有 [4][6][18][21][35],說明如下。

[35]使用梅爾頻率倒頻譜係數作為音訊指紋,再配合高斯混和模型來對數位音樂

(18)

做分類。在此篇論文中,當所有音樂的音訊指紋擷取出來並存入資料庫後,會先分別 對各個音樂類型,依照高斯模型建立機率密度函數,並合成高斯混和模型。當有未知 音樂片段時,先擷取其音訊指紋,並逐一依照各個音樂類型的機率密度函數,計算出 未知音樂片段屬於此音樂類型的機率,找出各音樂類型機率最大者,即為分類結果。

[18]一文在取音訊指紋的時候,使用了稱為 adaboost 的分類器來訓練參數,使 得其音訊指紋空間可以達到最佳化。此論文擷取音訊指紋的方法如下:首先將音訊指 紋切分成連續的音框,計算出每個音框的頻譜子頻帶中心(spectral subband cetroid),

並累積成為頻譜子頻帶中心的頻譜。接著,由數組轉換方法中,選擇一種來將此頻譜 轉為一連串的數值。再由多種量化方法中,選擇一種來將一連串的值做量化,產生 2 元的音訊指紋。其中,在選擇轉換方法和量化方法方面,必頇藉由 adaboost 分類器不 斷的訓練,找出一個最佳化的組合,使得音訊指紋空間的離散程度達到最大。

2.2.3. 使用反向索引清單作為搜尋比對方法

反向索引清單的原理是預先建立一個快速查詢表,當有要查找的資料時,可以利 用該表格資訊,快速找到相對應的位置取出後選名單,並進一步做精密比對。[13]一 文在擷取一首歌曲的音訊指紋時,會同時對該歌曲做扭曲,並擷取出各個扭曲版本歌 曲的音訊指紋,依此找出最健固的地方來建立反向索引表。當反向索引表建立完成後,

只要依照此表做查詢,以查到的位置為基準做比對,可快速找出與未知歌曲相似度最 高的候選歌曲名單。

2.2.4. 使用雜湊作為搜尋比對方法

雜湊是將一個物件或資料轉換成一個相對應索引值的方法。而雜湊表的概念就是 先將資料依照雜湊值的順序來建立索引結構。當有資料要查詢時,一樣先做雜湊,再 依照雜湊值找到候選名單,再進一步做精密比對。如此一來,就可以縮小比對的範圍。

[2]一文在建立音訊指紋雜湊表時,是將一個完整的音訊指紋做切割,切割成等長的

(19)

子音訊指紋,並分別各自建立雜湊表。雜湊表裡記錄著雜湊值及其對應的音訊指紋出 現之位置。當要進行未知歌曲搜尋時,一樣對未知歌曲的音訊指紋做切割,並分別查 詢各自對應的雜湊表。然後從各自音訊指紋結果比對得到各自的候選歌曲位置資訊,

而有些候選歌曲則會重複,重複次數最多的候選歌曲就是未知歌曲的辨識結果。使用 先切割音訊指紋再來建雜湊表的這個機制,可以使得此音訊查詢機制擁有容錯的能力。

若是發生音樂訊號扭曲的現象,改變得很可能只是其音訊指紋的一小部分,而此一小 部分的改變,不會對查詢結果有太大的改變,固可達到抗扭曲的容錯目的。

(20)

3. 音訊指紋系統

3.1. 音訊指紋系統之需求

音訊指紋是用來識別一段未知音樂片段之身份的一組精簡特徵簽名,其數值是根 據音樂的內容摘要所計算而得,且此組特徵值頇滿足四點需求:

高鑑別度(discrimination):音訊指紋資料庫中,兩兩音訊指紋之間的差異,

要越大越好,如此一來,辨識時比較不容易發生混淆。

高健固度(robustness):用以查詢的片段,通常不會和資料庫中的紀錄一模 一樣。在傳輸的過程中,常會因為壓縮、增益調整、雜訊、數位類比轉換、

音量調整、速度微調、設備好壞等,造成失真。數位音樂在經過這些處理 後,音訊指紋系統所取出之音訊指紋,與原本的音訊指紋相比,不能產生 太大的變化。

高效能的(efficient):音訊指紋要可以快速的被比對及搜尋。在很多應用當 中,音訊指紋系統需要在短時間內,從數以千萬的數位音樂紀錄中,找到 所需要的。

低段長度(granularity):識別一首音樂所必需的最短音樂片段長度,要越短 越好。

音訊指紋系統是利用音訊指紋來對數位音樂身份做辨識的一個系統。它擷取出音 樂的音訊指紋,並將之與事先建立的音訊指紋資料庫中的指紋做比對。對於之前提到 的失真和音樂不完整的情況,音訊指紋系統即使是在這些狀況下,也可以保有良好的 辨識率。因此,音訊指紋系統很適合拿來自動的對傳輸做監控,並偵測是否有非法的 數位音樂在傳輸。

音訊指紋對失真的情況應當要有良好的健固度,才能保有系統的可靠性。底下列 出一些會導致失真的常見情況:

時間位移(time shift):指紋資料庫中的音訊指紋,大多是從一首歌的開頭

(21)

開始取,但是用來辨識的音樂片段,可能是取自於一首歌的中間部分 。

感知性壓縮(perceptual audio coding):未知的音樂片段,可能經過感知性壓 縮(ex: MP3)的處理,丟除了一些人耳不易察覺的資訊,造成失真 。

重製(loudspeaker-microphone):未知的音樂片段,是經過多次格式轉換後 的版本,或是經由喇叭麥克風重新錄製的版本。

音量改變:未知的音樂片段,其音量可能經過調整,而與資料庫中的不同。

時間延展(time scale) :未知的音樂片段,其播放速度可能經過調整,而與 資料庫中的有所不同。

雜訊:未知的音樂片段,可能會參雜一些雜訊,而與資料庫中的有所不同。

限制頻寬(bandlimiting):未知的音樂片段,根據不同的應用,可能會因為 頻寬的限制,丟失某些頻域上的資訊,而與資料庫中的有所不同。

等化(equalization):未知的音樂片段,可能經過等化器的調整,而與資料 庫中的有所不同。

表 1. 扭曲實驗整理表 論文

時 間 位 移

感知性壓縮 重製

音 量 改 變

時間延 展

雜 訊

限制頻 寬

等 化

Allamanche

2001[1] 15s MP3-96kbps 揚聲器-麥克風 Y

Batlle 2002[4] Y MP3-128、32、24kbps Radio Y

Cano 2002[6] MP3-128、96、72、

48、32、24kbps

Kastner 2002[20] MP3-96kbps 揚聲器-麥克風 Y

Haitsma 2003[13] MP3-128、32kbps Real 20kbps

GSM、D/A、A/D Y +-4% Y

Banned 0.1~6k Hz

Y

Baluja 2008[2] Y MP3-32Kbps GMS +-10% Y Y

Kurth 2008[23] MP3-65kbps +50%

Jang 2009[18] 92

ms MP3-96kbps WAM-64kbps

降取樣率 16kHz Y

Passed 0.4~4k Hz

Y

Kim 2009[21] MP3-64、32kbps +-2%

+-5%

(22)

由表 1 可以得知,對於音樂辨識來說,一般最常做的扭曲實驗是感知性壓縮,

主要是因為 MP3 格式近年來盛行的緣故。其次是重製,因為數位音樂有許多不同的 格式,而人們通常會把得到的數位音樂,轉為自己熟悉的格式。因此,辨識用的未知 音樂片段大多會經過重製。針對其它扭曲做實驗的就相對比較少。其中,由於辨識的 特性,辨識用的未知音樂片段幾乎都會發生時間位移,但是針對時間位移做實驗的研 究卻比較少,只有 4 篇論文有進行討論。

3.2. MP3 音訊指紋系統之架構

未知MP3音訊

主要成份分析 PCA

最近鄰居搜尋樹 尋找候選音訊 (QUC-Tree索引)

反向音訊索引

MP3音訊簽名比對 計算總音訊相似度

MP3音訊身份 MP3音樂

資料庫 索引樹

MP3音樂 資料庫 反向索引

MP3音樂 資料庫 簽名檔

MFCC/MPEG-7/

MDCT/音澤向量 音訊簽名計算

圖 2. 音訊指紋系統之架構

我們提出音訊指紋系統之架構如圖 2 所示。此架構包含兩個程序,分別是音訊 指紋資料庫的建立以及音訊指紋的查詢。在音訊指紋資料庫的建立方面,我們先對 MP3 數位音樂資料庫中的每首數位音樂,建構其音訊指紋,透過擷取出四種音訊指 紋特徵,即 MDCT、音澤向量、MFCC、MPEG-7 音訊描述等音訊指紋特徵,根據音

(23)

訊指紋計算音訊簽名,並依照音訊指紋特徵的簽名各自建立反向索引。為降低音訊指 紋特徵值的維度,我們對原始音訊指紋進行主要成份分析(PCA),取出最重要的幾個 特徵值空間維度,並依照維度的重要性,使用 QUC-Tree 索引結構[38]來建立最近鄰 居搜尋樹。索引結構建立完畢後,每個 QUC-Tree 葉節點即是一個音訊指紋子類別,

連接此音訊指紋子類別對應之音訊簽名。

在音訊指紋的查詢方面,當待識別之未知 MP3 音樂片段進入音訊指紋比對系統 後,我們先對未知 MP3 音樂片段擷取四種音訊指紋特徵,產生音訊簽名。之後對四 種音訊指紋特徵進行主要成份分析,並依照分析的結果,使用 QUC-Tree 索引結構進 行最近鄰居搜尋,找到包含此未知 MP3 音樂片段的 QUC-Tree 葉節點。然後再根據 此 QUC-Tree 葉節點的反向索引做查詢。再一一的對查到的結果做指紋比對,來快速 找到相對應的索引位置,找出歌曲的身份。

3.3. MP3 音訊指紋之設計

以往的數位音訊指紋研究,大多針對原始音訊波形資料(raw audio data)進行處理。

但是以目前的數位音樂來說,大多數是以 MP3 的格式編碼儲存。根據以往的作法,

必頇先將 MP3 還原成原始音訊波形資料,再來進行音訊指紋處理。如此一來,會花 費許多不必要的時間。本文提出一種高效率的壓縮領域 MP3 音訊指紋計算方法,可 以直接由 MP3 壓縮音訊資料中,快速的算出四種音訊指紋特徵。本音訊指紋系統所 使用的音訊指紋有 MFCC 係數、MPEG-7 音訊描述、音澤向量、MDCT 係數等四大 類特徵。其中由於 MDCT 係數是 MP3 格式本身所擁有的一組數值,因此幾乎不用計 算即可由 MP3 檔案中取得。當取得 MDCT 數值後,我們再透過 MDCT 係數,計算 出音澤向量、MFCC 係數、MPEG-7 音訊描述。以下詳細說明此四種音訊指紋特徵的 涵義與計算方式。

3.3.1. 修正式離散餘弦轉換係數

(24)

MP3 數位音樂在壓縮音訊編碼的過程中,首先會先將原始音訊,經過多相位濾 波器,切割成等頻寬的 32 個子頻帶。再來分別對每個子頻帶進行修正式離散餘弦轉 換(MDCT,modified discrete cosine transform),取得總共 576 個 MDCT 係數。然後配 合尺度因子(scale-factor)、赫夫曼編碼(Huffman-coding)、量化編碼技術等,將之編碼 成 MP3 的標準串流格式並儲存貣來[44]。因此,若要取得 MDCT 係數,只要在 MP3 解壓縮時,對資料流做一些簡單的串流解碼,即可得到 MDCT 係數,如圖 3 所示。

MP3資料流

MP3串流解碼

IMDCT

多相位合成 濾波器

原始音訊

576維 MDCT 係數

圖 3. MP3 解碼流程圖

而根據[44]一文的實驗結論,一般歌曲中的主要能量頻率範圍,通常是分佈在 MDCT 的第 5 到第 28 個係數之間。因此我們的 MP3 音訊指紋只使用此 24 個係數。

如同公式(1)所示,MDCT[i]'是我們使用的音訊指紋 MDCT 係數,總共有 24 維,對應 到原始 MDCT 係數的第 5 維到第 28 維。

24 1

], 4 [ ]

[ i

'

MDCT i   i

MDCT

(1)

3.3.2. 梅爾頻率倒頻譜係數

梅爾頻率倒頻譜係數(MFCC,Mel-frequency cepstral coefficients)的涵義是頻譜輪 廓的描述。但是有別於一般的頻譜輪廓,MFCC 係數針對人耳的感知做了最佳化。在 頻率的感知方面,人耳對於低頻的頻率變化較敏感。但是隨著頻率愈來愈高,人耳對 頻率的變化會愈來愈不敏感,必頇要有很大的音量變化才聽得出來。因此,MFCC 係 數在子頻帶的切分上,使用梅爾尺度來做切割。在能量方面,能量低的時候,人耳對

(25)

能量的變化比較容易感受的到,但是當能量愈來愈高的時候,則需要很大的變化才能 感受的到。MFCC 係數在能量的方面是採用對數的方式來表示。MFCC 係數在頻率及 能量的表現方面都符合人耳的感知,因此,MFCC 係數是符合人耳感知的頻譜輪廓,

也是語音辨識最常用的音訊特徵值之一。

FFT MDCT

梅爾尺度

能量值計算

Log

DCT

MFCCs 原始音訊 MP3

頻率域

圖 4. 梅爾頻率倒頻譜係數之計算流程

計算 MFCC 係數的一般做法如下:首先,使用傅立葉轉換將訊號轉換頻率域上,

接著按照梅爾尺度對頻帶做切割。接著對每個子頻帶分別計算其能量值,將能量取對 數。最後對這些能量對數做離散式餘弦轉換,取得 MFCC 係數。在這一系列的計算 過程中,花費時間較多的為傅立葉轉換。對於 MP3 來說,還要再加上把 MP3 解壓縮 還原成原始信號的時間。原本做法中,做傅立葉轉換是為了將訊號轉為頻率域,而 MP3 的 MDCT 係數即為頻率域的資訊。因此我們可以將 MDCT 係數取代傅立葉轉換 係數,如同圖 4 所示。把原先的音訊原始資料和傅立葉轉換係數分別以 MP3 音訊和 MDCT 係數取代。MP3 音訊在壓縮領域計算 MFCC 係數過程如下:

首先按照梅爾尺度近似計算公式將 MDCT 係數換算成符合人耳感知特性的梅爾 頻譜係數

m

j,並對其做平滑化的動作:

(26)

 

 

kHz j

MDCT freq if j MDCT

kHz j

MDCT j freq

MDCT

m

j [ ], ( [ ]) 1

1 ]) [ ( 700 ),

] 1 [

( log

2595 10 > (2) 公式(2)中的

freq

(

MDCT

[

j

])代表的是 MDCT 係數中,第 j 個係數所代表的頻 率。接著,計算每個音框的梅爾頻譜係數之能量值,並取對數值,使其符合人耳對音 量的感知特性:

) log(

_ db

j

m

j 2

m

(3) 最後透過離散餘弦轉換去除梅爾頻譜係數各個維度的相依性,可得到 MP3 音訊在 壓縮領域之 13 維的 MFCC 係數。

13

1

13 ,..., 2 , 1 13 ),

2 ) ( 1 cos(

_

i

j

j

m db j i j

MFCC

(4)

3.3.3. MPEG-7 音訊描述子

MPEG-7 是 ISO 組織所訂定的一套規範[17]。有別於 MPEG-1、MPEG-2、MPEG-4 等用來壓縮儲存多媒體檔案的標準,MPEG-7 標準的目的在於儲存多媒體內容的描述。

MPEG-7 針對多媒體內容的描述方面,訂定了許多的規範,像是如何描述影片內容的 物件、動作。而對於音訊的部分,MPEG-7 也有訂定出一些描述音訊內容的規範,稱 做 MPEG-7 音訊描述子。MPEG-7 音訊描述子有兩種,分別是低層級描述和高層級描 述。低層級描述分為六大類,其中有兩類描述音色(timbre temporal、timbre spectral),

兩類用來描述頻譜(basic spectral、spectral basis),一類描述聲音的物理特性(basic),

剩下的一類描述樂理特性(signal parameter)。高層級描述有 5 個,分別是音訊簽名(audio signature description) 、 音 色 (musical instrument timbre description) 、 旋 律 (melody description)、聲音識別及索引(general sound recognition and indexing description)、語音 內容(spoken content)。

本文使用的 MPEG-7 音訊描述有基本頻譜(basic spectral)中的音訊頻譜重心(audio spectral centroid)、音訊頻譜展開度(audio spectral spread)、音訊頻譜平坦度(audio spectral flatness)三個。音訊頻譜重心顯現出頻譜能量主要分佈在哪些頻率範圍,例如

(27)

是高音還是低音。音訊頻譜展開度代表頻譜的寬度,表示能量的分散程度。音訊頻譜 平坦度則代表頻譜的平滑度,代表能量在不同頻帶上的分布是不是很平滑,還是忽大 忽小。此三種 MPEG-7 音訊描述的一般計算方法如圖 5 的左半部所示,首先對原始 音訊資料做傅立葉轉換,將其轉換到頻率域上。接著按照 MPEG-7 的頻帶切分法來對 頻率域做切割,依照對數刻度切割成 10 個子頻帶。再來依照這些子頻帶分別計算出 音訊頻譜重心(ASC)、音訊頻譜展開度(ASS)、音訊頻譜平坦度(ASF),最後得到 MPEG-7 音訊描述。如同圖 5 的右半部所示,MPEG-7 音訊描述同樣也可以像 MFCC 係數一般,分別以 MP3 及 MDCT 係數,取代音訊原始資料和傅立葉轉換係數,減少 壓縮/解壓縮成本,以加快特徵值計算速度。

原始音訊 MP3

FFT MDCT

MPEG-7頻帶切割

ASC ASS ASF

MPEG-7音訊描述 頻率域

圖 5. MPEG-7 音訊描述計算過程

MP3 音訊在壓縮領域計算 MPEG-7 音訊描述過程如下:首先要先將 MDCT 係數 按照 MPEG-7 的頻帶切分法,來做對數刻度的切割,並分別計算出每個 MPEG-7 子 頻帶

MB

j的能量值

MBE

j

j

j

MDCT i for freq MDCT i MB

MBE

[ ]2, ( [ ]) (5) 公式(5)中,

freq ( MDCT [ i ])

代表第 i 維 MDCT 係數的頻率。接下來計算音訊頻 譜重心 ASC,這部分在求每個 MPEG-7 子頻帶能量值的加權平均值。將各個子頻帶

MB

j的頻率中心,以能量值加權後做加總,再除以總能量值:

(28)

 

j j

MBE MBE j

ASC freq ( )

(6) 其中,freq(j)代表第 j 個 MPEG-7 子頻帶的頻率中心。再接下來根據 ASC 來計算 音訊頻譜展開度 ASS,這部份在計算子頻帶能量分布的標準差。將各個子頻帶

MB 的

j 頻率中心與頻譜重心之間的距離計算出來,以能量值加權後做加總,再除以總能量 值:

 

j

j

MBE

MBE ASC j

ASS freq

]

2

) (

[

(7)

最後計算音訊頻譜平坦度 ASF。首先將 n 個子頻帶的能量值

MBE 相乘後,再開

j

n 次根號,其中 n 是子頻帶的個數。接著將這個值除以

MBE 的平均值:

j

n MBE ASF MBE

j

n j

 

 (8)

3.3.4. 音澤向量

音澤(chroma)一詞是源於人耳對音高感知上呈現出的一種循環特性。對人耳來說,

相鄰八度音的兩個音,聽貣來會有一種相似的感受,我們稱此感受稱作音澤。舉例來 說,最常見的音澤劃分方式就是將八度音程等分為 12 個半音。12 的半音可以分別表 示不同的 12 個音澤,不論是在第幾個八度音高的八度音程中,都會有 12 個不同的半 音/音澤。將音高由小到大來分析,每隔八度音程會不斷重複遇到相同的音澤。

因此,我們可以將一段音訊的頻率,依照八度音程來做摺疊,將能量依半音頻帶 切分後,歸屬到所屬的音澤中加總。將 12 個音澤,每個音澤所屬頻率的能量值加總,

可得到一個 12 維的向量,稱做音澤向量(chroma vector)。音澤向量可以用來表示一段 音訊不同的組成音、和絃、或調性的能量分布情況。

音澤向量的一般計算方法如圖 6 的左半部所示。首先對音訊原始資料做傅立葉

(29)

轉換,將音訊轉到頻率域。再依照八度音程來做摺疊,將能量依半音頻帶切分,分別 加總計算出各個音澤的能量值。最後對能量值作正規化,將向量長度調整成均一,即 得到此音訊原始資料的音澤向量。如圖 6 的右半部所示,在計算音澤向量的過程中,

也可以用 MP3 的 MDCT 係數來取代原本做法的原始音訊資料的傅立葉轉換係數。

MP3 音訊在壓縮領域計算音澤向量過程如下:

FFT MDCT

音澤摺疊

能量值計算

Normalize

音澤向量 原始音訊 MP3

頻率域

圖 6. 音澤向量計算方法

首先我們先將 MDCT 係數按照八度音程來做摺疊,並分別計算第 j 個音澤

CB

j

量值

CBE

j

j

j

MDCT i for freq MDCT i CB

CBE

[ ]2, ( [ ]) (9) 接著對向量長度做正規化,得到最後的音澤向量。

CBEN

j的長度為 1:

j j

j

CBE

CBENCBE

(10)

3.4. MP3 音訊指紋之索引與搜尋

本文使用最近鄰居搜尋樹(near-neighbor searching tree)和音訊簽名的反向索引清 單(inverted list)技術來對音訊指紋做搜尋。本文所使用的最近鄰居搜尋樹是根據

(30)

QUC-Tree[38]為基礎修改而來的。最近鄰居搜尋樹是一種高效率的樹狀搜尋結構,它 使用主要成份分析技術降低維度,來克服高維度特徵空間搜尋經常遭遇的所謂高維詛 咒問題(high dimensional curse)。QUC-Tree 建構過程中配合不同重要性的變動長度維 度進行資料叢集,來建立樹狀結構的節點,以此方式不斷的對特徵空間做變動維度切 割。反向索引清單則是預先建立音訊簽名的快速查詢表,以達到加速找到未知樂曲身 份的目的。在本文中,我們先建立最近鄰居搜尋樹來對所有音樂特徵進行大致分類。

之後對每個搜尋樹葉節點中的索引資料,依四組音訊指紋產生音訊簽名,各自建立音 訊簽名反向索引清單。待識別之未知 MP3 音樂片段進入音訊指紋比對系統後,會先 使用最近鄰居搜尋樹來過濾出候選的音訊指紋,並找出要使用的反向索引清單,再根 據清單逐一對查到的結果做指紋比對,來快速找到相對應的音訊索引位置,找出歌曲 的身份。

3.4.1. 最近鄰居搜尋樹尋找候選音訊指紋

主要成份分析 PCA

以主要成份來建立 最近鄰居搜尋樹

(QUC-Tree索引) MFCC/MPEG-7/

MDCT/音澤向量 音訊簽名

MP3音樂 資料庫 索引樹

圖 7. 最近鄰居搜尋樹建立流程圖

我們的最近鄰居搜尋樹是根據主要成份分析轉換的結果為基礎,根據具有最大分 別作用的維度放在靠近根節點的原則來建立樹狀搜尋結構。主要成份分析會將原始的

(31)

特徵空間做轉換,產生互相獨立的維度較低的主成份,以此作為新特徵空間的基底。

這些主成份會依照保有原變異度(variance)的大小來做排序。保有變異度愈大的主成份 則對資料區分能力愈強。

接著,我們根據主成份來對音訊指紋建立最近鄰居搜尋樹。最近鄰居搜尋樹的每 個節點都是由數個群集所組成,群集會記錄群集中心、半徑、資料個數以及下一個層 級節點的位置。此外,節點內還會紀錄目前節點所使用的主成份維度個數。最近鄰居 搜尋樹有一個特點,那就是愈上層節點使用的主成份維度個數愈少,但其區分能力愈 高(保有變異度愈大)。建立最近鄰居搜尋樹是一個不斷加入音訊指紋的過程,其方法 如下:首先找出一個距離最近的音訊指紋群集,並更新群集資訊。若是待加入群集的 節點容量已滿,則將此節點做分割,否則將群集加入此節點。如此不斷的遞迴直到全 部的音訊指紋群集都加入完畢。分割的過程中,會先以一個音訊指紋群集為中心,將 原來的節點分割為兩個節點。若原來的節點不是葉節點的話,則會重新計算要採用的 主成份維度數,並產生一個新節點來取代原來的節點,再將分割出來的兩節點,歸類 到此新節點之下。而若是原來的節點是葉節點,則會將新分割出來的節點放到父節點 上。若是父節點已滿,再將父節點做分割。

將最近鄰居搜尋樹與主要成份分析兩項技術結合的目的,在於把音訊指紋所攜帶 的識別資訊精簡化與獨立化。MDCT、MFCC、音澤向量、以及 MPEG-7 音訊描述,

這些音訊指紋基本上都是描述音訊在頻率域上的一些特徵,因此攜帶的資訊難免會有 重複。最近鄰居搜尋樹的建立過程就像是不斷的做分割,把音訊指紋群集放到距離相 近的分割裡。若是直接使用這些音訊指紋來做分割,那就像是一直使用同樣的特徵來 區分資料,搜尋樹會變得很沒有效率。若是先做過主要成份分析,則會將這些音訊指 紋各個維度獨立化,各主成份維度彼此之間的資訊不會重複。以主成份為基底來做音 訊指紋群集分割可提高搜尋樹的比對效率。

(32)

圖 8. 音訊指紋主成份陡坡圖

最近鄰居搜尋樹對於主要成份分析維度的使用,是先將主要成份分析轉換後的維 度,依照其重要性,也就是區分資料的能力,由大到小做排序,愈重要的放在愈前面。

如同圖 8 所示,維度排序愈後,區分力愈低(條狀)。但是累積貣來的區分力會愈接近 百分之百(線狀)。最近鄰居搜尋樹在不同深度,會使用不同個數的前 D 維度來使用。

而愈上層,使用的維度會愈少。這表示,在上層的部分,分類是最具有代表性的。而 愈往下,分的也就會愈細。你可以把上層的部分,想像成一群資料的大綱或是輪廓,

下層的部分想像成細節。當想要瀏覽某個資料集的時候,會由大綱先選取有興趣的部 分,再針對該部份做細部的瀏覽。D 的數字愈小,則愈具有代表性,比較可以用來作 為資料集的大綱。數字愈大,則可以將資料分的愈細,但同時效率也就愈不好。

圖 9 以及圖 10 簡單的說明了最近鄰居搜尋樹使用主要成份分析來建立樹狀搜 尋結構的概念。在圖 9 中,首先使用主要成份分析轉換,得到第一主成份 D1 和第二 主成份 D2,兩個維度,其中 D1 的區分能力比 D2 好。因此,建立最近鄰居搜尋樹時,

會先採用 D1 維度來對資料做區分,對應到顏色較淺的音訊指紋特徵空間部分,也對 應到圖 10 的第一層。接下來再加上 D2 維度來做特徵空間細分,對應到顏色較深的 音訊指紋特徵空間和圖 10 的第二層。

(33)

圖 9. 音訊指紋主成份分析

root

2.1 2.2

1 3

4.1 4.2 5.1 5.2

2 4 5

圖 10. 最近鄰居搜尋樹示意圖

而我們使用最近鄰居搜尋樹的最主要目的,是為了縮小查詢的比對範圍。查詢時,

會先將其音訊指紋做主成份分析,轉換成最有效率的維度。並以此來對最近鄰居搜尋 樹做查詢,找出一個對應的葉節點。此節點內的所有資料都是有可能的候選音訊指紋。

如此一來,我們就不用比對所有的音訊指紋,只需要比對此葉節點內的音訊指紋即可,

這樣就可以大大減少查詢所需要的時間。

3.4.2. 反向索引清單

當最近鄰居搜尋樹建立完畢後,我們會為每個葉節點的所有資料分別建立四個反 向索引清單。其建立流程如圖 11 所示。假設音訊指紋有 D 個維度,首先分別對每個 維度的數值做量化,量化成 0 至 K。量化後所得的 D 個量化值,即為該音訊指紋的 雜湊值。再接下來,將音訊指紋取得的位置依照雜湊值來分別擺放,建立反向索引清 單。理論上雜湊值的個數,最多會有 K 的 D 次方個。

(34)

MFCC/MPEG-7/

MDCT/音澤向量 音訊簽名

對每個維度的值

做K等份的量化

 

 

K MIN MAX

x x q( )

x

D

x x

v

1, 2,...,

) ( ..., ), ( ), ( )

(

v q x

1

q x

2

q x

D

H

雜湊值

以雜湊值 建立反向索引

MP3音樂 資料庫 反向索引

圖 11. 反向索引清單建立流程

反向索引清單是一個用來加速查詢的表格。將資料的音訊指紋空間轉化成一個有 限集合,並且為其建立一個表格。此表格記錄該有限集合中,所有音訊指紋出現的位 置。在本論文中,也就是記錄哪些音訊指紋出現在哪首音樂裡的哪個時間點。如同圖 12 所示,反向索引清單內,記錄某個音訊指紋數值的有限集合,共 K 種值,各自出 現在哪些音樂的哪個位置。例如 MFCC 音訊指紋 1 同時出現在歌曲 1 的第 4 個音框 和歌曲 3 的第 2 個音框,且 MDCT 音訊指紋 K 也出現在歌曲 1 的第 4 個音框之中。

MDCT 1 MDCT 2 MDCT K MFCC 1 MFCC 2

MPEG7 1 MPEG7 2

Chroma 1 Chroma 2

Song 1 Song 2 Song 3

Song N

反向索引 音樂資料庫

D

圖 12. 反向索引示意圖

需要注意的是,本文是使用原始的音訊指紋來建立反向索引清單,不是經過主要

(35)

成份分析轉化的維度。且 MDCT、MFCC、MPEG-7 描述、音澤向量四種音訊指紋,

都會建立各自的反向索引清單。音訊指紋會先經過量化,轉換成有限集合之後,再建 立反向索引清單。其中除了音澤向量以外,其他三組音訊指紋都是挑選前 K 維的數 值來做 N 等份的向量量化,K 和 N 皆為可調參數。而音澤向量的部分,則會依照樂 理中的和弦表來做量化,以所有可能的和弦組合當作有限集合,對音澤向量做量化。

(36)

4. 實驗

4.1. 實驗環境

本實驗中的 MDCT 係數擷取程式,是由一支名為 lame 的 MP3 編解碼程式改寫 而來。MPEG7 音訊描述子是使用 ISO 組織所提供的參考軟體來擷取。MFCC 和音澤 向量則是使用 MIRToolbox 來擷取。四種音訊指紋擷取完畢後,所有的計算皆是在 Matlab 底下完成。本實驗使用的電腦其硬體配置如下:

CPU:Intel® Pentium® 4 CPU 2.8GHz

記憶體 2GB

作業系統 Windows XP SP3

4.2. 實驗資料集

長久以來,在音樂研究的領域中,一直沒有一個音樂資料庫可供學術無償使用。

大多數研究者所建立的音樂資料庫,都是為各自的研究領域所訂製的,而且因為法律 的緣故,在使用上會遇到許多的阻礙。因此,日本的 RWCP(Real World Computing Partnership)建立了一個 RWC 研究用音樂資料庫。建立 RWC 音樂資料庫有幾個好處,

第一是讓各種方法有一個統一的實驗資料庫;如果大家的研究方法都是使用此資料庫 來做實驗,那麼就可以以客觀的角度去比較各自方法的好壞。第二,可以在展示成果 的時候使用;一般而言,受限於法律問題,大多數有版權的實驗歌曲是不能用來在公 開場合上撥放的,以至於在展示成果時,不能以當初實驗用的樣本來展示,RWC 音 樂資料庫對學術研究授權,則沒有此問題存在。第三是加快音樂相關研究技術的發展 速度;有了統一的實驗樣本集,各種方法的優缺點也就可以容易的做出比較,這使得 研究競爭的目標更加明確,技術發展的評估方式也就更加的一致,而競爭一旦變的激 烈,進步的速度也就會變快。

RWC 研究用音樂資料庫是由五個子資料庫所組成的,其中包含流行(popular)與無版 權(royalty-free)音樂資料庫、古典(classical)音樂資料庫、爵士(jazz)音樂資料庫、音樂

(37)

類型(music genre)資料庫、樂器(instrument)資料庫。各個子資料庫的詳細描述如下:

流行與無版權音樂資料庫:這部份是由 115 首歌所組成的,分為流行歌曲和無版 權歌曲兩類。流行歌曲又分為日語(Japanese lyrics)流行歌曲和英語(English lyrics)流行 歌曲,日語流行歌曲有 80 首,大多是 1990 年代日本的歌,英語流行歌曲有 20 首,

皆為美國 1980 年代的創作。無版權歌曲也分做日語和英語兩種,全部都是知名的兒 歌,日語的有 5 首,英語的有 10 首。為了保證資料庫中的歌曲具有多樣性,不會偏 向某種特色或風格,因此,這些歌曲分別來自許多不同的創作者,這些創作者包括:

25 位作曲家、30 位作詞家、23 位改編者、34 位歌手。歌手的部分,考慮到男女比例 的問題,有 50 首歌分別為不同的 15 位男歌手唱的,44 首歌由不同的 13 位女歌手唱 的,還有 6 首則是 6 個團體唱的。

古典音樂資料庫:古典音樂資料庫(classical music database)共有 50 首古典音樂,

分為 6 類,分別是:交響樂(symphony)、協奏曲(concerto)、管弦樂(orchestral)、室內 樂(chamber)、獨奏(solo)、唱(vocal),分別有 4 首、2 首、4 首、10 首、24 首、6 首。

由於此資料庫是用來做研究的,因此,此古典音樂資料庫的收錄準則是擴大豐富性而 不是考慮曲目之知名度。資料庫收納由不同樂器所演奏的音樂、不同類型的音樂、不 同時期的音樂、不同作曲家所作的音樂、表現出不同情緒的音樂。

爵士音樂資料庫:爵士音樂資料庫(jazz music database)中分三個部分:第一部分 有 35 首,是 5 首音樂,分別由不同的 7 種樂器以單獨或混和的方式來演奏;第二部 份由 9 首不同風格的爵士音樂所組成;第三部分是 6 首混合了其他音樂風格的爵士 樂。

音樂曲風資料庫:音樂曲風資料庫(music genre database)是由 10 種不同類型的音 樂所組成的,分別為:流行音樂(popular)、搖滾音樂(rock)、舞曲(dance)、爵士音樂(jazz)、

拉丁樂(Latin)、古典音樂(classical)、進行曲(marches)、民族音樂(world)、人聲音樂(vocal) 以及傳統日本音樂(traditional Japanese)。其中又可細分成 33 個子類別,每種子類別有 3 首音樂,最後還有一首歌曲為聖歌(cappella)。

(38)

4.3. 實驗結果

4.3.1. 貣音點偵測實驗

本實驗由 RWC 音樂資料庫中挑選 6 首歌曲作為實驗樣本,每首皆挑選前 20 秒 來做實驗,實驗結果如圖 13。

圖 13. 6 首歌曲前 20 秒貣音點偵測結果

實驗樣本介紹如下:由上往下,前兩首皆為日語流行歌曲,第一首是男演唱者,

前 10 秒鐘無歌詞。第二首女演唱者,前 9 秒無歌詞。第 3 首到第 6 首是英語童謠,

第 3 首是男演唱者,前 7 秒無歌詞;第 4 首是女演唱者,第 5 首是男演唱者,前 8 秒皆無歌詞;最後一首是女演唱者,前 10 秒無歌詞。程式方面是使用 MIRToolbox

(39)

的貣音點偵測(mironsets)函數,參數帶入偵測攻音(attack)參數。將實驗結果與實際人 耳去聽來做觀察,發現這些貣音點的位置,大多是打擊樂器發聲的時間點。而兩首流 行音樂的前半部,貣音點會比較少的原因在於,這兩首前奏的節奏都比較慢,歌曲的 主體部分則比較快。Onset 可用來解決比對時,兩待比對音樂片段不易對齊的問題。

當擷取音訊指紋時,全部都由貣音點開始擷取,如此一來就不易發生時間位移的情況。

但貣音點偵測技術本身也存在偵測準確度的問題。

4.3.2. 音訊指紋健固度實驗

本實驗檢驗各類音訊指紋特徵對於各種扭曲失真的抵抗程度,也就是音訊指紋之 健固度。我們 RWC 音樂資料庫中挑選 10 首音樂,並從中選曲 10 秒鐘的片段作為實 驗樣本。實驗樣本中,6 首是男女演唱者各三首,日語歌曲 2 首,英語歌曲 4 首。另 外四首,分別由音樂類型資料庫、爵士音樂資料庫、古典音樂資料庫、流行音樂資料 庫中隨機挑選。

表 2. 音訊指紋健固度實驗樣本

曲目編號 RWC 編號 RWC 分類 歌者性別 語言 1 C-2001-M04-6 古典 - - 2 G-2001-M07-6 類型 男 英語 3 J-2001-M03-7 爵士 - - 4 P-2001-M01-1 流行 男 日語 5 P-2001-M01-2 流行 女 日語 6 P-2001-M07-5 流行 男 英語 7 R-2001-M01-8 無版權 男 英語 8 R-2001-M01-11 無版權 女 英語 9 R-2001-M01-12 無版權 男 英語 10 R-2001-M01-14 無版權 女 英語

選出 10 首 10 秒鐘的音樂片段後。我們首先測詴 MDCT、MFCC、MPEG7 音訊 描述、音澤向量四種音訊指紋,對於扭曲的抵抗能力,以及低查詢長度的能力如何。

因此我們對這些片段做了不同的扭曲與各種查詢長度設定,擷取出原始版本和扭曲版 本的四種音訊指紋,分別比較其改變的程度,計算其扭曲百分比。關於音訊指紋擷取

(40)

的參數,我們以 100 毫秒作為一個音框的長度,每 50 毫秒擷取一次子音訊指紋,最 後以所有子音訊指紋的平均值做為音訊指紋。我們對此實驗樣本做了感知性壓縮、雜 訊、音量調整三大類的扭曲來驗證健固度。感知性壓縮扭曲部份,我們做了 192kbps、

128kbps、64kbps 三種常見的 MP3 壓縮。雜訊扭曲部份則是分別加入強度 10 分貝的 棕雜訊、粉紅雜訊以及白雜訊。音量調整部份則是降低音量 10 分貝以及 20 分貝。且 為了驗證低查詢長度的能力,我們進行 10 秒、5 秒、2 秒、1 秒等不同長度設定。實 驗結果如表 3 所示。

表 3. 四種音訊指紋之扭曲實驗

指 紋

查 詢 長 度 (秒)

感知性壓縮 雜訊 音量調整

平 均 192k 128k 64k 棕 粉紅 白 10db 20db

M D C T

10 0.33% 0.89% 1.01% 0.75% 0.96% 1.29% 1.21% 1.08% 0.94%

5 0.41% 1.10% 1.41% 1.11% 1.29% 1.72% 1.71% 1.98% 1.34%

2 0.47% 1.24% 1.75% 1.41% 1.82% 2.24% 2.14% 2.19% 1.66%

1 0.53% 1.89% 1.93% 1.70% 1.92% 2.63% 2.50% 2.65% 1.97%

M F C C

10 0.16% 0.68% 1.08% 0.74% 2.01% 4.16% 0.21% 0.24% 1.16%

5 0.19% 0.73% 1.23% 0.82% 2.08% 4.30% 0.28% 0.33% 1.25%

2 0.27% 0.88% 1.43% 1.03% 2.49% 4.57% 0.39% 0.46% 1.44%

1 0.44% 1.15% 2.10% 1.20% 2.83% 4.72% 0.61% 0.68% 1.72%

M P E G 7

10 0.36% 0.83% 14.9% 3.32% 4.56% 7.2% 0.25% 0.46% 3.99%

5 0.40% 0.98% 15.1% 3.32% 4.54% 7.17% 0.36% 0.50% 4.04%

2 0.67% 1.67% 15.7% 3.09% 4.57% 6.91% 0.65% 0.80% 4.26%

1 0.54% 1.26% 15.4% 3.23% 4.57% 7.11% 0.53% 0.68% 4.17%

音 澤 向 量

10 1.03% 1.81% 1.61% 0.55% 0.93% 0.53% 0.00% 0.00% 0.81%

5 1.07% 1.86% 1.70% 0.54% 0.87% 0.45% 0.00% 0.00% 0.81%

2 1.36% 2.51% 2.14% 0.57% 0.94% 0.48% 0.00% 0.00% 1.00%

1 1.62% 2.99% 2.57% 0.64% 1.19% 0.59% 0.00% 0.00% 1.20%

當感知性壓縮的位元率愈低,則抵抗力普遍愈低,而且 MPEG7 音訊描述在 64kbps 的部份則特別的低,感知性壓縮抵抗力最高的是 MFCC。在雜訊部份,除了音澤向量 對於棕雜訊及白雜訊的抵抗力高於粉紅雜訊外,MDCT、MFCC、MPEG7 音訊描述

(41)

對於雜訊的抵抗力都是棕雜訊大於粉紅雜訊大於白雜訊,而音澤向量的抗雜訊能力最 佳。而對於音量調整的抵抗力,除了 MDCT 稍弱以外,MFCC 及 MPEG7 音訊描述 都有很好的健固度,音澤向量健固度最高,完全不受音量變化影響。在查詢長度的部 份,雖然隨著查詢長度愈短,扭曲百分比有變高的趨勢,但是影響不是很大。以整體 來說,音澤向量的健固度最高,其次是 MDCT 和 MFCC,最差的是 MPEG7 音訊描 述。

4.3.3. 音訊指紋之主要成份分析實驗

表 4. 各主要成份維度之主要成份 PCA

維度 第 1 維 第 2 維 第 3 維 第 4 維 第 5 維

累計

變異 35.35% 54.72% 60.6% 64.65% 68.15%

PCA 維 度 貢 獻 度 前 十 名

MFCC[1]

(-0.927)

MPEG7[1]

(0.858)

MFCC[2]

(0.447)

MFCC[3]

(0.67)

MFCC[3]

(-0.56457) MPEG7[2]

(0.218)

MFCC[2]

(0.262)

MPEG7[1]

(-0.426)

MFCC[2]

(0.598)

MFCC[2]

(0.47037) MFCC[2]

(0.205)

MFCC[1]

(0.205)

MFCC[3]

(-0.352)

MPEG7[1]

(-0.207)

MPEG7[2]

(-0.4072) MPEG[1]

(0.121)

MFCC[4]

(0.158)

MPEG7[18]

(0.22)

MPEG7[2]

(-0.201)

MFCC[6]

(-0.1398) MPEG7[26]

(-0.067)

MPEG7[18]

(0.104)

MPEG7[19]

(0.206)

MFCC[4]

(0.165)

MPEG7[22]

(-0.129) MPEG7[25]

(-0.048)

MPEG7[19]

(0.097)

MPEG7[17]

(0.205)

MFCC[8]

(-0.142)

MPEG7[21]

(-0.128) MPEG7[16]

(0.044)

MPEG7[17]

(0.095)

MPEG7[20]

(0.187)

MFCC[6]

(0.091)

MPEG7[11]

(-0.125) MPEG7[15]

(0.044)

MPEG7[20]

(0.088)

MPEG7[16]

(0.181)

MPEG7[16]

(-0.075)

MPEG7[10]

(-0.125) MPEG7[14]

(0.041)

MPEG7[16]

(0.086)

MPEG7[15]

(0.176)

MPEG7[6]

(-0.069)

MPEG7[9]

(-0.125) MPEG7[12]

(0.041)

MPEG7[15]

(0.081)

MFCC[4]

(0.173)

MPEG7[17]

(-0.067)

MPEG7[20]

(-0.125)

Figure

Updating...

References

Related subjects :