這個音訊指紋暫時用來做同源音訊聚類,判斷歌曲是否是同一源的,
這裡先介紹下飛利浦的方案-------a highly robust audio fingerprinting system,這個演算法是在他上面的優化,
幀: 一段固定時間的音訊資訊,ts;
相鄰兩個幀: 兩個幀重疊時間域為 31/32,
通過能量差分的關係,求得相鄰音訊兩個幀(兩幀之間的重疊區域為31/32)之間的能量關係,產生指紋,這個音訊的特徵值就是兩幀之間的能量關係。
傅利葉變換成頻率資訊,把300 ---- 2000hz 頻率對映到33個頻率帶,計算各頻率帶的能量通過能量差分資訊變換成二進位制數。具體細節可以看**
a highly robust audio fingerprinting system,這個方案,是把相鄰幀之間的能量關係用來做為音訊的特徵。
大概步驟如下:
1. 提取一幀的音訊資訊
2. 加窗---漢寧窗
3. fft,把振幅資訊轉成能量資訊,
4. fft結果取絕對值
5. 把頻率在 300---2000,對映到33頻率bands,計算各個band 能量
6.與上一幀能量值比較產生子指紋
詳細說明
音訊實現實際上也是頻率資訊,每乙個取樣點記錄的是波形在該點的振幅,對於乙個音訊檔案來說,他的特徵是在頻率資訊上。我們分辨**是通過人耳來分辨的,耳朵聽到聲音實際上也是頻率資訊,在指紋演算法中也需要模擬人耳朵。
產生指紋前面幾步都沒有什麼要說的,都是些標準過程。從第5步才是說,如何把fft後結果對映到33個頻率帶中?需要模擬人的耳朵,人的耳朵對於頻率範圍在300---2000的聲音比較敏感,人耳對於聲音的鑑別主要集中在300 ---2000hz這個頻率段聲音的強弱等資訊來辨別,強弱資訊就是能力資訊,通過計算能量,來鑑別音訊資訊。
如何把300 --- 2000hz 對映到33個頻率帶了,根據 bark scale,耳朵聽到的頻率與實際的頻率並不完全一致,既然是模擬耳朵,需要按照人耳聽到的頻率來對映。我們根據300---2000hz 頻率bark值,平均分成33的頻率段,計算每個頻率段能量和。
我們得到33能量資訊,e[ 1....33 ], e_ [ i ] = [ i + 1] - e[ i ]; f[ n, m]表示第n幀,e_[ m ] 的值。
如果 f[ n, m] --- f[ n-1, m] > 0 第子指紋第m位 為1 ,否則 為0,這樣兩個幀的比較可以產生乙個32子指紋,乙個指紋由256指紋構成。
我們所要做的是音訊聚類,稍微做了一下修改,
**中3s音訊資訊可以產生乙個指紋,乙個指紋由256個子指紋構成,如果乙個音訊所有的時段都產生指紋無意會非常大。
對於音訊資訊,可能開始與結尾幾s都是空資訊,我們音訊選取中間的時間段生成指紋,在實驗中採用的指紋時間段為 85s----100s, 120 ---135s,這兩個時間段
產生指紋,建庫時候是這樣建的。進行歌曲匹配的時候,90--93產生乙個指紋,126s---129s引數乙個指紋,分別與85s----100s, 120 ---135s指紋庫匹配。
實驗結果
實驗的結果並不理想,識別率在98%左右,主要是兩個工作沒有做,第乙個就是濾波,第二個就是頻段的劃分,在實驗中我是 按照 bark scale 值平均分成33的頻率帶的,對於濾波,我只採取了 300--2000hz。
結果圖:後邊數字表示錯誤率,越小越好,閥門值是0.35,
beyond - 海闊天空-64.*** compare with beyond - 海闊天空.*** bit error: 0.0565186 0.0698242
beyond - 海闊天空-64.*** compare with o fortuna.*** bit error: 0.459351 0.443726
beyond - 海闊天空-64.*** compare with 鳳凰傳奇-荷塘月色.*** bit error: 0.461304 0.45166
beyond - 海闊天空-64.*** compare with 劉德華 - 冰雨.*** bit error: 0.455078 0.455811
beyond - 海闊天空-64.*** compare with 葉倩文 - 秋來秋去-64.*** bit error: 0.458496 0.444458
beyond - 海闊天空-64.*** compare with 葉倩文 - 秋來秋去.*** bit error: 0.455078 0.447876
beyond - 海闊天空-64.*** compare with 唐古 - 做你心上的人.*** bit error: 0.443604 0.443237
beyond - 海闊天空-64.*** compare with 女子十二樂坊 - 梁祝.*** bit error: 0.45752 0.4552
beyond - 海闊天空-64.*** compare with 孫燕姿 - 比較幸福.*** bit error: 0.452759 0.459961
beyond - 海闊天空-64.*** compare with 張學友 - 只想一生跟你走.*** bit error: 0.452637 0.434814
beyond - 海闊天空-64.*** compare with 王寧-傷不起.*** bit error: 0.462769 0.454346
beyond - 海闊天空-64.*** compare with 甄妮、羅文 - 鐵血丹心.*** bit error: 0.450928 0.455322
beyond - 海闊天空-64.*** compare with 貴妃醉酒.*** bit error: 0.459473 0.453735
beyond - 海闊天空-64.*** compare with 鄧紫棋 - 你把我灌醉.*** bit error: 0.442505 0.459351
beyond - 海闊天空-64.*** compare with 阿悄 - 哭笑不得.*** bit error: 0.458374 0.463623
beyond - 海闊天空-64.*** belong to :, beyond - 海闊天空.***
這裡記錄下用到的庫的一些api吧,可能以後有用
mpg123,***音訊解碼的庫,
mpg123_param (mh, mpg123_force_rate, outputrate, 0.0); //設定音訊解碼後輸出pcm取樣率
mpg123_param(mh, mpg123_add_flags, mpg123_mono_left, 0.0); //設定解碼後pcm聲道;
fftw 小波變換庫,
指紋鎖應用解決方案
廣州微正智慧型科技 國內優秀的指紋識別模組廠家,推出指紋鎖應用整體解決方案。微正擁有自主智財權的指紋識別演算法mzfinger,依靠其技術上的優勢,其方案模組能夠實現指紋鎖的諸多功能 1.指紋解鎖功能 2.虛偽密碼功能 3.刷卡解鎖功能 4.語音播報功能 5.觸屏喚醒功能 7.使用者管理員功能 8....
教育場景下的實時音訊解決方案
本次分享將圍繞以下幾部分進行 下圖展示的是直播與點播的技術框架。互動直播伺服器會對這些資料做合成 推流處理,傳輸至融合cdn流 伺服器,由流 伺服器推送資料給 互動直播的普通觀眾。上圖展示的是實時音訊的簡單框架執行緒模型,這裡需要提醒的是,其中的解碼主要由客戶端完成,實時音的服務端不參加解碼而是把來...
jitter buffer QoS的解決方案
乙個分享webrtc的大神 qos出現的背景 而當網路發生擁塞的時候,所有的資料流都有可能被丟棄 為滿足使用者對不同應用不同服務質量的要求,就需要網路能根據使用者的要求分配和排程資源,對不同的資料流提供不同的服務質量 1 對實時性強且重要的資料報 文優先處理 2 對於實時性不強的普通資料報文,提供較...