專利名稱:一種麥克風回聲消除系統的制作方法
技術領域:
本發明涉及一種回聲消除系統,特別涉及一種麥克風回聲消除系統。
背景技術:
回聲的產生是由于揚聲器和麥克風之間存在聲學回路。來自遠端的聲音信號,通過近端的揚聲器放出,被麥克風采集到后傳回遠端,此時,遠端的說話人就能聽到自己的回聲。因而嚴重的影響了通話質量。
由于從揚聲器到麥克風的聲學回路是未知并且時變的,因而在現行回聲消除方案中,廣泛的采用了自適應濾波的方法。圖1為普通回聲消除系統電路結構示意圖,如圖1所示,自適應濾波器W(n)以最小化殘余回聲e為目標,通過自適應地調整濾波器系數來跟蹤揚聲器到麥克風的聲學回路g(n),產生麥克風接收到的回聲d的預測值y,當W(n)準確的跟蹤到g(n)時,y非常接近d,從而使e=d-y趨向于0。通過這個方法來實現消除回聲的作用。
但在這種回聲消除的方案中,卻無法有效處理一些特殊情況,如兩端同時無聲、兩端同時說話、較強的背景噪聲、揚聲器和麥克風以及其他因素引起的信號非線性失真等情況。在有些方案中也采用VAD(Voice ActivityDetection,話音檢測),DTD(Double Talk Detection,兩端同時有聲檢測),NLP(Non-Linear Processor,非線性處理)等模塊,但是由于缺乏對這些模塊的準確控制,因而也難以達到預期的設想效果。例如采用基于相關性分析的DTD時,難以處理背景噪聲很大的情況,此時,系統會持續誤判為DT(Double Talk,兩端同時有聲)狀態,又如采用NLP時,難以在有效抑制回聲和保持近端語音質量中做出理想的折衷。
因此現有的利用自適應濾波進行回聲消除的方法中,缺乏對自適應濾波的準確控制,因而在一些場合下,例如兩端無聲,兩端同時說話,較強的背景噪聲等等時,自適應濾波不能穩定而高效的工作,甚至會系數發散。導致不能有效地消除回聲,甚至人為引入噪聲。
發明內容
本發明所解決的技術問題在于提供了一種麥克風回聲消除系統,以達到通過準確控制自適應濾波以及其他輔助模塊的協調工作,使得自適應濾波能夠高效而穩定的工作,從而達到有效消除回聲的目的。
為解決上述問題,本發明提供了一種麥克風回聲消除系統,本系統包括語音檢測模塊、兩端同時有聲檢測模塊、非線性處理模塊、跟蹤濾波模塊、控制模塊,其中語音檢測模塊,用于在檢測判決到遠端或近端有聲情況后,將有聲情況通知控制模塊;兩端同時有聲檢測模塊,用于檢測判決到遠端與近端同時有聲時,將同時有聲消息通知控制模塊;跟蹤濾波模塊,用于按所述控制模塊發送的控制消息,進行自適應濾波,調整自適應濾波器系數,以及控制自適應濾波器系數更新的步長;非線性處理模塊,用于根據所述控制模塊發送的控制消息,啟動或者停止消除反饋回路中信號的非線性失真以抑制回聲;控制模塊,用于在收到近端有聲情況后,向所述跟蹤濾波模塊發送控制消息進行自適應濾波;在收到遠端有聲情況后,通知所述兩端同時有聲檢測模塊,檢測判斷是否同時有聲,同時開啟所述非線性處理模塊消除非線性失真;在沒有收到遠端有聲情況時,停止所述非線性處理模塊消除非線性失真;當所述兩端同時有聲檢測模塊判決出遠端與近端不是同時有聲時,向所述跟蹤濾波模塊發送控制消息調整濾波系數;當所述兩端同時有聲檢測模塊判決出遠端與近端是同時有聲時,向所述跟蹤濾波模塊發送控制消息,減小自適應系數更新的步長,然后調整濾波系數。
本系統可以進一步包括預處理模塊,用于去除直流噪聲。
使用本發明后,能夠通過準確控制自適應濾波以及其他輔助模塊的協調工作,使得自適應濾波能夠高效而穩定的工作,從而達到有效消除回聲的目的。
圖1為普通回聲消除系統電路結構示意圖;圖2為本發明實施例中所述系統的電路結構示意圖;圖3為本發明實施例中所述非線性處理模塊非線性處理前后的回聲與判決電平關系示意圖;圖4為本發明實施例中所述跟蹤濾波模塊結構示意圖;圖5為本發明實施例中所述控制模塊的工作流程示意圖。
具體實施例方式
圖2為本發明實施例中系統的電路結構示意圖,如圖所示,在系統中包塊以下模塊預處理模塊LP、語音檢測模塊VAD、兩端同時有聲檢測模塊DTD、非線性處理模塊NLP、跟蹤濾波模塊和控制模塊。跟蹤濾波模塊是最主要的模塊,用來跟蹤反饋回路,預測回聲,它含有前臺濾波器、自適應濾波器和系數監測單元。控制模塊是整個系統的智能模塊,通過分析系統所處的狀態,指導跟蹤濾波器如何工作,同時協調其他各個模塊協同工作。以下分別介紹各個模塊的工作原理以及如何實施本發明。
一、預處理模塊,在本實施例優選的是一個帶通濾波器,通帶為200~3400Hz,這樣在語音信號基本不受影響的同時,可以有效地去除直流噪聲。這對于提高VAD、DTD和自適應濾波的性能很有好處。
二、語音檢測模塊,當兩端同時無聲時,跟蹤濾波模塊中的自適應濾波器由于缺少參考信號,不能正常工作,從而容易出現錯誤的跟蹤,導致系數發散。同時,由于DTD模塊是通過計算近端和遠端信號的相關性來作出判決的,因而如果有任何一端無聲,DTD模塊也不能正常工作,這將導致DTD模塊的錯誤判決,所以在VAD檢測到兩端無聲時,必須將系統狀態及時通知控制模塊,由控制模塊采取相應的措施。VAD檢測時通過采用將信號短時平均幅值與噪聲電平比較來進行判決。
NearSignal_avg=(1-a)·NearSignal_avg+a·|NearSignal|,如果NearSignal_avg>NoiseFloor,則判決近端有聲,否則無聲。
FarSignal_avg=(1-a)·FarSignal_avg+a·|FarSignal|,如果FarSignal_avg>NoiseFloor,則判決遠端有聲,否則無聲。
其中,a在0~1之間,NoiseFloor是估計的噪聲電平。
三、兩端同時有聲檢測模塊,當兩端同時有聲時,近端的麥克風采集的信號不僅包含遠端信號的回聲,還包括近端信號。強烈的近端信號將干擾自適應濾波器正確的跟蹤反饋回路,從而有可能導致自適應濾波器的錯誤跟蹤甚至系數發散。所以在DT狀態時,必須暫時凍結自適應濾波器系數更新。
DTD檢測的方法有很多,本實施例中優選采用互相關判決法,定義判決指數ρ(n)=|Σk=0N-1d(n-k)y(n-k)|Σk=0N-1|d(n-k)y(n-k)|,]]>其中d,y如圖2所示。
顯然,當只有遠端有聲時,麥克風信號d只包含遠端信號的回聲,y作為d的估計,將很接近d,則ρ(n)趨向于1;當兩端同時說話時,d不僅包含遠端信號的回聲,同時包含近端聲音信號,此時y與d會有很大不同,ρ(n)值較小。因此我們可以設置一個判決電平threshold,threshold為一個0~1之間的數,這個判決電平可以通過實驗獲得。
如果ρ(n)<threshold 那么就檢測出系統處在DT狀態。
以上的方法在背景噪聲不強的環境下判決是很準的,但是在較強的背景噪聲下是有問題的,原因在于,在較強的背景噪聲下,即使近端不說話,麥克風信號d中也含有大量的噪聲信號,ρ(n)會持續保持一個較低的值,這樣自適應濾波器系數會一直被凍結,從而自適應濾波將失效,無法消除回聲。
實施例中采用的方法是,當檢測到DT狀態時,只是在一定程度上,減小自適應濾波器系數更新的步長,這樣一方面,在較強的背景噪聲環境下,自適應濾波仍然能夠工作,起到回聲消除的作用;另一方面,濾波器系數更新步長的減小,可以使自適應濾波在含有大量噪聲的條件下,更加精確的跟蹤反饋回路。當然,自適應濾波器系數發散的隱患仍然存在,控制模塊還將會進一步采用下面所介紹的其他一些方法來消除可能的隱患。
四、非線性處理模塊。由于一般的揚聲器都有5%~10%的非線性失真。而自適應濾波只能跟蹤線性系統,因而反饋回路中信號的非線性失真是無法預測和消除的。本實施例中采用了中心削波的方法來抑制殘余回聲。圖3為實施例中非線性處理模塊非線性處理前后的回聲與判決電平關系示意圖,其中e′=e-T,if(E[e]>T)0,if(-T≤E[e]≤T),e+T,if(E[e]<-T)]]>其中,e和e’為經過NLP模塊前后的回聲、E[]為取短時平均幅度、T為判決電平,判決電平需要仔細挑選,太小不足以有效抑制殘余回聲,太大會嚴重影響近端聲音質量。
NLP模塊受到控制模塊的控制,當VAD檢測到遠端無聲時,控制模塊將暫停NLP模塊,因為此時不再需要抑制殘余回聲,可以讓近端聲音不受畸變的傳送出去。
五、跟蹤濾波模塊實際包含三個部分前臺濾波器、自適應濾波器和系數監測單元。圖4為實施例中跟蹤濾波模塊結構示意圖,跟蹤濾波模塊結構如圖所示。
在這個結構中,用前臺濾波器和自適應濾波器兩個濾波器分別模擬反饋回路,其中前臺濾波器不是自適應的。當控制模塊判斷到自適應濾波器消除回聲表現好于前臺濾波器時,就將自適應濾波器的系數復制給前臺濾波器,否則,就用前臺濾波器進行回聲消除。這樣做的原因是,自適應濾波器的表現差于前臺濾波器,很可能是因為自適應濾波器錯誤跟蹤,這樣可以避免做出錯誤的預測。實際上,前臺濾波器可以看作是自適應濾波器最好狀態的暫存器。
eb_avg=(1-a)·eb_avg+a·|eb|,ef_avg=(1-a)·ef_avg+a·|ef|,(當ef_avg>eb_avg,即視為自適應濾波器表現好于前臺濾波器,此時復制系數給前臺濾波器。
自適應濾波器系數更新在本實施例中采用了NLMS(歸一化最小均方誤差,Normalized Least mean Square)算法。
y(n)=WH(n-1)U(n)e(n)=d(n)-y(n),W(n)=W(n-1)+μU(n)UH(n)U(n)e(n)]]>系數檢測單元,用來在每次自適應濾波器系數更新后,檢測其濾波系數的合理性。當自適應濾波器正常工作,處在收斂狀態時,所有濾波器系數應該在-1~1之間,當系數檢測單元判斷到系數跳出這個范圍時,表明此時濾波器已經發散。采取的措施是強制壓縮濾波器系數到合理范圍以內。該方法為避免自適應濾波器的發散提供了保障。
六、控制模塊是整個系統的智能模塊,用來協調其他各個模塊協同工作。通過綜合分析VAD、DTD的判決結果和殘余回聲的輸入,來控制VAD、DTD、NLP、跟蹤濾波和自適應濾波器系數更新模塊何時工作、何時停止以及如何工作。圖5是實施例中控制模塊的工作流程示意圖,如圖所示,控制模塊的工作流程是步驟501、在收到近端有聲情況后,向跟蹤濾波模塊發送啟動自適應濾波消息;在沒有收到近端有聲的情況時,因為不必向遠端發送任何信號,所以輸出e’=0;步驟502、自適應濾波器消除回聲;步驟503、在收到遠端有聲情況后,通知兩端同時有聲檢測模塊檢測判斷是否同時有聲;在沒有收到遠端有聲的情況時,因為不必進行自適應濾波以及其他信號處理,只需要輸出近端信號d,考慮到一定的系統延時,此時輸出e’=d-y,因為遠端無聲,此時y很小;步驟504、當兩端同時有聲檢測模塊判決出遠端與近端不是同時有聲時,轉向步驟506,當兩端同時有聲檢測模塊判決出遠端與近端是同時有聲時,轉向步驟505;步驟505、向跟蹤濾波模塊發送控制消息,減小自適應系數更新的步長;步驟506、調整濾波系數;步驟507、非線性處理模塊作非線性處理。
對于一個回聲消除的解決方案,不僅僅包含自適應濾波,而是一個包含很多模塊協同工作的系統。所以有效而準確的控制是一個回聲消除系統在實際中穩定高效工作的關鍵。
使用本發明后,能達到的性能為回聲壓縮50~60dB;收斂時間<50ms;支持的反饋回路延遲時間可調。在采樣率為8K,濾波其長度128時,支持16ms延遲;在兩端同時說話狀態下,能有效消除回聲,同時濾波器保持穩定。
在較強環境噪聲下,能有效消除回聲,同時濾波器保持穩定。
權利要求
1.一種麥克風回聲消除系統,其特征在于,包括語音檢測模塊、兩端同時有聲檢測模塊、非線性處理模塊、跟蹤濾波模塊、控制模塊,其中語音檢測模塊,用于在檢測判決到遠端或近端有聲情況后,將有聲情況通知控制模塊;兩端同時有聲檢測模塊,用于檢測判決到遠端與近端同時有聲時,將同時有聲消息通知控制模塊;跟蹤濾波模塊,用于按所述控制模塊發送的控制消息,進行自適應濾波,調整自適應濾波器系數,以及控制自適應濾波器系數更新的步長;非線性處理模塊,用于根據所述控制模塊發送的控制消息,啟動或者停止消除反饋回路中信號的非線性失真以抑制回聲;控制模塊,用于在收到近端有聲情況后,向所述跟蹤濾波模塊發送控制消息進行自適應濾波;在收到遠端有聲情況后,通知所述兩端同時有聲檢測模塊,檢測判斷是否同時有聲,同時開啟所述非線性處理模塊消除非線性失真;在沒有收到遠端有聲情況時,停止所述非線性處理模塊消除非線性失真;當所述兩端同時有聲檢測模塊判決出遠端與近端不是同時有聲時,向所述跟蹤濾波模塊發送控制消息調整濾波系數;當所述兩端同時有聲檢測模塊判決出遠端與近端是同時有聲時,向所述跟蹤濾波模塊發送控制消息,減小自適應系數更新的步長,然后調整濾波系數。
2.如權利要求1所述的系統,其特征在于,進一步包括預處理模塊,用于除去直流噪聲。
3.如權利要求2所述的系統,其特征在于,所述預處理模塊,是通帶為200~3400Hz的帶通濾波器。
4.如權利要求1所述的系統,其特征在于,所述語音檢測模塊,是通過將檢測到的信號短時平均幅值與噪聲電平比較進行判決的。
5.如權利要求4所述的系統,其特征在于,所述語音檢測模塊,在檢測到信號短時平均幅值與噪聲電平時,NearSignal_avg=(1-a)·NearSignal_avg+a·|NearSignal|如果NearSignal_avg>NoiseFloor,則判決近端有聲,否則無聲;FarSignal_avg=(1-a)·FarSignal_avg+a·|FarSignal|如果FarSignal_avg>NoiseFloor,則判決遠端有聲,否則無聲;其中,a為0~1之間常數,NearSignal_avg為近端信號短時平均幅值、FarSignal_avg為遠端信號短時平均幅值、NoiseFloor是估計的噪聲電平。
6.如權利要求1所述的系統,其特征在于,所述兩端同時有聲檢測模塊,是采用互相判決法判決的,其中ρ(n)=|Σk=0N-1d(n-k)y(n-k)|Σk=0N-1|d(n-k)y(n-k)|,]]>ρ(n)為判決指數,d為麥克風信號,y為d的估計值,當設置判決電平threshold為一個0~1之間的數時,當ρ(n)<threshold時,判斷出系統處在兩端同時發音狀態。
7.如權利要求1所述的系統,其特征在于,所述非線性處理模塊,是通過中心削波的方法來消除非線性失真的,其中e′=e-T,if(E[e]>T)0,if(-T≤E[e]≤T),e+T,if(E[e]<-T)]]>e和e’為經過非線性處理模塊前后的回聲,E[]為取短時平均幅度,T為判決電平。
8.如權利要求1所述的系統,其特征在于,所述跟蹤濾波模塊,包括前臺濾波器、自適應濾波器、系數檢測單元,其中自適應濾波器,用于近端有聲情況時,在接收到所述控制模塊發送的系數調整消息后,進行自適應濾波;遠端與近端同時有聲時,在接到所述控制模塊發送控制消息后,控制自適應系數更新的步長,然后調整濾波系數,如果自適應濾波器消除回聲表現好于前臺濾波器時,將自身的濾波器系數復制給前臺濾波器后,進行回聲消除;前臺濾波器,用于當所述自適應濾波器消除回聲表現差于前臺濾波器時,前臺濾波器進行回聲消除;系數檢測單元,用于在自適應濾波器系數更新后,檢測濾波系數的合理性,當檢測到所有濾波器系數不在-1~1之間時,采取措施強制壓縮濾波器系數到-1~1之間。
9.如權利要求8所述的系統,其特征在于,所述自適應濾波器,在當eb_avg=(1-a)·eb_avg+a·|eb|、ef_avg=(1-a)·ef_avg+a·|ef|時,如果ef_avg>eb_avg,即認為自適應濾波器表現好于所述前臺濾波器,復制自身的濾波器系數給所述前臺濾波器,其中eb_avg為eb的短時均值、eb為自適應濾波器消除回聲后的殘差信號、a為0~1之間的常數、ef_avg為ef的短時均值、ef為前臺濾波器消除回聲后的殘差信號。
10.如權利要求8所述的系統,其特征在于,所述自適應濾波器,在系數更新時采用歸一化最小均方誤差算法進行更新。
全文摘要
本發明公開了一種麥克風回聲消除系統,包括語音檢測模塊,檢測判決遠端或近端有聲情況;兩端同時有聲檢測模塊,檢測判決兩端是否同時有聲時;跟蹤濾波模塊,用于自適應濾波、調整自適應濾波器系數、以及控制自適應濾波器系數更新的步長;非線性處理模塊,根據遠端是否有聲情況,開啟或停止非線性處理模塊消除非線性失真;控制模塊,近端有聲時,向跟蹤濾波模塊發送控制消息進行自適應濾波;在遠端有聲時,通知兩端同時有聲檢測模塊判斷是否同時有聲;當兩端不是同時有聲時,發送控制消息調整濾波系數;當兩端同時有聲時,發送控制消息,減小自適應系數更新的步長,調整濾波系數。使用本發明后,能夠使自適應濾波達到有效消除回聲的目的。
文檔編號H04R3/02GK1822709SQ200610058449
公開日2006年8月23日 申請日期2006年3月24日 優先權日2006年3月24日
發明者張晨 申請人:北京中星微電子有限公司