本發明實施例涉及音頻領域,特別涉及音頻指紋提取方法、服務器、存儲介質。
背景技術:
本發明涉及音頻指紋提取技術,音頻指紋提取技術是通過特定的算法將一段音頻中獨一無二的數字特征以標識符的形式提取出來,用于識別海量的聲音樣本或跟蹤定位樣本在數據庫中的位置。本技術可以適用在聲音文件的識別、檢索和相似性比對,流媒體廣告監播,音樂版權保護,聲紋密碼識別等多種領域。
然而,目前成熟的算法對經過拷貝、傳輸和轉碼后的音頻指紋提取效果比較好。但是,音頻在一定失真情況下,例如,音頻是現場錄制的或經過變速、變調處理以后,音頻指紋技術所提取出來的特征在識別準確性上會大大降低。
技術實現要素:
本發明實施方式的目的在于提供一種音頻指紋提取方法、服務器、存儲介質,使得可以在音頻失真的情況下也能提取到具有較高精確度的特征。
為解決上述技術問題,本發明的實施方式提供了一種音頻提取方法,包括以下步驟:
獲取音頻序列;
根據所述音頻序列生成頻譜圖;
選取所述頻譜圖中穩定的極值點作為特征點;
取所述特征點的相關極值點作為所述特征點的描述子;
通過變換所述描述子修正偏移的所述特征點;
將修正后的所述特征點作為所述音頻序列的特征。
本發明的實施方式還提供了一種服務器,包括:
至少一個處理器;以及,
與所述至少一個處理器通信連接的存儲器;其中,
所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行音頻指紋提取方法。
本發明實施方式相對于現有技術而言,通過利用許多極值點作為一個特征點的描述子的方式,區別于現有技術的只將一個極值點作為特征的方式,由于使用了較多的數據,使得到的數據穩定性更高,避免了由于變速,變調等音頻失真的情況下,音頻特征提取的不夠準確,也避免了在后續的特征利用,如音頻比對、檢索中造成較大誤差。
另外,本發明實施方式提供的音頻指紋提取方法,所述選取所述頻譜圖中穩定的點作為特征點,包括:對所述頻譜圖進行對數log映射;生成具有所述穩定極值點的所述頻譜圖。選取一定長度的幀長使生成的頻譜圖比較穩定,使極值點的位置表動較小;由于音頻經過變調會拉伸頻譜,頻率會按倍數關系變化,經過映射到log域之后,倍數變化就變成了常數位移,使頻譜圖中選取為特征點的極值點更加準確和穩定。
另外,本發明實施方式提供的音頻指紋提取方法,在所述對所述頻譜圖進行對數log映射前,還包括:對所述頻譜圖做10x10的二維高斯濾波。頻譜圖在未經處理時會包含許多低能量細節信息,通過二維高斯濾波過濾掉這些細節信息,使頻譜圖中穩定的極值點更加的突出。
另外,本發明實施方式提供的音頻指紋提取方法,在所述對所述頻譜圖進行對數log映射后,還包括:對所述映射后的所述頻譜圖做水平方向和豎直方向的高斯濾波。水平方向的高斯濾波可以突出音頻中的變化強烈的部分而減弱變化緩慢的部分;豎直方向的高斯濾波可以起到一定的去噪聲效果。通過水平方向和豎直方向的高斯濾波使得極值點更穩定,選取的特征點更準確。
另外,本發明實施方式提供的音頻指紋提取方法,所述取所述特征點的相關極值點作為所述特征點的描述子,包括:劃定所述頻譜圖中矩形區域作為所述特征點的描述子,其中,所述矩形區域中極值點包括所述特征點;將所述矩形區域的頻譜圖進行均勻壓縮。通過劃定矩形區域使許多極值點描述一個極值點,由于使用了較多的數據,使作為修正后音頻序列特征的特征點更接近于正確的音頻序列特征點;由于劃定的矩形區域占用的的bit數比較多,通過均勻壓縮,縮小了頻譜圖,使后續的描述子變換更加方便。
另外,本發明實施方式提供的音頻指紋提取方法,所述通過變換所述描述子修正偏移的所述特征點,包括:將所述矩形區域中的極值點進行移動,使所述特征點在所述矩形區域的中心;將移動后的所述矩形區域的數據作為所述特征點的最終描述子。將矩形區域中的極值點進行移動,修正了特征點的偏移,可以獲取到更接近于原始音頻特征的數據。
附圖說明
一個或多個實施例通過與之對應的附圖中的圖片進行示例性說明,這些示例性說明并不構成對實施例的限定,附圖中具有相同參考數字標號的元件表示為類似的元件,除非有特別申明,附圖中的圖不構成比例限制。
圖1是本發明的第一實施方式提供的音頻指紋提取方法的流程圖一;
圖2是本發明的第一實施方式提供的音頻指紋提取方法的流程圖二;
圖3是本發明的第二實施方式提供的服務器的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合附圖對本發明的各實施方式進行詳細的闡述。然而,本領域的普通技術人員可以理解,在本發明各實施方式中,為了使讀者更好地理解本申請而提出了許多技術細節。但是,即使沒有這些技術細節和基于以下各實施方式的種種變化和修改,也可以實現本申請所要求保護的技術方案。
以下各個實施例的劃分是為了描述方便,不應對本發明的具體實現方式構成任何限定,各個實施例在不矛盾的前提下可以相互結合相互引用。
本發明的第一實施方式涉及一種音頻指紋提取方法。具體流程如圖1所示。
步驟101,獲取音頻序列。
在本實施方式中,音頻序列為使用者輸入的音頻。
步驟102,根據音頻序列生成頻譜圖。
在本實施方式中,生成頻譜圖的方式為對音頻序列加漢寧窗并分幀,然后通過短時快速傅立葉變化(fastfouriertransformation,fft)生成本步驟的頻譜圖。
步驟103,選取所述頻譜圖中穩定的極值點作為特征點。
在本實施方式中,幀長和幀移會影響頻譜圖中頻譜的穩定性。
具體地,如果取一個比較大的幀長,則生成的頻譜比較平穩,從而使得極大值點的位置變動較小,減少特征點位置的偏移。幀移的大小會影響特征點的位置,同時也會影響算法的變速抗性。然而如果幀長過長則會影響算法時間上的分辨率。實踐證明,在幀長取0.256秒,幀移取0.064秒可以取得最優的效果。
進一步地,還需要對步驟102生成的頻譜圖進行處理才能得到穩定的極值點,對頻譜圖進行處理的流程如圖2所示:
步驟201,對頻譜圖做10x10的二維高斯濾波。
在本實施方式中,把頻譜作為一個圖像來看,其中包含了許多低能量細節信息,如果直接計算極值點,會包含大量的低能量點,而這些點在變換中是不穩定的,所以對頻譜圖先做10x10的二維高斯濾波,過濾掉這些細節信息,使極值點更加穩定。
步驟202,對所述頻譜圖進行對數log映射。
在本實施方式中,失真后的音頻,比如經過變速、變調,會拉伸頻譜,頻率會按倍數關系變化,經過映射到log域之后,倍數變化就變成了常數位移,使位移更容易被校正。同時log映射也能非等比壓縮頻率軸,能增加中低頻特征權重而減小高頻特征權重。
步驟203,對經過映射后的頻譜圖做水平方向和豎直方向的高斯濾波。
在本實施方式中,經過步驟202映射過的頻譜圖會產生一些新的噪點,豎直方向是頻率方向,高斯濾波能起到一定的去噪聲效果;水平方向是時間軸方向,高斯濾波能突出音頻中的變化強烈的部分而減弱變化緩慢的部分,從而進一步提高特征點選取的準確性。
步驟104,取所述特征點的相關極值點作為所述特征點的描述子。
在本實施方式中,在頻譜圖中劃定矩形區域,矩形區域中的極值點為該特征點的相關極值點。
具體地,為第n幀的特征點劃定的矩形區域為第n幀至第n+36幀,共37幀的區域。
然而,此時生成的區域占用的bit數較多,且包含的極值點也較多,不利于后續的變換和計算。因此對該區域進行均勻壓縮,在頻率軸上保留32個子頻帶,得到一個較小的頻譜圖。
需要說明的是,此處37幀和32個子頻帶為本實施例中劃定區域效果最好的數值,但并不對所述區域的大小進行限定。
步驟105,通過變換所述描述子修正偏移的所述特征點。
在本實施方式中,將矩形區域的頻譜圖中有極值點的頻帶置為1,否則置為0。將特征點通過左右移動和上下移動,移動到矩形區域的中心,然后以移動后的數據作為此特征點的最終描述子。
步驟106,將修正后的所述特征點作為所述音頻序列的特征。
在本實施方式中,通過步驟105生成了對輸入音頻修正后的比特數據,驗證修正后的音頻數據的修正效果的方式為進行相關性計算。
具體地,計算修正后音頻與原音頻的特征向量的漢明距離,當漢明距離小于一定閾值時,就可以認為這兩幀是相似的,然后計算相似幀在整體中的占比,最終得出相關性打分。
上面各種方法的步驟劃分,只是為了描述清楚,實現時可以合并為一個步驟或者對某些步驟進行拆分,分解為多個步驟,只要包括相同的邏輯關系,都在本專利的保護范圍內;對算法中或者流程中添加無關緊要的修改或者引入無關緊要的設計,但不改變其算法和流程的核心設計都在該專利的保護范圍內。
本發明第五實施方式涉及一種服務器,如圖3所示,包括:
至少一個處理器301;以及,與所述至少一個處理器301通信連接的存儲器302;其中,所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行音頻指紋提取方法。
其中,存儲器和處理器采用總線方式連接,總線可以包括任意數量的互聯的總線和橋,總線將一個或多個處理器和存儲器的各種電路鏈接在一起。總線還可以將諸如外圍設備、穩壓器和功率管理電路等之類的各種其他電路鏈接在一起,這些都是本領域所公知的,因此,本文不再對其進行進一步描述。總線接口在總線和收發機之間提供接口。收發機可以是一個元件,也可以是多個元件,比如多個接收器和發送器,提供用于在傳輸介質上與各種其他裝置通信的單元。經處理器處理的數據通過天線在無線介質上進行傳輸,進一步,天線還接收數據并將數據傳送給處理器。
處理器負責管理總線和通常的處理,還可以提供各種功能,包括定時,外圍接口,電壓調節、電源管理以及其他控制功能。而存儲器可以被用于存儲處理器在執行操作時所使用的數據。
本領域技術人員可以理解實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序存儲在一個存儲介質中,包括若干指令用以使得一個設備(可以是單片機,芯片等)或處理器(processor)執行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
本領域的普通技術人員可以理解,上述各實施方式是實現本發明的具體實施例,而在實際應用中,可以在形式上和細節上對其作各種改變,而不偏離本發明的精神和范圍。