龍華,楊明亮,邵玉斌
(昆明理工大學信息工程與自動化學院,云南 昆明 650031)
語音檢測就是從帶有背景噪聲的音頻中準確定位出語音的開始點和結束點,去除靜音和純噪聲部分,提高語音信號的有效利用率,不同的應用場景對語音檢測的要求有所不同。例如在語音通話系統(tǒng)中,為了提高語音分組轉發(fā)的有效性(節(jié)約話路資源)與通話用戶的舒適性(語句完整),從干擾環(huán)境下準確檢測出語音段(即具有完整含義的句子,由若干短時語音幀組成)的起始位置且保證語音段不被檢測割裂的語音檢測技術就顯得尤其重要,這是有別于語音檢測中的關鍵詞檢測、詞中的音節(jié)起始檢測(英文多為多音節(jié)詞)及語音特征提取前端的語音活動檢測(VAD,voice activity detection)等應用的。語音特征提取前端常使用的檢測方法有雙門限法[1]、譜熵法[2]等,其目的都是去除音頻段中的靜音段、純背景噪聲段以及表現為隨機噪聲特性的清音部分,進而獲得音頻信號中的濁音信號,而語音通話系統(tǒng)中完整語句的所有信息都是需要保留的。再者,語音通話系統(tǒng)中完整語句的檢測對語音段中的加性噪聲抑制處理(如譜減法[3]等)也是有利的(完整語句中保留著原始的噪聲幀,便于信噪比估計)。
當前的語音檢測可大致劃分為基于閾值、基于分類器和基于模型的VAD?;陂撝档腣AD 主要包括雙門限法、譜熵法等,通過提取語音特征(短時能量、過零率、譜熵等)并設定判決門限,對靜音段、清音濁音具有較好的效果,但在噪聲較大的環(huán)境下則表現得無能為力?;诜诸惼鞯腣AD 則有基于網絡框架的語音檢測方法[4-5]及利用指數核函數構建語音檢測模型[6],將噪聲和語音的幀特征作為分類數據進行目標訓練和測試,在語音檢測時,從帶噪音頻中檢測出的語音丟掉了原始語句中應有的短時字間隔,嚴重降低了聽眾的舒適度?;谀P偷腣AD 主要包括統(tǒng)計模型和算法模型?;诮y(tǒng)計模型的語音檢測包括文獻[7],以及在統(tǒng)計基礎上構建諧波加噪聲模型與最大后驗概率相結合的語音檢測模型[8]。算法模型則包括利用語音諧波檢測技術用于語音檢測[9],同基于閾值的VAD 一樣,在面對復雜環(huán)境下,其檢測性能也表現得不太好。
Shamma 等[10]分析并指出,語音流的形成主要取決于編碼聲源各種特征響應之間的時間一致性,即多條相干的特征流(一系列連貫實體/聲音的內部特征,流強調了一個事實,聲音特征同聲音信號一樣是隨著時間而展開的。同一段語音的不同時刻所對應的同一特征在特性上是具有差異的,如聲音的振幅是動態(tài)變化的,在數學上則表現為不同的數值序列即特征流)構成了一條與其他源非相干特征分離的流,這也是多通道語音可以利用不同通道之間的差分信息進行語音檢測[11]而單通道行不通的原因。Teki 等[12]指出人類聽覺系統(tǒng)對某些特征有顯著敏感,這些特征是根據混合聲音中小部分音頻元素的時間重合而調整的,即當前所熟知的語音特征并不能完全表征語音的全部獨特信息,這也是網絡模型對反映語音特征的獨特之處。
為了進一步提高語音通話中語音段起始檢測的準確性以及避免語音段被檢測割裂等問題,本文提出了基于特征流融合的帶噪語音檢測算法。利用神經網絡的非線性擬合能力構建語音譜圖特征與語音之間的映射關系,實現對語音的檢測[13]并取得了一定的效果,而語音統(tǒng)計特征在工程中的成功應用已證實其表征語音信號的有效性,時域信號更是語音信號最直觀的反映形式。由于利用單一特征進行語音檢測性能不佳,因此首先對待檢測語音提取時域特征流、譜圖特征流及統(tǒng)計特征流并分別對帶噪音頻中的語音段進行估測后,然后對各個特征流估測得到的語音預測概率進行加權融合。過去語音檢測從幀層級出發(fā),忽略了語音連貫性特征,而高階隱馬爾可夫模型可以充分考慮過去的狀態(tài)信息[14],對滑動窗時長內的語音起著平滑的作用,保證了檢測后語音段保持原始語句的連續(xù)性。
現實采集到的帶噪語音可定義為
其中,y(i)為觀測到的音頻信號,s(i)為純語音信號,n(i)為噪聲信號,i為數據點號。每一幀信號的語音信號可分為以下2 種狀態(tài)
其中,下標n表示第n幀信號,每一幀信號中包含M個數據點,即。這里假設噪聲nn的均值為0,對角協(xié)方差矩陣為。語音信號可以看作具有隨機、周期和擬周期性質的非線性時間序列,那么依據諧波理論可將語音信號分解為k階諧波[15],即
其中,sn,m表示第n幀第m個元素值,kn表示諧波階數,αi,n與βi,n表示第i階諧波的線性權值,為基頻(弧度),fs為音頻信號采樣率。進一步地,將語音信號用矩陣向量表示,并引入一個隱變量hn用于表示音頻幀信號中語音是否存在(其中,1 為語音,0 為非語音),可得
其中,
其中,N為總幀數目。等式右邊分子的第一項可由拉普拉斯近似算法表示,第二項可寫成
語音信號狀態(tài)具有連貫性,帶噪音頻信號中的語音狀態(tài)應滿足隱馬爾可夫模型,為了便于計算,這里假設時序幀的語音狀態(tài)滿足一階隱馬爾可夫,即。第n幀音頻信號的狀態(tài)空間可進一步表示為
語音幀推斷后一幀為語音幀的條件概率為
諧波階數和基音頻率無直接關系,進而可對等式右邊第一部分進行條件聯(lián)合分布分解
當前一幀為非語音幀時,后一幀為語音幀的條件概率為
當前一幀為非語音幀時,選擇離當前幀n最相近的過去語音幀c作為推斷,根據文獻[16]的式(18)對式(12)等號右邊第一部分做條件聯(lián)合分布分解,即
聯(lián)合式(9)~式(11)可得
根據文獻[16]的式(23)得到狀態(tài)空間的后驗概率為
由此,按照文獻[16]中的策略,根據式(10)、式(12)、式(14)和式(15)對狀態(tài)空間做出概率預測,依據式(5)~式(8)和式(16)計算狀態(tài)空間的后驗概率,并聯(lián)合文獻[15-16]的快速基頻估計和諧波階數估計對進行迭代更新,其約束條件為
因為短時功率譜是對按照時間序列展開的幀信號進行傅里葉變換得到的,所以譜圖特征也是以“流”的形式出現的。時頻譜圖的頻率分辨率為線性,而人類聽覺系統(tǒng)對低頻十分敏感,對高頻就比較遲鈍,為了解決頻率分辨率的問題,本文利用64 個Gammatone 濾波器組提取Cochleagram 特征[17-18],并利用窗長為32 ms、幀位移為16 ms 的漢明窗口對其輸出進行了瞬態(tài)積分。Gammatone 濾波器的脈沖響應h(t)為其中,g為輸出增益;t為時間;a為濾波器階數;b為矩形帶寬,它隨中心頻率f的增大而增大。
梅爾頻譜倒譜系數(MFCC,Mel frequency cepstrum coefficient)特征是一種基于人耳對等距的音高變化的感官判斷而定的非線性頻率刻度,現已應用于語音識別、音樂檢索等多個方面。Gabor 濾波器是一個頻率和方向表達同人類視覺系統(tǒng)類似、用于邊緣提取的線性濾波器,在圖像的紋理表達和分離方面具有優(yōu)異的性能。故利用Gabor 濾波器對MFCC 的紋理特征進行提?。ㄔ斠娢墨I[13])。
長時信號變化特征(LTSV,long term signal variability)測量方法[19]在多個語音檢測應用研究中證明,其在平穩(wěn)噪聲環(huán)境下具有較好的穩(wěn)健性。首先,計算第n幀短時能量譜為
其中,X(n,wk)為第n幀信號yn在頻率wk處的短時傅里葉變換,w(?)為短時窗,M為幀長。根據文獻[19-20]對LTSV 的定義,對每一幀的每個頻率點進行熵的計算,有
其中,m≥R,R表示長時滑動窗包括的幀數目,這種滑動處理通過計算第m幀K個頻點下熵的方程Lx(m),實現了對語音的長時分析。
語音具有一定的周期性,通過利用諧波理論估算帶噪音頻信號的基音周期,然后根據自相關函數計算相關圖,為了克服吉布斯現象,此處在進行自相關函數計算時需要對幀信號進行加窗和預加重處理,其中窗長為32 ms,幀移為16 ms。隨后,每次都推導出一個語音測量值,即信號能量歸一化估計基音周期時的自相關值,為了考慮前后幀之間的相關性,對一維預測概率做了前后擴張,最終取五階自相關值。
語音發(fā)音通常是由清音和濁音交叉構成的,而非語音卻不滿足這樣的構造特點,清音的過零率遠高于濁音,故語音過零率的變化一般要比非語音激烈。高過零率比率(HZCRR,high zero crossing rate ratio)用于描述一段音頻段過零率變化的劇烈程度,計算式為[21]
其中,N為幀數目,n為幀索引,sgn 為符號函數,ZCR(n)為第n幀的過零率,為ZCR 均值。為了避免一些非語音段能量較低,但過零率比率高于所設閾值0.08 的誤判,本文加入式(23)所示的短時能量特征共同進行判斷。
其中,符號i為幀內音頻數據點索引,M為幀長,yn為第n幀歸一化信號。此處閾值設置為0.05。
基于特征流融合的帶噪語音估測流程如圖1所示。
圖1 基于特征流融合的帶噪語音估測流程
為了減少估測語音概率的復雜性,在2.1 節(jié)整個初步估計中假設狀態(tài)空間為一階隱馬爾可夫模型,只考慮前一幀的影響,忽略語音長時幀的相關信息,而事實上,可將基于特征流對每幀音頻預測的語音概率值序列看作離散平穩(wěn)有記憶信源X:{a1,a2,…,ar},在任何時刻tm+1,隨機變量Xm+1所發(fā)符號aim+1通過其前m個符號(ai1,ai2,…,aim)進而與更前面的符號發(fā)生聯(lián)系[22],即aim+1只與它前面的m個符號相關,與更前面的符號無關。假設每一個短時狀態(tài)由m個信源構成,而這m個符號取遍信源X的符號集,m-M信源共有rm種不同的消息,令Si為(i=1,2,…,rm)某一狀態(tài),則有
對應于帶噪音頻幀的語音檢測只存在2 種狀態(tài),即信源X的符號集X:{0,1},i1,i2,…,im為符號狀態(tài)序列號。因為本文分幀幀長為32 ms,幀移為16 ms,又考慮到正常語速7 個音節(jié)需要3 s,所以此處m=39,即39 階馬爾可夫信源,由式(24)即有
符號序列號為1 時對應符號集中的符號0,符號序列號為0 時對應符號集中的符號1,進一步即有
將預測語音概率值大于0.5 當作狀態(tài)1,其余的為狀態(tài)0,為了對語音概率曲線做平滑處理,本文統(tǒng)計了每一個短時狀態(tài)中0 與1 的個數,令1 的個數大于20 且小于35(設定個的判決閾值)的短時狀態(tài)Si內的符號狀態(tài)值均為1,其他的短時狀態(tài)符號值均為0。為了保證最終重構語音舒適度和可理解性,短時狀態(tài)時序步長取11 幀。
令時域特征流的輸出概率為prob1,經過短時狀態(tài)處理的時域特征流的輸出概率為序列),譜圖特征流輸出的概率為prob2,統(tǒng)計特征流的輸出概率為prob3。為了突出的語音部分,即有
將p1與譜圖特征流的語音概率融合并利用統(tǒng)計特征流prob3突出譜圖特征流prob2的語音部分,與此同時將prob1與prob3加權融合,則有
最后,將兩兩特征流融合結果再次加權融合,有
其中,q1、q2、q3分別為不同特征流語音估測的權重系數。根據人類聽覺系統(tǒng)自身的特殊特性,以及對某些特征更加敏感的理論[13],對權值進行猜測和檢驗(如同深度學習模型中卷積核大小的選擇一樣)。經實驗測試推斷,譜特征流包含有更多區(qū)分語音和噪聲的有用信息,因此取q1=0.35,q2=0.40,q3=0.35。最后,利用隱馬爾可夫短期狀態(tài)對語音概率曲線進行平滑處理,得到最終的語音估測0-1折線p5(其中,1 為語音,0 為非語音)。
1)數據準備
實驗測試檢驗中,本文采用的語音庫為TIMIT語音庫、THCHS30 語音庫、2018 方言種類識別AI挑戰(zhàn)賽(DRC,dialect recognition contest)語音庫3種,語音為采樣率fs=16 000 Hz、單通道的wav 音頻文件,每句語音時長在4~7 s 左右。語音訓練數據集包含TIMIT 語音庫中美國8 個地區(qū)462 個說話人語音,每人10 句英語語音;THCHS30 語音庫包含11 個來自中國各地的說話人語音,每人20 句普通話;DRC 語音庫包含中國10 個方言地區(qū)的300 個說話人,每人10 句中國方言。噪聲訓練數據集采用自建噪聲庫(SBNL,self-built noise library),其中包括動物鳴叫、公共場所噪聲、戶外活動噪聲、室內活動噪聲、工廠噪聲、音樂、自然音效、交通噪聲共8 類噪聲類型,每一類噪聲又包含10 段不同的噪聲段。從語音訓練數據集和噪聲訓練數據集中隨機選取一種語音和噪聲,隨機選擇SNR=[-5,0,5,10,15,20]dB 中的信噪比進行帶噪語音合成,建立多條件訓練集用于訓練基于譜圖特征流的語音概率預測深度神經網絡(DNN,deep neural network)模型。
實驗測試語音數據包含TIMIT 語音庫中168 個說話人(女性52 人,男性114 人,每人10 句)、THCHS30 語音庫中20 個說話人(女性18 人,男性2 人,每人10 句)、DRC 語音庫中50 個說話人(女性30 人,男性20 人,每人10 句)。為了更加貼近真實環(huán)境,在原始語音數據基礎上的語音段前后隨機補充2~4 s 的靜音段,以便與噪聲混合成的帶噪音頻更符合現實情況,噪聲庫采用Nonspeech公開噪聲庫,合成語音的信噪比等級SNR=[-5,0,5,10]dB。測試語音庫中的語音段與噪聲庫中隨機選取的噪聲依次按照-5 dB、0 dB、5 dB、10 dB 這4個信噪比等級合成4 個不同信噪比的測試數據庫。語音庫的分配設置如表1 所示。
表1 語音庫的分配設置
2)模型設置與訓練
基于譜圖特征流的語音估測部分,將提取的64維Cochleagram 特征、110 維Gabor 特征、5 維LTSV特征以及5 維基音周期自相關值構建成184 維特征流,再將特征流送入3 層網絡[13]、節(jié)點數為184→64→64→1 的DNN 中進行訓練(迭代),得到一個譜圖特征流的語音概率預測模型。其余按照第3 節(jié)特征流融合策略進行構建系統(tǒng)。
為了分析不同程度噪聲對帶噪語音估測性能的影響,用4 組不同信噪等級的音頻測試庫對不同語音檢測方法進行性能測試。以基于貝葉斯特征流(BFS,Bayesian feature stream)[16]和光譜特征流(SCS,spectral characteristic stream)[20]的帶噪音頻語音概率估測作為本文特征流融合(FSF,feature stream fusion)的基線模型。因為HZCRR 在干凈環(huán)境下能夠準確地對語音段進行估測,故以2.3 節(jié)的統(tǒng)計特征流作為原始干凈環(huán)境的語音檢測方法,其語音檢測結果作為音頻段語音狀態(tài)的標準標注。以誤檢率(Pf,false-alarm probability)、漏檢率(Pm,miss probability)、正確率(Pc,correct probability)作為性能評價指標(其中,Pf 和Pm 越小越好,Pc越大越好),則有
其中,T為總音頻長度,T誤檢為誤檢為語音的音頻長度,T漏檢為漏檢語音的音頻長度。不同信噪比條件下的語音估測誤檢率、漏檢率和正確率分別如表2~表4 所示。
由表2~表4 可知,對于4 個信噪比等級下的帶噪音頻段語音檢測性能,除SNR=5 dB 和SNR=10 dB條件下BFS 的Pf 指標略優(yōu)于本文所提的FSF 方法外,其余本文所提FSF 方法的性能指標都顯著優(yōu)于對比實驗模型,根據表1~表4 可得,不同方法的平均語音檢測性能如表5 所示。
表2 不同信噪比條件下的語音估測誤檢率
表3 不同信噪比條件下的語音估測漏檢率
表4 不同信噪比條件下的語音估測正確率
表5 不同方法的平均語音檢測性能
對表5 分析可知,相對于BFS,FSF 的Pf、Pm、Pc 評價指標分別提高了1.023%、71.73%、21.26%;相對于SCS,FSF 的Pf、Pm、Pc 評價指標分別提高了8.10%、53.97%、11.01%。
為了更直觀地展示不同語音檢測方法在不同信噪比條件下的檢測性能,從4 個不同信噪比等級測試庫中挑選不同音頻進行性能可視化展示,分別如圖2~圖5 所示。
由圖2 可知,當SNR=-5dB 時,語音完全被噪聲所覆蓋掉,無法從時頻圖中觀察出語音信號的清晰脈絡。在此條件下,BFS、SCS、FSF 都出現了不同程度的誤檢,其中SCS 的誤檢率最大,其次是SCS,BFS 的誤檢最少。漏檢方面,FSF 的漏檢最多,與總體測試結果中FSF 的漏檢率最低的結論有所差異,但FSF 的檢測正確率大于BFS 和SCS 的檢測正確率。由于噪聲環(huán)境的復雜性,出現了使FSF對個別音頻段的語音檢測性能低于BFS 或SCS 的情況。第1 節(jié)中已指出,對于語音通話中的語音檢測,除了要求準確檢測出完整語句的起始位置外,還需要避免完整語句被檢測割裂的問題(保證聽者的舒適度),另一方面也是語音增強的需要。例如,圖2 中BFS 的語音檢測結果以單個字或詞的形式出現,這既不是語音通話中所期待的,也不利于檢測語音段后續(xù)的語音增強(非平穩(wěn)噪聲很難被準確估計)。對于SCS 語音檢測,其檢測結果大部分都是連貫的,但在大約t=14 s 處也出現了檢測波動(導致音樂噪聲的產生),而FSF 由于進行了高階隱馬爾可夫處理,保證了檢測出的語音段的連續(xù)性。
圖2 不同語音檢測方法在SNR=-5 dB 時的檢測性能
將圖2 與圖3 對比可知,在信噪比提高的條件下,BFS、SCS、FSF 的檢測性能都得到提高,特別是FSF 的誤檢和漏檢大幅度降低,但BFS 和SCS仍然出現較多的誤檢。此外,在信噪比提高的情況下,SCS 檢測的語音段連貫性得到較大改善(t=14 s處),但對于BFS 檢測結果改善并不明顯。
圖3 不同語音檢測方法在SNR=0 dB 時的檢測性能
圖4 不同語音檢測方法在SNR=5 dB 時的檢測性能
圖4 和圖5 展示了BFS、SCS、FSF 在噪聲干擾環(huán)境SNR=5 dB 和SNR=10 dB 時的語音檢測性能。從圖4 可知,BFS、SCS 和FSF 仍然存在誤檢的情況,BFS 和SCS 的語音檢測中還存在漏檢的情況,而FSF 不存在漏檢。圖4 與圖2、圖3 所展示的結果一樣,BFS 和SCS 的語音檢測由于從幀層面進行語音檢測判定,并未進行短時狀態(tài)考慮,在語音檢測時對語音段內的字間間隔進行了移除,使檢測出的語音段連貫性受到破壞,嚴重影響著聽者的舒適度,也制約著檢測語音段后期的語音增強性能。
圖5 不同語音檢測方法在SNR=10 dB 時的檢測性能
將圖4 與圖5 對比可知,當信噪比提高時,在圖4 中被誤檢或漏檢的部分也得以被正確檢測出,但對于某些部分依舊無法正確檢出,特別是BFS 和SCS 的語音檢測方法。將圖5 進一步與圖2、圖3 對比可知,在一定的信噪比范圍內,影響語音檢測性能的并非只有信噪比指標,噪聲類型也是干擾語音檢測性能的重要因素。從圖5 語音檢測的可視化結果中可知,此時FSF 可在盡可能去除靜音段和純噪聲段的同時,避免完整語音段被檢測割裂的問題。
為了進一步提高語音通話中語音段起始檢測的準確性及避免語音段被檢測割裂等問題,本文提出了基于特征流融合的帶噪語音檢測算法。相比于基于單純的時域特征流或單純的譜圖特征流(DNN模型訓練檢測),所提算法在不同信噪比情況下的帶噪語音檢測性能(誤檢率、漏檢率和檢測正確率)都有了較大的提高。這主要歸功于所提算法將多種特征流進行了融合,相對于利用單特征(如HZCRR統(tǒng)計特征等)進行語音檢測方法,增大了語音檢測的運算力。因為利用了高階隱馬爾可夫模型的多狀態(tài)考慮能力即對語音估測結果進行了短時處理,使經過FSF語音檢測方法的語音段保持原始的連貫性(即具有完整含義的句子)。進一步提高語音檢測抗噪性能仍是未來的目標(同等數值漏檢率比誤檢率更具破壞性,少量的誤檢率可以通過語音增強來進一步消除,而漏檢率會破壞原始語句連續(xù)性結構)。影響語音檢測準確性的因素有多種,其中包括噪聲類型、噪聲強度、個人習慣等,后期可發(fā)展自適應隱馬爾可夫或使用深度學習模型來代替隱馬爾可夫的作用,進而提高檢測語音段的完整性和連貫性,通過構建多條件的訓練數據集提高語音檢測模型的穩(wěn)健性。