張 峰,于 樂,張弘揚(yáng)
(中國(guó)移動(dòng)通信集團(tuán)公司 信息安全管理與運(yùn)行中心,北京 100053)
隨著科技發(fā)展和生活方式的改變,人們接觸到豐富的音頻資源,比如音樂、有聲書、視頻電話等。隨著這些音頻資源的日益增多,有害音頻如詐騙音頻、暴恐音頻、色情音頻等也越來越廣泛,如何從海量的音頻資源中找到有害音頻并將其清理,是監(jiān)管部門及音頻內(nèi)容運(yùn)營(yíng)企業(yè)的需求[1]。目前,學(xué)術(shù)界開展了多項(xiàng)音頻智能分析的工作[2]:唐海桃等[3]提出了一種前向注意力模型,通過引入多尺度模型來對(duì)不同等級(jí)的語音基元進(jìn)行建模;劉虹和袁三男[4]提出了一種多尺度殘差深度卷積神經(jīng)網(wǎng)絡(luò)的語音識(shí)別的算法,結(jié)合聯(lián)結(jié)時(shí)序分類算法,構(gòu)建端到端中文語音識(shí)別系統(tǒng)。但是目前存在無法個(gè)性化適配模板、實(shí)時(shí)性欠佳等問題,為解決該問題,本文提出了一種基于音頻指紋的模板匹配算法。
音頻檢索分析主要是通過比較音頻指紋,獲得相似的音頻,而不是直接對(duì)音頻文件本身進(jìn)行比較。將音頻指紋作為音頻數(shù)據(jù)的索引,這樣可以提升檢索效率,并且降低搜索的檢索量[5]。音頻檢索方法類似于搜索引擎的原理,只是檢索對(duì)象為音頻文件。音頻檢索包含兩個(gè)步驟:一是音頻指紋提取,二是音頻指紋檢索。在音頻指紋提取階段,通過算法對(duì)音頻數(shù)據(jù)進(jìn)行分析,提取核心的能代表聲學(xué)特征的簽名信息,并將該簽名信息轉(zhuǎn)換為可作為索引的音頻指數(shù)存儲(chǔ)到音頻數(shù)據(jù)庫中;在音頻指紋檢索階段,系統(tǒng)首先將待檢索的音頻信息提取音頻指紋,然后在數(shù)據(jù)庫中進(jìn)行比對(duì)檢索,如果數(shù)據(jù)庫中有匹配成功的音頻,則將命中的音頻數(shù)據(jù)返回用戶。
本文提出的不良音頻模糊檢索方法是基于音頻指紋模板匹配技術(shù),適用于大規(guī)模高效音頻檢索,可以支撐電信級(jí)應(yīng)用,例如錄播的涉黃、涉政、涉恐、詐騙電話識(shí)別等。
針對(duì)電信級(jí)大規(guī)模不良語音過濾應(yīng)用需求,本文提出了一套基于模板匹配的不良音頻模糊檢索技術(shù)框架。本技術(shù)框架主要包含以下三個(gè)方面核心技術(shù):一是基于音頻指紋的模板匹配技術(shù),二是解決大規(guī)模語音過濾應(yīng)用挑戰(zhàn)的超大規(guī)模樹狀音頻特征索引庫建庫方法,三是基于時(shí)間序列的不良音頻檢索技術(shù)。
模板匹配又稱為固定音頻檢測(cè),目前主流的技術(shù)是采用基于音頻指紋的算法[6-8]。我們將研究高效地將音頻片段的“語譜圖”量化為取值為整數(shù)的“音頻指紋”的方法,然后在此基礎(chǔ)上進(jìn)行哈希檢索[9-10],使計(jì)算量大大降低。
待檢索的音頻數(shù)據(jù)往往是海量規(guī)模,將音頻模板與數(shù)據(jù)所有的內(nèi)容比較將花費(fèi)大量時(shí)間[11-12],在實(shí)際應(yīng)用中不可承受。為了減少需要對(duì)比的音頻片段數(shù)量,我們將研究如何找到和音頻模板片段較為接近的部分,只在這些部分進(jìn)行詳細(xì)的搜索,這樣就能避免窮舉所有片段的問題。
研究采用分?jǐn)?shù)投票和霍夫變換結(jié)合的方式,從音頻片段的近鄰還原整段音頻的檢索結(jié)果。根據(jù)音頻片段與近鄰之間的距離,尋找索引庫中連續(xù)一段與音頻模板距離小于閾值的音頻片段。
為實(shí)現(xiàn)基于音頻指紋模板匹配的不良音頻模糊檢索,主要采用以下三個(gè)算法:首先采用語音端點(diǎn)檢測(cè)算法對(duì)待測(cè)音頻進(jìn)行預(yù)處理,去掉一些不必要的背景噪音[13];其次采用梅爾頻率倒譜系數(shù)特征提取算法對(duì)特征值進(jìn)行提??;最后采用非對(duì)稱距離計(jì)算算法找到與被測(cè)音頻矢量距離最近的音頻。
采用基于交叉熵順序統(tǒng)計(jì)濾波的語音端點(diǎn)檢測(cè)算法[14],先將每幀語音劃分成若干子帶,然后計(jì)算每個(gè)子帶與背景噪聲之間的交叉熵。由于這樣得到的交叉熵在非平穩(wěn)噪聲環(huán)境中其輪廓曲線的波動(dòng)較大,不利于閾值的選擇,因此,將子帶交叉熵經(jīng)過一組順序統(tǒng)計(jì)濾波器進(jìn)行平滑處理。在平滑濾波過程中,使用前后L幀的子帶交叉熵的信息(可認(rèn)為是語音的長(zhǎng)時(shí)信息),可大大提高算法的檢測(cè)精度。
交叉熵是信息論中的概念,常用來衡量2個(gè)概率密度分布之間的相似性。比如說有2個(gè)概率密度分布函數(shù)分別為p1(x)和p2(x),那么它們之間的交叉熵為[14]:
(1)
當(dāng)2個(gè)概率密度分布函數(shù)相同時(shí)交叉熵為0,其他情況都為正值。所以,交叉熵表示所測(cè)算的概率密度分布p2(x)與實(shí)際概率密度分布p1(x)之間的偏離程度。當(dāng)概率密度分布函數(shù)p1(x)和p2(x)都服從高斯分布時(shí),交叉熵可以簡(jiǎn)單表示為:
(2)
通過分析交叉熵的計(jì)算過程,發(fā)現(xiàn)交叉熵只與概率密度分布的均值和標(biāo)準(zhǔn)差有關(guān)系。假設(shè)要處理的語音信號(hào)和噪聲信號(hào)的對(duì)數(shù)能量分布服從高斯分布,其中語音信號(hào)概率密度分布服從pS,均值和標(biāo)準(zhǔn)差分別為μS、σS;噪聲信號(hào)概率密度分布服從pN,均值和標(biāo)準(zhǔn)差分別為μN(yùn)、σN。使用對(duì)稱交叉熵[14]作為測(cè)度:
ρS,N=H(pS‖pN)+H(pN‖pS)。
(3)
當(dāng)pS、pN服從高斯分布時(shí),對(duì)稱交叉熵為
(4)
若所檢測(cè)幀語音pS與噪聲pN之間的對(duì)稱交叉熵ρS,N較小,說明此時(shí)的信號(hào)為噪聲信號(hào);否則為語音信號(hào)。
對(duì)每幀的語音信號(hào)進(jìn)行處理,通過快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT),將語音信號(hào)轉(zhuǎn)換為功率譜上的點(diǎn)Yi,其中0≤i≤NFFT。為了提升算法的準(zhǔn)確率,將功率譜劃分成K個(gè)子帶,這些子帶互不重疊。由于某些噪音會(huì)集中在某個(gè)子帶上,所以這種劃分子帶的方法可以降低噪音的影響,從而提升算法的準(zhǔn)確率。可以通過如下公式計(jì)算第n幀上第k個(gè)子帶上的頻譜的對(duì)數(shù)能量[14]:
(5)
假設(shè)劃分的每個(gè)子帶對(duì)數(shù)能量E(n,k)服從高斯分布,可根據(jù)以下公式[14]通過平滑窗來估計(jì)第n幀上第k個(gè)子帶的均值μ(n,k)和標(biāo)準(zhǔn)差σ(n,k)。
(6)
(7)
(8)
使用開始的M幀噪聲幀對(duì)噪聲的均值μN(yùn)和標(biāo)準(zhǔn)差σN進(jìn)行處理,為了提升準(zhǔn)確率,在指紋檢索的過程中,可對(duì)噪音進(jìn)行實(shí)時(shí)更新和處理。每個(gè)子帶的順序統(tǒng)計(jì)濾波器作用在一組長(zhǎng)度為L(zhǎng)的子帶交叉熵ρS,N(l-N,k),…,ρS,N(l,k),…,ρS,N(l+N,k)上,l是當(dāng)前要分析的語音幀。假設(shè)語音開始的N是噪音,用來估算噪音的參數(shù)并初始化閾值。對(duì)這組子帶中的交叉熵進(jìn)行升序排列,ρS,N(h)(l,k)是ρS,N(l-N,k),…,ρS,N(l,k),…,ρS,N(l+N,k)中第h個(gè)最大值。經(jīng)過濾波平滑處理后的第l幀第k個(gè)子帶的交叉熵如下式所示:
ρS,N(h′)(l,k)=(1-λ)ρS,N(h)(l,k)+λρS,N(h+1)(l,k),(0≤k≤K-1),
(9)
其中h=?λL」(0<λ<1,L=2N+1)。λ稱為順序統(tǒng)計(jì)濾波器的采樣分位數(shù)。λ滿足高斯分布,為了提高算法語音檢測(cè)的正確率,根據(jù)實(shí)驗(yàn)結(jié)果λ取為0.85。最后由下式[14]計(jì)算出第l幀的能量的交叉熵為:
(10)
經(jīng)過子帶交叉熵計(jì)算和順序統(tǒng)計(jì)濾波的處理后,每幀信號(hào)都能夠得到能量的交叉熵,用ρS,N(l)來表示。如果ρS,N(l)大于閾值T,即認(rèn)為第l幀為語音幀,否則判定為非語音幀。閾值T可以設(shè)定為固定值或動(dòng)態(tài)調(diào)整的值,如果T能夠合理地動(dòng)態(tài)變化,則能得到更好的識(shí)別效果。
采用了目前主流的梅爾頻率倒譜系數(shù)MFCC特征來進(jìn)行特征提取。MFCC特征提取算法是一種基于人耳聽覺感知理論的特征提取方法,目前廣泛應(yīng)用于語音識(shí)別領(lǐng)域[15]。該特征的提取流程[15]如圖1所示,包括預(yù)加重、分幀、FFT、濾波器、離散余弦變換、一二階差分、特征彎折。
預(yù)加重的目的是通過一高通濾波,提升高頻部分,去除直流分量和50 Hz工頻的干擾,讓音頻信號(hào)在高低頻譜上更加平滑,使低頻到高頻的頻帶中,能夠使用相同的信噪比來求頻譜。降低發(fā)聲過程中聲帶和嘴唇對(duì)聲音影響的同時(shí),還可以突出高頻的共振峰。
通常將256或512個(gè)采樣點(diǎn)集成一個(gè)觀測(cè)單元,這樣的觀測(cè)單位成為N,每幀的覆蓋時(shí)間大概為20~30 ms。為了使相鄰的兩幀之間變化平滑,可將兩幀之間建立重疊部分,重疊部分可占每幀大小的50%或者30%。假設(shè)語音信號(hào)的采樣頻率為8 kHz,每幀的采樣點(diǎn)為256個(gè),那么相應(yīng)的時(shí)間長(zhǎng)度為256/8 000×1 000=32 ms。其目的是利用語音的短時(shí)平穩(wěn)特性,將輸入語音流分割成相對(duì)離散獨(dú)立的單元,加窗是通過加入平滑的窗函數(shù)以避免分幀引入的吉伯斯效應(yīng)。
在時(shí)域上,信號(hào)的變換沒有特別明顯的特征,在實(shí)際研究過程中通常會(huì)將音頻信號(hào)轉(zhuǎn)換為頻域上的分布來觀察特征。不同的語音特征具有不同的能力分布。所以,每幀除了要乘上窗函數(shù)外,還需要進(jìn)行FFT來得到信號(hào)在頻域上的能量分布特性,基于音頻信號(hào)的頻譜取模平方后得到語音信號(hào)的功率譜。
使用Mel三角窗濾波器主要可以解決兩個(gè)問題,一是可以降低算法的運(yùn)算量,二是可以消除諧波的影響,通過對(duì)頻譜進(jìn)行平滑處理,能夠突出原始語音的共振峰。研究發(fā)現(xiàn),人耳對(duì)聲音的頻率具有一定的選擇性,就像一個(gè)濾波器組一樣,只關(guān)注于某些特定的頻率分量。濾波器在頻率軸上的分布不是均勻的,在低頻區(qū)域上分布密集,在高頻區(qū)域上分布稀疏,這也可以很好地解釋為何人耳對(duì)低頻聲音敏感,而對(duì)高頻聲音不敏感。相關(guān)學(xué)者根據(jù)上述研究,提出一種新的頻率尺度即梅爾頻譜[15],其與物理頻率間的對(duì)應(yīng)關(guān)系為:
(11)
lg函數(shù)是非線性的,而且可以模擬人耳對(duì)聲音的感知特點(diǎn),故對(duì)經(jīng)過Mel頻標(biāo)三角窗濾波器組后的頻譜作對(duì)數(shù)運(yùn)算。通過離散余弦變換對(duì)數(shù)據(jù)進(jìn)行降維分析,得到最終的特征參數(shù),DCT變換的結(jié)果沒有虛部,能夠更好地計(jì)算。
語音信號(hào)是連續(xù)的,通過對(duì)信號(hào)進(jìn)行分幀提取特征,雖能提取每幀的信息特征,但是無法還原幀與幀之間連續(xù)關(guān)系,為了解決這個(gè)問題,使用一階差分和二階差分的方法增加前后幀之間信息特征,這個(gè)特征可以體現(xiàn)語音信號(hào)在時(shí)域上的連續(xù)性。特征彎折采用的是二維DCT變換,目的是壓縮特征,提高對(duì)比計(jì)算速度。
經(jīng)過上述各個(gè)過程,就完成了語音信號(hào)的特征提取。
假設(shè)輸入矢量為x,系統(tǒng)將搜索數(shù)據(jù)庫,找到與x最為匹配(距離最近)的音頻顆粒矢量,即:
NN(x)=argminy∈Yd(x,y)。。
(12)
公式中d為歐式距離的平方,即x與y各個(gè)分量的差的平方和。因?yàn)閥保存到數(shù)據(jù)庫之前進(jìn)行了乘積矢量量化,所以,實(shí)際上只能計(jì)算矢量之間的近似距離。在乘積矢量量化中,計(jì)算距離可以采取對(duì)稱距離與非對(duì)稱距離兩種。所謂對(duì)稱距離,指的是將x也進(jìn)行量化,然后計(jì)算x與y量化中心之間的距離;而非對(duì)稱距離是求x與y量化后的向量之間各個(gè)分量差的平方和,用如下公式表示[11]:
(13)
其中j是矢量量化的分組。
經(jīng)過上述公式算出結(jié)果后,再經(jīng)過softmax換算,得到相似度分?jǐn)?shù)。本方法中設(shè)定的相似度分?jǐn)?shù)閾值是0.8,也可以根據(jù)情況進(jìn)行調(diào)整。
對(duì)于大規(guī)模音頻特征庫,可根據(jù)音頻特征庫的倒排表結(jié)構(gòu)[16-17],特征庫快速分層搜索與多候選匹配主要包括粗糙量化、計(jì)算距離、排序與多候選匹配4個(gè)操作:
1)粗糙量化:針對(duì)待查詢的矢量x進(jìn)行特征提取,并對(duì)特征進(jìn)行粗糙量化??梢圆捎梅诸惙椒ǎ瑢劃分到某一類中,常用的算法有最近鄰方法。同時(shí),計(jì)算余量r(x)。
2)計(jì)算距離d(x,y):根據(jù)粗糙量化的分組結(jié)果,在每組中計(jì)算r(x)的特征子集與乘積矢量量化表之間的距離。具體計(jì)算方法可以參考非對(duì)稱距離的技巧,q(y)是矢量量化表中的某項(xiàng),x與y之間的距離可以通過x與q(y)的距離進(jìn)行估算。
3)排序方法:通過最大堆排序方法來進(jìn)行排序和查詢,堆中的每個(gè)元素都表示數(shù)據(jù)中的某個(gè)數(shù)據(jù)y與x的距離,堆頂部的元素表示距離最大的y,通過與堆頂部元素進(jìn)行比較,如果比對(duì)堆頂部元素小(距離遠(yuǎn))則替換堆頂元素,調(diào)整堆結(jié)構(gòu),直到判斷完所有的數(shù)據(jù)y。由此得到與x距離最小的那部分y。
4)多候選匹配方法:除了檢索x對(duì)應(yīng)粗中心的倒排表,同時(shí)還檢索x近鄰的多個(gè)粗中心,在多個(gè)粗中心的倒排表上搜索y,更有可能找到x真正的近鄰。
基于音頻指紋模板匹配的不良音頻模糊檢索方法整體實(shí)現(xiàn)過程如圖2所示,首先用特征提取法把不良音頻段生成為模板,將待識(shí)別匹配的不良信息音頻添加至匹配索引,然后將待識(shí)別音頻解析為8 kHz采樣率,16 bit位寬的PCM數(shù)據(jù),最后對(duì)解析后的數(shù)據(jù)進(jìn)行模板匹配。
為實(shí)現(xiàn)基于音頻指紋模板匹配的不良音頻模糊檢索,在此搭建了不良音頻識(shí)別引擎子系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖3所示,自下而上包括數(shù)據(jù)接入層、數(shù)據(jù)處理層以及應(yīng)用層。數(shù)據(jù)接入層主要包括在線流式數(shù)據(jù)、wav文件、文件索引等。數(shù)據(jù)處理層主要包括靜音段過濾、噪音段過濾、矢量量化、乘積矢量量化、殘差量化、語譜特征提取、索引建立等。應(yīng)用層主要包括相似度評(píng)估、遺忘窗口管理、置信度管理、音頻存儲(chǔ)、日志上報(bào)等。另外,本系統(tǒng)的底層技術(shù)主要以特征提取、非對(duì)稱距離計(jì)算等為基礎(chǔ)。
系統(tǒng)不僅支持離線識(shí)別,還支持多并發(fā)在線流式識(shí)別,匹配過程采用非對(duì)稱距離計(jì)算算法,并采用基于時(shí)間序列投票機(jī)制,在保證計(jì)算速度的同時(shí)也保證了識(shí)別準(zhǔn)確率。另外,系統(tǒng)可以在不重新啟動(dòng)的情況下,進(jìn)行模板的注冊(cè)、生效、失效、刪除等功能,大大提高了整體系統(tǒng)的實(shí)用性。
為了評(píng)價(jià)本算法,選取了18 389段不良音頻進(jìn)行測(cè)試,結(jié)果如表1。
表1 測(cè)試結(jié)果
從測(cè)試結(jié)果看,本算法測(cè)試效果好,準(zhǔn)確率保持在98.57%以上,召回率也保持在98.0%以上,說明應(yīng)對(duì)大規(guī)模不良音頻,可采用本方法進(jìn)行有效的模糊檢索。
科技的高速發(fā)展使得人們能夠更加便捷的獲取各類信息,在海量涌入的信息中,參雜著很多不良信息,如包含暴力恐怖、宗教極端、色情等有害的音頻信息荼毒著眾多用戶。因此設(shè)計(jì)一種方法來識(shí)別并篩除此類不良信息便尤為重要。目前,在語音識(shí)別領(lǐng)域的研究工作中有許多難點(diǎn),首先是輸入無法標(biāo)準(zhǔn)統(tǒng)一,其次是噪聲的困擾以及模型的有效性。本文針對(duì)通過網(wǎng)絡(luò)等媒介傳播的不良音頻信息,提出了一種基于音頻指紋模板匹配的不良音頻模糊檢索方法,采用了語音端點(diǎn)檢測(cè)、梅爾頻率倒譜系數(shù)特征提取、非對(duì)稱距離計(jì)算、大規(guī)模音頻特征庫快速分層搜索技術(shù)與多候選匹配等算法,可高效準(zhǔn)確地在大規(guī)模不良音頻中識(shí)別出特定的不良音頻,可支持電信級(jí)應(yīng)用,例如詐騙電話識(shí)別等。為驗(yàn)證該方法的效果,選取了多段不良音頻進(jìn)行測(cè)試,結(jié)果的準(zhǔn)確性較好,可向?qū)嶋H應(yīng)用系統(tǒng)推廣。未來,將根據(jù)業(yè)務(wù)需求及技術(shù)演進(jìn)方向,進(jìn)一步研究增強(qiáng)音頻指紋提取的抗干擾能力,適時(shí)調(diào)整方法,在提升算法高效性和準(zhǔn)確性的同時(shí),使算法具備更強(qiáng)的抗干擾能力。
西華師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年4期