(中國船舶重工集團公司第722研究所 武漢 430205)
現在無線通信在軍事通信中的應用越來越廣泛,但是由于帶寬等的限制,現在的無線網絡多是工作在半雙工的方式,需要使用人員通過PTT 來占用無線信道,并在使用后釋放信道;并且話音通信作為很重要的指揮手段現在還在廣泛地使用,但是受無線信道頻率的限制,無線話音傳輸距離一般距離不會太遠,對于無線話音超遠距離的傳輸可以利用現有的地面網絡(分組網或者電話網)來實現。
本設計主要解決半雙工PTT 四線話音接入到全雙工模擬兩線電話網,同時應用VAD 在嘈雜的無規律的環境下實現話音的識別,通過VAD 模擬PTT 實現無線網絡半雙工PTT 四線話音接入全雙工的有線電話網絡,實現無線網絡遠距離的擴展應用。
本文首先說明現在話音檢測技術的狀況,并分析了各種技術的優缺點;介紹了實現半雙工PTT四線話音接入到全雙工模擬兩線電話網的方案和實現流程,并給出最終的試驗結果。
話音激活檢測(Voice Activity Detection,VAD)技術主要實現對話音和靜音的分離處理;VAD 最先在話音插空技術(TASI)系統中得到了應用;并在很多話音應用環境比如話音識別、話音編碼、無線個人通信系統以及回波抵消中得到了應用。VAD 技術經過很多年的發展,技術已經比較成熟,因此通過應用VAD 技術實現全雙工的電話網和半雙工的無線話音網之間的對接就有了可行的技術基礎。
話音檢測在語音處理、語音編碼、語音插空和激活等方面有著十分重要的意義,其檢測方法較多,并且不斷發展出新方法,既有基于固定檢測條件的非自適應檢測方法,又有基于語音與噪聲的統計信息的自適應檢測方法。語音檢測的目的是把語音段和噪音段分開,識別出有用的話音信息。話音激活檢測對于語音識別,特別是噪聲環境下的語音識別很重要。話音識別主要依賴于此話音檢測的可靠性,如果語音被判為噪音,會使識別刪除錯誤增加,而且還可能丟失重要的信息;而噪聲被判為語音將會增加識別的錯誤,極大地降低系統的整體性能。
噪聲中的語音檢測是一個比安靜環境下的語音檢測更復雜的問題。下面主要介紹較常用的信號能量檢測、信號短時過零率算法,并分析了各種算法的優缺點,并針對實際情況進行了選擇。
話音激活檢測利用話筒的指向性和噪聲源的遠近,依據信號能量大小和信號能量軌跡變化進行判決,并進行拖尾和前端保護[5]。
首先,對初始多幀信號能量統計噪聲大小。
然后,對輸入信號計算能量,并存入連續多幀信號能量緩沖。
再次,計算多幀能量峰值。要求峰值能量大于門限1,并處于上升趨勢條件下或者峰值能量大于門限2,認為有話并更新門限。否則,認為無話。在無話條件下,如果處于拖尾保護則繼續認為有話,如果拖尾保護結束,輸出無話指示。
最后,在發送過程中采用隊列緩沖方式實現輸出前端保護。
信號能量(功率)檢測算法主要檢測大于一定門限值的短時功率是否持續了規定的時間。原則是當輸入信號的功率超過閥值Vt持續約定時間Ct,則認為是語音,否則為噪聲。約定時間Ct取值過大,則信號的時延相應增加,過小則不會正確檢測,比如一些短時的爆炸聲、撞擊聲等后會引起誤操作。經過反復試驗證明Ct取20ms較為合適。同樣規定的閾值Vt也無法抵抗脈沖噪聲的干擾,因此采用自適應以確定閾值。在輸入信號為0dBm/600歐姆,A/D 增益為3dB時通過無噪聲信號的檢測時相應的閾值Vt。
試驗證明:能量(功率)檢測算法由于工作于低信噪比條件下,有自適應的檢測機制,但是由于語音的非平穩性、時變的特性,對脈沖干擾仍然較敏感[6]。
話音信號的短時過零率是指單位時間內信號波形穿過橫軸(零電平)的次數。量化后的語音是離散的時間序列,其過零是指序列取樣值符號改變,過零率則是指每個樣本改變符號的次數。語音中的濁音成分過零率較低,而清音由于類似于白噪聲,所以過零率較高[7~8]。但由于濁音是語音信號的主要成分,所以語音信號的短時過零率較低;噪聲的短時過零率較高,這主要是因為語音信號的能量主要集中在較低的頻率范圍內,而噪聲信號的能量主要集中在較高的頻段[9~10]。
試驗證明當樣本長度為20ms時,純語音信號的平均過零率為20~24;混有噪聲的語音信號的平均過零率為22~28;噪聲的平均過零率為30~40。短時過零率算法檢測濁音很有效,但會將清音誤判為白噪聲。
本方案在內部處理上采用全數字化處理,即對內部所有的語音電路傳輸、交換和處理均采用數字PCM 信號。本模塊實現的功能主要是:
完成有線話音檢測,提供控制無線終端設備所需PTT 信號。
對有線話音進行適當延時,消除VAD 帶來的話音前端剪音。
對有線話音回波抵消功能,防止回波引起VAD 誤動作。
對無線話音流進行檢測,為系統提供無線信道忙閑狀態監視。
為了滿足上述功能,在硬件設計上可以有兩種方案:
1)采用專用回波抵消芯片加DSP 處理系統。回波抵消芯片完成回波抵消功能,防止話音的回波引起VAD 誤動作。DSP 處理系統完成有線話音進行檢測和有線話音的數字延時。
2)采用全DSP處理方案,即回波抵消芯、有線話音進行檢測和有線話音的數字延時都由DSP處理系統完成。
第一種方案在硬件電路上要復雜一些,也可能引入多次語音信號的轉換,但是軟件實現相對簡單。為了減少電路的復雜性,提高系統的可維護性,決定采用第二種方案。硬件結構如圖1所示。
與通用處理器(GPP)相比,DSP在硬件上具有獨特的結構,如哈佛存儲器結構、零開銷循環、對密集的乘法運算的支持、定點計算、專門的尋址方式、執行時間的預測、定點DSP 指令集。DSP 在話音應用中的優勢突出體現在以下幾方面:

圖1 VAD 模塊硬件結構
DSP憑借其獨特結構成為了語音等多媒體信號處理的最有效的引擎。ITU 制訂了許多語音壓縮標準,如G.728、G.723、AMR 等,它們都涉及到大量的乘加運算,所有這些算法都是針對DSP 硬件結構特點設計的。回波抵消中的許多技術實現如自適應均衡也與DSP 的硬件結構密不可分。DSP的可重復編程的特點可以使系統很方便地升級和拓展新的業務。另外,語音處理是一種實時業務,對時間要求極為嚴格,所以其運算性能必須是可以預測的,這點也正是DSP 的強項。DSP 程序員能夠決定所使用的指令集,所以預測在DSP 上執行代碼的時間就是一項相對來說比較簡單的工作。DSP沒有使用通用處理器中的分支預測和預測執行概念,它以一種高效的方式執行專用指令集來完成特定功能,而某些通用處理器的代碼可能會隨著分支運算的不同而消耗不同數量的指令周期。因此對這種處理器來說,很難預測執行某一特定運算所花費的時間。所以若采用通用處理器,信號處理的實時性很難得到保證。另外,若采用ASIC 或FPGA,雖然它們是一個硬連線結構系統,處理時延很小,但它們通常只能用于完成特定的算法,這種系統只適合于實現功能固定和數據結構明確的計算問題,不利于業務擴展和性能的升級。
DSP的性能是決定語音質量的關鍵因素,其成本在整個系統成本中占很大比重,如何選擇合適的DSP非常關鍵。在比較DSP的同時,要綜合考慮芯片的硬件性能、固件質量、技術支持、開發難易程度等多種因素。根據本項目的實際情況以及所用的資源選用現在國內較常用的TMS320VC5416DSP。
VAD 模塊采用的DSP TMS320VC5416PGE120,外部主頻20MHz,FLASH 選用SST39VF1601-70-4IEKE,容量2MB。FLASH 片選用DS,外加上拉電阻,FLASH 寫信號用R/W,讀信號用R/W 的非,因此在R/W 管腳外加了一個單非門SN74AHC1G04DBVR。HPI16、MP/MC、HIPENA 腳下拉到地。HRDY、HAS、HOLD、CLKMD1、CLKMD2、CLKMD3 上拉到+3.3V。TMS320VC5416PGE120的I/O 電壓+3.3V,內核電壓+1.6V,上電后從FLASH 啟動。
當二線電話側的用戶呼叫無線網絡用戶時,VAD 對二線電話接口發送話音流進行語音檢測,提供無線端機側話音接口所需的PTT 信號,同時對二線話音接口發送話音流進行數字處理,實現回波抵消功能,消除二線話音接口混合網絡引入的回波。為了消除VAD 模塊造成的剪音,VAD 模塊對二線話音接口發送的話音流進行了500ms延時處理。
當無線話音流下來時VAD 模塊對無線話音接口發送話音流進行檢測,為系統提供無線話音信道忙閑狀態監視。
VAD模塊對話音流進行檢測,通過HD0輸出二線有線側話音檢測結果,HD1 輸出無線側話音的檢測結果。
根據實現的功能要求,本文設計了兩套語音檢測軟件:一套是針對有線話音接口的有線語音檢測器,該檢測器基于Marcov算法,實行浮動門限來跟蹤語音信號的變化。該檢測技術在信噪比為0dB時能夠進行可靠的檢測,同時語音的自然度良好。另一套是針對無線話音接口的無線語音檢測器,基于自適應線性預測算法設計。

圖2 VAD 軟件流程圖
兩種語音檢測的流程基本相似,圖2給出了具體的流程圖。由于C5416是定點DSP芯片,能量算法和自適應線性預測算法的實現過程中都可能遇到溢出和32位除法問題。本文在程序中對算法作一些修改,得到了較好的語音檢測效果。
由于有線電話通信采用二線接口,有線信號進入傳輸設備需要進行二/四線轉換,一般由混合網絡(或稱差分網絡)來實現。混合網絡的平衡網絡阻抗不可能與負載阻抗完全匹配,不可避免會存在回波,從而影響語音檢測的可靠性。為了可靠地檢測有線用戶的話音,防止將遠端話音在本地混合網絡的回波誤認為有線用戶話音而引起誤動作,造成無線端機在沒有真實激勵信號下發射,在混合網絡四線處設計一個自適應濾波器,以模擬回波路徑,并復制回波進行抵消。常規的差分網絡對端衰耗只能在10dB~20dB 左右,并隨線路長短的不同、導線種類及電話機的阻抗不同而變化。回波抵消功能能夠將回波抑制在40dB左右。原理如圖3所示。

圖3 回波抵消實現原理圖
濾波網絡具備自適應性,即根據鏈路接續的狀態,智能地對差分網絡進行調整。在研制過程中,吸收了先進的DSP 技術,借助C5416數字信號處理芯片,采用快速自適應算法實現了適合與本系統的自適應差分網絡,即回波抵消器。
有線話音的可靠檢測是實現單雙工轉換的關鍵。由于有線端到達控制器的話音隨線路和使用者的不同而有較大幅度的變化,同時還可能存在背景噪聲干擾,使用固定門限方式會引起話音檢測誤判。本方案采用浮動門限的自適應話音檢測方式,自動調整話音判決門限。在實現過程中,通過DSP處理器對話音的能量和過零率進行分析,采用Markov模型的多種平滑因子,自動調整門限,進一步改進了語音判決,并能區別話音和噪聲。
VAD 算法主要是依據語音與噪聲的不同特性來進行語音和噪聲的判決。檢測算法通常有能量、過零率、零能比、時域、頻域的基音檢測等,這些算法都是建立在相對比較理想的條件下,要求背景噪聲保持平穩,信噪比較高。在實際野戰通信系統應用中,這些條件很難得到滿足,尤其是在戰場環境下的通信,性能比較差。本模塊在常規話音檢測方案中,對語音進行了一階馬爾可夫過程統計的建模工作,并對基于此模型的語音檢測方法進行了多級系數平滑,使VAD 檢測門限可以根據通信環境進行自動調整,顯著地改進了一般統計語音檢測方法的性能。
當無線網為共享信道時,此時網內已有話音,有線側發話則會導致輸出PTT 進而搶占無線信道,就會出現發話沖突,進而會導致網內所有無線設備都無法進行話音通信。
為解決此問題,本方案在無線四線話音接口對無線話音進行語音激活檢測,為無線側的設備提供無線話音網通話狀態監視。當無線信道被其他無線設備占用時,則本設備不響應有線信道發過來的發話請求。
由于語音檢測判決造成的時延,會使無線網內用戶可能聽不到有線用戶開始講話的幾個音節(即前端剪音),降低轉接的通信效果。采用話音數據緩存法,對話音延時400ms~500ms,可以有效地消除前端剪音,提高通話質量。
通過可靠的語音激活檢測(VAD)確定有線信道有無話音,可以為系統模擬PTT 狀態(握鍵或釋放)提供依據。該技術的難點在于有背景噪音甚至強噪音環境下如何保證可靠的語音檢測,避免語音誤判。本設備采用基于DSP 的自適應語音檢測技術,通過對話音的短時能量和過零率進行分析,自動調整門限并區別話音和噪聲,實現可靠的語音激活檢測。在模擬兩線接口輸入信噪比大于3dB 條件下,VAD 輸出可靠性大于95%。為避免話間短時停頓造成頻繁狀態切換,話音激活后保持時間控制在200ms左右。
由于實現二/四線變換的混合網絡阻抗不匹配在本地形成的回波干擾,有可能使語音檢測模塊將無線側的來話在混合網絡處產生的回波當成是有線側用戶的話音,從而引起語音誤判,因此本方案在語音識別前要采用基于DSP的自適應回波抵消技術減小回波干擾。回波抵消端損耗對單音信號的ERLR 大于40dB,對白噪聲的ERLR 大于30dB,滿足了VAD 要求。
由于語音檢測判決及PTT 握鍵等造成的時延,會使無線網內用戶可能聽不到有線用戶開始講話的幾個音節(即前端剪音),降低轉接的通信效果。通過試驗,實際系統中取400ms,可以有效地消除前端剪音,提高了通話質量。
本文對VAD 技術進行說明,并對實現VAD的算法進行了分析,并針對本項目的要求對方案進行了優化處理,最后針對該設計方案的關鍵技術進行了試驗分析,試驗結果表明,使用該VAD 技術的技術方案完全可以滿足實際的需求。
[1]陳尚勤,羅乘烈,楊雪.近代語音識別[M].成都:電子科技大學出版社,1991.
[2]胡廣書.數字信號處理—理論、算法與實現[M].北京:清華大學出版社,1997.
[3]樣行峻,遲惠生.語音信號數字處理[M].北京:電子工業出版社,1995.
[4]陳懷琛.數字信號處理教程-matlab釋義與實現[M].北京:電子工業出版社,2004.
[5]J.Sohn,N.S.Kim,W.Sung.A statistical modelbased voice activity detection[J].IEEE Signal Processing Letters,1999,16(1):1-3.
[6]Sohn J,Sung W.A Voce Activity Detector Emplying Soft Decision Based Noise Spectrum Adaption[C].IEEE International Conference on Acoustics,Speech and Signal Processing,1998,1(5):365-368.
[7]L.R.Rabiner,M.R.Sambur.Voice-unvoiced-silence detection using the Itakura LPC distance measure[C]//Proc.Int.Conf.Acoust.,Speech,Signal Processing,1997,5:323-326.
[8]K.Srinivasan,A.Gersho.Voice activity detection for cellular networks[C]//Proc.IEEE Speech Coding Workshop,1993,10:85-86.
[9]H.Ozer,S.G.Tanyer.A geometric for voice activity detection in nonstationary Gaussian noise[C]//Proc.EUSIPCO'98,Rhodes,Greece,1998,9.
[10]H.Ozer.Signal detection and estimation in onostationary background[D].Ankara:Baskent University,1998:8.