• 沒有找到結果。

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

在文檔中 中 華 大 學 (頁 44-50)

4. 實驗

4.3. 實驗結果

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

實驗四主要是為了檢驗反向索引系統的查詢比對效能。此實驗中,我們分別對四 種音訊指紋作雜湊,並以此來建立反向索引清單,再以此反向索引清單來做音訊指紋 查詢。雜湊的方法是對各個維度的數值做 N 等份的切割,將之量化為 0 至 N 的整數。

所有維度的量化值所成之字串即為該音訊指紋之雜湊值。我們稱此參數 N 為反向索 引位元數 N。

在實驗之前,我們首先探討可能會造成反向索引發生錯誤的狀況及其相對應處理 方法。如圖 14 所示,圖的上方為原始單一維度的數值,而下方則為量化之後的數值。

假設藍色點(P)為原始數值,紅色點(P’)為被扭曲之後的數值。原始的數值量化值為 0,

而扭曲後,量化值則可能變成 1,為了處理這種情況,我們必頇設定一個臨界範圍,

當查詢資料的原始數值落於此範圍之內,則必頇將相鄰的量化值也當作查詢的候選值 之一。此種做法類似於模糊比對。

0 0.25 0.5 0.75 1

0 1 2 3

原始數值 Xi

量化值 q(Xi)

P P’

臨 界範 圍

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

而關於如何設定臨界範圍則可以由圖 15 得知。圖 15 是一個二維的歐幾里得空 間。由於本系統所使用的音訊指紋,有做正規化至長度一的動作,因此本系統的資料 搜尋空間會落於紅色的圓圈上。假設圖中紅點(P2、P3)與黑點(P0)的距離和藍點(P1) 與黑點(P0)的距離皆為 d,那麼我們可以由此幾何圖形得知,向量 P0 至 P2 的 x 軸與 y 軸的分量必定小於 d。由表 3 的實驗我們可以得知,音訊指紋經過扭曲後,其扭曲 百分比不會大於 5%。相距 5%的兩個音訊指紋,其每個維度的分量也必定小於 5%,

所以我們可以將此臨界範圍設定為 5%,做為模糊比對的依據。

X

Y 1

P0

P1 P2 P3

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

接下來我們針對不同的反向索引位元數 N,檢驗其過濾查詢的效果。在建立反向 索引清單的過程中,會將音訊指紋資料庫中所有的音訊指紋,依照雜湊值來分別建立 反向索引清單。因此,若是雜湊值的個數若是越少,則代表一個反向索引清單內,會 有越多的音訊指紋反向索引,過濾的效果也越差。反之,雜湊值的個數越多,代表一 個反向索引清單內的反向索引會越少,過濾的效果較佳。此實驗的結果如圖 16、圖 17、

圖 18 所示,圖 16、圖 17、圖 18 分別為不同資料庫大小規模的實驗結果。綜合這 三種規模的實驗結果來看,不管資料庫的大小多大,只要隨著反向索引位元數 N 愈 來越大,雜湊值的個數也會愈來越多,而雜湊值的個數變多,表示資料庫裡的記錄會 被分別的愈開,查詢時的過濾效果也就愈好。

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

0 50 100 150 200 250 300 350 400

2 3 4 5 6 7 8 9 10

雜湊值個數

反向索引位元數 MDCT

MFCC MPEG7 Chroma Total

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

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

最後我們以實際查詢來檢驗查詢處理執行的速度,其結果如圖 19、圖 20 所示。

由圖 19 可以看出來,隨著反向索引位元數 N 愈大,查詢時間也愈來愈少,而且資料 庫越大,下降的幅度也越多。圖 20 顯示出,不管資料庫有多大,只要反向索引位元 數大於 2,以反向索引清來做查詢就都會有加速的效果。且隨著反向索引位元數 N 愈 大,加速的效果越好,直到反向索引位元數等於 9 和 10,才比較沒有效果。

0 500 1000 1500 2000 2500 3000 3500

2 3 4 5 6 7 8 9 10

雜湊值個數

反向索引位元數 MDCT

MFCC MPEG7 Chroma Total

0 5000 10000 15000 20000 25000

2 3 4 5 6 7 8 9 10

雜湊值個數

反向索引位元數 MDCT

MFCC MPEG7 Chroma Total

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

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

根據表 3 的結果,音訊指紋經過扭曲後,所產生的音訊指紋誤差百分比不會大 於 5%。而由圖 14 來看,即使是容錯能力最低的反向索引位元數 10,其容錯能力也 在 10%以上。因此可以不用擔心扭曲造成的誤差會對辨識產生識別錯誤。在圖 20 中,

反向索引位元數等於 9 或是 10,其執行速度相差不大。不過再綜合圖 18 來看,反向 索引位元數等於 9 的時候,其雜湊值數目相較反向索引位元數等於 10 的時候還來的

0.001 0.01 0.1 1 10

時間(秒)

過濾方法

100筆記錄 1000筆記錄 10000筆記錄

普通 位元數=2

位元數=3 位元數=4

位元數=5 位元數=6

位元數=7 位元數=8

位元數=10 位元數=9

0.001 0.01 0.1 1 10

100筆記錄 1000筆記錄 10000筆記錄

時間(秒)

資料庫大小(記錄比數)

少。因此若是要以反向索引清單來做查詢的過濾加速,則根據實驗結果使用反向索引 位元數 9,會是一個比較好的選擇。再者,單純以反向索引清單來對查詢做加速,就 有如此的效果。若是再加上最近鄰居搜尋樹,則查詢效能可再提升。

在文檔中 中 華 大 學 (頁 44-50)

相關文件