第 四 章 改良方法與實驗結果分析
Algorithm 1: 利用奇偶排序法將 hit list 依照偏移時間由小到大排列
4.3 建構複數雜湊表進行比對
4.3.1 改進動機
在第三章我們介紹過如何抽取一首歌曲的特徵並組合成地標,峰點經過動 態的能量門檻值的篩選後,得到突出點,之後將每一個突出點輪流當作錨點並 與目標區域內的其他突出點進行配對組合成地標,我們所使用的目標區域範圍 與 Wang’s Method 有些許不同,如圖 4.5 所示。我們取 ∆t_lef t_margin = 5 以及
∆t_right_margin = 60 ,所以每個錨點的目標區域其左右邊界為該點時間 t 後方 的 t + 5 到 t + 36 的區間內,上下邊界為該點頻率上下各 128 個頻帶共計 255 個頻 帶,我們利用兩點之間的時間差與頻率差來當作該地標的特徵,並利用錨點時間 以及頻率來當作座標以標示該地標在歌曲中的起始位置,如果我們引進更多的有 效資訊來建構多張雜湊表,對地標進行多層過濾,也許可以在辨識率不變的情況 下降低辨識所需的時間。
4.3.2 引進能量資訊建構第二張雜湊表
圖 4.6: 原雜湊表與新雜湊表示意圖
差若是落在 [(1− ρ)(e1 − e2)DB, (1 + ρ)(e1− e2)DB]之間,便將資料庫中這筆能量 差與其歌曲編號納入 hit list 。
4.3.3 改進結果與分析
本論文分別採用 ρ = 0.1, 0.25, 0.5, 0.75, 0.9 進行測試,得到的結果如下圖 4.7 以及 4.8 所示,從圖中我們觀察到,使用能量來當作過濾地標的條件,會使的辨 識率下降,ρ 越小,區間越小,則辨識率下降越多,但同時辨識時間也顯著下降,
這代表使用能量進行過濾也會將帶有正確資訊的地標過濾出 hit list 。
我們在辨識率與辨識時間兩者之間取一個相對好的結果,如表 4.4 所示,在
ρ = 0.5的條件下,正確率從 88.6% 下降到 85.1% ,下降 3.5 個百分點,辨識時
間從 1.12 秒縮短為 0.705 秒,縮短 37.04% 。即使我們捨棄使用能量差的區間作為 條件,僅僅以能量差的正負號,也就是兩個突出點之間的量大小關係來當作過濾
圖 4.7: 以能量作為過濾條件所得之辨識率
條件,辨識率也只有 87.7% ,依舊是比 3.2 節中得到的表現來的差。
CPU Version GPU Version size of database (GB) 7.4
average query time per song (second) 0.7051 0.0803 accuracy (%) 85.1% 85.4%
ρ 0.5
表 4.4: ρ = 0.5 的系統表現
接著我們針對那些造成辨識率下降的歌曲,亦即本來配對正確,經過過濾後 反而錯誤的歌曲,來進行分析,首先觀察查詢片段與資料庫中原曲兩者之間的能 量差關係,如圖 4.9 所示,橫軸為查詢片段與原曲兩者共有的雜湊鍵,縱軸為能 量差值,可以明顯看出該查詢片段的能量分布嚴重受雜訊干擾而失真,進而無法 與原曲正確地進行配對,而實際去聽該查詢片段,環境噪音嚴重影響樂曲,甚至 幾乎聽不出樂曲的音調。由此可知此方法易受環境噪音影響,但從實驗結果來 看,平均辨識時間縮短了 37.04% ,GPU 版本甚至縮短了 46.46% ,也就是說在
圖 4.8: 以能量作為過濾條件所得之辨識時間
ρ = 0.5的情況下,我們平均過濾掉了 37% 以上的地標,但同時辨識率僅下降
3.5% ,這意味著在環境噪音對查詢片段的干擾不大的時候,查詢片段與原曲的確 有相同的能量分布趨勢,而隨著噪音越加明顯,兩者能量分布趨勢的一致性也隨 之被破壞,如圖 4.9 中所看到的極端例子,兩者的能量分布幾乎毫無關聯。
圖 4.9: 能量分布趨勢圖
圖 4.10: 受噪音影響而造成地標不匹配