專利名稱:基于交叉熵的音頻指紋快速搜索方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于交叉熵的音頻指紋快速搜索方法,可以實(shí)現(xiàn)合理的跳躍式比 對(duì),達(dá)到從大量音頻數(shù)據(jù)中進(jìn)行高效準(zhǔn)確的搜索的目的。
背景技術(shù):
音頻指紋是指音頻自身的基于內(nèi)容的低維表示(一段音頻被表示成一個(gè)低維特 征矢量),不同內(nèi)容的音頻有不同的指紋。音頻指紋技術(shù)有著廣泛的應(yīng)用背景,包括基于內(nèi) 容的音頻辨識(shí)和檢索,版權(quán)管理等領(lǐng)域。現(xiàn)階段已經(jīng)存在很多不同的算法。這些算法主要在以下幾點(diǎn)有區(qū)別1.音頻特征的選取,如音頻短時(shí)頻譜的均值、方差、譜中心、基音等。2.指紋模型的構(gòu)造,如矢量量化碼本,高斯混合模型等。3.音頻指紋對(duì)比所用的距離算法,如歐氏距離,馬氏距離等4.檢索算法,如線性比對(duì),最近鄰比對(duì)等。優(yōu)秀的音頻指紋搜索方法應(yīng)該能夠在音頻信號(hào)由于壓縮、傳輸?shù)仍斐梢欢ǖ氖д?之后,仍然能夠進(jìn)行正確比對(duì),并且滿足計(jì)算的時(shí)間復(fù)雜度要求。發(fā)明目的本發(fā)明提出了種對(duì)失真有更好穩(wěn)健性,對(duì)距離度量具有更廣的適應(yīng)性的基于交叉 熵的音頻指紋快速搜索方法。本發(fā)明的特征在于是在計(jì)算機(jī)中依次按以下步驟實(shí)現(xiàn)的步驟(1)計(jì)算機(jī)初始化設(shè)置共分量高斯混合模型生成模塊,基于共分量高斯混合模型的音頻指紋提取 模塊,廣義動(dòng)態(tài)時(shí)序比對(duì)模塊,其中所述共分量高斯混合模型生成模塊,使用事先采集好的約100個(gè)小時(shí)的音頻數(shù) 據(jù),進(jìn)行最大似然參數(shù)估計(jì),創(chuàng)建一個(gè)共分量高斯混合模型;所述音頻指紋提取模塊,基于所述共分量高斯混合模型提取音頻指紋,并且用交 叉熵衡量音頻指紋間距離;所述廣義動(dòng)態(tài)時(shí)序比對(duì)模塊,以滑動(dòng)窗方式將用戶指定音頻段與輸入音頻流進(jìn)行 指紋比較,判斷音頻流中是否包含有指定音頻段。步驟(2)按以下步驟創(chuàng)建一個(gè)共分量高斯混合模型步驟(2. 1)事先采集好約100個(gè)小時(shí)的音頻數(shù)據(jù)。經(jīng)過短時(shí)傅立葉分析,以10毫 秒為一幀提取一個(gè)倒譜特征矢量。步驟(2. 2)利用步驟(2. 1)得到的倒譜特征矢量集,進(jìn)行最大似然參數(shù)估計(jì),創(chuàng)建 一個(gè)共分量高斯混合模型。該模型包含M個(gè)高斯分布作為其分量,以及M個(gè)權(quán)重系數(shù),M的 取值為512 {(0產(chǎn)),yi(u),E 產(chǎn))}1 = 1, ..., 其中ii嚴(yán),E,表示第i個(gè)高斯分量的均值矢量和協(xié)方差矩陣,表示第i個(gè)高斯分量的權(quán)重系數(shù),i = 1,…,M,上標(biāo)u標(biāo)識(shí)此共分量高斯混合模型。步驟(3)按以下步驟對(duì)用戶指定音頻段進(jìn)行預(yù)處理步驟(3. 1)向計(jì)算機(jī)輸入用戶指定音頻段c,時(shí)間長度為幾秒,經(jīng)過短時(shí)傅立葉 分析,以10毫秒為一幀提取一個(gè)倒譜特征矢量。這樣,音頻段c用一個(gè)倒譜特征矢最序列 {x^ln.!, .^來表示,w表示音頻段C的幀數(shù),n = 1,…,W表示音頻段C的各幀的序號(hào), 上標(biāo)C標(biāo)識(shí)此音頻段C。步驟(3. 2)按下式計(jì)算共分量高斯混合模型的第i個(gè)高斯分量在音頻段c的第n 幀的權(quán)重系數(shù)%,:),11 = 1,-,ff 其中i = l,M, j = 1,…,M為共分量高斯混合模型的高斯分量的編號(hào), Ni(x| ??!嚴(yán),乙嚴(yán))表示均值矢量為^產(chǎn)),協(xié)方差矩陣為E產(chǎn))的高斯分布概率密度函數(shù)。按下式計(jì)算第i個(gè)高斯分量在音頻段c中各幀的權(quán)重系數(shù)的算術(shù)平均值,用。嚴(yán) 表不 計(jì)算得到的各個(gè)高斯分量的權(quán)重系數(shù)的算術(shù)平均值組成一個(gè)矢量{>嚴(yán)} i = !,..., , 將該矢量作為音頻段c的低維表示_音頻指紋。步驟(4)以滑動(dòng)窗方式將用戶指定音頻段c與被測試音頻流s進(jìn)行指紋比較步驟(4. 1)在設(shè)定的小時(shí)數(shù)內(nèi),向計(jì)算機(jī)輸入被測試音頻流s,經(jīng)過短時(shí)傅立葉分 析,以10毫秒為一幀提取一個(gè)倒譜特征矢量。這樣,被測試音頻流s用一個(gè)倒譜特征矢量 序列Ixt^tM,…^來表示,T為被測試音頻流s的幀數(shù),t = 1,…,T表示音頻流s的各 幀的序號(hào),上標(biāo)s標(biāo)識(shí)此音頻流s。步驟(4. 2)按下式計(jì)算共分量高斯混合模型的第i個(gè)高斯分量在音頻流s的第t
幀的權(quán)重系數(shù)1,…,T: 二 j 其中i = l,M, j = 1,…,M為共分最高斯混合模型的高斯分量的編號(hào)。 Ni(x| ?。?yán),乙嚴(yán))表示均值矢量為^產(chǎn)),協(xié)方差矩陣為E產(chǎn))的高斯分布概率密度函數(shù)。步驟(4.3)設(shè)置1 = 1。步驟(4. 4)如果1+W-1 > T,則退出。步驟(4.5)將音頻流s從第1幀開始的長度為W的一個(gè)窗內(nèi)的音頻段lxt(s)}t = !,以下稱音頻段S(1),與音頻段C進(jìn)行指紋距離計(jì)算。首先,按下式計(jì)算得到音頻段sa)的指紋 即第i個(gè)高斯分量在音頻段sQ)中各幀的權(quán)重系數(shù)的算術(shù)平均值作為音頻段的音頻指紋的第i維。然后,按下式計(jì)算出音頻段sa)的指紋1>嚴(yán)1)}1 = 1,...,8(與音頻段(3的指紋1>產(chǎn)、 ...,M之間交叉熵距離 如果da(l) ( 6,則判斷音頻流s從第1幀開始包含了音頻段C,其中e為一個(gè) 預(yù)設(shè)檢測閾值,取0. 01。接著令1 = 1+1,回到步驟(4. 4)繼續(xù)搜索音頻流s的剩下部分是 否還包含有音頻段c。如果(^(1) > 0,則按下式計(jì)算出一個(gè)跳躍步長 其中A為一個(gè)預(yù)設(shè)偏移量,取0.001或0.005,」表示向下取整。接著令1 = 1+ t L_skip,回到步驟(4. 4)繼續(xù)搜索音頻流s的剩下部分是否還包含有音頻段c。本發(fā)明的特征點(diǎn)在于1 建立共分量高斯混合模型(CCGMM,Common Component Gaussian MixturoModel)來描述音頻指紋,并且選用交叉熵衡量音頻指紋間的距離。交叉熵距離度量 具有更好的對(duì)低速率音頻壓縮、回響干擾、D/A和A/D轉(zhuǎn)換等失真的更好的穩(wěn)健性。2.提出廣義動(dòng)態(tài)時(shí)序比對(duì)技術(shù),不僅適用于傳統(tǒng)的L1距離,而且適用于交叉熵距 離,以及其他任意距離函數(shù)為凸函數(shù)的距離度量。測試表明,本發(fā)明使用偏移量為0.005的交叉熵距離相對(duì)線性逐幀計(jì)算可以減 少93. 47%的距離計(jì)算次數(shù),并且在多種失真下,本發(fā)明的錯(cuò)誤率相對(duì)使用L1距離降低了 31. 7%。
圖1 基于交叉熵的音頻指紋搜索方法的原理圖。圖2 基于交叉熵的音頻指紋搜索方法的程序流程圖。
具體實(shí)施例方式本發(fā)明具體包括三個(gè)模塊,共分量高斯混合模型生成模塊,基于共分量高斯混合 模型的音頻指紋提取模塊,廣義動(dòng)態(tài)時(shí)序比對(duì)模塊。各模塊的具體說明如下。共分量高斯混合模型生成模塊首先,事先采集好約100個(gè)小時(shí)的音頻數(shù)據(jù)。經(jīng)過短時(shí)傅產(chǎn)葉分析,以10毫秒為 一幀提取一個(gè)倒譜特征矢量。然后,利用上述得到的倒譜特征矢量集,進(jìn)行最大似然參數(shù)估計(jì),創(chuàng)建一個(gè)共分量 高斯混合模型。該模型包含M個(gè)高斯分布作為其分量,以及M個(gè)權(quán)重系數(shù),M的取值為512
其中i;嚴(yán),E嚴(yán)表示第i個(gè)高斯分量的均值矢量和協(xié)方差矩陣,《產(chǎn))表示第i 個(gè)高斯分量的權(quán)重系數(shù),i = 1,…,M。上標(biāo)u標(biāo)識(shí)此共分量高斯混合模型。音頻指紋提取模塊現(xiàn)有技術(shù)常常是通過簡單的矢量量化得到特征矢量或是直方圖作為音頻指紋。本 發(fā)明使用基于共分量高斯混合模型計(jì)算出的音頻段的各幀的權(quán)重系數(shù)的算術(shù)平均值作為 音頻段的指紋。在指紋搜索系統(tǒng)中,有兩處地方需要調(diào)用音頻指紋提取模塊。用戶指定音頻段的指紋提取對(duì)于用戶指定音頻段c,時(shí)間長度為幾秒,經(jīng)過短時(shí)傅立葉分析,以10毫秒為一幀 提取一個(gè)倒譜特征矢量。這樣,音頻段c用一個(gè)倒譜特征矢量序列{、(’彳^^來表示,評(píng) 表示音頻段c的幀數(shù),n = 1,…,W表示音頻段c的各幀的序號(hào)。上標(biāo)c標(biāo)識(shí)此音頻段c。按下式計(jì)算共分量高斯混合模型的第i個(gè)高斯分量在音頻段c的第n幀的權(quán)重系 數(shù)《in(c),n = 1,…,W:; 其中i = l,M, j = 1,…,M為共分量高斯混合模型的高斯分量的編號(hào)。 N“x u嚴(yán),E嚴(yán)表示均值矢量為u產(chǎn)),協(xié)方差矩陣為E產(chǎn))的高斯分布概率密度函數(shù)。按下式計(jì)算第i個(gè)高斯分量在音頻段c中各幀的權(quán)重系數(shù)的算術(shù)平均值,用 表不(2)計(jì)算得到的各個(gè)高斯分量的權(quán)重系數(shù)的算術(shù)平均值組成一個(gè)矢量{>嚴(yán)} i = !,..., , 將該矢量作為音頻段c的低維表示_音頻指紋。被測試音頻流的指紋提取在設(shè)定的小時(shí)數(shù)內(nèi),向計(jì)算機(jī)輸入被測試音頻流s,經(jīng)過短時(shí)傅立葉分析,以10毫 秒為一幀提取一個(gè)倒譜特征矢量。這樣,被測試音頻流s用一個(gè)倒譜特征矢量序列{xt(s)}t
..^來表示,T為被測試音頻流s的幀數(shù),t = l,…,T表示音頻流s的各幀的序號(hào)。上 標(biāo)S標(biāo)識(shí)此音頻流So按下式計(jì)算共分量高斯混合模型的第i個(gè)高斯分量在音頻流s的第t幀的權(quán)重系 數(shù) ,)“=1,...,T:
_ 我(々wr) 其中i = l,…,M,j = l,…,M為共分量高斯混合模型的高斯分量的編號(hào)。 隊(duì)⑴!!嚴(yán),乙嚴(yán))表示均值矢量為^產(chǎn)),協(xié)方差矩陣為E產(chǎn))的高斯分布概率密度函數(shù)。在指紋搜索中,我們需要將音頻流s從第1幀開始的長度為W的一個(gè)窗內(nèi)的音頻 段{^(’^^..^(以下稱音頻段^1))與音頻段c進(jìn)行指紋距離計(jì)算。為此,按下式計(jì)算 得到音頻段sa)的指紋
即第i個(gè)高斯分量在音頻段sQ)中各幀的權(quán)重系數(shù)的算術(shù)平均值作為音頻段 的音頻指紋的第i維。廣義動(dòng)態(tài)時(shí)序比對(duì)模塊音頻指紋比對(duì)是指,以滑動(dòng)窗方式將用戶指定的音頻段c與被測試音頻流s進(jìn)行 指紋比較,滑動(dòng)窗長度設(shè)為音頻段c的長度。如果發(fā)現(xiàn)音頻流s的某處位置的片段與音頻 段c之間指紋距離小于預(yù)設(shè)的檢測閾值,則判斷在音頻流s發(fā)現(xiàn)了音頻段c。注意到由于應(yīng)用在音頻流上的滑動(dòng)窗會(huì)逐步隨時(shí)間推移向后滑動(dòng)(以幀作為時(shí) 間單位),因此在連續(xù)的窗之間會(huì)體現(xiàn)出一種連續(xù)性。動(dòng)態(tài)時(shí)序比對(duì)技術(shù)就是利用了這種 連續(xù)性,通過計(jì)算出以時(shí)間步長為參量的距離度量的下界,跳過不需要的距離計(jì)算直至這 個(gè)下界小于檢測閾值為止,從而大大提高檢索效率。在原始的時(shí)序動(dòng)態(tài)檢索中,距離度量局 限為L1距離。本發(fā)明將其擴(kuò)展為任意距離函數(shù)為凸函數(shù)的距離度量,提出廣義動(dòng)態(tài)時(shí)序比 對(duì),具體步驟如下如上所述,對(duì)用戶指定音頻段c進(jìn)行處理,得到一個(gè)倒譜特征矢量序列{xnW}n = i, ...,w,其中W表示音頻段c的幀數(shù),n = l,…,W表示音頻段c的各幀的序號(hào)。上標(biāo)c標(biāo)識(shí) 是音頻段c的特征。對(duì)n = 1,…,W,i = l,…,M,按公式(1)計(jì)算出第i個(gè)高斯分量在 音頻段c的第n幀的權(quán)重系數(shù)《tnfc)。按公式(2)計(jì)算得到音頻段c的音頻指紋,即維數(shù)為 M 的矢量 1>嚴(yán)}1 = 1,...,M。如上所述,對(duì)被測試音頻流進(jìn)行處理,得到一個(gè)倒譜特征矢量序列{x^hM, ...,T, 其中T為被測試音頻流s的幀數(shù),t = 1,…,T表示音頻流s的各幀的序號(hào)。上標(biāo)s標(biāo)識(shí) 是音頻流s的特征。對(duì)t = l,…,T,i = l,…,M,按公式(3)計(jì)算出第i個(gè)高斯分量在 音頻流s的第t幀的權(quán)重系數(shù)設(shè)置1 = 1。如果1+W-1 > T,則退出。將音頻流s從第1幀開始的長度為W的一個(gè)窗內(nèi)的音頻段Ix/ltM, ...,1+W1 (以下 稱音頻段S(1))與音頻段c進(jìn)行指紋距離計(jì)算。首先,按下式計(jì)算得到音頻段sa)的指紋
(5)即第i個(gè)高斯分量在音頻段sQ)中各幀的權(quán)重系數(shù)的算術(shù)平均值作為音頻段 的音頻指紋的第i維。然后,按下式計(jì)算出音頻段sG)的指紋1>嚴(yán)1)}1 = 1,..., 與音頻段(的指紋1>
M之間交叉熵距離
(6)其中利用第i維計(jì)算的交叉熵距離記為
我們有
(8) 如果da(l) ( 6,則判斷音頻流s從第1幀開始包含了音頻段C,其中e為一個(gè) 預(yù)設(shè)檢測閾值(通??扇?. 01)。接著令1 = 1+1,回到步驟(5. 3. 4)繼續(xù)搜索音頻流s的 剩下部分是否還包含有音頻段c。如果(^(1) > 0,則按下式計(jì)算出一個(gè)跳躍步長 其中
.示將dKu(l)視為o,’1)的函數(shù),對(duì)o,’1)求偏導(dǎo)
1表示向下取整。接著令1 = 1+ T
KL-skip
(10)
,回到步驟(5. 3. 4)繼續(xù)搜索音頻流s的
剩下部分是否還包含有音頻段c??梢宰C明,按照(9)式計(jì)算出的跳躍步長可以保證不漏過任何距離小于閾值e的 比對(duì),從而通過避免不必要的計(jì)算的方法加快了檢索速度。、^^越大,檢索效率越高。討論1.上述的廣義動(dòng)態(tài)時(shí)序比對(duì)技術(shù)可以應(yīng)用在任意滿足下式的距離度量 且屯(1)為co^’1)的凸函數(shù)的情形,這包括但不限于公式(7)定義的交叉熵距離, 以及下面公式(12)給出L1距離。
其中利用第i維計(jì)算的L1距離記為
12)
(13) 2.采用交叉熵距離時(shí)跳躍步長的公式(9) (10)在實(shí)際計(jì)算時(shí)需做一些調(diào)整。注 意到如果某個(gè)高斯分量的權(quán)重o,’1)接近0,(10)式的分母會(huì)變得很大從而使得跳躍步長 經(jīng)常小于1。為了解決這個(gè)問題,權(quán)重系數(shù)會(huì)被加上一個(gè)正的偏移量A (通??扇?. 001或 0.005),采用下面的交叉熵距離計(jì)算公式。這時(shí)廣義動(dòng)態(tài)時(shí)序比對(duì)技術(shù)依舊適用。
3.由于使用共分量高斯混合模型,在進(jìn)行音頻指紋提取時(shí)只需要估計(jì)各高斯分量的權(quán)重系數(shù),因此成功避免了有可能因?yàn)閿?shù)據(jù)不足而導(dǎo)致的錯(cuò)誤估計(jì)問題,這對(duì)于持續(xù)時(shí) 間僅有2至3秒的短音頻段的精確指紋提取有重要意義。同時(shí),使用共分量高斯混合模型 之后大大簡化了兩個(gè)高斯混合模型之間KL距離的計(jì)算,才有可能進(jìn)行下一步的動(dòng)態(tài)時(shí)序 比對(duì)。測試結(jié)果首先使用事先采集好約100個(gè)小時(shí)的音頻數(shù)據(jù)(來自CCTV,V0A等),進(jìn)行最大似 然參數(shù)估計(jì),創(chuàng)建一個(gè)共分最高斯混合模型。作為被測試音頻流,我們錄制了 10小時(shí)V0A廣播新聞,從中提取了 1000段長度為 3秒的音頻段作為用戶指定音頻段。我們對(duì)被測試音頻流做了三種不同的失真處理1)低質(zhì)量 VBR mp3 壓縮處理(40_50Kbps);2)使用CoolEdit疊加房間回聲效果;3)使用低質(zhì)量揚(yáng)聲器重放并用低質(zhì)量麥克風(fēng)重新錄制。搜索任務(wù)就是在10小時(shí)的失真處理之后的音頻流中搜索用戶指定音頻段。表格1 列出了實(shí)驗(yàn)結(jié)果。其中CPU時(shí)間表示在10小時(shí)的音頻流中找到3秒的音頻段所需的平均 時(shí)間(使用1. 4GHz奔騰4處理器進(jìn)行實(shí)驗(yàn))。測試表明,使用偏移量為0.005的交叉熵距離相對(duì)線性逐幀計(jì)算可以減少 93. 47%的距離計(jì)算次數(shù),并且在多種失真下,其錯(cuò)誤率相對(duì)使用L1距離降低了 31. 7%。
表1測試結(jié)果
權(quán)利要求
基于交叉熵的音頻指紋快速搜索方法,其特征在于,是在計(jì)算機(jī)中依次按以下步驟實(shí)現(xiàn)的步驟(1)計(jì)算機(jī)初始化設(shè)置共分量高斯混合模型生成模塊,基于共分量高斯混合模型的音頻指紋提取模塊,廣義動(dòng)態(tài)時(shí)序比對(duì)模塊,其中所述共分量高斯混合模型生成模塊,使用事先采集好的約100個(gè)小時(shí)的音頻數(shù)據(jù),進(jìn)行最大似然參數(shù)估計(jì),創(chuàng)建一個(gè)共分量高斯混合模型;所述音頻指紋提取模塊,基于所述共分量高斯混合模型提取音頻指紋,并且用交叉熵衡量音頻指紋間距離;所述廣義動(dòng)態(tài)時(shí)序比對(duì)模塊,以滑動(dòng)窗方式將用戶指定音頻段與輸入音頻流進(jìn)行指紋比較,判斷音頻流中是否包含有指定音頻段。步驟(2)按以下步驟創(chuàng)建一個(gè)共分量高斯混合模型步驟(2.1)事先采集好約100個(gè)小時(shí)的音頻數(shù)據(jù)。經(jīng)過短時(shí)傅立葉分析,以10毫秒為一幀提取一個(gè)倒譜特征矢量。步驟(2.2)利用步驟(2.1)得到的倒譜特征矢量集,進(jìn)行最大似然參數(shù)估計(jì),創(chuàng)建一個(gè)共分量高斯混合模型。該模型包含M個(gè)高斯分布作為其分量,以及M個(gè)權(quán)重系數(shù),M的取值為512{ωi(u),μi(u),∑i(u)}i=1,...,M其中μi(u),∑i(u)表示第i個(gè)高斯分量的均值矢量和協(xié)方差矩陣,ωi(u)表示第i個(gè)高斯分量的權(quán)重系數(shù),i=1,…,M,上標(biāo)u標(biāo)識(shí)此共分量高斯混合模型。步驟(3)按以下步驟對(duì)用戶指定音頻段進(jìn)行預(yù)處理步驟(3.1)向計(jì)算機(jī)輸入用戶指定音頻段c,時(shí)間長度為幾秒,經(jīng)過短時(shí)傅立葉分析,以10毫秒為一幀提取一個(gè)倒譜特征矢量。這樣,音頻段c用一個(gè)倒譜特征矢量序列{xn(c)}n=1,...,W來表示,W表示音頻段c的幀數(shù),n=1,…,W表示音頻段c的各幀的序號(hào),上標(biāo)c標(biāo)識(shí)此音頻段c。步驟(3.2)按下式計(jì)算共分量高斯混合模型的第i個(gè)高斯分量在音頻段c的第n幀的權(quán)重系數(shù)ωi,n(c),n=1,…,W <mrow><msubsup> <mi>ω</mi> <mrow><mi>i</mi><mo>,</mo><mi>n</mi> </mrow> <mrow><mo>(</mo><mi>c</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mfrac> <mrow><msubsup> <mi>ω</mi> <mi>i</mi> <mrow><mo>(</mo><mi>u</mi><mo>)</mo> </mrow></msubsup><msub> <mi>N</mi> <mi>i</mi></msub><mrow> <mo>(</mo> <msubsup><mi>x</mi><mi>n</mi><mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo></mrow> </msubsup> <mo>|</mo> <msubsup><mi>μ</mi><mi>i</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>,</mo> <msubsup><mi>Σ</mi><mi>i</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>)</mo></mrow> </mrow> <mrow><munderover> <mi>Σ</mi> <mrow><mi>j</mi><mo>=</mo><mn>1</mn> </mrow> <mi>M</mi></munderover><msubsup> <mi>ω</mi> <mi>j</mi> <mrow><mo>(</mo><mi>u</mi><mo>)</mo> </mrow></msubsup><msub> <mi>N</mi> <mi>j</mi></msub><mrow> <mo>(</mo> <msubsup><mi>x</mi><mi>n</mi><mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo></mrow> </msubsup> <mo>|</mo> <msubsup><mi>μ</mi><mi>j</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>,</mo> <msubsup><mi>Σ</mi><mi>j</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>)</mo></mrow> </mrow></mfrac> </mrow>其中i=1,…,M,j=1,…,M為共分量高斯混合模型的高斯分量的編號(hào),Ni(x|μi(u),∑i(u))表示均值矢量為μi(u),協(xié)方差矩陣為∑i(u)的高斯分布概率密度函數(shù)。按下式計(jì)算第i個(gè)高斯分量在音頻段c中各幀的權(quán)重系數(shù)的算術(shù)平均值,用ωi(c)表示 <mrow><msubsup> <mi>ω</mi> <mi>i</mi> <mrow><mo>(</mo><mi>c</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mfrac> <mn>1</mn> <mi>W</mi></mfrac><munderover> <mi>Σ</mi> <mrow><mi>n</mi><mo>=</mo><mn>1</mn> </mrow> <mi>W</mi></munderover><msubsup> <mi>ω</mi> <mrow><mi>i</mi><mo>,</mo><mi>n</mi> </mrow> <mrow><mo>(</mo><mi>c</mi><mo>)</mo> </mrow></msubsup><mo>,</mo> </mrow>計(jì)算得到的各個(gè)高斯分量的權(quán)重系數(shù)的算術(shù)平均值組成一個(gè)矢量{ωt(c)}i=1,...,M,將該矢量作為音頻段c的低維表示一音頻指紋。步驟(4)以滑動(dòng)窗方式將用戶指定音頻段c與被測試音頻流s進(jìn)行指紋比較步驟(4.1)在設(shè)定的小時(shí)數(shù)內(nèi),向計(jì)算機(jī)輸入被測試音頻流s,經(jīng)過短時(shí)傅立葉分析,以10毫秒為一幀提取一個(gè)倒譜特征矢量。這樣,被測試音頻流s用一個(gè)倒譜特征矢量序列{xt(s)}t=1,...,T來表示,T為被測試音頻流s的幀數(shù),t=1,…,T表示音頻流s的各幀的序號(hào),上標(biāo)s標(biāo)識(shí)此音頻流s。步驟(4.2)按下式計(jì)算共分量高斯混合模型的第i個(gè)高斯分量在音頻流s的第t幀的權(quán)重系數(shù)ωi,t(s),t=1,…,T <mrow><msubsup> <mi>ω</mi> <mrow><mi>i</mi><mo>,</mo><mi>t</mi> </mrow> <mrow><mo>(</mo><mi>s</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mfrac> <mrow><msubsup> <mi>ω</mi> <mi>i</mi> <mrow><mo>(</mo><mi>u</mi><mo>)</mo> </mrow></msubsup><msub> <mi>N</mi> <mi>i</mi></msub><mrow> <mo>(</mo> <msubsup><mi>x</mi><mi>t</mi><mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo></mrow> </msubsup> <mo>|</mo> <msubsup><mi>μ</mi><mi>i</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>,</mo> <msubsup><mi>Σ</mi><mi>i</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>)</mo></mrow> </mrow> <mrow><munderover> <mi>Σ</mi> <mrow><mi>j</mi><mo>=</mo><mn>1</mn> </mrow> <mi>M</mi></munderover><msubsup> <mi>ω</mi> <mi>j</mi> <mrow><mo>(</mo><mi>u</mi><mo>)</mo> </mrow></msubsup><msub> <mi>N</mi> <mi>j</mi></msub><mrow> <mo>(</mo> <msubsup><mi>x</mi><mi>t</mi><mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo></mrow> </msubsup> <mo>|</mo> <msubsup><mi>μ</mi><mi>j</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>,</mo> <msubsup><mi>Σ</mi><mi>j</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>)</mo></mrow> </mrow></mfrac> </mrow>其中i=1,…,M,j=1,…,M為共分量高斯混合模型的高斯分量的編號(hào)。Ni(x|μi(u),∑i(u))表示均值矢量為μi(u),協(xié)方差矩陣為∑i(u)的高斯分布概率密度函數(shù)。步驟(4.3)設(shè)置l=1。步驟(4.4)如果l+W-1>T,則退出。步驟(4.5)將音頻流s從第l幀開始的長度為W的一個(gè)窗內(nèi)的音頻段{xt(s)}t=l,...,l+W-1,以下稱音頻段s(l),與音頻段c進(jìn)行指紋距離計(jì)算。首先,按下式計(jì)算得到音頻段s(l)的指紋 <mrow><msubsup> <mi>ω</mi> <mi>i</mi> <mrow><mo>(</mo><mi>s</mi><mo>,</mo><mi>l</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mfrac> <mn>1</mn> <mi>W</mi></mfrac><munderover> <mi>Σ</mi> <mrow><mi>t</mi><mo>=</mo><mi>l</mi> </mrow> <mrow><mi>l</mi><mo>+</mo><mi>W</mi><mo>-</mo><mn>1</mn> </mrow></munderover><msubsup> <mi>ω</mi> <mrow><mi>i</mi><mo>,</mo><mi>t</mi> </mrow> <mrow><mo>(</mo><mi>s</mi><mo>)</mo> </mrow></msubsup><mo>,</mo> </mrow>即第i個(gè)高斯分量在音頻段s(l)中各幀的權(quán)重系數(shù)的算術(shù)平均值作為音頻段s(l)的音頻指紋的第i維。然后,按下式計(jì)算出音頻段s(l)的指紋{ωi(s,l)}i=1,...,M與音頻段c的指紋{ωi(c)}i=1,...,M之間交叉熵距離 <mrow><msub> <mi>d</mi> <mi>KL</mi></msub><mrow> <mo>(</mo> <mi>l</mi> <mo>)</mo></mrow><mo>=</mo><munderover> <mi>Σ</mi> <mrow><mi>i</mi><mo>=</mo><mn>1</mn> </mrow> <mi>M</mi></munderover><mrow> <mo>(</mo> <msubsup><mi>ω</mi><mi>i</mi><mrow> <mi>s</mi> <mo>,</mo> <mi>l</mi></mrow> </msubsup> <mo>-</mo> <msubsup><mi>ω</mi><mi>i</mi><mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo></mrow> </msubsup> <mo>)</mo></mrow><mi>log</mi><mfrac> <msubsup><mi>ω</mi><mi>i</mi><mrow> <mo>(</mo> <mi>s</mi> <mo>,</mo> <mi>l</mi> <mo>)</mo></mrow> </msubsup> <msubsup><mi>ω</mi><mi>i</mi><mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo></mrow> </msubsup></mfrac> </mrow>如果dKL(l)≤θ,則判斷音頻流s從第l幀開始包含了音頻段c,其中θ為一個(gè)預(yù)設(shè)檢測閾值,取0.01。接著令l=l+1,回到步驟(4.4)繼續(xù)搜索音頻流s的剩下部分是否還包含有音頻段c。如果dKL(l)>θ,則按下式計(jì)算出一個(gè)跳躍步長其中Δ為一個(gè)預(yù)設(shè)偏移量,取0.001或0.005,表示向下取整。接著令l=l+τKL-skip,回到步驟(4.4)繼續(xù)搜索音頻流s的剩下部分是否還包含有音頻段c。F2009102413667C00034.tif,F2009102413667C00041.tif
全文摘要
基于交叉熵的音頻指紋快速搜索方法,屬于音頻指紋搜索技術(shù)領(lǐng)域,其特征在于,利用共分量高斯混合模型來描述音頻指紋,并且用交叉熵來衡量音頻指紋間的距離,然后用廣義動(dòng)態(tài)時(shí)序比對(duì)方法,以滑動(dòng)窗方式將用戶指定音頻段與輸入音頻流進(jìn)行指紋比較,判斷該音頻流中是否包含有指定音頻段。本發(fā)明具有能大大地減少距離計(jì)算次數(shù),而且還能適應(yīng)于多種音頻失真情況,錯(cuò)誤率相對(duì)于使用L1距離降低了三分之一的優(yōu)點(diǎn),已完成軟件實(shí)現(xiàn)并在仿真實(shí)驗(yàn)中予以測試。
文檔編號(hào)G06F17/30GK101853262SQ20091024136
公開日2010年10月6日 申請日期2009年12月7日 優(yōu)先權(quán)日2009年12月7日
發(fā)明者林暉, 歐智堅(jiān) 申請人:清華大學(xué)