余尤好
(莆田學院電子信息工程系,福建 莆田 351100)
通信系統聲學回音包括直接回音和間接回音.直接回音是指由說話者發出的聲音經過不同路徑一次或多次反射后進入麥克風所產生的回音,常見情況是受話方將聽到一前一后兩個聲音.間接回音是指聲音由遠端受話方的揚聲器播出后進入對方麥克風傳遞回來,說話方將聽到對方聲音和自己延時的聲音.為控制回音的影響,人們先后提出網絡衰減法和回音抑制器技術,但是它們都存在較大缺陷和局限性.網絡衰減法在發送端和接收端都裝有衰減器,但是隨著傳輸距離變長,話音電平衰減太大.回音抑制器在發送端說話時,打開發送路徑,而在接收端關閉發送路徑,它采用非線性回音控制方法,容易引起揚聲器聲音斷斷續續,回聲消除效果不好,具體實現時比較困難.回音對消的核心技術就是采用自適應算法的濾波器,自適應神經網絡具有自學習能力,采用均方誤差最小的學習規則自動調整網絡權值和閾值,收斂速度快、穩定性高、易于實現,非常適合用于各類信號的分析處理,尤其是信號處理中的非線性問題.神經網絡在通信系統、自適應濾波、弱信號檢測等方面得以廣泛應用.
自適應線性神經元(Adaptive Linear Neuron,以下簡稱:ADALINE)是線性神經網絡最早的典型代表,它采用最小均方誤差(Least Mean Squares,以下簡稱:LMS)算法,由其訓練的網絡判決邊界距離分類模式較遠,網絡抗干擾能力較強,可以實現高性能自適應濾波器的設計.
ADALINE是一個自適應可調的網絡,廣泛應用于信號處理中的自適應濾波、預測和模型識別.ADALINE模型如圖1所示,它的傳輸函數為線性函數,線性神經網絡的輸出為:
a=purelin(Wp+b)=Wp+b
(1)
式(1)中:a為模擬量,代表神經網絡的實際輸出;purelin表示線性傳輸函數;W表示由權值w1,w2,…,wm構成的矩陣;b代表閾值向量;p是系統的輸入向量.有些情況下自適應線性神經網絡的輸出不是取自線性神經元的輸出,而是將目標響應t(即神經元輸出的期望值)與模擬輸出量a相減,得到誤差信號e作為輸出[1].

圖1 自適應線性神經元模型Fig.1 Model of adaptive linear neuron
對于線性神經網絡可以直接求網絡的W和b而不需要訓練,若網絡不止一個零誤差解,可以取誤差最小一組的閾值和權值向量.如果網絡零誤差解不存在,那么可以取誤差平方和最小那組的閾值和權值.由于線性系統有唯一誤差最小值,所以根據給定的一組輸入向量和目標向量,可以算出實際輸出向量和目標向量的誤差最小值.若無法直接求出W和b,ADALINE神經網絡可以采用LMS算法來調整W和b,這種方法是沿誤差最陡下降方向對上一步得到的權值向量進行修正[2].
對多組訓練樣本{p1,t1},{p2,t2},…,{pQ,tQ},LMS算法的目的是尋找最佳的W、b,使各神經元輸出的均方誤差最小.神經元輸出的均方誤差為:
(2)
式(2)中:mse為神經元的均方誤差;Q為訓練樣本個數;a為神經元輸出的實際值;t為神經元輸出的期望值.
為了尋找最佳的W、b使每個神經元輸出的均方誤差最小,將mse分別對W和b求偏導數,令其等于0,聯立方程組即可求得mse的極值點.由于mse只能是正值,所以極值點必為極小值.當輸入向量的維數較高時,計算很麻煩.通常采用搜索優化法,假設獲得的第k次訓練結果為W(k)和b(k),找出曲面上該點最陡下降方向,沿這個方向對它進行修正.求解均方誤差的梯度運算量較大,可以用誤差平方的梯度來近似表示:
(3)
(4)
由公式(3)和(4)得到自適應線性神經網絡W和b的調整公式為:
W(k+1)=W(k)+2βe(k)pT
,
(5)
b(k+1)=b(k)+2βe(k)
.
(6)
式(5)、(6)中:β為學習速率,是決定W和b的收斂速度和穩定性的參數.β取值越大,學習速度就越快,但是如果取太大將會造成修正過度,系統變得不穩定,產生更大的誤差[3].
應用ADALINE神經網絡消除回音的原理框圖如圖2所示.圖2中:s表示原始輸入信號,即通話時希望聽到的對方語音信號;n1表示通信系統的回音信號,即需要消除的噪聲信號;n0為與回音信號n1相關的參考輸入信號,也就是n1在傳輸過程發生非線性變換后得到的信號;s+n0作為ADALINE神經元的期望輸出信號;y為回音信號經過ADALINE神經元自適應調節后得到的實際輸出,接近于n0;期望輸出信號與實際輸出信號通過減法器后得到誤差信號,作為系統的輸出以ε表示,即ε=s+n0-y.則有
E(ε2)=E[(s+n0-y)2]=
E(s2)+2E[s·(n0-y)]+E[(n0-y)2]
.
通過自適應線性神經網絡學習步長和訓練次數的調節,使誤差信號最小,得到
Emin(ε2)=Emin(s2)+2Emin[s·(n0-y)]+
Emin[(n0-y)2]
,
(7)
式(7)中:當y接近于n0時,其輸出ε與信號源輸入s差值約等于0,此時回音信號被消除[4].特別是對于間接回音信號的消除,此時信號源信號與回音信號線性無關,從而E[s·(n0-y)]=0,運算過程較為簡便.

圖2 回音對消原理圖Fig.2 Principle diagram of echo cancellation
根據國際電報電話咨詢委員會(International Telegraph and Telephone Consultative Committee,簡稱:CCITT)的長途通信協議標準,目前各國一般采用的話音采樣頻率為8 kHz.當聲音延遲達到50 ms而且衰減較小時,人耳可以感覺到清晰的回音.仿真時錄制一段話音作為原始語音信號,采樣頻率為8 kHz,延時1 s并把幅度降低到原來的60%作為回音信號.將回音信號作為自適應線性神經元的輸入向量n1,原始語音信號與回音之和作為神經元的目標向量,通過回音對消后,系統可以得到較為清晰的自身話音信號,通過話筒傳遞到對方,受話人不會感覺到回音.
MATLAB軟件是面對科學計算、可視化以及交互式程序設計的計算環境,利用它可以構建仿真系統,并繪制出話音信號的頻譜圖、語譜圖.圖3為直接回音消除時域、頻域波形圖,疊加回音信號后,時域中話音信號時間長度增加了,頻域中各頻率分量幅度變為原先的1.6倍.利用自適應線性神經網絡實現回音對消后,時域、頻域波形基本與原語音信號一致.把回音視為噪聲,經過計算得出濾波前帶回音信號信噪比約為4.437 0分貝,濾波后信噪比達到20.717 7分貝[5].

圖3 直接回音消除時域、頻域波形Fig.3 Waveform of direct echo cancellation in time and frequency domain
圖4為直接回音消除語音信號的語譜圖,原語音信號大約3.7 s,后面黑色部分為靜音.疊加回音信號后,條紋變長了,而且信號持續時間變長.經過神經網絡回音對消后,聲紋重新變短,有用信號末尾的回音基本消失.

圖4 直接回音消除語譜圖Fig.4 Spectrogram of direct echo cancellation
以采樣頻率8 kHz錄制兩段話音,其中一個為男性聲音,另一個為女性聲音.為了實驗方便,假設女性聲音為電話遠端即受話人發出的聲音.將男性聲音作為回音信號n1輸入到ADALINE系統中,疊加上對方聲音的信號作為目標響應,通過回音對消系統可以獲得清晰的來自對方的語音信號.
圖5為間接回音消除時域、頻域波形圖.兩個聲音相加,頻譜混疊在一起,通過經典濾波器、譜減法或小波變換等很難把有用的信號提取出來[6].經過自適應線性神經網絡回音對消后,可以較好地還原出所需要的話音信號,濾波前信號信噪比約為3.659 2分貝,濾波后信噪比達到20.479 3分貝.

圖5 間接回音消除時域、頻域波形Fig.5 Waveform of indirect echo cancellation in time and frequency domain
圖6為間接回音消除語譜圖,兩者聲音疊加后,聲紋較為紊亂.經過自適應線性神經網絡回音對消后,語譜圖特征與受話端發出的語音信號特征基本一致,回音信號基本消除.這樣就可以清楚地聽到對方說話,而不會受到自己說話回音的干擾.

圖6 間接回音消除語譜圖Fig.6 Spectrogram of indirect echo cancellation
通過實驗發現,應當多次調整學習速率,太大不行,太小也不行.太小了學習過程變得漫長,而且回音信號并沒有被削弱,效果不理想.太大了學習過程將不穩定,雖然程序運行時間較短,但是存在很大的誤差,得到錯誤結果.特別在直接回音信號消除過程中,回音信號不同于其它噪聲,它與信號源存在相關性,容易把自身信號當作噪聲一并消除而使系統輸出結果趨于零.仿真過程神經網絡訓練值重復次數要設置得比較大,否則無法有效消除回音,即使這樣人耳還是可以感受到微弱的回音.不過在實驗過程中電話回音幅度設置較大,實際情況下回音經過反射物后能量受到較大削弱,經過自適應線性神經網絡對消后基本可以忽略,通話者感覺不到回音存在.
把自適應線性神經網絡應用于通信系統回音消除,成功實現了電話回音的對消,獲得較高的信噪比.在回音對消過程中,根據實際情況,還可以從一些地方加以改善,比如參數的合理選擇、如何更好地解決收斂速度和穩態殘留誤差之間的矛盾.實現理想穩定的回音對消效果還存在一些難點,需要在實踐過程中不斷地完善算法.
參考文獻:
[1] 周開利,康耀紅. 神經網絡模型及其MATLAB仿真程序設計[M]. 北京:清華大學出版社,2005.
[2] 郭峰,任興民,劉婷婷. 基于神經網絡消噪的獨立成分分析方法研究[J]. 機械科學與技術,2010,29(12):1678-1682.
[3] 張帆. Adaline神經網絡隨機逼近LMS算法的仿真研究[J]. 電子設計工程,2009,17(9):88-90.
[4] 董翠英,周長英. 基于RBF神經網絡的語音信號的噪聲消除[J]. 制造業自動化,2010,32(5):228-230.
[5] 高寧,鄭恩讓,馬令坤,等. 基于神經元網絡的自適應噪聲抵消系統研究與實現[J].計算機測量與控制,2010,18(1):133-135.
[6] 李政洋. 基于AD神經網絡的語音增強[D]. 蘇州:蘇州大學,2008.