背景技術(shù):
設(shè)備可以具有可用于從周圍環(huán)境接收音頻信號的音頻輸入裝置。設(shè)備還可以具有可用于向周圍環(huán)境輸出音頻信號的音頻輸出裝置。例如,設(shè)備可以具有用于輸出音頻信號的一個或多個揚聲器和用于接收音頻信號的一個或多個麥克風。從設(shè)備的揚聲器輸出的音頻信號可能作為在由麥克風接收到的音頻信號中的“回波”而被接收。有可能是這種情況:該回波在接收到的音頻信號中是不想要的。例如,該設(shè)備可以是在通過網(wǎng)絡(luò)與另一用戶設(shè)備的諸如音頻或視頻呼叫的通信事件中使用的用戶設(shè)備(諸如移動電話、平板電腦、膝上型計算機、pc等)。呼叫的遠端信號可以在用戶設(shè)備處從揚聲器輸出,并且可能作為設(shè)備處的麥克風接收到的音頻信號中的回波而被接收。這樣的回波對于呼叫的用戶可能是有干擾的,并且呼叫的感知質(zhì)量可能由于回波而降低。特別地,回波可能會對旨在由麥克風接收并發(fā)送到呼叫中的遠端的近端音頻信號造成干擾。因此,回波抵消和/或回波抑制可以應用于接收到的音頻信號,從而抑制接收到的音頻信號中的回波。
回波抵消(或“回波減除”)技術(shù)旨在基于對從揚聲器輸出的音頻信號的知識來估計被包括于在麥克風處接收到的音頻信號中的回波信號。然后可以從接收到的音頻信號中減去回波信號的估計,從而從接收到的音頻信號中消除至少一些回波?;夭ㄒ种票挥糜趯㈩l率相關(guān)抑制(frequency-dependentsuppression)應用于接收到的音頻信號,從而對接收到的音頻信號中的回波進行抑制。
技術(shù)實現(xiàn)要素:
根據(jù)本公開的第一方面,提供了一種用戶終端,包括:揚聲器組件;麥克風組件;音頻信號處理模塊,包括:音頻參考信號生成器,其被配置為,在通過通信網(wǎng)絡(luò)與至少一個另外的用戶終端的通信事件的建立之前,生成音頻參考信號,并輸出音頻參考信號到揚聲器組件用于播放;回波消除模塊,被配置為對在所述通信事件期間經(jīng)由所述麥克風組件接收到的音頻信號執(zhí)行回波消除;以及檢測器,其被配置為,在所述通信事件的建立之前:確定音頻參考信號的特性;接收從麥克風組件輸出的音頻信號,其中接收到的音頻信號包括由輸出的音頻參考信號造成的回波;確定所述接收到的音頻信號的特性;將所確定的所述音頻參考信號的特性與確定的接收到的音頻信號的特性進行比較,以檢測所述回波的非線性回波路徑,以及基于所述檢測來配置音頻信號處理模塊的組件。
根據(jù)本公開的另一方面,提供了至少一個計算機可讀介質(zhì),其存儲通信客戶端應用,所述通信客戶端應用當在用戶終端的一個或多個處理器上執(zhí)行時,使得所述一個或多個處理器執(zhí)行以下操作:在通過通信網(wǎng)絡(luò)與至少一個另外的用戶終端的通信事件的建立之前,生成音頻參考信號,并將所述音頻參考信號供應給所述用戶終端的揚聲器組件;對在通信事件期間經(jīng)由用戶終端的麥克風組件接收到的音頻信號執(zhí)行回波消除;以及在通信事件的建立之前:確定音頻參考信號的特性;接收從麥克風組件輸出的音頻信號,其中接收到的音頻信號包括由輸出的音頻參考信號造成的回波;確定所述接收到的音頻信號的特性;將所確定的所述音頻參考信號的特性與確定的接收到的音頻信號的特性進行比較,以檢測所述回波的非線性回波路徑;并基于所述檢測來配置通信客戶端應用的組件。
根據(jù)本公開的另一方面,提供了由通信客戶端應用當在用戶終端的一個或多個處理器上執(zhí)行時執(zhí)行的計算機實現(xiàn)的方法,所述方法包括:在通過通信網(wǎng)絡(luò)與至少一個另外的用戶終端的通信事件的建立之前生成音頻參考信號;將音頻參考信號供應給用戶終端的揚聲器組件;在通信事件的建立之前:確定音頻參考信號的特性,接收從麥克風組件輸出的音頻信號,其中接收到的音頻信號包括由輸出的音頻參考信號造成的回波;確定所述接收到的音頻信號的特性;將所確定的所述音頻參考信號的特性與所確定的所述接收到的音頻信號的特性進行比較,以檢測所述回波的非線性回波路徑,以及基于所述檢測來配置通信客戶端應用的組件。
提供該發(fā)明內(nèi)容是為了以簡化的形式來介紹在下文的具體實施方式中進一步描述的概念的選集。該發(fā)明內(nèi)容不旨在確定所要求保護的主題的關(guān)鍵特征或主要特征,也不旨在用于限制所要求保護的主題的范圍。
附圖說明
為了更好地理解本發(fā)明并且示出如何實現(xiàn)本發(fā)明,現(xiàn)在將通過示例的方式參考以下附圖,其中:
圖1示出了通信系統(tǒng)的示意圖;
圖2是用戶終端的示意性框圖;
圖3是示出用于回波消除的用戶終端的模塊的功能圖;
圖4是用于檢測回波路徑中的非線性的流程圖;以及
圖5a和5b示出了示例的生成的音頻參考信號和示例的麥克風信號。
具體實施方式
現(xiàn)在將僅通過示例的方式描述本發(fā)明的實施例。
圖1示出了通信系統(tǒng)100,其包括與用戶終端102相關(guān)聯(lián)的第一用戶104(用戶a)和與用戶終端108相關(guān)聯(lián)的第二用戶110(用戶b)。用戶終端102和108能夠通過通信系統(tǒng)100中的通信網(wǎng)絡(luò)106進行通信,從而允許用戶104和110通過通信網(wǎng)絡(luò)106彼此通信。通信網(wǎng)絡(luò)106可以是具有提供用戶終端102和第二用戶終端108之間的通信信道的能力的任何合適的網(wǎng)絡(luò)。例如,通信網(wǎng)絡(luò)106可以是互聯(lián)網(wǎng),或另一類型的網(wǎng)絡(luò)諸如高數(shù)據(jù)速率移動網(wǎng)絡(luò),諸如第三代(“3g”)移動網(wǎng)絡(luò)。
注意,在替代實施例中,用戶終端可以經(jīng)由圖1中未示出的另外的中間網(wǎng)絡(luò)連接到通信網(wǎng)絡(luò)106。例如,如果用戶終端102是移動設(shè)備,則它可以經(jīng)由蜂窩移動網(wǎng)絡(luò)(圖1中未示出),例如gsm或umts網(wǎng)絡(luò),來連接到通信網(wǎng)絡(luò)106。參與通過通信網(wǎng)絡(luò)106進行的通信事件的用戶終端可以經(jīng)由相同或不同類型的網(wǎng)絡(luò)連接來連接到網(wǎng)絡(luò)106。例如,用戶終端102可以經(jīng)由wifi連接來連接到通信網(wǎng)絡(luò)106,并且用戶終端108可以經(jīng)由蜂窩移動網(wǎng)絡(luò)(例如,2g/3g/4g等)連接到通信網(wǎng)絡(luò)106。
用戶終端102可以是例如移動電話、個人數(shù)字助理(“pda”)、個人計算機(“pc”)(包括例如windowstm,macostm和linuxtmpc)、平板電腦、游戲設(shè)備或能夠連接到通信網(wǎng)絡(luò)106的其他嵌入式設(shè)備。用戶終端102被設(shè)置為從用戶a104接收信息并向用戶a104輸出信息。
用戶終端102執(zhí)行由與通信系統(tǒng)100相關(guān)聯(lián)的軟件提供商提供的通信客戶端應用112。通信客戶端應用112是在用戶終端102中的本地處理器上執(zhí)行的軟件程序。通信客戶端應用112執(zhí)行在用戶終端102處所需的處理,以便用戶終端102通過通信系統(tǒng)100發(fā)送和接收數(shù)據(jù)。在用戶終端102處執(zhí)行的通信客戶端應用112可被認證以通過遞交數(shù)字證書(例如,用以證明用戶104是通信系統(tǒng)的真實用戶,這在wo2005/009019中有更詳細的描述)來通過通信系統(tǒng)進行通信。
用戶終端108可以對應于用戶終端102。用戶終端108在本地處理器上執(zhí)行與在用戶終端102處執(zhí)行的通信客戶端應用112相對應的通信客戶端應用114。在用戶終端108處的通信客戶端應用114,以與在用戶終端102處的通信客戶端應用112執(zhí)行允許用戶a104通過網(wǎng)絡(luò)106進行通信所需的處理相同的方式,來執(zhí)行允許用戶110通過網(wǎng)絡(luò)106進行通信所需的處理。用戶終端102和108是通信系統(tǒng)中的端點(endpoint)。為了清楚,圖1僅示出了兩個用戶(104和110)和兩個用戶終端(102和108),但是更多的用戶和用戶設(shè)備可以包括在通信系統(tǒng)100中,并且可以使用在相應的用戶設(shè)備上執(zhí)行的相應的通信客戶端來通過通信系統(tǒng)100進行通信,如本領(lǐng)域中已知的。
除設(shè)備上的本地處理器之外,設(shè)備通常還具有專用音頻信號處理模塊(例如聲卡)。該音頻信號處理模塊為用戶設(shè)備執(zhí)行音頻處理功能,例如對在麥克風處捕獲的音頻信號的模數(shù)轉(zhuǎn)換(adc)以及對用于揚聲器播放的音頻信號的數(shù)模轉(zhuǎn)換(dac)。
通常,音頻信號處理模塊對播放信號(即,要從揚聲器輸出的信號)引入效果,以便最大化用戶體驗(例如包括在驅(qū)動器和/或硬件中的響度增強效果)。這些效果通過音頻信號處理模塊實現(xiàn),音頻信號處理模塊的功能在使用os中可用的播放系統(tǒng)的設(shè)備上的本地處理器上執(zhí)行的應用(例如,通信客戶端)的控制之外,并且可能對于該應用是未知的。例如,通常的是,硬件制造商將“動態(tài)范圍壓縮”(例如,為最大化給定峰值信號電平的感知響度而進行的最大化)包括在(例如在筆記本電腦、智能手機、平板電腦等中的)揚聲器設(shè)置中。
動態(tài)范圍壓縮(也被稱為“動態(tài)壓縮”或簡稱“壓縮”)通過縮窄或“壓縮”音頻信號的動態(tài)范圍(例如為了使得輕柔的部分較易聽得見,并且/或者防止響亮的部分過于響亮)來降低響亮聲音的音量或放大輕柔聲音的音量。向下壓縮將某個閾值以上的響亮聲音降低,同時輕柔聲音仍然不受影響,而向上壓縮將在閾值以下的聲音的響度提高,同時將較為響亮的通道保留不變。向下和向上壓縮都可以減小音頻信號的動態(tài)范圍。在此上下文中,動態(tài)范圍壓縮可以被認為是“快速反應自動增益控制”,其中“快速”意味著對于音頻信號處理(例如回波抵消)來說太快以至于不能跟上增益改變,從而導致不存在初始動態(tài)范圍壓縮(例如對于回波抵消器而言太快以至于不能適應、并且因此可能導致回波泄漏的改變)。
用戶終端102和用戶終端108都能夠執(zhí)行聲學回波消除。實現(xiàn)聲學回波消除有兩種主要方式,一種是回波抵消/減除,另一種是回波抑制。通常將這兩種途徑相結(jié)合。
由用戶終端102的麥克風捕獲的音頻信號通過網(wǎng)絡(luò)106傳輸,以便由用戶終端108播放。用戶終端108的麥克風捕獲由用戶終端102發(fā)送的音頻信號的回波。如果該回波未被完全抵消,那么用戶終端108將其發(fā)送回用戶終端102。接收到的信號通過用戶終端102的揚聲器被播放,并且回波被用戶終端102的麥克風捕獲。如果用戶終端102中的回波抵消器不能夠完全消除該回波,則將回波信號再次發(fā)送到用戶終端108。
回波抵消通常利用參考,其通常是在提供給揚聲器之前的某個版本的音頻信號,從揚聲器之前的音頻信號處理鏈中的點進行抽頭(tap),并且對通過該版本的音頻信號觀察到的回波路徑進行建模。該回波路徑對應于音頻信號到揚聲器所取的路徑、揚聲器和麥克風之間的空中接口以及從麥克風到回波抵消模塊的路徑。
一般地,當在設(shè)備播放的輸出中尋找參考(用于回波抵消或某種其他基于參考的信號處理)時,如果設(shè)備應用未在參考中反映的未知的非線性處理,和/或如果非線性貢獻被引入由用戶終端的一個或多個揚聲器、麥克風和外殼的物理特性引起的回波路徑,則可能會是成問題的。
例如,傳統(tǒng)回波抵消器更適合于對回波路徑中的線性失真進行建模,并且通常具有起因于回波路徑中存在的非線性失真的問題。這種非線性回波路徑可能導致信號中的回波泄漏或回波殘差。也就是說,當在參考與在麥克風信號中拾取的回波分量之間存在基本線性關(guān)系時,傳統(tǒng)回波抵消器通常表現(xiàn)最佳。
然而,當在回波路徑中引入非線性時。這對回波抵消器造成了挑戰(zhàn),因為傳統(tǒng)的回波抵消方案對非線性回波路徑進行了較差的建模,如所討論的那樣。
一些操作系統(tǒng)包括用于將要播放的信號反饋給在本地處理器上執(zhí)行的應用的功能。被反饋給在本地處理器上執(zhí)行的應用的該信號在下文中被稱為“回送信號”。然后,回送信號可以用作回波抵消過程中的參考。包括此功能的操作系統(tǒng)的示例是microsoft的windows7,8,xp和vista以及windowsphone8操作系統(tǒng)。使用回送信號的回波抵消器不需要對由音頻信號處理模塊引入的那些非線性失真進行建模(因為音頻信號處理模塊被有效地從回波路徑中移除),因此并未預期回波泄漏。但是,回送信號并不是對于所有操作系統(tǒng)都為可用的。不具有這種回送功能的操作系統(tǒng)的例子是android和ios移動操作系統(tǒng)。在沒有回送參考信號的情況下,回波抵消可能失敗并生成回波泄漏以及其他,本公開的目的之一是防止或至少減少這種回波泄漏。
圖2示出了用戶終端108的詳細視圖,在用戶終端108上執(zhí)行通信客戶端應用114以便通過通信系統(tǒng)100進行通信。用戶終端108包括中央處理單元(“cpu”)202,其連接有:諸如屏幕或觸摸屏的顯示器204,諸如小鍵盤206、攝像機208和觸摸屏204的輸入設(shè)備。輸出音頻設(shè)備210(例如揚聲器)和輸入音頻設(shè)備212(例如麥克風)連接到cpu202。顯示器204、小鍵盤206、攝像機208、輸出音頻設(shè)備210和輸入音頻設(shè)備212可以集成到用戶終端108中,如圖2所示。在替代的用戶終端中,顯示器204、小鍵盤206、攝像機208、輸出音頻設(shè)備210和輸入音頻設(shè)備212中的一個或多個可以不被集成到用戶終端102中,并且可以經(jīng)由相應的接口連接到cpu202。這種接口的一個例子是usb接口。cpu202連接到網(wǎng)絡(luò)接口224,諸如用于與通信網(wǎng)絡(luò)106通信的調(diào)制解調(diào)器。如圖2所示,網(wǎng)絡(luò)接口224可以集成到用戶終端108中。在替代的用戶終端中,網(wǎng)絡(luò)接口224不被集成到用戶終端108中。用戶終端108還包括用于存儲數(shù)據(jù)的存儲器226,如本領(lǐng)域已知的。存儲器226可以是永久存儲器,諸如rom。存儲器226可以替代地是暫態(tài)存儲器,諸如ram。
揚聲器210和麥克風212中的至少一個可以經(jīng)由音頻信號處理模塊209連接到cpu202。當揚聲器210經(jīng)由音頻信號處理模塊209連接到cpu202時,為在用戶終端108上(例如由客戶端和其他應用)輸出而生成的任何音頻數(shù)據(jù),在經(jīng)由揚聲器210輸出之前,必須供應給音頻信號處理模塊209以便進行處理。當麥克風212經(jīng)由音頻信號處理模塊209連接到cpu202時,經(jīng)由麥克風212接收的任何音頻數(shù)據(jù)必須在經(jīng)由網(wǎng)絡(luò)接口224通過網(wǎng)絡(luò)106進行傳輸之前就被供應給音頻信號處理模塊209以便進行處理。
用戶終端108可以包括除了圖2所示的元件之外的其他元件。
用戶終端108安裝有通信客戶端應用114,其中通信客戶端應用114被存儲在存儲器226中,并且被布置為在cpu202上執(zhí)行。圖2還示出了在cpu202上執(zhí)行的操作系統(tǒng)(“os”)214。在os214之上運行的是用于上述通信客戶端應用114的軟件棧216。軟件棧示出了i/o層218、客戶端引擎層220和客戶端用戶接口層(“ui”)222。每層負責特定功能。因為每層通常與其他兩個層通信,所以它們被認為是布置在棧中,如圖2所示。操作系統(tǒng)214管理計算機的硬件資源并且處理經(jīng)由網(wǎng)絡(luò)接口224發(fā)送到通信網(wǎng)絡(luò)106和從通信網(wǎng)絡(luò)106發(fā)送的數(shù)據(jù)。i/o層218包括音頻和/或視頻編解碼器,其接收呼入(incoming)的經(jīng)編碼的流并對這些流進行解碼,以便適當?shù)剌敵龅綋P聲器210和/或顯示器204,并且其從麥克風212和/或攝像機208接收未編碼的音頻和/或視頻數(shù)據(jù),并對該數(shù)據(jù)進行編碼以便作為流發(fā)送到通信系統(tǒng)100的其他最終用戶終端??蛻舳艘鎸?20處理上文所討論的voip系統(tǒng)的連接管理功能,例如建立呼叫或其他通過基于服務(wù)器或p2p地址查找和認證的連接??蛻舳艘嬉部赡茇撠煴疚闹形从懻摰钠渌我δ?。客戶端引擎220還與客戶端用戶接口層222進行通信??蛻舳艘?20可以被布置為控制客戶端用戶接口層222經(jīng)由顯示在顯示器204上的通信客戶端應用114的用戶接口向用戶終端108的用戶呈現(xiàn)信息并經(jīng)由用戶接口從用戶終端108的用戶接收信息。
參見圖3,現(xiàn)在描述了一種回波抵消的方法。圖3是用戶終端108的一部分的功能圖。
如圖3所示,用戶終端108包括揚聲器210、麥克風212和音頻信號處理模塊300。音頻信號處理模塊300(如圖3中虛線框所示)表示通過在用戶終端108的cpu202上執(zhí)行通信客戶端應用114來實現(xiàn)的信號處理功能。音頻信號處理模塊300包括回波消除模塊301、音頻參考信號生成器308和非線性檢測器310。回波消除模塊301包括包含濾波器模塊的建模模塊302,以及在該實施例中實現(xiàn)回波抵消的回波抵消模塊304。在其他實施例中,回波消除模塊301還可實現(xiàn)回波抑制。通過執(zhí)行通信客戶端應用114實現(xiàn)的信號處理功能可以包括與圖3所示相比更多或更少的功能。
用戶終端108還可以包括音頻信號處理模塊209。音頻信號處理模塊209包括圖3所示的以動態(tài)范圍壓縮(drc)模塊306的形式的至少一個非線性處理模塊306,其在音頻信號處理模塊300的控制之外。
盡管圖3示出了非線性處理模塊306,其被布置成在從揚聲器210播放之前對音頻信號應用非線性處理。替代地或另外地,用戶終端108可以包括至少一個非線性處理模塊306,其被布置成處理已經(jīng)由麥克風212輸出的音頻信號。
下面參考用戶終端108對實施例進行描述,其包括drc模塊306,drc模塊306被配置為在從揚聲器210播放之前對音頻信號應用動態(tài)范圍壓縮。
音頻信號處理模塊300耦合到drc模塊306的輸入。特別地,要從揚聲器210輸出的輸入音頻信號w(t)(表示為“遠端信號”)耦合到drc模塊306的第一輸入。音頻參考信號生成器308的輸出耦合到drc模塊306a的第二輸入。drc模塊306的輸出耦合到揚聲器210。為了對回波路徑增益進行建模并估計由麥克風212捕獲的回波,需要一個參考信號,這是標記為w(t)的信號。該信號表示通信客戶端應用114發(fā)送以從揚聲器210播放并且在能夠經(jīng)由揚聲器210輸出之前經(jīng)歷由軟件客戶端域之外的drc模塊306進行的后續(xù)處理的音頻信號w(t)。呼入的音頻信號w(t)耦合到建模模塊302的第一輸入。麥克風212的輸出y(t)耦合到建模模塊302的第二輸入。麥克風212的輸出y(t)還耦合到回波抵消模塊304的第一輸入。建模模塊302的輸出耦合到回波抵消模塊304的第二輸入?;夭ǖ窒K304的輸出用于提供接收到的信號(其中已應用回波抵消)用于在用戶終端108中進一步處理。
音頻信號處理模塊300可以包括被配置為選擇性地對要從揚聲器210輸出的音頻信號w(t)執(zhí)行音頻處理的音頻處理組件303。在一個實施例中,音頻處理組件303是線性濾波器。在另一個實施例中,音頻處理組件303是增益控制模塊。非線性檢測器310的輸出耦合到音頻處理組件303。
麥克風212的輸出y(t)耦合到非線性檢測器310的第一輸入。非線性檢測器310被配置為接收從音頻參考信號生成器308輸出的音頻參考信號的特性。非線性檢測器310的輸出耦合到回波消除模塊301。非線性檢測器310的操作將在下面進一步詳細描述。
應當注意,在本文所描述的實施例中,僅有一個揚聲器(在附圖中由附圖標記210表示),但在其他實施例中,可以存在多于一個揚聲器,待輸出的信號被耦合到該揚聲器(以便從該揚聲器中輸出)。類似地,在本文所描述的實施例中,僅有一個麥克風(在附圖中由附圖標記212表示),但在其他實施例中,可以有多于一個麥克風,其接收來自周圍環(huán)境的音頻信號。
這里,函數(shù)“a(.)”是應用動態(tài)范圍壓縮(例如最大化)的預處理算子;也就是說,“a(.)”表示由drc模塊306在生成輸出x(t)=a(w(t))時執(zhí)行的函數(shù)。音頻信號w(t)是用作回波抵消參考的信號,并且也被發(fā)送到drc模塊306。
現(xiàn)在將描述在通信事件(例如,語音或視頻呼叫)期間由建模模塊302和回波抵消模塊304執(zhí)行的回波抵消過程。
在通信事件期間(例如,在通信事件已經(jīng)建立之后),接收輸入音頻信號w(t),其將要從揚聲器210輸出。例如,要輸出的信號可以是遠端信號,在用戶104和110之間通過通信系統(tǒng)100的呼叫期間,該遠端信號從用戶終端102在網(wǎng)絡(luò)接口220處接收在用戶終端108中。輸出音頻信號從揚聲器210輸出到用戶110。
麥克風212接收音頻信號。如圖3所示,接收到的音頻信號可以包括作為想要的信號或“主信號”的近端信號。近端信號是用戶110打算讓麥克風212接收的信號(在圖3中標示為近端),例如,話語。然而,接收到的音頻信號還包括由從揚聲器210輸出的音頻信號所造成的回波信號。接收到的音頻信號還可以包括諸如背景噪聲(未示出)之類的噪聲。因此,總接收音頻信號y(t)可以由近端信號、回波和噪聲的和來給出?;夭ê驮肼暢洚攲诵盘柕母蓴_。雖然在圖3中未示出,但是模數(shù)轉(zhuǎn)換(adc)被應用于由麥克風212捕獲的信號以得出數(shù)字信號y(t)。
建模模塊(濾波器模塊)302將輸入音頻信號w(t)和接收到的音頻信號y(t)作為輸入。建模模塊302用于對接收到的音頻信號y(t)中的回波的回波路徑進行建模。
回波路徑描述從揚聲器210輸出到麥克風212的音頻信號所行經(jīng)的聲學路徑的效果。音頻信號可以從揚聲器210直接行進到麥克風212,或者可以反射自近端終端(near-endterminal)環(huán)境中的各種不同表面。從揚聲器210輸出的音頻信號所遍歷的回波路徑可以被認為是具有可隨時間變化的頻率響應和相位響應的系統(tǒng)。
為了從在近端麥克風212處記錄的信號y(t)消除聲學回波s(t),有必要估計回波路徑是如何將想要的遠端揚聲器輸出信號改變?yōu)檩斎胄盘栔械牟幌胍幕夭ǚ至康摹?/p>
在這種情況下,回波路徑建模假定近似線性的回波路徑,即假定回波路徑的輸出信號振幅隨著回波路徑的輸入信號幅度而線性地縮放。
對于近似線性回波路徑,回波路徑h(t)描述了接收到的音頻信號y(t)中的回波如何與從揚聲器210輸出的遠端信號x(t)相關(guān),例如對于根據(jù)以下等式由脈沖響應h(t)表示的線性回波路徑:
建模模塊302通過確定輸出的遠端信號x(t)的當前值和有限數(shù)量(n)的先前值的加權(quán)和,來對接收到的音頻信號y(t)中的與回波相關(guān)聯(lián)的回波路徑h(t)進行建模。因此,建模模塊302實現(xiàn)具有(在時間上)有限長度的n階濾波器,它在對回波路徑的估計
可以理解,當回波是接收到的音頻信號的主要部分時,即當
本領(lǐng)域技術(shù)人員將理解,回波路徑的估計
回波路徑的估計
不管所使用的特定算法如何,建模模塊302的濾波器系數(shù)在算法的每次迭代中被更新,因此建模模塊302的系數(shù)隨著時間不斷地被更新,而與即將到來的信號條件無關(guān)。
雖然上述描述涉及使用回波路徑的時域fir模型來估計近端信號y(t)中的回波分量,但是本領(lǐng)域技術(shù)人員將理解,這只是一個例子,而不是要以任何方式進行限制。也就是說,建模模塊302可以操作以確定回波路徑的估計
回波路徑的估計通?;诟吣芰啃盘?,因為那些是生成最可靠的回波路徑估計的信號。
回波抵消模塊304被布置為接收麥克風信號中的回波分量的估計s(t)以及麥克風信號y(t)作為輸入,并且從接收到的音頻信號y(t)中減去回波信號的估計s(t)。
回波抵消模塊304輸出接收到的信號,其中回波已經(jīng)被抵消,例如,用于在用戶終端108上的進一步處理。例如,從回波抵消模塊304輸出的信號可以由通信客戶端應用104處理(例如被編碼和被封包化),然后在用戶104和110之間的呼叫中通過網(wǎng)絡(luò)106發(fā)送到用戶終端102。
至少一個非線性處理模塊306(例如以動態(tài)范圍壓縮(drc)模塊306的形式)和/或一個或多個揚聲器210和麥克風212的機械特性(例如這些組件或其殼體中的松弛零件導致的機械噪聲)可能在回波路徑中引入非線性,從而在從回波抵消模塊304輸出的信號中引起回波泄漏或回波殘差。
在本公開的實施例中,可以在通信事件被建立之前識別回波路徑中的非線性的存在和性質(zhì),使得當通信事件被建立時,由回波消除模塊301實現(xiàn)的回波消除過程已經(jīng)被配置為將回波路徑中的非線性納入考慮。
圖4是由音頻信號處理模塊300執(zhí)行的過程400的流程圖。
在通信事件(例如,語音或視頻呼叫)被建立之前執(zhí)行過程400,使得音頻信號處理模塊300被預先地且在準備通信事件時被配置。
在步驟s402,音頻參考信號生成器308生成音頻參考信號,并且在步驟s404提供生成的音頻參考信號以便由揚聲器210播放。
音頻參考信號生成器308可以將生成的音頻參考信號并入鈴聲音頻信號中,當通過網(wǎng)絡(luò)106(例如,從用戶終端102)接收到建立通信事件的請求時,通信客戶端應用114從揚聲器210播放鈴聲音頻信號。也就是說,所生成的音頻參考信號充當鈴聲中的導頻信號。
可替代地,當通過網(wǎng)絡(luò)106(例如,從用戶終端102)接收到建立通信事件的請求時,生成的音頻參考信號不被并入到通信客戶端應用114從揚聲器210播放的鈴聲中。當通過網(wǎng)絡(luò)106(例如,從用戶終端102)接收到建立通信事件的請求時,音頻參考信號生成器308可以被配置為在揚聲器210播放鈴聲之前提供生成的音頻參考信號以便由揚聲器210播放。在其他實施例中,接收到的建立通信事件的請求不會觸發(fā)由音頻參考信號生成器308生成的音頻參考信號的輸出。例如,音頻參考信號生成器308可以生成音頻參考信號并且提供所生成的音頻參考信號以便由揚聲器210周期性地播放。
通過在通信事件的建立之前播放生成的音頻參考信號,參與通信事件的用戶(例如,用戶104和110)在通信事件期間不被所生成的音頻參考信號干擾。
在步驟s406,非線性檢測器310確定在步驟s404中播放的所生成的音頻參考信號的特性。該步驟可以以各種方式執(zhí)行。
通信客戶端應用114可以將所生成的音頻參考信號的特性存儲在存儲器226中。因此,在步驟s408,非線性檢測器310可以通過向存儲器226發(fā)送查詢并且接收包括所生成的音頻參考信號的特性的回復來確定生成的音頻參考信號的特性。
可替代地,從音頻參考信號生成器308輸出的所生成的音頻參考信號可以被提供給非線性檢測器310(這在圖3中未示出),并且非線性檢測器310可以響應于接收到所生成的音頻參考信號而確定生成的音頻參考信號的特性。
所生成的音頻參考信號的所確定的特征可以包括所生成的音頻參考信號的功率包絡(luò),其反映音頻信號功率中的峰值的變化。例如,所生成的音頻參考信號可以具有以一定速率在預定時間段內(nèi)線性增加的功率包絡(luò)??商娲?,所生成的音頻參考信號可以具有以一定速率在預定時間段內(nèi)線性減小的功率包絡(luò)。也就是說,所生成的音頻參考信號的特性可以包括關(guān)于所生成的音頻參考信號的功率包絡(luò)在預定時間段內(nèi)是線性地增加還是減小的信息。
另外或可替代地,所生成的音頻參考信號的所確定的特性可以包括所生成的音頻參考信號的頻率特性。例如,生成的音頻參考信號可以具有恒定的基頻或在預定時間段內(nèi)變化(例如,在預定時間段內(nèi)增加和/或減小)的基頻。也就是說,所生成的音頻參考信號的特性可以包括恒定的基頻,或者關(guān)于所生成的音頻參考信號的基頻如何在該預定時間段內(nèi)變化的信息。
在步驟s408,通信客戶端應用114激活麥克風212,使得麥克風能夠在生成的音頻參考信號已經(jīng)遍歷回波路徑之后接收生成的音頻參考信號。
如圖3所示,從麥克風212輸出的麥克風信號y(t)被供應給非線性檢測器310。麥克風信號y(t)包括在其已遍歷回波路徑之后生成的音頻參考信號。
在步驟s410,非線性檢測器310確定從麥克風212接收的麥克風信號y(t)的特性。
所確定的麥克風信號y(t)的特性可以包括麥克風信號y(t)的功率包絡(luò),其反映音頻信號功率的峰值變化。另外或可替代地,確定的麥克風信號y(t)的特性可以包括麥克風信號y(t)的頻率特性。
在步驟s412,非線性檢測器310將在步驟s406所確定的生成的音頻參考信號的特性與在步驟s410所確定的麥克風信號y(t)的特性進行比較,以便確定是否有非線性存在于回波路徑中。
現(xiàn)在參考圖5a和5b,圖5a和5b示出了示例的生成的音頻參考信號和示例的麥克風信號。
圖5a的上方的曲線圖示出了在步驟s404由揚聲器210輸出的示例性的生成的音頻參考信號502,其具有以一定速率在預定時間段內(nèi)線性增加的功率包絡(luò)。
圖5a的下方的曲線圖示出由麥克風212記錄并提供給非線性檢測器310的示例的麥克風信號y(t)504,其具有在預定時間段內(nèi)非線性地增加的功率包絡(luò)。
在這種情況下,基于所生成的音頻參考信號502的功率包絡(luò)與麥克風信號y(t)504的功率包絡(luò)的比較,在步驟s414中,基于麥克風信號y(t)504的功率包絡(luò)非線性地變化(例如,未表現(xiàn)出所生成的音頻參考信號502的功率包絡(luò)的線性增加),非線性檢測器310檢測到非線性存在于回波路徑中。也就是說,回波路徑中的非線性處理已經(jīng)影響了所生成的音頻參考信號502。
圖5b的上方的曲線圖示出了在步驟s404由揚聲器210輸出的示例性的生成的音頻參考信號506,其具有在一定速率下在預定時間段內(nèi)線性增加的基頻。
圖5b的下方的曲線圖示出由麥克風212記錄并提供給非線性檢測器310的示例的麥克風信號y(t),該麥克風信號具有分量508,分量508具有基頻f,其在預定時間段內(nèi)以與生成的音頻參考信號506相同的方式線性增加,并且具有作為分量508的基頻的整數(shù)倍(例如,2f,3f等)的諧波泛音的另外的分量510和512。該諧波失真通常由諸如drc和增益調(diào)度之類的非線性處理引起。
在這種方案中,基于所生成的音頻參考信號506的頻率特性與麥克風信號y(t)504的頻率特性的比較,在步驟s414中,基于麥克風信號y(t)中的諧波泛音分量510和512的檢測,非線性檢測器310檢測到非線性存在于回波路徑中。也就是說,回波路徑中的非線性已經(jīng)影響了所生成的音頻參考信號506。
本領(lǐng)域技術(shù)人員將理解,可能發(fā)生混疊,這可能使泛音模式表現(xiàn)為非諧波。在這種情況下,基于麥克風信號y(t)中的非諧波泛音分量的檢測,非線性檢測器310仍然能夠在步驟s414檢測到回波路徑中存在非線性。
雖然圖5b是參考所生成的音頻參考信號(包括單個激勵音調(diào)506)來描述的。如果所生成的音頻參考信號包括在不同頻率(例如,f1和f2)的兩個或更多個激勵音調(diào)。在這種情形下,基于所生成的音頻參考信號的頻率特性與麥克風信號y(t)的頻率特性的比較,非線性檢測器310基于麥克風信號y(t)中的至少一個互調(diào)積分量的檢測(例如,二階互調(diào)積f1+f2,即和頻,二階互調(diào)積f2-f1,即差頻,和/或更高階的互調(diào)積),在步驟s414中檢測到回波路徑中存在非線性。也就是說,回波路徑中的非線性已經(jīng)影響了所生成的音頻參考信號。
如圖5b的下方的曲線圖所示,麥克風信號y(t)還可以包括由例如揚聲器210和/或麥克風212(其中它們的外殼在用戶終端108上)的機械振動引起的雜散非諧波分量514。在圖5b的下方的曲線圖中所示的雜散非諧波分量514例示了依賴于激勵信號頻率的嘎嘎聲/嗡嗡聲。這些雜散分量514可以是或可以不是激勵信號頻率相關(guān)的。在這種方案中,基于所生成的音頻參考信號的頻率特性與麥克風信號y(t)的頻率特性的比較,非線性檢測器310基于對這些雜散非諧波分量514的檢測而在步驟s414中檢測到回波路徑中存在非線性。
例如,可以通過看到噪聲存在于多個不同的頻率范圍中來檢測這些雜散非諧波分量514。
一旦在步驟s414中非線性檢測器310檢測到回波路徑中存在非線性,則過程400進行到步驟s416,其中非線性檢測器310基于在步驟s414的檢測來配置音頻信號處理模塊300的分量。
步驟s416可以以各種方式實現(xiàn)。
在一些實施例中,非線性檢測器310被布置成在步驟s416配置回波消除模塊301。
在步驟s416中,非線性檢測器310可以將建模模塊302配置為使用非線性模型對回波的回波路徑建模以確定回波的非線性模型估計,并且使用回波的非線性模型估計來控制回波抵消模塊以執(zhí)行所述回波抵消。非線性模型例如是volterra級數(shù)。其他非線性模型是本領(lǐng)域技術(shù)人員公知的,因而在此不再贅述。
在上述實施例中,并且如在附圖中所示,回波消除模塊301實現(xiàn)回波抵消。
由于在回波信號的估計中的可能的不準確,在由回波抵消模塊304處理之后,殘留回波可能保留在接收到的音頻信號中。因此,在其他實施例中,回波消除模塊301可以包括用于抑制殘留回波的回波抑制模塊。也就是說,在接收到的音頻信號y(t)的處理中,在回波抵消的下游(即,之后)的回波消除模塊301可以應用回波抑制。
回波抑制模塊310被布置為接收麥克風信號s(t)中的回波分量的估計和從回波抵消模塊304輸出的音頻信號作為輸入。回波抑制模塊310被布置成確定所估計的回波的功率和從回波抵消模塊304輸出的音頻信號的功率。在回波抑制模塊310中,估計的回波功率與從回波抵消模塊304輸出的音頻信號的所確定的功率一起使用以形成針對時間t和頻率f的回波抑制增益g(t,f),從而將從回波抵消模塊304輸出的音頻信號中存在的任何殘留回波抑制到足夠低的水平,以便使它在麥克風212拾取的近端聲音(非回波聲音)存在時不明顯/不干擾?;夭ㄒ种品椒ㄊ潜绢I(lǐng)域已知的。此外,由回波抑制模塊應用的回波抑制方法可以以不同的方式實現(xiàn)。因此,本文中沒有詳細描述回波抑制方法的確切細節(jié)。
另外或可替代地,在步驟s416,非線性檢測器310可以將建模模塊配置為使用非線性模型來對回波的回波路徑建模以確定回波的非線性模型估計,并且使用回波的非線性模型估計來控制回波抑制模塊進行所述回波抑制。也就是說,基于回波的非線性模型估計來形成回波抑制增益g(t,f)。
可以基于回波路徑中的非線性的性質(zhì)(即類型)來執(zhí)行步驟s416。
例如,響應于非線性檢測器310基于對上文提到的與頻率相關(guān)的雜散非諧波分量514的檢測來檢測到在回波路徑中存在非線性,非線性檢測器310可以配置音頻處理組件303而不是建模模塊302。
音頻處理組件303可以是被配置為在由揚聲器210播放之前對音頻信號選擇性地執(zhí)行濾波的線性濾波器。在該實施例中,非線性檢測器310被配置為基于非線性回波路徑的檢測來控制線性濾波器執(zhí)行濾波(例如為了創(chuàng)建帶阻),使得這些頻率不被激發(fā)那么多(音頻信號在被播放之前被線性濾波器修正)。
音頻處理組件303可以是增益控制模塊,被配置為在由揚聲器210播放之前對音頻信號施加增益。在該實施例中,非線性檢測器310被配置為控制增益控制模塊基于對非線性回波路徑的檢測來調(diào)整(例如降低)應用于音頻信號的增益。這導致參考信號w(t)上的諧波失真與系統(tǒng)的諧波失真相匹配。
因此,本公開的實施例有利地通過將使用設(shè)備的揚聲器播放的本地生成的音頻參考信號的已知特性與使用同一設(shè)備的揚聲器接收到的音頻信號的特性進行比較,來識別由至少一個非線性處理模塊引起的回波路徑中的非線性的存在和性質(zhì),該非線性處理模塊的功能在通信客戶端應用114的控制之外。這使得能夠在通信事件的建立之前配置回波消除模塊301,使得當通信事件的建立時,回波消除模塊301已經(jīng)被配置為將回波路徑中的非線性納入考慮。
非線性檢測器310可以削弱或減少非線性回波路徑在通信事件期間對回波消除模塊的性能的影響?;夭窂娇赡懿粫粶蚀_地建模,因為它是非線性的,但是盡管有這種不準確,非線性檢測器310采取其他步驟(如上所述)以防止回波泄漏。這表示用于處理非線性回波路徑的計算高效的機制,因為它不需要任何形式的非線性建模(非線性建模很可能在計算上是昂貴的)。
在用戶終端108上實現(xiàn)的動態(tài)范圍壓縮可以包括對輸入信號執(zhí)行以生成具有比輸入信號更窄的動態(tài)范圍的輸出信號的向上壓縮(增加低于閾值的聲音的響度,同時保持較響亮的聲音不改變),以及/或?qū)斎胄盘枅?zhí)行以生成具有比輸入信號更窄的動態(tài)范圍的輸出的向下壓縮(在輕柔聲音不受影響的情況下,減小超過一定閾值的響亮聲音)。
雖然已經(jīng)參考動態(tài)范圍壓縮描述了在通信客戶端應用114的控制之外的非線性處理,但這僅僅是示例,在由揚聲器210輸出之前對音頻信號或者對由麥克風212接收到的音頻信號執(zhí)行的另外的和/或替代的非線性處理,可以在回波路徑中引入非線性并且按照本公開的實施例來檢測。例如,諸如增益調(diào)度、多帶壓縮、與揚聲器保護相關(guān)的處理、外部aec以及外部降噪之類的非線性處理。對接收到的麥克風音頻信號y(t)執(zhí)行外部aec和外部降噪,但這些實際上是非線性的,并且對于嘗試估計回波路徑的回波抵消模塊造成問題。
當音頻信號處理模塊209不存在于用戶終端108上時,本公開的實施例也是適用的。例如,回波路徑中的非線性可以由用戶終端的揚聲器、麥克風和外殼中的一個或多個的物理性質(zhì)引起。
盡管在上文中,主題內(nèi)容是在聲學回波抵消的上下文中使用的,但一般來說,主題內(nèi)容可以在使用參考來處理麥克風的任何音頻信號處理的上下文中采用,例如處理麥克風信號的任何音頻信號處理的上下文中使用。任何音頻信號處理過程都基于參考和麥克風信號的至少一個分量之間存在線性關(guān)系的假設(shè)來處理麥克風信號。
本文描述的方法可以通過在用戶終端108處執(zhí)行計算機程序產(chǎn)品(例如,通信客戶端應用114)來實現(xiàn)。也就是說,計算機程序產(chǎn)品可以被配置為在包括用戶終端108的聲學系統(tǒng)中執(zhí)行音頻信號處理(例如回波抵消)。聲學系統(tǒng)還可以包括至少一個另外的用戶終端。計算機程序產(chǎn)品體現(xiàn)在計算機可讀存儲介質(zhì)上(例如存儲在存儲器226中),并且被配置為當在用戶終端108的cpu202上被執(zhí)行時執(zhí)行本文所述的任何方法的操作。
上面已經(jīng)描述了本公開的第一方面。
生成的音頻參考信號可以被合并到響應于用戶終端接收到建立通信事件的請求而被發(fā)送到揚聲器組件以進行播放的鈴聲音頻信號中。
所生成的音頻參考信號可以響應于在鈴聲音頻信號經(jīng)由音頻處理模塊發(fā)送到揚聲器組件以進行播放之前用戶終端接收到建立通信事件的請求而被發(fā)送到揚聲器組件以進行播放。
生成的音頻參考信號可以在用戶終端接收到建立通信事件的請求之前被發(fā)送到揚聲器組件用于播放。
確定的所述音頻參考信號的特性可以包括線性變化的功率包絡(luò),并且所確定的接收到的音頻信號的特性包括接收到的音頻信號的功率包絡(luò)。
檢測器可以被配置為基于檢測到接收到的音頻信號的功率包絡(luò)非線性地變化,來檢測非線性回波路徑。
所確定的所述音頻參考信號的特性可以包括音頻參考信號的頻率特性,并且所確定的所述接收到的音頻信號的特性包括接收到的音頻信號的頻率特性。
檢測器可以被配置為基于檢測到接收到的音頻信號包括具有是音頻參考信號的基頻的整數(shù)或非整數(shù)倍的基頻的至少一個音頻分量來檢測非線性回波路徑。
檢測器可以被配置為基于檢測到接收到的音頻信號包括多個不同頻率范圍內(nèi)的音頻分量來檢測非線性回波路徑。
檢測器可以被布置成基于所述檢測來配置回波消除模塊。
回波消除模塊可以包括建模模塊,其被配置為對回波的回波路徑進行建模以確定回波的模型估計。
回波消除模塊可以包括被配置為對經(jīng)由麥克風組件接收到的音頻信號執(zhí)行回波抵消的回波抵消模塊,并且檢測器可以被配置為基于所述檢測來將建模模塊配置為使用非線性模型對回波的回波路徑進行建模以確定回波的非線性模型估計,并且使用回波的非線性模型估計來控制回波抵消模塊來執(zhí)行所述回波抵消。
回波消除模塊還可以包括回波抑制模塊,其被配置為對從回波抵消模塊輸出的音頻信號執(zhí)行回波抑制,并且檢測器可以被配置為基于所述檢測來配置建模模塊使用非線性模型來對回波的回波路徑進行建模,以確定回波的非線性模型估計,并且使用回波的非線性模型估計來控制回波抑制模塊來執(zhí)行所述回波抑制。
音頻信號處理模塊可以包括被配置為在揚聲器播放之前對音頻信號進行處理的音頻處理組件,并且所述檢測器可以被布置為基于所述檢測來配置音頻處理組件。
音頻處理組件可以是線性濾波器,其被配置為在由揚聲器播放之前選擇性地對所述音頻信號執(zhí)行濾波,其中所述檢測器被配置為基于所述檢測來控制所述線性濾波器來執(zhí)行所述濾波。
音頻處理組件可以是被配置為在由揚聲器播放之前對音頻信號施加增益的增益控制模塊,其中,所述檢測器被配置為控制所述增益控制模塊,以基于所述檢測調(diào)整施加于所述音頻信號的增益。
用戶終端還可以包括存儲音頻參考信號的特性的存儲器,其中檢測器被配置為通過查詢所述存儲器來確定音頻參考信號的特性。
檢測器可以被配置為接收音頻參考信號,并且響應于接收音頻參考信號來確定音頻參考信號的特性。
通常,可以使用軟件、固件、硬件(例如,固定邏輯電路)或者這些實現(xiàn)的組合,來實現(xiàn)本文描述的任何功能(例如,圖3所示的功能模塊和圖4所示的功能步驟)。圖3和圖4中分別示出的模塊和步驟可以或可以不被實現(xiàn)為單獨的模塊或步驟。本文使用的術(shù)語“模塊”,“功能”,“組件”和“邏輯”通常表示軟件、固件、硬件或其組合。在軟件實現(xiàn)的情況下,模塊、功能或邏輯表示在處理器(例如一個或多個cpu)上執(zhí)行時執(zhí)行特定任務(wù)的程序代碼。程序代碼可以存儲在一個或多個計算機可讀存儲器設(shè)備中。這里描述的技術(shù)的特征是平臺無關(guān)的,這意味著這些技術(shù)可以在具有各種處理器的各種商業(yè)計算平臺上實現(xiàn)。例如,用戶設(shè)備還可以包括使得用戶設(shè)備的硬件執(zhí)行操作的實體(例如,軟件),例如處理器功能塊等等。例如,用戶設(shè)備可以包括計算機可讀介質(zhì),其可以被配置為維持引起用戶設(shè)備以及更具體的用戶設(shè)備的操作系統(tǒng)和關(guān)聯(lián)硬件執(zhí)行操作的指令。因此,該指令起到配置操作系統(tǒng)和相關(guān)聯(lián)的硬件來執(zhí)行操作的作用,并且以這種方式導致操作系統(tǒng)和相關(guān)硬件的轉(zhuǎn)換以執(zhí)行功能。指令可以由計算機可讀介質(zhì)通過各種不同的配置提供給用戶設(shè)備。
計算機可讀介質(zhì)的一種這樣的配置是信號承載介質(zhì),并且因此被配置為例如經(jīng)由網(wǎng)絡(luò)將指令(例如,作為載波)發(fā)送到計算設(shè)備。計算機可讀介質(zhì)還可以被配置為計算機可讀存儲介質(zhì),因此不是信號承載介質(zhì)。計算機可讀存儲介質(zhì)的示例包括隨機存取存儲器(ram)、只讀存儲器(rom)、光盤、閃速存儲器、硬盤存儲器以及可能使用磁、光學和其它技術(shù)來存儲指令和其他數(shù)據(jù)的其它存儲器件。
雖然已經(jīng)以特定于結(jié)構(gòu)特征和/或方法動作的語言描述了主題內(nèi)容,但是應當理解,所附權(quán)利要求中限定的主題內(nèi)容不一定限于上述具體特征或動作。相反,上述具體特征和動作被公開為對權(quán)利要求進行實現(xiàn)的示例形式。