国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于在通信系統(tǒng)中提供舒適噪聲的方法和設(shè)備的制作方法

      文檔序號(hào):7581482閱讀:291來源:國知局
      專利名稱:用于在通信系統(tǒng)中提供舒適噪聲的方法和設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信系統(tǒng),更具體地涉及在雙向通信鏈路中的回聲抑制。
      在許多通信系統(tǒng)中,例如陸地線路和無線電話系統(tǒng)中,經(jīng)常在兩個(gè)系統(tǒng)用戶之間通過雙向通信鏈路傳送話音信號(hào)。在這種系統(tǒng)中,近端用戶的語音一般由在通信鏈路一端的近端送話器檢測(cè),然后在通信鏈路上發(fā)送給遠(yuǎn)端受話器以再現(xiàn)和呈現(xiàn)給遠(yuǎn)端用戶。相反地,遠(yuǎn)端用戶的語音由遠(yuǎn)端送話器檢測(cè),然后通過通信鏈路發(fā)送給近端受話器以再現(xiàn)和呈現(xiàn)給近端用戶。在通信鏈路的任何一端,由接近的送話器檢測(cè)到的受話器輸出可以不注意地被發(fā)送回通信鏈路,產(chǎn)生在用戶看來不可接受的破壞性反饋或回聲。
      因此,為避免傳輸這種不需要的回聲信號(hào),送話器的音頻輸入應(yīng)當(dāng)與受話器的輸出盡可能隔離。利用常規(guī)電話手機(jī)可以容易地實(shí)現(xiàn)必要的隔離,在常規(guī)電話中手機(jī)送話器位于靠近用戶口部而手機(jī)受話器基本上覆蓋用戶的耳朵??墒牵捎诒銛y電話的物理尺寸已經(jīng)減少,和由于免提受話器電話已經(jīng)變得更普遍,制造商已經(jīng)發(fā)展了配置,在新配置中從受話器到送話器的路徑不被用戶的頭或身體阻礙。結(jié)果,在現(xiàn)代系統(tǒng)中對(duì)更高級(jí)回聲抑制技術(shù)的需要已經(jīng)變得重要了。
      在免提汽車電話情況下尤其體現(xiàn)了這種需要,其中封閉的車內(nèi)環(huán)境可以引起受話器信號(hào)的多次反射可以被耦合回到高增益免提送話器中。例如開關(guān)車窗或用戶在駕駛中移動(dòng)其頭部等的用戶在車內(nèi)的移動(dòng)和相對(duì)方向的改變和回聲信號(hào)的強(qiáng)度使汽車環(huán)境中回聲抑制任務(wù)進(jìn)一步復(fù)雜。另外,最新開發(fā)的數(shù)字電話通過話音編碼器處理語音信號(hào),該編碼器產(chǎn)生明顯的信號(hào)延遲和產(chǎn)生非線性信號(hào)失真。這種延長的延遲將擴(kuò)大從用戶觀點(diǎn)出發(fā)的信號(hào)回聲問題,和額外的非線性失真使網(wǎng)絡(luò)設(shè)備進(jìn)行的回聲抑制更困難。
      電話制造商已經(jīng)開發(fā)了大量各種回聲抑制裝置。

      圖1A表示了示范性回聲抑制系統(tǒng)100。如圖所示,示范性系統(tǒng)100包括一個(gè)送話器110,一個(gè)受話器120和一個(gè)回聲抑制器130。送話器的一個(gè)音頻輸出115被耦合到回聲抑制器130的一個(gè)音頻輸入上,而回聲抑制器130的一個(gè)音頻輸出135用作電話(未示出)的近端音頻輸入。另外,來自電話的遠(yuǎn)端音頻輸出125被耦合到受話器120的音頻輸入和回聲抑制器的基準(zhǔn)輸入上。
      在工作中,回聲抑制器130處理送話器信號(hào)115以將音頻輸出信號(hào)135提供給遠(yuǎn)端電話用戶。更具體地,回聲抑制器130根據(jù)遠(yuǎn)端音頻信號(hào)衰減送話器信號(hào)115,以便從受話器120到送話器110的音頻回聲不被返回到遠(yuǎn)端電話用戶。
      一般地,回聲抑制器130是一個(gè)非線性削波型抑制器或一個(gè)線性比例型抑制器。削波型抑制器一般通過消除落入特定值范圍內(nèi)(即,在特定削波窗口內(nèi))的信號(hào)部分衰減送話器輸出信號(hào)。另一方面,比例型抑制器通過將該信號(hào)乘以適當(dāng)?shù)谋壤蜃铀p送話器輸出信號(hào)115?,F(xiàn)在開發(fā)的混合抑制器結(jié)合了削波和比例兩方面,例如通過將落入特定衰減窗口的送話器信號(hào)部分按比例衰減。無論如何,一般按照遠(yuǎn)端音頻信號(hào)125的幅度直接或間接調(diào)節(jié)衰減水平(即,削波窗口和/或比例因子),以便送話器輸出115被衰減到只有遠(yuǎn)端用戶講話的程度。
      公知的中心削波器的常規(guī)削波型抑制器由例如Rasmusson等人的1995年12月12日所公開的題目為“回聲消除系統(tǒng)和使用回聲估計(jì)調(diào)整誤差信號(hào)的方法”的美國專利第5475731號(hào)所描述。公知的AC中心削波器的另一個(gè)形式的削波型抑制器由1996年12月31日申請(qǐng)的題目為“用于通信系統(tǒng)中噪聲和回聲抑制的AC中心削波器”聯(lián)合未審結(jié)專利美國專利申請(qǐng)第08/775797號(hào)描述。示范性比例型削波器在Genter的題目為“回聲消除器處理技術(shù)和處理”的1994年2月1日公開的美國專利第5283784號(hào)中描述。在此稱為AC中心衰減器的先進(jìn)混合抑制器在題目為“改善通信系統(tǒng)中回聲抑制的方法和設(shè)備”的相同日申請(qǐng)的聯(lián)合未審結(jié)美國專利申請(qǐng)第09/005149號(hào)中描述。這些和其它削波、比例和混合型抑制器的先進(jìn)控制在相同日申請(qǐng)的題目為“在通信系統(tǒng)中控制回聲抑制的方法和設(shè)備”的聯(lián)合未審結(jié)美國專利申請(qǐng)第09/005144號(hào)中描述。每個(gè)上面指認(rèn)的專利以及上面指認(rèn)的每個(gè)聯(lián)合未審結(jié)專利申請(qǐng)?jiān)诖苏w引用作為參考。
      圖1A的回聲抑制器130也可以與線性回聲消除器合并以提供更復(fù)雜的回聲抑制系統(tǒng)。圖1B表示了一個(gè)示范性系統(tǒng)101,包括送話器110、受話器120和圖1A的回聲抑制器130,和一個(gè)音頻回聲消除器140。如圖所示,送話器110的音頻輸出115被耦合到音頻回聲消除器140的音頻輸出,而音頻回聲消除器140的控制和音頻輸出144、145分別耦合到回聲抑制器130的控制和音頻輸出。回聲抑制器130的音頻輸出135用作電話(未示出)的近端音頻輸入,而來自電話的遠(yuǎn)端音頻輸出125被耦合到受話器120的音頻輸入和音頻回聲消除器140和回聲抑制器130的基準(zhǔn)輸入。
      在工作中,音頻回聲消除器140動(dòng)態(tài)地模擬從受話器120到送話器110的音頻路徑,并試圖從送話器輸出信號(hào)115中消除任何被送話器110拾音的受話器聲音。用于模擬音頻回聲路徑的普通算法包括眾所周知的最小均方(LMS)算法和派生的例如標(biāo)準(zhǔn)化最小均方(NLMS)。以最小均方為基礎(chǔ)的示范性消除器在上面引用的Rasmusson等人的美國專利第5475731中描述了。另外,以先進(jìn)的標(biāo)準(zhǔn)化最小均方為基礎(chǔ)的消除器在聯(lián)合未審結(jié)美國專利申請(qǐng)第08/8527291997年5月7日申請(qǐng)的題目為“用于通信系統(tǒng)中的改善的回聲消除器”中描述,該申請(qǐng)?jiān)诖苏w引用作為參考。
      控制輸出或控制尺度144表示由音頻回聲消除器140實(shí)現(xiàn)的消除瞬時(shí)電平,并被回聲抑制器130用于確定將任何殘留回聲成分抑制到特定目的電平所需要的額外衰減電平。如同在圖1A的系統(tǒng)100中,回聲抑制器130可以是一個(gè)削波抑制器、一個(gè)定比抑制器或一個(gè)混合抑制器。按照例如上述引用的專利和專利申請(qǐng)中所描述的調(diào)節(jié)控制尺度144。另外,當(dāng)跟隨回聲消除器140時(shí),回聲抑制器130可以是一個(gè)簡單的開關(guān),該開關(guān)選擇性地在適當(dāng)時(shí)間對(duì)音頻輸出135進(jìn)行靜音(例如,在近端話音激活檢測(cè)器表示送話器信號(hào)1115不包含近端語音期間)。
      注意在圖1A和1B的兩個(gè)示范性系統(tǒng)100、101中,回聲抑制器130衰減整個(gè)音頻信號(hào)。因此,除了衰減回聲外,回聲抑制器130也衰減可能出現(xiàn)的任何背景噪聲和/或近端語音。實(shí)際上,當(dāng)回聲抑制器130激活時(shí)背景噪聲可以被抑制到遠(yuǎn)端用戶可能錯(cuò)誤地認(rèn)為通話已經(jīng)中斷的程度。因此,為改善對(duì)于遠(yuǎn)端用戶的通信質(zhì)量,當(dāng)回聲抑制器130激活時(shí)現(xiàn)在的系統(tǒng)通常在電話音頻信號(hào)135中加入舒適噪聲。
      例如,某些系統(tǒng)以偽隨機(jī)數(shù)發(fā)生器(PRNG)產(chǎn)生的白噪聲代替靜音音頻信號(hào),其中根據(jù)對(duì)實(shí)際背景噪聲能量的估計(jì)設(shè)置各種噪聲樣本。另外,上面所引用的Genter的美國專利第5283784號(hào)描述了一種類似方案,在該方案中噪聲樣本被頻帶限制到電話系統(tǒng)帶寬并被存儲(chǔ)在只讀存儲(chǔ)器(ROM)表中。然后在需要時(shí)從表中選擇樣本產(chǎn)生舒適噪聲。而另一個(gè)方案由1995年1月19日申請(qǐng)的題目為“在免提蜂窩無線通信系統(tǒng)中用于回聲衰減的方法和設(shè)備”美國專利申請(qǐng)第08/375144描述,該申請(qǐng)?jiān)诖吮煌耆米鳛閰⒖?。在存?chǔ)器中存儲(chǔ)了一組實(shí)際背景噪聲的樣本,并通過輸出連續(xù)存儲(chǔ)的以分組中隨機(jī)起點(diǎn)開始的樣本段產(chǎn)生舒適噪聲。
      盡管上述系統(tǒng)提供了某些優(yōu)點(diǎn),仍沒有提供在頻譜和幅度兩方面與實(shí)際環(huán)境噪聲緊密和協(xié)調(diào)匹配的舒適噪聲。例如,通過產(chǎn)生白噪聲產(chǎn)生的舒適噪聲的頻譜成分根據(jù)定義在音頻頻帶上是統(tǒng)一的,而汽車背景噪聲一般偏向頻帶的低端。也由于車與車之間頻譜斜率不同和取決于流行的駕駛條件,只在ROM中存儲(chǔ)一個(gè)示范性傾斜頻譜還不夠。另外,通過重復(fù)輸出實(shí)際噪聲樣本段產(chǎn)生的舒適噪聲包括明顯的周期成分和因此通常聽起來就象包含附加的失真音調(diào)。
      因此,利用常規(guī)噪聲發(fā)生技術(shù),由于僅當(dāng)回聲抑制器130激活時(shí)選擇性地加入和替換了舒適噪聲,遠(yuǎn)端用戶感覺到在所傳輸?shù)谋尘霸肼曁匦院蛢?nèi)容上的連續(xù)變化。在背景噪聲中感覺到的這種改變可能令人討厭甚至不可忍受。例如,有著現(xiàn)在數(shù)字蜂窩電話中相對(duì)較長的延遲,實(shí)際背景噪聲與模擬舒適噪聲之間的不同經(jīng)常被感覺為低音回聲。因此,需要改善的方法和設(shè)備以產(chǎn)生回聲抑制系統(tǒng)中的舒適噪聲。
      本發(fā)明概述本發(fā)明通過提供在回聲抑制系統(tǒng)中用于參數(shù)模擬音頻背景噪聲的方法和設(shè)備來滿足上述和其它需要。通過與生成白噪聲樣本或重復(fù)輸出所存儲(chǔ)的噪聲樣本系列來產(chǎn)生舒適噪聲的常規(guī)系統(tǒng)對(duì)比,本發(fā)明教導(dǎo)可以根據(jù)一組噪聲模型參數(shù)有效地產(chǎn)生更高質(zhì)量的舒適噪聲(即,更緊密匹配實(shí)際系統(tǒng)環(huán)境噪聲的舒適噪聲),而該組參數(shù)又以對(duì)實(shí)際系統(tǒng)噪聲的測(cè)量為根據(jù)。
      按照本發(fā)明,在語音未激活期間(即只出現(xiàn)噪聲)計(jì)算噪聲模型參數(shù)和在語音激活期間凍結(jié)參數(shù)。然后正流行的噪聲模型參數(shù)被用于產(chǎn)生高質(zhì)量的舒適噪聲,無論何時(shí)由回聲抑制器對(duì)噪聲進(jìn)行靜音或衰減都以該舒適噪聲替代實(shí)際噪聲。由于該舒適噪聲在特性和電平方面與實(shí)際背景噪聲緊密匹配,遠(yuǎn)端用戶感覺到信號(hào)的連續(xù)性和不受常規(guī)系統(tǒng)引入的人為噪聲打擾。
      按照第一示范性實(shí)施例,參數(shù)噪聲模型以送話器輸出的音頻樣本幀的自相關(guān)函數(shù)為依據(jù)。在幾個(gè)樣本幀上對(duì)自相關(guān)函數(shù)進(jìn)行平滑和求平均,和將流行的平滑自相關(guān)函數(shù)用于計(jì)算全極點(diǎn)整形濾波器系數(shù)。然后整形濾波器被用于合成舒適噪聲,該舒適噪聲以具有與平滑自相關(guān)函數(shù)的第一零延遲成分成正比的變化的白噪聲激勵(lì)為依據(jù)。
      按照第二示范性實(shí)施例,參數(shù)噪聲模型以自相關(guān)函數(shù)和一組固定濾波器系數(shù)為基礎(chǔ),兩者被組合應(yīng)用以產(chǎn)生一個(gè)自回歸移動(dòng)平均(ARMA)整形濾波器。具體地,由送話器輸出的音頻樣本幀通過根據(jù)固定濾波器系數(shù)構(gòu)成的全極點(diǎn)濾波器,而濾波后的樣本用于計(jì)算自相關(guān)函數(shù)。自相關(guān)函數(shù)在幾個(gè)幀上被平滑,而流行的被平滑自相關(guān)函數(shù)用于計(jì)算全極點(diǎn)濾波器的系數(shù)。該全極點(diǎn)濾波器與根據(jù)固定濾波器系數(shù)派生的全零點(diǎn)濾波器級(jí)聯(lián)以產(chǎn)生自回歸移動(dòng)平均頻譜整形濾波器。然后該頻譜整形濾波器被用于合成舒適噪聲,該舒適噪聲以具有與自相關(guān)函數(shù)的第一零延遲成分成正比的變化的白噪聲樣本激勵(lì)為依據(jù)。
      按照第三示范性實(shí)施例,參數(shù)噪聲模型以離散頻譜幅度向量為根據(jù)。根據(jù)由送話器輸出的音頻樣本幀計(jì)算頻譜幅度。具體地,頻譜幅度作為音頻樣本幀的離散付氏變換來計(jì)算。另一個(gè)方式,當(dāng)使用頻域音頻回聲抑制器處理送話器信號(hào)時(shí),直接從音頻回聲抑制器輸出的音頻樣本幀中提取頻譜幅度。在任一情況下,都在幾個(gè)幀上平滑頻譜幅度向量,而必要時(shí)流行和平滑的幅度向量被用于合成舒適噪聲。具體地,均勻隨機(jī)相位的激勵(lì)被應(yīng)用于流行的平滑幅度向量,而用離散付氏反變換將產(chǎn)生的復(fù)合頻譜樣本轉(zhuǎn)化到時(shí)域。
      按照第四示范性實(shí)施例,參數(shù)噪聲模型包括一個(gè)具有單一固定零點(diǎn)和單一可變極點(diǎn)的自回歸移動(dòng)平均頻譜整形濾波器。在語音非激活期間使用標(biāo)準(zhǔn)化最小均方算法計(jì)算頻譜整形濾波器的可變極點(diǎn),以按照頻譜整形濾波器相反方向循環(huán)調(diào)節(jié)自適應(yīng)濾波器。然后使用流行頻譜整形濾波器合成舒適噪聲,該舒適噪聲以具有等于實(shí)際系統(tǒng)噪聲能量的白噪聲樣本激勵(lì)為基礎(chǔ),其中通過從實(shí)際系統(tǒng)噪聲樣本的緩存隨機(jī)選擇的單個(gè)樣本產(chǎn)生白噪聲樣本。有利地,頻譜整形濾波器的單一固定零點(diǎn)和單一可變極點(diǎn)足以在產(chǎn)生的舒適噪聲中提供適當(dāng)?shù)念l譜斜率,和單一固定零點(diǎn)保證自適應(yīng)反向?yàn)V波器無條件地穩(wěn)定。結(jié)果,示范性實(shí)施例即穩(wěn)固又不復(fù)雜。
      上述技術(shù)可以有利地應(yīng)用于需要或希望噪聲模擬的任何通信系統(tǒng)中。例如,按照本發(fā)明的示范性回聲抑制裝置包括一個(gè)噪聲模擬處理器和一個(gè)噪聲發(fā)生器。該裝置配置以衰減通信信號(hào)的回聲成分,而噪聲模擬處理器配置以產(chǎn)生一個(gè)或多個(gè)以通信信號(hào)為基礎(chǔ)的噪聲模擬參數(shù)。該噪聲模擬參數(shù)限定了通信信號(hào)噪聲成分的參數(shù)模型,而噪聲發(fā)生處理器配置得提供以噪聲模擬參數(shù)為基礎(chǔ)的模擬噪聲樣本。在示范性實(shí)施例中,模擬出的噪聲樣本被加入到回聲抑制裝置的輸出中以替代被衰減的噪聲成分。
      按照本發(fā)明的另一個(gè)方式的回聲抑制裝置包括一個(gè)回聲抑制器,一個(gè)樣本緩存器和一個(gè)噪聲發(fā)生處理器。該回聲抑制器配置以衰減通信信號(hào)的回聲和噪聲成分,而樣本緩存器被用于存儲(chǔ)通信信號(hào)的樣本幀。該噪聲發(fā)生處理器配置以偽隨機(jī)地從緩存器中選擇單一樣本以便提供白噪聲樣本序列,該白噪聲樣本具有等于樣本幀功率電平的功率電平。在示范性實(shí)施例中,對(duì)白噪聲樣本序列濾波以提供舒適噪聲,該舒適噪聲被加入到回聲抑制器的輸出中。
      按照本發(fā)明的另一個(gè)改型回聲抑制裝置包括一個(gè)回聲抑制器,一個(gè)噪聲模擬和發(fā)生處理器,一個(gè)話音激活檢測(cè)器和一個(gè)噪聲電平估計(jì)器。該回聲抑制器配置以衰減通信信號(hào)的回聲和噪聲成分,而噪聲模擬和發(fā)生處理器配置以模擬通信系統(tǒng)的噪聲成分并以該模型為基礎(chǔ)為回聲抑制裝置提供舒適噪聲。該話音激活檢測(cè)器提供通信信號(hào)是否包括話音成分的指示,而噪聲電平估計(jì)器計(jì)算通信信號(hào)的噪聲電平和提供通信信號(hào)能力電平是否小于計(jì)算出的估計(jì)值的指示。按照本發(fā)明,僅當(dāng)話音激活檢測(cè)器指示在通信信號(hào)中沒有話音成分和噪聲電平估計(jì)器指示通信信號(hào)的能量電平小于計(jì)算出的噪聲電平估計(jì)值時(shí)更新噪聲模型。結(jié)果,不可能根據(jù)包括語音的通信信號(hào)部分錯(cuò)誤地更新噪聲模型。
      按照本發(fā)明的又一個(gè)改型回聲抑制裝置包括一個(gè)回聲抑制器和一個(gè)舒適噪聲發(fā)生器。該回聲抑制器配置以衰減通信信號(hào)的回聲和噪聲成分,而該舒適噪聲發(fā)生器配置以為回聲抑制裝置提供舒適噪聲。在回聲抑制器中,通信信號(hào)落入衰減窗口中的部分被乘以一個(gè)比例因子。因此,舒適噪聲發(fā)生器的輸出被限制在衰減窗口中和基于比例因子成比例,以提供適當(dāng)受限和成比例的舒適噪聲輸出,該舒適噪聲輸出被加入到回聲抑制器的音頻輸出中。
      下面參照附圖中所示的說明性示例詳細(xì)解釋本發(fā)明的上述和其它特征。本領(lǐng)域技術(shù)人員將理解所提供的實(shí)施例是為說明和理解的目的,和在此可以推導(dǎo)出大量等同實(shí)施例。
      附圖簡介圖1A表示實(shí)施本發(fā)明技術(shù)的示范性回聲抑制系統(tǒng)。
      圖1B表示實(shí)施本發(fā)明技術(shù)的另一種形式的回聲抑制系統(tǒng)。
      圖2A表示按照本發(fā)明包括一個(gè)噪聲模擬和發(fā)生處理器的示范性回聲抑制系統(tǒng)。
      圖2B表示按照本發(fā)明包括一個(gè)噪聲模擬和發(fā)生處理器的另一種形式的回聲抑制系統(tǒng)。
      圖3表示按照本發(fā)明的示范性一階自回歸移動(dòng)平均噪聲發(fā)生濾波器。
      圖4表示與圖3的示范性噪聲發(fā)生濾波器結(jié)合使用的示范性一階噪聲模擬訓(xùn)練處理器。
      圖5表示示范性回聲抑制系統(tǒng),其中按照本發(fā)明的噪聲模擬發(fā)生處理器與示范性混合殘留回聲抑制器集成為一體。
      本發(fā)明詳細(xì)說明圖2A表示示范性回聲抑制系統(tǒng)200,其中本發(fā)明的舒適噪聲部分與圖1A的回聲抑制配置被集成為一體。除了送話器110、受話器120和回聲抑制器130外,示范性回聲抑制系統(tǒng)200包括一個(gè)話音激活檢測(cè)器210、一個(gè)第一開關(guān)220、一個(gè)噪聲模擬和發(fā)生處理器230(包括一個(gè)激勵(lì)塊240、一個(gè)模型計(jì)算塊250和一個(gè)頻譜整形塊260)和一個(gè)第二開關(guān)270。
      送話器110的音頻輸出115被耦合到回聲抑制器130的音頻輸入和話音激活檢測(cè)器210的音頻輸入。送話器110的音頻輸出也被耦合到第一開關(guān)220的第一極。話音激活檢測(cè)器210的二進(jìn)制輸出215被耦合到第一開關(guān)220的接入輸入,而來自第一開關(guān)220第二極的音頻輸出225被耦合到模型計(jì)算塊250的音頻輸入。
      模型計(jì)算塊250的激勵(lì)參數(shù)輸出255被耦合到激勵(lì)塊240的控制輸入,而由激勵(lì)塊240輸出的激勵(lì)信號(hào)245被耦合到頻譜整形決260的激勵(lì)輸入。模型計(jì)算塊250的整形參數(shù)輸出256被耦合到頻譜整形濾波器260的控制輸入,而頻譜整形塊260的模擬噪聲輸出265被耦合到第二開關(guān)270的第一輸入極。
      來自回聲抑制器130的音頻輸出135被耦合到第二開關(guān)270的第二輸入極,而第二開關(guān)270的輸出極向電話(未示出)提供一個(gè)音頻輸入275。來自電話的音頻輸出125被耦合到受話器120的音頻輸入和回聲抑制器130的基準(zhǔn)輸入。
      在工作中,話音激活檢測(cè)器(VAD)210輸出指示送話器輸出信號(hào)115中存在或不存在語音的一個(gè)二進(jìn)制標(biāo)志(例如,1=話音,0=沒有話音)。實(shí)施話音激活檢測(cè)器的方法是眾所周知的。例如,歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)(ETSI)文獻(xiàn)GSM-06.82描述了適合于本發(fā)明目的的一種實(shí)施。
      當(dāng)話音激活檢測(cè)器210指示在送話器信號(hào)115中沒有語音出現(xiàn)時(shí)(即,僅出現(xiàn)噪聲),送話器信號(hào)115通過第一開關(guān)220被連接到噪聲模擬和發(fā)生處理器230的音頻輸入(更具體地,到模型計(jì)算塊250的音頻輸入),而噪聲模擬和發(fā)生處理器230使用音頻信號(hào)115、225計(jì)算和/或更新參數(shù)噪聲模型??墒?,當(dāng)話音激活檢測(cè)器210指示在送話器信號(hào)115中出現(xiàn)語音時(shí),第一開關(guān)220被斷開,噪聲模型參數(shù)被凍結(jié),而噪聲模擬和發(fā)生處理器230使用流行的參數(shù)噪聲產(chǎn)生舒適噪聲265的樣本。
      在圖2A的配置中,第二開關(guān)275用于選擇性地以抑制器輸出135的舒適噪聲265替代電話的近端音頻信號(hào)275。換句話說,當(dāng)回聲抑制器130被激活并衰減送話器信號(hào)11 5的噪聲成分時(shí),舒適噪聲信號(hào)275被傳遞給遠(yuǎn)端用戶。相反,來自回聲抑制器130的音頻輸出135被傳遞給遠(yuǎn)端用戶。在另一個(gè)方式的配置中,第二開關(guān)270被一個(gè)加法裝置替代,和舒適噪聲265的比例形式被加入到回聲抑制器輸出135中以提供補(bǔ)償回聲抑制器130產(chǎn)生的噪聲衰減的舒適噪聲。換句話說,由于回聲抑制器130變得更活躍而且將背景噪聲衰減更大程度,所加入的舒適噪聲電平被增加,和反之相同。
      圖2B表示示范性回聲抑制系統(tǒng)201,其中圖2A的該系統(tǒng)200的舒適噪聲部分與圖1B的回聲抑制配置合并。如圖所示,示范性系統(tǒng)201包括圖1B的送話器110、受話器120,回聲抑制器130和音頻回聲消除器140,以及圖2A的話音激活檢測(cè)器210、第一開關(guān)220和噪聲模擬和發(fā)生處理器230。示范性系統(tǒng)201也包括一個(gè)γ衰減塊280和一個(gè)加法裝置290。
      送話器110的音頻輸出115被耦合到音頻回聲消除器140的音頻輸入和話音激活檢測(cè)器210的音頻輸入。音頻回聲消除器140的控制輸出144被耦合到殘余回聲抑制器130的控制輸入和γ衰減塊280的控制輸入。音頻回聲消除器140的音頻輸出145被耦合到回聲抑制器130的音頻輸入和第一開關(guān)220的第一極。話音激活檢測(cè)器210的二進(jìn)制輸出215被耦合到開關(guān)220的接入輸入,和來自開關(guān)220第二極的音頻輸出225被耦合到噪聲模擬和發(fā)生處理器230的音頻輸入。
      上面針對(duì)圖2A的實(shí)施例描述了噪聲模擬和發(fā)生處理器230的內(nèi)部連接。噪聲模擬和發(fā)生處理器230模擬出的噪聲輸出265被耦合到γ衰減塊280的信號(hào)輸入,而γ衰減塊280的調(diào)節(jié)后噪聲輸出285被耦合到加法裝置290的第一相加輸入?;芈曇种破?30的音頻輸出被耦合到加法裝置290的第二相加輸入,而加法裝置290的輸出295用作電話(未示出)的音頻輸入。來自電話的音頻輸出125被耦合到受話器120的音頻輸入和音頻回聲消除器140和回聲抑制器130的基準(zhǔn)輸入。
      在工作中,話音激活檢測(cè)器210通常起針對(duì)圖2A的上述作用。更具體地,當(dāng)話音激活檢測(cè)器210指示在送話器信號(hào)115中沒有出現(xiàn)語音時(shí),對(duì)回聲抑制器130的音頻輸入145被通過第一開關(guān)220連接到噪聲模擬和發(fā)生處理器230的音頻輸入。該噪聲模擬和發(fā)生處理器230然后使用音頻信號(hào)145、225來計(jì)算和/或更新參數(shù)噪聲模型。可是,當(dāng)話音激活檢測(cè)器210指示在送話器信號(hào)115中出現(xiàn)語音時(shí),第一開關(guān)220被斷開,噪聲模型參數(shù)被凍結(jié),和噪聲模擬和發(fā)生處理器230使用流行噪聲模型產(chǎn)生舒適噪聲265。
      如圖所示,按照控制尺度144通過γ衰減塊280將舒適噪聲樣本265改變比例和/或削波,以提供具有與非線性回聲抑制器130所衰減的噪聲電平相匹配的電平的調(diào)節(jié)后舒適噪聲樣本285。調(diào)節(jié)后舒適噪聲樣本285通過加法裝置290被加入到抑制器輸出135,而產(chǎn)生的音頻信號(hào)295被傳遞給遠(yuǎn)端用戶。另一個(gè)方式,圖2A的第二開關(guān)275可以替換為γ衰減塊280和加法裝置290,以提供抑制器音頻信號(hào)135與舒適噪聲樣本265之間的簡單切換。
      在示范性系統(tǒng)200中,圖2A和2B的由噪聲模擬和發(fā)生處理器230提供的參數(shù)噪聲模型201一般包括兩個(gè)部分。即,一個(gè)頻譜整形濾波器和一個(gè)激勵(lì)信號(hào)。該頻譜整形濾波器和激勵(lì)信號(hào)通過頻譜整形塊260和激勵(lì)塊240使用頻譜整形參數(shù)(例如,濾波器系數(shù))255和由模型計(jì)算塊250提供的至少一個(gè)激勵(lì)參數(shù)256分別實(shí)現(xiàn)。激勵(lì)和頻譜整形參數(shù)被存儲(chǔ)在靜態(tài)存儲(chǔ)器中并被用于必要時(shí)產(chǎn)生舒適噪聲樣本265(即,當(dāng)非線性回聲抑制器130被激勵(lì)時(shí))。
      最好,模型參數(shù)可以一幀一幀地或一個(gè)樣本一個(gè)樣本地更新,例如根據(jù)實(shí)施的音頻回聲消除器140的特定類型。在幀方式的實(shí)施中,噪聲模型參數(shù)被使用已知技術(shù)在幾個(gè)更新周期上平滑,以防止周期到周期之間突然的用戶可覺察的改變。當(dāng)例如噪聲模型參數(shù)根據(jù)包含話音成分的音頻樣本被錯(cuò)誤地更新時(shí)(即當(dāng)話音激活檢測(cè)器210將話音和噪聲誤認(rèn)為僅僅是噪聲時(shí))可以產(chǎn)生這種突然的改變??墒亲⒁?,平滑的程度實(shí)際上與快速適應(yīng)特性和背景噪聲電平改變的需要相平衡。
      按照第一示范性實(shí)施例,舒適噪聲265被模擬為具有由下式給出的頻譜整形濾波器的自回歸(AR)隨機(jī)過程H(z)=G1-&Sigma;i=1Naiz-i]]>其中G是增益常數(shù)而ai,i=1到N是濾波器系數(shù)。
      在第一實(shí)施例中,通過計(jì)算音頻信號(hào)225樣本幀自相關(guān)函數(shù)r的前面N+1個(gè)系數(shù)確定第N個(gè)濾波器系數(shù)ai,然后使用這些值形成矩陣關(guān)系Ra=r’,其中R是一個(gè)N乘N矩陣具有由Rij=r|i-j|給出的i行和j列單元,和a=[a1,a2,……,aN]T是未知濾波器系數(shù)ai的列向量,和r’=[r1,r2,……,rN]T是最后N個(gè)自相關(guān)系數(shù)的列向量。本領(lǐng)域技術(shù)人員將確認(rèn)存在許多從矩陣關(guān)系派生出來知濾波器系數(shù)ai的方法。例如,在示范性實(shí)施例中,公知的Levinson-Durbin算法用于循環(huán)地推導(dǎo)未知濾波器系數(shù)ai。
      最好,自相關(guān)r提供了整套的噪聲模型參數(shù),描述了頻譜整形濾波器和激勵(lì)信號(hào)兩者。具體地,頻譜整形濾波器由上面公式中所示的ai系數(shù)限定,而激勵(lì)信號(hào)用具有與零延遲自相關(guān)值R0成正比的方差的零平均隨機(jī)序列實(shí)現(xiàn)。幾個(gè)自相關(guān)函數(shù)r的值被循環(huán)或非循環(huán)地平滑。無論何時(shí)需要舒適噪聲綜合,自相關(guān)函數(shù)r平滑后的形式被保持在噪聲模擬和發(fā)生處理器230內(nèi)的靜態(tài)存儲(chǔ)器中并被用于計(jì)算濾波器系數(shù)ai。
      在另一個(gè)方式的實(shí)施例中,根據(jù)樣本方式計(jì)算自回歸模型的濾波器系數(shù)ai。具體地,使用公知的自適應(yīng)算法例如最小均方(LMS)或遞進(jìn)最小平方(RLS)一個(gè)樣本一個(gè)樣本地直接更新或調(diào)整濾波器系數(shù)ai。因此,N個(gè)濾波器系數(shù)ai限定了上面的頻譜整形濾波器,并使用另一個(gè)方式的方差σe2模擬激勵(lì)信號(hào),該方差與自適應(yīng)算法所提供的殘余誤差信號(hào)功率成正比。
      按照另一個(gè)示范性實(shí)施例,舒適噪聲265可以用一個(gè)自回歸移動(dòng)平均(ARMA)隨機(jī)過程模擬,該過程具有如下給出的頻譜整形濾波器H(z)=G1-&Sigma;i=1Mbiz-i1-&Sigma;i=1Naiz-i]]>其中G是增益常數(shù)而ai(i=1到N)和bi(i=1到M)是濾波器系數(shù)。
      最好,與自回歸模型相比,自回歸移動(dòng)平均模型足夠靈活以使用低階頻譜整形濾波器緊密配合復(fù)雜的背景噪聲頻譜??墒?,由于根據(jù)音頻信號(hào)225動(dòng)態(tài)地估計(jì)濾波器系數(shù)bi的常規(guī)方法相對(duì)復(fù)雜和可能不穩(wěn)定,根據(jù)與背景噪聲環(huán)境總性能相關(guān)的先驗(yàn)信息為濾波器系數(shù)bi設(shè)置固定值,回聲抑制系統(tǒng)將工作在該環(huán)境中(例如,對(duì)于車載免提輔助應(yīng)用的汽車噪聲環(huán)境)。給出了系數(shù)bi的固定值,音頻信號(hào)225被首先如下濾波G(z)=11-&Sigma;i=1Mbiz-i]]>這樣作消除了總模型的移動(dòng)平均部分的影響,并允許使用針對(duì)第一示范性實(shí)施例描述的技術(shù)模擬剩余自回歸部分。對(duì)于以幀為基礎(chǔ)的系統(tǒng),自回歸移動(dòng)平均模型由固定濾波器系數(shù)bi和自相關(guān)函數(shù)r限定。在此情況下,激勵(lì)信號(hào)是用具有與零延遲自相關(guān)值R0成正比的方差的隨機(jī)序列實(shí)現(xiàn)的。下面參照?qǐng)D3-4詳細(xì)描述了示范性基于樣本的自回歸移動(dòng)平均模型。
      最好,本發(fā)明的參數(shù)模擬技術(shù)不限于時(shí)域的參數(shù)組。另一個(gè)方式,可以使用線性正交變換將時(shí)域音頻樣本幀轉(zhuǎn)換為可以構(gòu)成參數(shù)組的另一個(gè)域。這種正交變換的示例包括離散付氏變換,離散余弦變換和離散子波變換,本領(lǐng)域技術(shù)人員可以確認(rèn)許多其它的變換。在本發(fā)明的示范性實(shí)施例中,由一組N個(gè)頻譜幅度限定的一個(gè)頻域參數(shù)模型,如下給出M=|DFT{Xn}|ω(i),i=1……N其中ω(i),i=1到N是離散頻率點(diǎn),而向量Xn代表音頻輸出信號(hào)225樣本幀?!癉FT”運(yùn)算代表公知的離散付氏變換,并在實(shí)際中使用低復(fù)雜實(shí)施方式例如也是公知的快速付氏變換(FFT)實(shí)現(xiàn)。在該實(shí)施例中,頻譜整形參數(shù)被包括在幅度向量M中,該向量只在正頻率上被評(píng)價(jià),因?yàn)轭l譜對(duì)實(shí)數(shù)Xn(例如音頻信號(hào)樣本)在ω=0上對(duì)稱。
      離散頻率ω(i)可以是快速付氏變換輸出中離散頻率的全體或僅僅是子集。如果需要,直接在幅度向量M上進(jìn)行多幀平滑。通過將偽隨機(jī)相位值應(yīng)用于頻譜放大產(chǎn)生激勵(lì)信號(hào)。統(tǒng)一的偽隨機(jī)噪聲發(fā)生器用于產(chǎn)生固定范圍
      內(nèi)的相位值。時(shí)域舒適噪聲然后通過將具有偽隨機(jī)相位值的幅度向量M進(jìn)行反向快速付氏變換產(chǎn)生時(shí)域舒適噪聲。也注意到,這種類型的模型對(duì)于頻域回聲抑制器也非常有用。在此情況下,幅度向量M可以被直接從抑制器輸出的頻域樣本中提取。
      如上說明,本發(fā)明的另一個(gè)示范性實(shí)施例利用了基于樣本的自回歸移動(dòng)平均舒適噪聲模型。更具體地,該示范性實(shí)施例利用了具有單一固定零點(diǎn)和單一可變極點(diǎn)的一階自回歸移動(dòng)平均模型。現(xiàn)在的實(shí)驗(yàn)性研究已經(jīng)表明,這種一階自回歸移動(dòng)平均模型為具有最小模型復(fù)雜性的舒適噪聲提供了足夠的頻譜精確度。實(shí)際上,一階模型提供了在最先進(jìn)的基于線性預(yù)測(cè)編碼(LPC)的話音編碼器中的十階自回歸模型相等的性能。
      按照實(shí)施例,在頻譜整形濾波器中單一固定零點(diǎn)接近Z=-1,以衰減高頻音頻成分。當(dāng)必要時(shí),單一可變極點(diǎn)則被用于提供頻譜偏移或傾斜(回憶,例如,汽車背景噪聲的頻譜一般向低端頻率偏移)。因此,本發(fā)明教導(dǎo)了可用于密切配合實(shí)際背景噪聲的頻譜內(nèi)容的相對(duì)簡單和容易實(shí)現(xiàn)的一階濾波器。另外,在頻譜整形濾波器中的固定零點(diǎn)意味著在自適應(yīng)濾波器中的固定極點(diǎn),該濾波器用于在模擬階段獲得頻譜整形濾波器的系數(shù)。在自適應(yīng)濾波器中的單一固定極點(diǎn)反過來意味著自適應(yīng)濾波器無條件地穩(wěn)定。因此,該實(shí)施例也非常穩(wěn)固。
      圖3和4分別表示了按照示范性實(shí)施例的一階頻譜整形濾波器300和補(bǔ)充的標(biāo)準(zhǔn)化最小均方自適應(yīng)濾波器400。一階頻譜整形濾波器300對(duì)應(yīng)圖2A和2B中的頻譜整形塊260,而補(bǔ)充的自適應(yīng)濾波器400對(duì)應(yīng)圖2A和2B的模型計(jì)算塊250。
      在圖3中,一階頻譜整形濾波器包括一個(gè)第一延遲塊310,一個(gè)13/16ths增益塊320,一個(gè)加法裝置330,一個(gè)1-α增益塊340,一個(gè)第二延遲塊350和一個(gè)α增益塊360。模擬圖2A和2B的激勵(lì)信號(hào)245的一個(gè)白噪聲激勵(lì)信號(hào)被耦合到加法裝置330的第一相加輸入和第一延遲塊310的一個(gè)輸入。第一延遲塊310的輸出315被耦合到13/16ths增益塊320的輸入,而13/16ths增益塊320的輸出325被耦合到加法裝置330的第二相加輸入。加法裝置330的輸出335被耦合到1-α增益塊340的輸入和第二延遲塊350的輸入。第二延遲塊350的輸出355被耦合到α增益塊360的輸入,而α增益塊360的輸出365被耦合到加法裝置330的第三相加輸入。1-α增益塊340的輸出用作模擬背景噪聲,對(duì)應(yīng)圖2A和2B的舒適噪聲265。
      在圖4中,補(bǔ)充一階自適應(yīng)濾波器400包括一個(gè)第一延遲塊410,一個(gè)第一乘法器420,一個(gè)第二延遲塊430,一個(gè)第一加法裝置440,一個(gè)第二乘法器450,一個(gè)第二加法裝置460,一個(gè)13/16ths增益塊470,一個(gè)第三延遲塊480和一個(gè)標(biāo)準(zhǔn)化增益塊490。對(duì)應(yīng)圖2A和2B的有色背景噪聲信號(hào)被耦合到第二加法裝置460的相加輸入和第一延遲塊410的輸入。第一延遲塊410的輸出415被耦合到第一乘法器420的第一輸入和第二乘法器450的第一輸入。第一乘法器420的輸出425被耦合到第二加法裝置460的相減輸入,而第二乘法器450的輸出455被耦合到第一加法裝置440的第一輸入。
      第一加法裝置440的輸出445被耦合到第二延遲塊430的輸入,而第二延遲塊430的輸出α被耦合到第一乘法器420的第二輸入和第一加法裝置440的第二輸入。第二延遲塊430的輸出α用作圖3的頻譜整形濾波器300的濾波器整形參數(shù)(即作為單一濾波器系數(shù))并對(duì)應(yīng)圖2A和2B的濾波器整形參數(shù)256。
      第二加法裝置460的輸出465被耦合到第三延遲塊480的輸入和標(biāo)準(zhǔn)化增益塊490的輸入。第三延遲塊480的輸出485被耦合到13/16ths增益塊470的輸入,而13/16ths增益塊470的輸出475被耦合到第二加法裝置460的第二相減輸入。標(biāo)準(zhǔn)化增益塊490的輸出495被耦合到第二乘法器450的第二輸入。
      在工作中,圖4的自適應(yīng)濾波器400利用標(biāo)準(zhǔn)化最小均方算法將實(shí)際背景噪聲225進(jìn)行白化。產(chǎn)生的濾波器參數(shù)α則被用于圖3的相反頻譜整形濾波器300以產(chǎn)生基于白噪聲激勵(lì)信號(hào)245的模擬舒適噪聲265。
      按照實(shí)施例,通過對(duì)每個(gè)單獨(dú)樣本使用隨機(jī)指針從實(shí)際噪聲樣本緩存器讀取單個(gè)噪聲樣本產(chǎn)生白噪聲激勵(lì)信號(hào)245。以此方式產(chǎn)生的激勵(lì)信號(hào)245產(chǎn)生具有等于實(shí)際背景噪聲功率電平的白噪聲樣本。最好,即使當(dāng)實(shí)際噪聲樣本緩存器由于錯(cuò)誤而包含語音成分時(shí)激勵(lì)信號(hào)245的白化度也不受影響。由于話音激勵(lì)檢測(cè)器210有時(shí)可能錯(cuò)誤地指示沒有語音(例如,當(dāng)由于在免提應(yīng)用中汽車加速或減速引起背景噪聲電平改變時(shí)),該特征是重要的。
      如圖3和4所示,噪聲發(fā)生和自適應(yīng)濾波器300、400的固定零點(diǎn)/極點(diǎn)被設(shè)置在Z=-i3/16處。這樣做,在自適應(yīng)濾波器400中將高頻提升限制到20dB,因此避免了實(shí)際中的溢出問題。另外,當(dāng)與單一可變極點(diǎn)結(jié)合時(shí),由噪聲發(fā)生濾波器300提供的高頻的固定20dB衰減足夠提供40dB的頻譜斜率(實(shí)驗(yàn)研究已經(jīng)表明該頻譜斜率對(duì)于汽車免提應(yīng)用環(huán)境的實(shí)際背景噪聲是典型的)。
      與采用全部零點(diǎn)濾波器相反,在自適應(yīng)濾波器400中包含固定極點(diǎn)改善了模型的精確調(diào)整能力,以匹配實(shí)際背景噪聲的頻譜內(nèi)容。另外,在頻譜整形濾波器300中包含1-α增益放大器將濾波器300的DC增益固定在29/16,實(shí)驗(yàn)研究已經(jīng)表明當(dāng)話音激勵(lì)檢測(cè)器210的判決由噪聲電平估計(jì)器量化時(shí)(如同參照?qǐng)D5在下面所詳細(xì)描述的),該增益提供了在模擬的和實(shí)際噪聲之間匹配的良好電平。通過對(duì)比,實(shí)驗(yàn)研究也已經(jīng)表明在輸入和輸出信號(hào)中包含相同的功率產(chǎn)生了模擬的噪聲,當(dāng)通過噪聲電平估計(jì)器對(duì)話音激勵(lì)檢測(cè)器210的判決進(jìn)行量化時(shí)該噪聲聽起來比實(shí)際噪聲安靜。
      盡管實(shí)際上實(shí)際背景噪聲電平可以快速改變,實(shí)際背景噪聲的頻譜形狀一般更逐漸地變化。因此,自適應(yīng)濾波器400配置得以便舒適噪聲265的頻譜也逐漸變化。具體地,對(duì)標(biāo)準(zhǔn)化塊490選擇相對(duì)小的更新增益常數(shù)以便調(diào)整不會(huì)出現(xiàn)太塊。實(shí)驗(yàn)研究已經(jīng)表明4分母增益乘法器提供了跟蹤速度與平滑之間的良好折中。通過使用音頻信號(hào)225中能量的按塊測(cè)量標(biāo)準(zhǔn)化更新增益(如圖4所示),調(diào)整速度可以獨(dú)立于背景噪聲電平。
      除了使舒適噪聲265特性中感覺到的不連續(xù)性最小外,自適應(yīng)濾波器400相對(duì)小的更新增益也提供了對(duì)基于包含話音的音頻樣本決錯(cuò)誤調(diào)整的免疫性。可是注意,由于只要話音激勵(lì)檢測(cè)器210指示只有噪聲,白噪聲激勵(lì)信號(hào)245就更新,背景噪聲電平中的改變幾乎馬上被引入。結(jié)果,圖3和4的示范性實(shí)施例很快跟蹤背景噪聲電平,同時(shí)保持舒適噪聲265頻譜形狀穩(wěn)定。
      注意,對(duì)自回歸模型使用最小均方算法計(jì)算基于音頻樣本塊的頻譜整形系數(shù)需要與對(duì)樣本塊計(jì)算自相關(guān)系數(shù)然后對(duì)自回歸模型使用Levinson算法計(jì)算濾波器系數(shù)同樣數(shù)量的DSP周期??墒牵琇evinson算法也需要額外的DSP周期在幾個(gè)塊或幀上進(jìn)行平滑。因此,由于平滑功能在最小均方算法中是固有的,最小均方方法導(dǎo)致DSP周期純節(jié)省。
      也注意,假設(shè)為最小均方算法,從十階自回歸模型進(jìn)行到一階自回歸模型導(dǎo)致DSP周期節(jié)省大約百分之八十(開銷的復(fù)雜性呈現(xiàn)與階數(shù)的嚴(yán)格正比)。可是,對(duì)自回歸移動(dòng)平均模型增加另外的極點(diǎn),和對(duì)標(biāo)準(zhǔn)化最小均方算法增加另外的乘法,增加了對(duì)所需要的DSP周期的數(shù)量。但是,從利用最小均方算法的十階自回歸模型進(jìn)行到利用標(biāo)準(zhǔn)化最小均方算法的一階自回歸移動(dòng)平均模型導(dǎo)致DSP周期至少節(jié)省百分之五十。
      最好,圖3和4的示范性實(shí)施例可以被引入到任何圖1A,1B,2A和2B所示的回聲抑制系統(tǒng)100,101,200,201中。換句話說,該示范性實(shí)施例可以與任何類型的回聲消除器和/或任何類型回聲抑制器集成為一體。圖5表示了示范性系統(tǒng)500,其中示范性實(shí)施例被與圖1B和2B中表示的回聲抑制系統(tǒng)類型集成。
      如圖所示,示范性系統(tǒng)500包括送話器110,受話器120,音頻回聲消除器140,和圖1B的非線性回聲抑制器130以及話音激活檢測(cè)器210,第一開關(guān)220,模型計(jì)算塊250,頻譜整形塊260和圖2B的加法裝置290?;芈曇种葡到y(tǒng)500也包括一個(gè)噪聲電平估計(jì)器510,一個(gè)樣本緩存器520,一個(gè)削波器530,一個(gè)第一乘法器540,一個(gè)第二加法裝置550,一個(gè)第二乘法器560和一個(gè)包絡(luò)檢測(cè)器570。
      送話器110的音頻輸出115耦合到話音激活檢測(cè)器210的音頻輸入和音頻回聲消除器140的音頻輸入。話音激活檢測(cè)器210的二進(jìn)制輸出215耦合到噪聲電平估計(jì)器510的控制輸入,而噪聲電平估計(jì)器510的二進(jìn)制輸出515耦合到開關(guān)220的接入輸入。音頻回聲消除器140的音頻輸出145耦合到噪聲電平估計(jì)器510的音頻輸入、開關(guān)220的第一極和非線性回聲抑制器130的音頻輸入。音頻回聲消除器140的第一控制尺度144a耦合到非線性回聲抑制器130的第一控制輸入和第二加法裝置550的相減輸入。音頻回聲消除器140的第二控制尺度144b耦合到第二乘法器560的第一輸入,而開關(guān)220的第二極輸出225耦合到模型訓(xùn)練塊250的音頻輸入和樣本緩存器520的排隊(duì)輸入。
      一個(gè)隨機(jī)指針515耦合到樣本緩存器520的控制輸入,而樣本緩存器520的控制輸入起對(duì)頻譜整形濾波器260的激勵(lì)輸入245的作用。模型訓(xùn)練塊250的濾波器系數(shù)輸出256為頻譜整形濾波器260提供了控制輸入,由頻譜整形濾波器260輸出的模擬汽車噪聲耦合到削波器530的噪聲輸入。削波器530的削波后噪聲輸出耦合到第一乘法器540的第一輸入,而第一乘法器540的成比例的噪聲輸出545耦合到第一加法裝置290的第一輸入。非線性回聲抑制器130的音頻輸出135耦合到第一加法裝置290的第二輸入,而第一加法裝置290的輸出295用作電話(未示出)的音頻輸入。
      來自電話的音頻輸出耦合到包絡(luò)檢測(cè)器570的基準(zhǔn)輸入,音頻回聲消除器140和受話器120。包絡(luò)檢測(cè)器570的輸出575耦合到第二乘法器560的第二輸入,而第二乘法器560的輸出565耦合到削波器530的控制輸入。常數(shù)1耦合到第二加法裝置550的相加輸入,而第二加法裝置550的輸出555耦合到第一乘法器140的第二輸入。
      在工作中,殘余回聲抑制器130和音頻回聲消除器140一般起針對(duì)圖1B和2B所描述的作用。通過舉例,圖5的殘余抑制器130表示為上面引用的美國專利申請(qǐng)第09/005149(相同日期同時(shí)申請(qǐng)的“用于改善通信系統(tǒng)中的回聲抑制的方法和設(shè)備”)中描述的混合抑制器類型。
      一般,AC中心衰減器130利用適當(dāng)?shù)乃p因子α將音頻輸入信號(hào)145縮小一部分。更具體地,AC中心衰減器130將落入由窗口尺寸Δ定義的衰減窗口內(nèi)的音頻信號(hào)145縮小一部分。衰減窗口的中心隨音頻信號(hào)145的幅度移動(dòng),和衰減器130提供了具有信號(hào)失真最小的良好殘余抑制。
      圖5的音頻回聲消除器140可以是例如上面引用的未審結(jié)美國專利申請(qǐng)第08/852729(1997年5月7日申請(qǐng)的“一種用于通信系統(tǒng)中的改善的回聲消除器”)中描述的類型。這種回聲消除器可以動(dòng)態(tài)地計(jì)量其正消除的回聲電平,和因此提供了對(duì)AC中心衰減器130的控制尺度144a,144b。
      如圖所示,第一控制尺度144a直接用作衰減因子α。第二控制尺度144b被乘以遠(yuǎn)端音頻信號(hào)125的包絡(luò)(通過乘法器560和包絡(luò)檢測(cè)器570),而產(chǎn)生的控制信號(hào)565用作窗口尺寸Δ?;芈曄?40和AC中心衰減器130的詳細(xì)工作和綜合在上面參考的美國專利申請(qǐng)中描述,并在此為簡短而省略。
      圖5的舒適噪聲方面一般如同參照?qǐng)D2B,3和4的描述。通常,音頻信號(hào)145在沒有語音時(shí)間段期間被傳遞到樣本緩存器520,而訓(xùn)練處理器260(即自適應(yīng)濾波器400)處理樣本緩存器520的內(nèi)容,以對(duì)噪聲發(fā)生處理器260(即,頻譜整形濾波器300)提供整形參數(shù)256(即,濾波器系數(shù)α)。在語音時(shí)間段期間,凍結(jié)整形參數(shù)256,和噪聲發(fā)生處理器260對(duì)激勵(lì)信號(hào)245濾波以提供舒適噪聲樣本265。
      如上所述,通過隨機(jī)指針從樣本緩存器520中隨機(jī)選擇樣本產(chǎn)生激勵(lì)信號(hào)245。激勵(lì)信號(hào)245因此包括具有等于實(shí)際背景噪聲功率的白噪聲樣本。注意,由于樣本緩存器520不受整個(gè)系統(tǒng)的幀尺寸的限制(例如,在許多TDMA電話應(yīng)用中160個(gè)樣本),圖5的配置可以在基于樣本和基于幀的通信系統(tǒng)中實(shí)現(xiàn)。
      也注意,在圖5中話音激活檢測(cè)器210受噪聲電平估計(jì)器510所提供的判決的限制。換句話說,只在下面時(shí)間更新噪聲模型a)話音激活檢測(cè)器210指示沒有語音和b)噪聲電平估計(jì)器510指示音頻信號(hào)145的能量少于在音頻信號(hào)145中的噪聲電平估計(jì)值。以此方式限制話音激活檢測(cè)器判決減少了噪聲模型被根據(jù)包含話音的樣本塊進(jìn)行錯(cuò)誤調(diào)整的可能性。
      可是,現(xiàn)在,以此方式限制話音激活檢測(cè)器210也導(dǎo)致所模擬出的舒適噪聲往往具有低于實(shí)際背景噪聲功率電平。換句話說,由于在噪聲模型被訓(xùn)練之前噪聲電平估計(jì)器510要求音頻信號(hào)145中的能量少于流行噪聲電平估計(jì)值,用于訓(xùn)練噪聲模型的實(shí)際噪聲被朝著低端偏置??墒?,這可以通過如同上面針對(duì)圖3和4所描述的在噪聲發(fā)生處理器260(即,在頻譜整形濾波器300)中提供適當(dāng)?shù)难a(bǔ)償增益因子來彌補(bǔ)。
      本領(lǐng)域技術(shù)人員將理解可以使用已知技術(shù)計(jì)算噪聲電平估計(jì)值。此外,下面將通過示范性偽碼描述用于計(jì)算噪聲電平估計(jì)值的新穎方法。可是,由于噪聲電平估計(jì)器510的具有工作對(duì)目前要求的本發(fā)明不重要,在此省略了詳細(xì)描述。
      由于AC中心衰減器130不衰減音頻信號(hào)145落入由Δ定義的衰減窗口外的部分,模擬出的噪聲信號(hào)265通過如圖5所示的削波器530限制在±Δ。還由于音頻信號(hào)145落入衰減窗口內(nèi)被乘以衰減因子α,在該窗口內(nèi)的模擬出的噪聲通過第一乘法器540和第二加法裝置500乘以1-α。產(chǎn)生的削波后和成比例的噪聲信號(hào)545因此有與AC中心衰減器130消除的實(shí)際噪聲相同的特性和電平。如圖所示,削波后和成比例的噪聲信號(hào)545然后被加入到AC中心衰減器輸出135中以提供所需要的近端音頻信號(hào)295。
      為降低不包括一個(gè)音頻回聲消除器前端的回聲抑制系統(tǒng)(即,對(duì)于如圖1A和2A所示的這種系統(tǒng))的復(fù)雜性,控制信號(hào)144a、144b可以設(shè)置為常數(shù)并以相同方式實(shí)現(xiàn)舒適噪聲特性。還對(duì)于在音頻回聲消除器140與殘余回聲抑制器130之間插入了一個(gè)噪聲抑制器的系統(tǒng),可以通過向噪聲模擬和發(fā)生處理器(即,向圖5中的第一開關(guān)220第一極)提供噪聲抑制器的音頻輸出而非回聲消除器的音頻輸出145來適當(dāng)?shù)卣{(diào)節(jié)舒適噪聲的電平和特性。
      注意,當(dāng)使用純削波型殘余抑制器時(shí),第一控制信號(hào)144a不是必須的。在此情況下,使用第二控制信號(hào)144b和削波器530調(diào)節(jié)舒適噪聲電平,而第一乘法器540和第二加法裝置550是不需要的。反之,當(dāng)使用純比例型殘余抑制器時(shí),第二控制信號(hào)144b不是必須的。因此,使用第一控制信號(hào)144a、第一乘法器540和第二加法裝置550調(diào)節(jié)舒適噪聲電平,不需要削波器530。
      為進(jìn)一步說明本發(fā)明的各個(gè)特征和優(yōu)點(diǎn),下面通過偽碼描述類似圖5的回聲抑制系統(tǒng)。由于是使用32位數(shù)字信號(hào)處理器實(shí)現(xiàn)的所寫出的偽碼模擬示范性系統(tǒng)。本領(lǐng)域技術(shù)人員將理解該偽碼實(shí)際上是示范性的和可以使用各種硬件配置實(shí)現(xiàn)該實(shí)施例。***************************************************************<pre listing-type="program-listing"><![CDATA[%AEC和ANLP模擬程序用于MATLAB%在運(yùn)行該程序之前,設(shè)置下列變量%inFile=輸入文件名稱,left=遠(yuǎn)端,right=近端。%outFile=輸出文件名稱,left=ANLP輸出,right=AEC輸出。%所有文件使用DAT-Link的原始格式。%estnoise.m包括估計(jì)噪聲功能。%詞表%EC=回聲消除器=線性回聲抑制器%AEC=音頻回聲消除器=受話器-回聲消除器%NLP=非線性處理=殘余回聲抑制器=AC中心衰減器%ANLP=音頻非線性處理%VAD=話音激活檢測(cè)器%用分?jǐn)?shù)表示的最大位置值。ONE=32767/32768;%讀取包含遠(yuǎn)端和近端信號(hào)的文件。FidIn=fopen(inFile,‘r’);If fidIn==-1Error([‘Eroor opening file’inFile])End[Lrmatrix,wordCount]=fread(fidIn,[2,inf],’int16’);fclose(fidIn);%在更新綜合期間的樣本數(shù)量。FRAME-SIZE=160;%給出的幀尺寸越大對(duì)雙方談話和近端噪聲的堅(jiān)固性越大%其往往趨于零。%較大則改善了檢測(cè)收斂的能力,因?yàn)橄嚓P(guān)更新與幀尺寸成比例增長而非相關(guān)(噪聲)隨幀%尺寸平方根增長。%較小則改善對(duì)變化的響應(yīng)時(shí)間(回聲路徑,單一≥雙方談話)和加速收斂。%較小也改善丟棄元音聲音的能力。%160用于容易移植每幀160個(gè)樣本的TDMA電話。%產(chǎn)生的20ms幀對(duì)于將語音分成靜態(tài)信號(hào)段是近似最佳的。NFRAMES=floor((wordCount/2)/FRAME-SIZE);%處理的幀數(shù)量。Clear wordCountNsamples=NFRAMES*FRAME-SIZE;用于調(diào)試的樣本形式向量%%從分開的文件加載送話器(上行)和受話器(下行)VAD輸出。如果沒有找到每個(gè)文件,%運(yùn)行近端和遠(yuǎn)端聲音文件上的C可執(zhí)行文件,并在具有相同前綴餓文件中存儲(chǔ)VAD輸出。%fidIn=fopen(inFile′_up_vad′],′r′);if fidIn==-1disp([′File=′inFile,_up_vad not found--creating…′])fidout=fopen(′vad_in.raw′,′w′);fwrite(fidOut,LRmatrix(2,:),′int16′);%上行音頻fclose(fidOut);!nrsim-s=f vad_in.raw junk vad_out.bit!rm vad_in.raw!rm junk.fltfidIn=fopen(′vad_out.bit′,′r′);if fidIn==-1error(′Error opening file=vad_out.bit′)endmicVad=fread(fidIn,NFRAMES,′int8′);!rm vad_out.bitfclose(fidIn);fidout=fopen([inFile′_up_vad′],′w′);fwrite(fidOut,micVad,′int8′);fclose(fidOut);elsemicVad=fread(fidIn,NFRAMES,′int8′);fclose(fidIn);endfidIn=fopen([inFile′_down_vad′],′r′);if fidIn==-1disp([′File =′inFile′_down_vad not found--creating…′])fidOut=fopen(′vad_in.raw′,′w′);fwrite(fidOut,LRmatrix(1,:),′int16′);%下行音頻fclose(fidOut);!nrsim-s=f vad_in.raw junk vad_ont.bit!rm vad_in.raw!rm junk.fltfidIn=fopen(′vad_out.bit′,′r′);if fidIn==-1error(′Error opening file=vad_out.bit′)endspeakerVad=fread(fidIn,NFRAMES,′int8′);!rm vad_out.bitfclose(fidIn);fidOut=fopen([inFile′_down_vad′],′w′);fwrite(fidOut,speakerVad,′int8′);fclose(fidOut);elsespeakerVad=fread(fidIn,NFRAMES,′int8′);fclose(fidIn);end%將輸入乘比例使用-1到1的范圍。Lrmatrix=Lrmatrix/32768;%在一個(gè)樣本幀上累計(jì)右移位數(shù)值的比特?cái)?shù)量。FRAME-BITS=ceil(log2(FRAME-SIZE));%將能量量化成32位的比例因子(Z8.23格式w/FRAME-SIZE=160)ENERGY-SCALE=2^(31-FRAME-BITS);%在基準(zhǔn)延遲線中的抽頭數(shù)量。%它必須足夠長使高延遲抽頭幾乎與遠(yuǎn)端信號(hào)不相關(guān)而只具有近端能量。AEC-REF-TAPS=512;%在FIR回聲估計(jì)濾波器中的抽頭數(shù)量。AEC-COEF-TAPS=256;%用于計(jì)量近端能量的更新向量高延遲部分中的抽頭數(shù)量。AEC-NEAR-TAPS=128;%用于捕獲汽車噪聲樣本的向量長度。COMFORT-NOISE-SIZE=128;%計(jì)算在更新向量峰值/基線比的閾值用于確定最大更新增益。對(duì)于在[-1,1]范圍內(nèi)均勻的%噪聲,所希望的峰值更新幅度是g*FRAME-SIZE/3,同時(shí)所希望非相關(guān)插頭更新向量的%RMS是g*sqrt(FRAME-SIZE)/3,其中g(shù)是回聲路徑增益。因此,最大更新向量峰值/%基線比是sqrt(FRAME-SIZE)。%可是,話音沒有類似噪聲的恒定包絡(luò)。因?yàn)镕RAME-SIZE遠(yuǎn)遠(yuǎn)小于更新向量長度,語音%的一個(gè)突發(fā)有時(shí)在更新向量區(qū)內(nèi),其中峰值不在計(jì)量基線的區(qū)域中計(jì)量。因此,實(shí)際峰%值/基線比可以非常高(>300)。%將閾值設(shè)置太低會(huì)引起由于即使對(duì)噪聲或雙方談話條件下高能量遠(yuǎn)端信號(hào)的高增益更新%產(chǎn)生的不穩(wěn)定。%將閾值設(shè)置太低會(huì)引起由于只對(duì)大的回聲路徑變化高能量遠(yuǎn)端信號(hào)的高增益更新產(chǎn)生的%慢衰減。%經(jīng)驗(yàn)化地確定該閾值作為一種折中。AEC-MAX-GAIN,THRESH=16;%對(duì)于噪聲的峰值/RMS與幀尺寸無關(guān)。用于抵制近端話音/噪聲和遠(yuǎn)端周期性信號(hào)(單音%或元音)的閾值被以經(jīng)驗(yàn)導(dǎo)出。AEC-BASELINE-THRESH=5.5;%為狀態(tài)尺度預(yù)先計(jì)算用作乘法器的常量。AEC-STATUS-GAUGE-SCALER=floor(32768/……(AEC-MAX-GAIN-THRESH-AEC-BASELINE-THRESH))/32768;%產(chǎn)生FIR系數(shù)的增益輪廓。該輪廓大致與汽車內(nèi)系數(shù)的希望范圍匹配。這樣,包含周期%性成分(元音)的更新被強(qiáng)迫服從合適的指數(shù)衰落特性和使發(fā)散最小。在較高延遲插頭%上的較低增益也減少了更新噪聲對(duì)系數(shù)的影響。高輪廓的總效果是允許較高更新增益而%沒有不穩(wěn)定。%由于所有系數(shù)具有16位動(dòng)態(tài)范圍,較高延遲插頭也具有作為該輪廓結(jié)果的較好量化。該%輪廓通過在右移位中間時(shí)刻計(jì)算FIR64個(gè)插頭實(shí)現(xiàn)。profile=ones(AEC_COEF_TAPS,1);for k=2:(AEC_COEF_TAPS/64),profile((k*64-63):(k*64))=ones(64,1)*2^(1-k);end%分配調(diào)試向量以加速執(zhí)行。aecUpdateFactor=zeros(1,NFRAMES);aecChanGainHist=zeros(1,NFRAMES);aecSpeedHist=zeros(1,NFRAMES);aecVoiceGainHist=zeros(1,NFRAMES);aecVoiceGainBaseHist=zeros(1,NFRAMES);aecNearRatioHist=zeros(1,NFRAMES);aecNearGainHist=zeros(1,NFRAMES);aecEchoGainHist=zeros(1,NFRAMES);aecInNoiseHist=zeros(1,NFRAMES);aecInEchoNoiseHist=zeros(1,NFRAMES);aecInVoiceHist=zeros(1,NFRAMES);aecInEchoVoiceHist=zeros(1,NFRANES);anlpInVoiceHist=zeros(1,NFRAMES);anlpInNoiseHist=zeros(1,NFRAMES);anlpDeltaHist=zeros(1,NSAMPLES);anlpGainHist=zeros(1,NFRAMES);%初始化變量aecRef=zeros(1,AEC_REF_TAPS);%使用最新值aecCoef=zeros(AEC_COEF_TAPS,1); %注釋aecInNoise=FRAME_SIZE; %注釋aecInEchoNoise=aecInNoise; %注釋anlpInNoise=aecInNoise; %注釋aecChanGain=ONE; %注釋aecVoiceGain=ONE;%注釋aecVoiceGainBase=aecVoiceGain; %注釋aecNearGain=aecVoiceGain;%注釋aecEchoGain=aecVoiceGain;%注釋anlpComfortNoiseInOld=0; %注釋anlpComfortNoiseOutOld=0;%注釋anlpComfortNoise=zeros(1,COMFORT_NOISE_SIZE);%注釋anlpArCoef=0.75; %注釋aecNearRatio=0; %只初始化記錄aecInNoiseStateVars=[aecInNoise 0 0];aecInEchoNoiseStateVars=[aecInEchoNoise 0 0];anlpInNoiseStateVars =[anlpInNoise 0 0];anlpSeed=1;anlpArGain=1-anlpArCoef;anlpRefEnvelope=0;anlpOutLast=0;anlpNearSpeechCount=0;anlpNearSpeechFlag=0;%顯示([′aecCoef(1)=′dec2hex(aecCoef(1)*32768+(aecCoef(1)<0)*65536)])%顯示([′aecCoef(2)=′dec2hex(aecCoef(2)*32768+(aecCoef(2)<0)*65536)])%顯示([′aecInNoise =′dec2hex(aecInNoise*2^31)])%顯示([′anlpInNoise=′dec2hex(anlpInNoise*2^31)])%顯示([′aecChanGain=′dec2hex(aecChanGain*32768)])%顯示([′aecVoiceGain=′dec2hex(aecVoiceGain*32768)])%顯示([′aecVoiceGainBase=′dec2hex(aecVoiceGainBase*32768)])%顯示([′aecEchoGain=′dec2hex(aecEchoGain*32768)])%顯示([′anlpComfortNoiseInOld=′dec2hex(anlpComfortNoiseInOld*32768)])%顯示([′anlpComfortNoiseOutOld =′dec2hex(anlpComfortNoiseOutOld*32768)])%顯示([′anlpArCoef=′dec2hex(anlpArCoef*2^31)])%顯示([′anlpArGain=′dec2hex(anlpArGain*32768)])fidOut=fopen(outFile,′w′);for frame=1:NFRAMES,frame%顯示幀數(shù)量以指示程序。%AEC幀前部分%%由于在用于更新FIR系數(shù)的基準(zhǔn)向量插頭與用于近端能量相關(guān)的插頭之間有一個(gè)間隙,%不需要對(duì)基準(zhǔn)向量的每個(gè)插頭計(jì)算更新向量。因此,更新向量由特別用于兩個(gè)目的的子%向量代表。%清除在一幀上積累的更新子向量。aecUpdate=zeros(AEC-COEF-TAPS,1); %用于FIR系數(shù)更新aecUpdateNear=zeros(AEC-NEAR-TAPS,1); %用于近端計(jì)量%清除其它幀積累aecEchoEstEnetgy=0;%重新設(shè)置塊浮點(diǎn)變量。aecShiftPending=0;aecErrorShift=0;%使上行和下行鏈路PCM音頻樣本進(jìn)入緩存器。downlinkAudio=LRmatrix(1,(frame-1)*FRAME-SIZE+1:frame*FRAME_SIZE);uplinkAudio=LRmatrix(2,(frame-1)*FRAME-SIZE+1:frame*FRAME_SIZE);%在一個(gè)幀上積累AEC近端輸入能量aecInEnergy=sum(uplinkAudio.^2);%量化能量為32位。aecInEnergy=floor(aecInEnergy*ENERGY-SCALE)/ENERGY-SCALE;%AEC樣本部分for k=1:FRAME-SIZE,%將遠(yuǎn)端(受話器)樣本移位到基準(zhǔn)延遲線和計(jì)算FIR輸出。%在DSP中,兩個(gè)操作在一個(gè)指令中。aecRef=[downlinkAudio(k)aecRef(1:AEC-REF-TAPS-1)];%測(cè)試碼開始%下列碼快速逼近注釋,比特-精度碼。aecEchoEst=aecRef(1:AEC-COEF-TAPS)*(aecCoef.*profile);aecEchoEst=max(min(round(aecEchoEst*32768)/32768,ONE),-1);%測(cè)試碼結(jié)束aecEchoEst=0;for m=(AEC-EOEF-TAPS/64):-1∶2;aecEchoEst=aecEchoEst+aecRef(m*64-63:m*64)*aecCoef(m*64-63:m*64);aecEchoEst=max(min(aecEchoEst,ONE),-1)2;%量化S.15格式aecEchoEst=floor(aecEchoEst*2^31)/2^31;結(jié)束aeeEchoEst=aecEchoEst+aecRef(1∶64)*aecCoef(m*64);aecEchoEst=max(min(aecEchoEst,ONE),-1);%量化S.15格式%當(dāng)將具有恰好0.5的分?jǐn)?shù)的負(fù)數(shù)舍入時(shí)加入2^(-17)強(qiáng)制1補(bǔ)數(shù)浮點(diǎn)起與2補(bǔ)數(shù)的作用。aecEchoEst=round(aecEchoEst*32768+2^(-17))/32768;aecEchoEst=max(min(aecEchoEst,ONE),-1);%在一個(gè)幀上積累回聲估計(jì)能量。%為改善小信號(hào)性能和進(jìn)行相同方式的計(jì)量作為其它能量積累,在環(huán)路通路之間保留了整%40位累加器。aecEchoEstEnergy=aecEchoEstEnergy+aecEchoEst2;%計(jì)算AEC output=near-end(microphohe)input-回聲估計(jì)值。uplinkAudio(k)=max(min(uplinkAudio(k)-aecEchoEst,ONE),-1);%累計(jì)系數(shù)更新=誤差相關(guān)(uplinkAudio(k))和基準(zhǔn)。使用塊浮點(diǎn)表達(dá)式,其中aecErrorShift%是指數(shù)而aecUpdate/aecUpdateNear()是尾數(shù)。T=uplinkAudio(k)*2^aecErrorShift;%量化S.15格式T=floor(T*32768)/32768;if aecShiftPending,ASM=-1aecErrorShift=aecErrorShift-1;aecShiftPending=0;elseASM=0;end%計(jì)算用于更新FIR系數(shù)的區(qū)間。aecUpdate=aecUpdate+T*aecRef(1:AEC-COEF-TAPS)’;%計(jì)算用于計(jì)量近端能量的區(qū)間。aecUpdateNear=aecUpdateNear+……T*aecRef(AEC-REF-TAPS-AEC-NEAR-TAPS+1:AEC-REF-TAPS)’;%量化S.15格式%當(dāng)將具有恰好為0.5的分?jǐn)?shù)的負(fù)數(shù)舍入時(shí)加入2^(-17)強(qiáng)制1補(bǔ)數(shù)浮點(diǎn)起2補(bǔ)數(shù)作用。aecUpdate=round(aecUpdate*32768+2^(-17))/32768;aecUpdateNear=round(aecUpdateNear*32768+2^(-17))/32768;aecUpdate=max(min(aecUpdate,ONE),-1);aecUpdateNear=max(min(aecUpdateNear,ONE),-1);aecUpdate=aecUpdate *2^ASM;aecUpdateNear=aecUpdateNear *2^ASM;%在可能的右位移之后量化S.15格式。aecUpdate=floor(aecUpdate*32768)/32768;aecUpdateNear=floor(aecUpdateNear*32768)/32768;%找到更新向量的峰值平方(假設(shè)在前面128個(gè)插頭中)。%目的是獲得峰值的絕對(duì)值,但是在DSP中峰值平方占較少周期,甚至具有幀結(jié)尾的平方%根。aecUpdatePeak2=max(aecUpdate(1∶128).^2);%標(biāo)志指示更新是否需要在下個(gè)循環(huán)中除以2。aecShiftPending=aecUpdatePeak2>0.25;%0.25=0.5^2end%量化能量為32位。aecEchoEstEnergy=floor(aecEchoEstEnergy*ENERGY-SCALE)/ENERGY-SCALE;%%AEC幀后的部分%aecOut=uplinkAudio;%將輸出保留在文件用于調(diào)試。%在一個(gè)幀上積累AEC輸出能量。aecOutEnergy=sum(uplinkAudio.^2);%量化能量為32位。aecOutEnergy=floor(aecOutEnergy*ENERGY-SCALE)/ENERGY-SCALE;%對(duì)于更新向量每個(gè)元素實(shí)際基準(zhǔn)能量是不同的。aecUpdate(1)將使用來自aecRef(1)%的能量,aecUpdate(2)將使用來自aecRef(2)的能量,等等。為減少復(fù)雜性,使用單%一數(shù)字表示基準(zhǔn)能量。%當(dāng)基準(zhǔn)能量被用于計(jì)量信道回聲增益以確定適應(yīng)速度或標(biāo)準(zhǔn)化更新(NLMS),使用太?。ブ祵⒉粫?huì)引起不穩(wěn)定性。在此實(shí)現(xiàn)的折中方案使用端點(diǎn)的最大值,其中profile=1.aecRefEnergy=max(sum(aecRef(1:FRAME-SIZE).^2),……sum(aecRef(64:FRAME-SIZE+63).^2));%量化Z8.7格式aecRefEnergy=floor(aecRefEnergy*128)/128;%計(jì)量更新基線作為高延遲單元的RMS,其中誤差與遠(yuǎn)端信號(hào)之間的相關(guān)性希望為0。%在最低有效位中加1以保證量化后aecUpdateBase較大和aecPeakToBase較小。這避免了%對(duì)較高回聲相關(guān)性的錯(cuò)誤印象。%在底層操作產(chǎn)生與頂層相同的結(jié)果后在最低有效位中加入1,除了所有截短位等于零的%少有情況。aecUpdateBase=sum(aecUpdteNear.^2)/AEC-NEAR-TAPS;%對(duì)Z.31格式量化平方的中間結(jié)果aecUpdateBase=floor(aecUpdateBase*2^31)/2^31;aecUpdateBase=sqrt(aecUpdateBase);%量化Z.15格式aecUpdateBase=floor(aecUpdateBase*32768+1)/32768;%查找更新向量的峰值幅度。aecupdatePeak=sqrt(aecUpdatePeak2);%計(jì)算更新峰值/基線比。aecPeakToBase=aecUpdatePeak/aecUpdateBase;%從4分?jǐn)?shù)為量化Z11.4格式足夠了。aecPeakToBase=floor(aecPeakToBase*16)/16;%根據(jù)更新峰值基線比計(jì)算狀態(tài)尺度(范圍=
      )。即使峰值/基線比隨幀尺寸和基線閾%值的改變可能改變,用于下行數(shù)據(jù)流處理的該尺度保持相同。%對(duì)于近端話音/噪聲或遠(yuǎn)端周期信號(hào)(元音),尺度<0.1%例如,對(duì)于具有頻率941Hz和1209Hz的DTMF單音的第一幀被發(fā)現(xiàn)產(chǎn)生%aecPeakToBase=3.5,因此aecStatusGauge=0。%對(duì)于雙方談話,尺度<0.3%對(duì)于遠(yuǎn)端單方談話:%不論噪聲如何當(dāng)消除器不收斂時(shí),尺度=1%如果近端安靜,尺度=1直到接近完全收斂。%由于消除器收斂,只有能量比近端噪聲高電平的殘余回聲使尺度=1。%因此,近端噪聲很少引起更新,不減少更新增益。aecStatusGauge=(aecPeakToBase-AEC-BASELINE-THRESH)*…AEC-STATUS-GAUGE-SCALER;aecStatusGauge=max(min(aecStatusGauge,ONE),0);%對(duì)Z.15格式量化aecStatusGauge=floor(aecStatusGauge*32768)/32768%估計(jì)在AEC輸入處的噪聲幀能量。[confirmedNoVoiceFlag,aecInNoiseStateVars]=estnoise(aecInEnergy,…(micVad(frame)==0)&amp;(aecstatusGauge==0),aecInNoiseStateVars);aecInNoise=aecInNoiseStateVars(1);aecInNoise%顯示狀態(tài)aecInNoiseHist(frame)=aecInNoise;%保留用于調(diào)試%估計(jì)在AEC輸入處的回聲增益(信道增益)。%只在遠(yuǎn)端信號(hào)語音期間更新估計(jì)值(speakerVad(frame)==1)&amp;(aecStatusGauge>0.3),當(dāng)該比值正確時(shí)不管基準(zhǔn)計(jì)量包括話音和噪聲同時(shí)AEC輸入計(jì)量包括僅話音(aecInVoice>aecInNoise*8),和當(dāng)基準(zhǔn)能量不受量化的明顯影響(aecRefEnergy>=10/128)。瞬時(shí)增益計(jì)量不非常準(zhǔn)確,因?yàn)闀r(shí)間為校準(zhǔn)和頻譜改變。因此,使用一個(gè)平均處理?;芈曄鳛V波器系數(shù)的標(biāo)準(zhǔn)是信道增益的非常好的長期估計(jì)值??墒?,它不能足夠快地跟蹤正改變的回聲路徑。由于信道增益估計(jì)值也控制線性回聲消除器的自適應(yīng)速度,如果估計(jì)值盡可能與線性回聲消除器無關(guān)可以改善穩(wěn)定性。因此,使用下列方案如果瞬時(shí)計(jì)量(aecDhanGainTrial)少于估計(jì)值(aecGhanGain),該估計(jì)值呈指數(shù)下降。為加速自適應(yīng),估計(jì)值被直接設(shè)置為瞬時(shí)計(jì)量,如果誤差大于50%,和估計(jì)值呈指數(shù)下降如果誤差小于12.5%,即(aecChanGain-aecGhanGainTrial)/4>aecChanGain/32 aecChanGain-aecChanGainTrial>aecChanGain/8=aecChanGain*0.125如果瞬時(shí)計(jì)量大于估計(jì)值,如果近端話音在計(jì)量中不占明顯優(yōu)勢(shì)(aecChanGainTrial<2),估計(jì)值呈指數(shù)上升。使用相對(duì)比較例如(aecChanGainTrial<2*aecChanGain)將無效,因?yàn)楫?dāng)實(shí)際信道增益快速跳動(dòng)時(shí)沒有更新出現(xiàn)。使用下降時(shí)間常數(shù)1/8的上升時(shí)間常數(shù)有助于在瞬時(shí)計(jì)量中容忍近端話音。很難區(qū)別近端語音和當(dāng)信道回聲增益變壞的情況。上升時(shí)間常數(shù)在此確定了跟蹤速率,它按照經(jīng)驗(yàn)被確定。aecInVoice=max(0,aecInEnergy-aecInNoise);aecInVoiceHist(frame)=aecInVoice;if(speakerVad(frame)==1)&amp;(aecStatusGauge>0.3)&amp;…(aecInVoice>aecInNoise*8)&amp;(aecRefEnergy>=10/128),%量化aecInVoice為4Z8.20格式,以用作被除數(shù)獲得所需要的比例%desired scale for the quotient.aecChanGainTrial=floor(aecInVoice*2^20)/2^20/aecRefEnergy;%量化和限制系數(shù)為Z2.13格式aecChanGainTrial=min(4*ONE,floor(aecChanGainTrial*2^13)/2^13);%計(jì)算系數(shù)的平方根aecChanGainTrial=sqrt(aecChanGainTrial);%量化根為Z1.14格式aecChanGainTrial=floor(aecChanGainTrial*2^14)/2^14;if(aecChanGainTrial<aecChanGain/2),aecChanGain=aecChanGainTrial;elseif(aecChanGain>aecChanGainTrial),aecChanGain=aecChanGain-…max((aecChanGain-aecChanGainTrial)/4,aecChanGain/32);elseif(aecChanGainTrial<2*ONE),aecChanGain=min(ONE,aecChanGain+max(aecChanGain/256,2^(-11)));end%量化為Z.15格式aecChanGain=floor(aecChanGain*32768)/32768;%保留調(diào)整aecChanGainHist(frame)=aecChanGaihTrial;elseaecChanGainHist(frame)=ONE;endaecChanGain %顯示狀態(tài)aecSpeedHist(frame)=aecChanGain;%保留調(diào)整%再次確定更新%只要增益小于或等于1使用NLMS產(chǎn)生自適應(yīng)速率常數(shù)(與遠(yuǎn)端信號(hào)幅度無關(guān))%使用max運(yùn)算產(chǎn)生更快收斂,然后在分母上加1,因?yàn)楫a(chǎn)生的增益較高。%使用AEC基準(zhǔn)和近端輸入能量的最大值限制標(biāo)準(zhǔn)化增益,當(dāng)有近端噪聲和/或話音時(shí)。不使用AEC輸出能量而使用AEC近端輸入能量,因?yàn)樵谑諗亢蟛恍枰咴鲆?,和因?yàn)榉€(wěn)定性不是通過使用基于AEC輸出的另一個(gè)參數(shù)控制AEC更新增益來改善。aecInEnergy將小于沒有近端話音或噪聲的aecRefEnergy,以便避免送話器過載(由于送話器增益是按照最大近端語音電平設(shè)置的)。如果保證遠(yuǎn)端信號(hào)語音具有低近端噪聲(aecInEnergy/16>=aecOutEnergy)能量乘數(shù)被設(shè)置為8。反之,被設(shè)置為16。因此,當(dāng)汽車安靜時(shí)自適應(yīng)更快。太小的能量乘數(shù)引起較小穩(wěn)定性,在自適應(yīng)中產(chǎn)生過大行動(dòng)在回聲消除器輸出中產(chǎn)生尖峰信號(hào)。過大行動(dòng)也阻礙了具有正改變回聲路徑的遠(yuǎn)端信號(hào)語音與近端語音之間的區(qū)別。太大乘數(shù)在混亂后立即增加了回聲增益。在分子中,使用信道回聲增益作為乘數(shù)優(yōu)化信道自適應(yīng)速率。沒有該乘數(shù),自適應(yīng)或?qū)τ诟咝诺涝鲆媛谛枰驅(qū)τ诘托诺涝鲆娌环€(wěn)定。使用自適應(yīng)濾波器系數(shù)標(biāo)準(zhǔn)而非基于信道增益的能量產(chǎn)生長期更精確和連續(xù)的估計(jì)值,但是在回聲路徑改變的短期內(nèi)速率和穩(wěn)定性必須折中。if(aecInEnergy/16>=aecOutEnergy),aecDenom=max(1,8*max(aecRefEnergy,aecInEnergy));%為調(diào)整,設(shè)置因子等于負(fù)尺度值aecUpdatePactor(frame)=-aecStatusGauge;elseaecDenom=max(1,16*max(aecRefEnergy,aecInEnergy));%為調(diào)整,設(shè)置因子等于尺度值aecUpdateFactor(frame)=aecS tatuGauge;end%量化Z12.3格式。aecDenom=floor(8*aecDenom)/8aecNumer=aecChanGain*aecStatusGauge;%量化22Z8.3格式。aecNumer=floor(aecNumer*2^18)/2^18aecUpdateGain=min(aecNumer/aecDenom,ONE);%量化Z.15格式aecUpdateGain=floor(aecUpdateGain*32768)/32768;%使用自適應(yīng)增益使更新向量與系數(shù)向量相加。%在用作FIR系數(shù)使用之前aecCoef被乘以包絡(luò)。aecCoef=aecCoef+(aecUpdate*2^(-aecErrorShift)*aecUpdateGain);%量化S.15格式%加2^(-17)以強(qiáng)制1補(bǔ)數(shù)浮點(diǎn)起2補(bǔ)數(shù)浮點(diǎn)的作用,當(dāng)舍入具有恰好0.5的分?jǐn)?shù)的負(fù)數(shù)時(shí)。aecCoef=round(aecCoef*32768+2^(-17))/32768;aecCoef=max(min(aecCoef,ONE),-1);%噪聲抑制器將在此處理uplinkAudio。%通過只在一個(gè)子程序中使用aecUpdate和aecUpdateNear,它們可以在臨時(shí)存儲(chǔ)器中,可%重疊使用。%%ANLP幀前部分%%在ANLP輸入處積累能量,該處通過噪聲抑制器被連接到AEC輸出。anlpInEnergy=sum(uplinkAudio.2^);%量化能量為32位。anlpInEnergy=floor(anlpInEnery*ENERGY-SCALE)/ENERGY-SCALE;%在ANLP輸入處估計(jì)噪聲幀能量。%由于回聲估計(jì)值來自受話器信號(hào)而使用speakerVad。[confirmedNoVoiceFlag,anlpInNoiseStateVars]=estnoise(anlpInEnergy,…(micVad(frame)==0)&amp;(aecStatusGauge==0),anlpInNoiseStateVars);anlpInNoise=anlpInNoiseStateVars(1);anlpInNoiseHist(frame)=anlpInNoise; %保留調(diào)整%當(dāng)確認(rèn)沒有話音時(shí)計(jì)算舒適噪聲。if confirmedNoVoiceFlag,anlpComfortNoise=uplinkAudio(1:COMFORT-NOISE-SIZE);%在一階ARMA噪聲模型形式中使用NLMS算法估計(jì)anlpArCoef:%(1-anlpArCoef)*(1-0.8125*z^-1)/(1-anlpArCoef*z^-1)%該ARMA模型將用于濾波白噪聲以獲得聽起來象汽車噪聲的噪聲。%NLMS算法努力使下列表達(dá)式最?。rror=uplinkAudio*(1-anlpArCoef*z^-1)/(1+0.8125*z^-1)%誤差與-l之間的相關(guān)性是對(duì)系數(shù)估計(jì)值的更新。%anlpInEnergy用于標(biāo)準(zhǔn)化更新增益以提供與電平無關(guān)的自適應(yīng)速率。計(jì)算環(huán)路外的非零分%母以節(jié)省MIPS。anlpDenom=4*max(1/128,floor(anlpInEnergy*128)/128);error=0;for i=2:FRAME_SIZE,error=-0.8125*error;%量化5S4.31格式(10*uplinkAudio的最大值)error=floor(error*2^31)/2^31;error=error+uplinkAudio(i-1:i)*[-anlpArCoef;1];quotient=uplinkAudio(i-1:i-1)*floor(error*2^12)/2^12/anlpDenom;quotient=max(min(quotient,ONE),-1);%量化S.15格式quotient=floor(quotient*32768)/32768;anlpArCoef=anlpArCoef+quotient;anlpArCoef=max(min(anlpArCoef,ONE),-1);endanlpArGain=1-anlpArCoef;%標(biāo)繪舒適噪聲響應(yīng)頻率用于調(diào)整。%plot((0:8191)/8192*4000,…%20*log10(abs(freqz(anlpArGain*[10.8125],[1-anlpArCoef],8192))))%axis(
      )%pause(1)end%在AEC輸入處估計(jì)回聲的噪聲幀能量。%由于回聲估計(jì)值來自受話器信號(hào)使用speakerVad。[confirmedNoVoiceFlag,aecInEchoNoiseStateVars]=estnoise(...aecEchoEstEnergy,(speakerVad(frame)==0)&amp;(aecStatusGauge==0),...aecInEchoNoiseStateVars);aecInEchoNoise=aecInEchoNoiseStateVars(1);aecInEchoNoiseHist(frame)=aecInEchoNoise; %保留調(diào)整test1Hist(frame)=aecInEchoNoiseStateVars(2); %保留調(diào)整test2Hist(frame)=aecInEchoNoiseStateVars(3); %保留調(diào)整aecInEchoNoiseStateVars %顯示狀態(tài)%估計(jì)話音能量估計(jì)值。不使它們低于零。aecInEchoVoice=max(0,aecEchoEstEnergy-aecInEchoNoise);aecInEchoVoiceHist(frame)=aecInEchoVoice;aecNearVoice=max(0,aecInVoice-aecInEchoVoice);anlpInVoice=max(0,anlpInEnergy-anlpInNoise);anlpInVoiceHist(frame)=anlpInVoice;%向上滲漏線性回聲消除器基線回聲增益估計(jì)值。%將其用于與瞬時(shí)回聲增益比較以檢測(cè)近端語音和近端語音期間的ANLP增益。%大概內(nèi)瞬時(shí)回聲增益變差時(shí)它快得足以跟蹤。該滲漏作為快速跟蹤避免在具有變化回聲路徑遠(yuǎn)端單方談話期間近端語音檢測(cè)失敗和在遠(yuǎn)端話音/噪聲期間近端話音/噪聲失真最小之間的折中。當(dāng)遠(yuǎn)端單方談話在回聲路徑已經(jīng)改變后開始時(shí),aecNearGain可能下降,上升一些,然后下降。如果aecNearGain上升明顯高于aecVoiceGainBase,將檢測(cè)近端語音。如果這些發(fā)生,在aecNearGain上的滲漏可以增加防止此事發(fā)生。經(jīng)驗(yàn)性地找出5/4096的滲漏常數(shù)提供足夠的跟蹤速度??墒?,增加滲漏減少了在雙方談話期間近端語音的檢測(cè)。aecVoicegainBase=min(aecVoicegainBase+1/8192,ONE);%再次計(jì)算線性回聲消除器話音,排除該信道。%涉及的信道增益將使近端語音檢測(cè)不可靠。%計(jì)算線性回聲消除器輸入和輸出的話音能量比的根。%原始計(jì)量不以話音是否來自近端,遠(yuǎn)端或兩者為條件。%在ANLP輸入處提取線性回聲消除器輸出,因?yàn)樵撔盘?hào)已經(jīng)通過了噪聲抑制器,使計(jì)量更精確??繉?duì)能量的計(jì)量包括回聲中受話器的回聲失真。比較回聲消除器輸入和輸出的能量也避免當(dāng)比較回聲消除器輸出與基準(zhǔn)時(shí)出現(xiàn)的時(shí)間排隊(duì)(由于信道延遲)。%只有當(dāng)不被量化破壞(aecInVoice>8/2^7),當(dāng)出現(xiàn)話音(aecInVoice>aecInNoise*8),和當(dāng)殘留回聲可計(jì)量(anlpInVoice>anlpInNoise/2)時(shí),計(jì)量增益。%遠(yuǎn)端信號(hào)中的周期性成分不減少計(jì)量的精確度。if(aecInVoice>max(8/2^7,aecInNoise*8))&amp;…(anlpInVoice>anlpInNoise/2),aecVoiceGain=min(ONE,sqrt(anlpInVoice/(follr(aecInVoice*27)/2^7)));%量化Z.15格式aecVoicegain=floor(aecVoicegain*32768)/32768;%對(duì)總話音計(jì)量近端話音比。%這產(chǎn)生很少的由于改變具有遠(yuǎn)端單方談話的回聲路徑引起的近端話音失誤指示,因?yàn)樗蝗Q于回聲估計(jì)值的能量,而不依賴在輸出處回聲被消除得如何好。可是,就象aecVoiceGain,當(dāng)消除器是總的未訓(xùn)練時(shí)近端話音失誤指示也是可能的。由于話音計(jì)量是能量單位常用比值包括一個(gè)平方根??墒?,通過直接使用能量比值可以獲得近端話音與不良消除器訓(xùn)練之間更大的差別。這也節(jié)省MIPS。aecNearRatio=min(ONE,aecfNearVoice/(floor(aecInvoice*2^7)/2^7));%量化Z.15格式aecNearRatio=floor(aecfNearratio*32768)/32768;%在遠(yuǎn)端語音期間計(jì)量線性回聲消除器基線回聲增益估計(jì)值。無論何時(shí)存在遠(yuǎn)端單方談話都計(jì)量(aecStatusGauge>0.1)以保證參數(shù)跟蹤真實(shí)回聲增益(不是噪聲)。反之,可能聽到回聲。當(dāng)話音增益低于基線估計(jì)值更新基線回聲增益估計(jì)值,因?yàn)檫@指示遠(yuǎn)端單方談話的高可能性。通過使用當(dāng)它高于基線時(shí)通過使用滲漏和不使基線跟蹤話音,基線對(duì)噪聲和近端語音非常牢固。if(aecStatusGauge>0.1),aecVoiceGainBase=min(aecVoicegainBase,aecvoiceGain);end%在近端語音期間計(jì)量線性回聲消除器話音增益,和在遠(yuǎn)端單方談話期間(采用話音增益的最小值)重新設(shè)置。這將用于對(duì)話音增益基線的比較以檢測(cè)雙方談話。近端語音可能出現(xiàn)的唯一可使用指示符是回聲消除器尺度低(aecStatusgauge<0.3)和回聲消除器輸出包含足夠能量,該能量可能不只是殘余回聲(anlpInVoice>anlpInNoise*8)。記住由于遠(yuǎn)端語音中的周期性成分該尺度低。因此,需要額外裝置區(qū)別因回聲路徑改變或受話器失真話音增益突然變壞的情況和有近端語音的情況。當(dāng)在遠(yuǎn)端單方談話期間話音增益突然變壞時(shí),該持續(xù)時(shí)間往往很短。因此,濾除在該參數(shù)中的增量通常拒絕了遠(yuǎn)端單方談話事件。濾波器的時(shí)間常數(shù)是遠(yuǎn)端單方談話拒絕與雙方談話確認(rèn)速度之間的折中,它被以經(jīng)驗(yàn)確定。aecNearGainLast=aecNearGain;aecNearGain=min(aecNearGain,aecVoiceGain);if(aecStatusGauge<0.3)&amp;(anlpInVoice>anlpInNoise*8),aecNearGain=aecNearGain+(aecVoiceGain-aecNearGain)/8;%量化為Z.15格式aecNearGain=floor(aecNearGain*32768)/32768;end%使用近端語音三個(gè)檢測(cè)方法的任何一個(gè)。每個(gè)方法在某些條件下對(duì)近端語音更敏感。只有當(dāng)總話音比絕對(duì)電平或拒絕只出現(xiàn)噪聲的條件的噪聲平臺(tái)足夠大時(shí)才出現(xiàn)所有方法。%方法1%(aecInechoVoice<aecInVoice/4)等效于(aecNearRatio>=0.75),但是前者對(duì)量化不敏感。在aecNearRatio上的尖峰信號(hào)對(duì)于遠(yuǎn)端單方談話低電平是常有的。因此,預(yù)置必須高以避免錯(cuò)誤檢測(cè)。對(duì)該檢測(cè)方法需要的唯一限制是狀態(tài)尺度=0和話音增益基線低于0.4625=15155/32768。后者閾值是在當(dāng)消除器基本為訓(xùn)練時(shí)避免錯(cuò)誤檢測(cè)與消除器開始訓(xùn)練后盡快檢測(cè)雙方談話之間的經(jīng)驗(yàn)折中。%方法2%(aecInVoice>32/2^7&amp;anlpInVoice)拒絕低電平話音。這樣做,檢測(cè)對(duì)近端話音與總話音的低比率更敏感。再次,僅當(dāng)狀態(tài)尺度=0有助于拒絕遠(yuǎn)端單方談話時(shí)接受該條件。通過隨aecVoiceGainBase改變閩值優(yōu)化近端語音的敏感度。比例因子和偏移是當(dāng)消除器基本未訓(xùn)練時(shí)避免錯(cuò)誤檢測(cè)與消除器開始訓(xùn)練后對(duì)近端語音盡可能敏感之間的經(jīng)驗(yàn)折中。%方法3%當(dāng)回聲抑制突然和連續(xù)變壞時(shí)比較aecNearGain與aecVoiceGainBase檢測(cè)近端語音。這是因?yàn)閍ecVoiceGainBase不反映突然的變化,而aecNearGain使用濾波器保證檢測(cè)中的連續(xù)性。因?yàn)闉V波器被用于計(jì)算aecNearGain,條件更放松,其允許對(duì)近端語音更大的敏感度。這種條件包括使?fàn)顟B(tài)尺度<0.3而非=0,和沒有對(duì)話音增加最小絕對(duì)值電平。當(dāng)回聲路徑已經(jīng)改變而遠(yuǎn)端單方談話開始時(shí),aecNearGain可能下降但仍然在短時(shí)間保持高于aecVoiceGainBase。為避免這種情況下的音頻回聲,只有當(dāng)aecNearGain大于其最后值時(shí)檢測(cè)近端語音。if ((aecStatusGauge==0)&amp;(aecInEchoVoice<aecInVoice/4)&amp;…(aecVoiceGainBase<15155/32768))|… ((aecStatusGauge==0)&amp;(aecInVoice>32/2^7)&amp;…(anlpInVoice>anlpInNoise*8)&amp;…(aecNearRatio-aecVoiceGainBase*1.5>=9830/32768))|… ((aecNearGain-aecVoiceGainBase>=6554/32768)&amp;…(aecNearGain>aecNearGainLast)),%近端語音已經(jīng)檢測(cè)。%如果該幀開始了近端語音的新周期(暫停時(shí)間已經(jīng)過去而包含話音的最新幀只是回聲),則設(shè)置線性回聲消除器回聲增益等于基線回聲增益估計(jì)值。這只在近端語音周期開頭處進(jìn)行,以便在近端語音期間殘余回聲抑制器具有連續(xù)衰減而非因?yàn)榛€向上滲漏而增加失真,同時(shí)不進(jìn)行更新。if(anlpNearSpeechCount==0)&amp;(anlpNearSpeechflag==0),aecEchoGain=aecVoiceGainBase;end%設(shè)置表示包含話音的最后一幀的標(biāo)志。在不檢測(cè)話音幀期間將保留設(shè)置。anlpNearSpeechflag=1;%重新開始近端語音暫停時(shí)間計(jì)數(shù)器。當(dāng)非零時(shí),在雙方談話期間或當(dāng)話音能量低得不能檢測(cè)時(shí),將越過anlpNearSpeechflag由近端語音殘余回聲抑制器使失真最小。%如果僅當(dāng)遠(yuǎn)端單方談話被檢測(cè)時(shí)該計(jì)數(shù)器開始,在雙方談話期間將有更少的近端語音中斷。可是,近端人員說話后遠(yuǎn)端人員每次開始說話將聽到回聲,即使在長中止后。%當(dāng)有從近端語音到遠(yuǎn)端單方談話的快速轉(zhuǎn)變時(shí)(例如當(dāng)近端人員在遠(yuǎn)端人員語音中間談話時(shí)),暫停時(shí)間將產(chǎn)生遠(yuǎn)端人員聽到回聲(在-25dB)的短時(shí)間段。這種人工產(chǎn)物是值得的,因?yàn)闀和r(shí)間獲得的雙方談話期間的中斷明顯減少。anlpNearSpeechCount=25;%25*20ms=500ms暫停時(shí)間endend%如果回聲估計(jì)話音能量至少是近端話音能量的15/16,假設(shè)該幀只包含遠(yuǎn)端回聲語音,并清除近端語音標(biāo)志。如果近端語音暫停時(shí)間計(jì)數(shù)器已經(jīng)超時(shí),殘余回聲抑制器馬上到遠(yuǎn)端單方談話模式。反之,當(dāng)近端語音暫停時(shí)間計(jì)數(shù)器超時(shí)時(shí),殘余回聲抑制器馬上到遠(yuǎn)端單方談話模式。注意當(dāng)該計(jì)數(shù)器正工作時(shí)可以再次檢測(cè)近端語音,然后一旦計(jì)數(shù)器超時(shí)殘余回聲抑制器保持近端語音模式。%該檢測(cè)方案比較32位數(shù)字,而不使用基于能量電平、狀態(tài)尺度或根據(jù)前面幀的計(jì)量的任何限制(除了噪聲估計(jì))。因此,該方案相當(dāng)敏感而牢固。如果該方案檢測(cè)遠(yuǎn)端語音失敗,當(dāng)近端人員說話后遠(yuǎn)端人員開始說話時(shí),將聽到回聲,即使長中斷后。if(aecInEchoVoice>(aecInVoice-aecInVoice/16)),anlpNearSpeechFlag=0;end%如果近端語音暫停時(shí)間計(jì)數(shù)器已經(jīng)超時(shí),和包含話音的最新幀只是回聲,則設(shè)置線性回聲消除器的回聲增益再次等于最新計(jì)量出的線性回聲消除器話音增益。假設(shè)沒有出現(xiàn)近端語音,所以殘余回聲抑制器試圖抑制所有話音。這種實(shí)驗(yàn)在清除anlpNearSpeechFlag之后,以便aecEchoGain馬上反映該判決。if(anlpNearSpeechCount==0)&amp;(anlpNearSpeechFlag==0)。aecEchoGain=aecVoiceGain;endaecVoiceGainHist(frame)=aecVoiceGain;%保留調(diào)整aecVoiceGainBase %回聲狀態(tài)aecVoiceGainBaseHist(frame)=aecVoiceGainBase;%保留調(diào)整aecEchoGain %回聲狀態(tài)aecEchoGainHist(frame)=aecEchoGain; %保留調(diào)整aecNearRatioHist(frame)=aecNearRatio;%保留調(diào)整aecNearGainHist(frame)=aecNearGain; %保留調(diào)整anlpNearSpeechCount %回聲狀態(tài)anlpNearSpeechFlag%回聲狀態(tài)%計(jì)算環(huán)路回聲增益直到ANLP。當(dāng)需要滿足對(duì)該系統(tǒng)的總環(huán)路回聲抑制目標(biāo)時(shí)ANLP將衰減。%?貫穿音量控制。%aecChangain是從受話器到送話器-信道。%aecEchoGain是從線性回聲消除器的輸入到輸出。aecLoopEchoGain=aecChangain*aecEchoGain; %在此插入音量增益。%量化為Z.15格式aecLoopEchoGain=floor(aecLoopEchoGain*32768)/32768%設(shè)置ANLP窗口以捕獲所希望的殘余回聲,但是不再有了。這使近端話音和噪聲最小。由于AEC改善了其回聲增益ANLP窗口尺寸縮小。音量控制增益不再使用,因?yàn)锳NLP的檢測(cè)器包絡(luò)輸入在音量控制之后到達(dá)?;芈曉鲆婀烙?jì)RMS方面的計(jì)量,但ANLP需要抑制包括峰值的全部殘余回聲。因此,使用峰值/RMS因子乘數(shù)(=3)。anlpWindowGain的動(dòng)態(tài)范圍是二,因?yàn)楫?dāng)線性回聲消除器基本未訓(xùn)練時(shí)anlpWindowGain需要至少是二以捕獲在該窗口內(nèi)的回聲。anlpWindowGain=min(2*ONE,3*aecChangain*aecEchoGain);%量化為Z1.14格式anlpWindowGain=floor(anlpWindowGain*16384)/16384;%如果VAD指示在受話器上只有噪聲,則以通過模式輸入ANLP(增益=1)。該VAD允許高質(zhì)量的近端單方談話,因?yàn)闆]有近端語音失真或噪聲。當(dāng)只有噪聲時(shí)VAD經(jīng)常告知有話音,所以需要其它裝置使在此情況下的近端語音失真和噪聲最小。當(dāng)由低話音電平時(shí)VAD也經(jīng)常告知只有噪聲。此問題與受話器上的噪聲電平成某種比例??墒?,在環(huán)路中具有線性回聲消除器提供了足夠的回聲抑制,使這些情況下的回聲不發(fā)聲。if speakerVad(frame)==0,%近端單方談話條件anlpEchoGain=ONE;%由于speakerVad=1,受話器最可能具有語音,但不一定。如果近端語音被檢測(cè),假設(shè)雙方談話。在此情況下,設(shè)置總環(huán)路回聲抑制目標(biāo)為-25dB(1843/32768),和設(shè)置ANLP增益為在環(huán)路其余部分中不提供的所需要的回聲抑制。ANLP增益越高(抑制越低)和當(dāng)用戶將音量從最大刻度下調(diào)時(shí)失真被減少。當(dāng)訓(xùn)練線性回聲消除器時(shí),ANLP增益在此模式中一般高于-10dB,所以噪聲掩蓋沒有改善聲音質(zhì)量。遠(yuǎn)端用戶在雙方談話期間將聽到一些回聲,但是這種人造產(chǎn)物比中斷或近端話音的高失真更可取。elseif(anlpNearSpeechCount>0)|(anlpNearSpeechFlag==1),%雙方談話anlpEchoGain=1843/32768/aecLoopEchoGain;%由于seakerVad=1和近端語音沒有檢測(cè),假設(shè)有遠(yuǎn)端單方談話??偔h(huán)路回聲抑制目標(biāo)是-56dB(52/32768)以便當(dāng)兩端具有安靜背景時(shí)回聲幾乎不發(fā)聲。如同在雙方談話模式,ANLP增益被設(shè)置為所需要的環(huán)路其余部分不提供的回聲抑制,和當(dāng)用戶將音量從最大刻度下調(diào)時(shí)和當(dāng)線性回聲消除器訓(xùn)練時(shí)ANLP增益更高和減少失真??墒?,衰減到回聲不發(fā)聲而低于噪聲平臺(tái)所需要的增益可能更高,所以兩個(gè)增益的較高者用于ANLP使失真最小。沒有舒適噪聲,用相同因子衰減回聲和噪聲兩者將不改變信噪比;所以噪聲掩蓋不起作用。舒適噪聲使ANLP輸入和輸出上的噪聲為相同電平。因此,ANLP可以回聲衰減到低于噪聲平臺(tái)的可發(fā)聲閾值,而沒有不必要的失真。因?yàn)檫@些變量是能量單位的,采用噪聲/話音比的平方根。將所需要的回聲/噪聲定量乘以實(shí)際噪聲/回聲比值使噪聲析出。剩下的是所需要的實(shí)際回聲比值,它是掩蓋回聲所需要的增益。else%遠(yuǎn)端單方談話條件ECHO-TO-NOISE-GOAL=1/8;%-18dBif(anlpInVioce>anlpInNoise),anlpEchoGin=max(52/32768/aecLoopEchoGain,…ECHO-TO-NOISE-GOAL*sqrt(anlpInNoise/anlpInVioce));else%在嘈雜條件下,該增益不超過ECHO-TO-NOISE-GOAL,盡管理論上它可以用于低能量話音,因?yàn)楫?dāng)噪聲電平快速下降時(shí)噪聲估計(jì)太大(汽車減速)。這使當(dāng)ANLP回聲增益太高時(shí)將聽到回聲。anlpEchoGain=max(52/32768/aecLoopEchoGain,ECHO-TO-NOISE-GOAL);endendanlpEchoGain=min(ONE,anlpEchogain);%量化為Z.15格式anlpEchoGain=floor(anlpEchoGain*32768)32768anlpGainHist(frame)=anlpEchoGain;%保留調(diào)整%遞減近端語音暫停計(jì)數(shù)器,如果需要,以便獨(dú)立于受話器VAD工作。anlpNearSpeechCount=max(0,anlpNearSpeechCount-1);%%ANLP樣本部分%%如果ANLP回聲增益是1,ANLP不激活-跳過以節(jié)省MIPS。if(anlpEchoGain==ONE),%保持包絡(luò)檢測(cè)器運(yùn)行。for k=1:FRAME-SIZE,anlpRef=aecRef(FRAME-SIZE+1);anlpRefEnvelope=max(abs(anlpRef),255/256*anlpRefEnvelope);anlpRefEnvelope=floor(anlpRefEnvelope*2^31)/2^31;end%將用于AC中心衰減器的變量更新成為與處理整個(gè)幀產(chǎn)生的變量相同。anlpOutLast=uplinkAudio(FRAME-SIZE);elsefork=1:FRAME-SIZE,%ANLP遠(yuǎn)端基準(zhǔn)=AEC基準(zhǔn)。使用aecEchoEst替代或額外使用不給出更好的結(jié)果,因?yàn)閍ecEchoEst與殘余回聲很不相關(guān)。由于優(yōu)先于包含在anlIn中最早的回聲,AEC基準(zhǔn)同樣有效。在峰值檢測(cè)器中的長時(shí)間常數(shù)是ANLP的關(guān)鍵,而它使anlpRef與殘余回聲的接近延遲匹配不必要。進(jìn)入AEC基準(zhǔn)延遲線的偏移可以改變以補(bǔ)償由于超采樣、少采樣、緩存器,和/或最小信道延遲引起的回聲路徑中固定延遲。anlpRef=aecRef(FRAME-SIZE-k+1);%包絡(luò)檢測(cè)(峰值檢測(cè))anlpRef信號(hào)。%峰值檢測(cè)器中的指數(shù)延遲模擬了汽車中的反射延遲。設(shè)置時(shí)間常數(shù)以處理預(yù)計(jì)的最慢延遲反射條件。%少于255/256的極點(diǎn)導(dǎo)致回聲通過。%大于255/256的極點(diǎn)導(dǎo)致近端的過度失真。anlpRefEnvelop=max(abs(anlpRef),255/256*anlpRefEnvelop)%anlpRefEnvelop對(duì)于存儲(chǔ)是32位。%16位左右的anlpRefEnvelop將不衰減到低于512/2^15。當(dāng)?shù)陀?56/2^15時(shí)截短到16位的anlpRefEnvelop每個(gè)樣本衰減1位,而這太快了(導(dǎo)致回聲通過)。%量化為Z.31格式anlpRefEnvelope=floor(anlpRefEnvelop*2^31)/2^31;%ANLP的增量值是由AEC控制的增益并限制為1。anlpDelta=min(ONE,…anlpWindowGain*floor(anlpRefEnvelope*32768)/32768);%量化為Z.15格式anlpDelta=floor(anlpDelta*32768)/32768;anlpDeltaHist((frame-1)*FRAME-SIZE+k)=anlpDelta%保留調(diào)整%%執(zhí)行AC中心衰減器%%ANLP輸入通過噪聲抑制器連接到AEC輸出。anlpIn=uplinkAudio(k);%如果該輸入低于窗口if(anlpOutLast-anlpIn)>=aDlpDelta,%使用所有窗口外信號(hào)并衰減窗口內(nèi)信號(hào)。anlpOutLast=anlpIn+anlpDelta-…anlpEchoGain*anlpDelta;%此外如果輸入高于該窗口,else if(anlpIn-anlpOutLast)>=anlpDelta,%使用所有窗口外信號(hào)并衰減窗口內(nèi)信號(hào)。anlpOutLast=anlpIn+anlpDelta-…anlpEchoGain*anlpDelta;%此外如果輸入在該窗口內(nèi),else%衰減該信號(hào)。anlpOutLast=anlpEchoGain*(anlpIn-anlpOutLast)+anlpOutLast;end%anlpOutLast=floor(anlpOutLast*32768)/32768;%保留到下次。%%加入舒適噪聲以至ANLP輸出噪聲具有與輸入到ANLP的汽車噪聲輸入相同的電平和相似頻譜。%%使用來自汽車的捕獲噪聲幀的隨機(jī)樣本。%即使從汽車捕獲的音頻偶然包含話音,這產(chǎn)生與汽車噪聲相同功率的白噪聲。anlpSeed=rem(48271*anlpSeed,2147483647);anlpComfortNoiseIn=anlpcomfortNoise(1+…rem(anlpSeed,COMFORT-NOISE-SIZE));%使用上面討論的ARMA模型濾除白噪聲。%假設(shè)anlpArGain=1-anlpArCoef,下列是等效式,%anlpComfortNoiseOut=anlpArCoef*anlpComfortNoiseOutOld+…%anlpArGain*(anlpComfortNoiseIn+0.8125*anlpComfortNoiseInOld);ma=anlpComfortNoiseIn+0.8125*anlpComfortNoiseInOld;%移動(dòng)平均maDiff=anlpComfortNoiseInOld-ma;%量化為S1.15格式%舍入是必須的以避免在舒適噪聲上的偏移。%當(dāng)舍入具有剛好0.5分?jǐn)?shù)的負(fù)數(shù)時(shí),加入2^(-17)強(qiáng)制1的補(bǔ)碼浮點(diǎn)起2的補(bǔ)碼相同的作用。maDiff=round(maDiff*32768+2^(-17))/32768;anlpComfortNoiseOut=ma+anlpArCoef*maDiff;%量化為S1.15格式%舍入是必須的以避免在舒適噪聲上的偏移。anlpComfortNoiseOut=round(anlpComfortNoiseOut*32768+2^(-17))/32768;anlpComfortNoiseOut=max(-1,min(ONE,anlpComfortNoiseOut));%為下個(gè)環(huán)路延遲變量anlpComfortNoiseInOld=anlpComfortNoiseIn;anlpComfortNoiseOutOld=anlpComfortNoiseOut;%限制舒適噪聲到窗口尺寸。anlpComfortNoiseOut=min(anlpdelta,…max(-anlpdelta,anlpComfortNoiseOut));%將舒適噪聲乘以比例以便ANLP輸出噪聲等于ANLP輸入噪聲電平。anlpComfortNoiseOut=anlpComfortNoiseOut*(ONE-anlpEchoGain);%量化為S.15格式anlpComfortNoiseOut=floor(anlpComfortNoiseOut*32768)/32768;%將舒適噪聲加入到ANLP輸出信號(hào)中。uplinkAudio(k)=max(-1,min(ONE,anlpOutLast+anlpComfortNoiseOut));endend%將在整數(shù)幀中的幀上采集的輸出保留在文件中。fwrite(fidOut,[uplinkAudio;aecOut]*32768,′int16′);%顯示([′aecInEnergy=′dec2hex(aecIhEnergy*ENERGY_SCALE)])%顯示([′aecErrorShift=′dec2hex(aecErrorShift+(aecErrorShift<0)*65536)])%顯示([′aecUpdate(1)=′dec2hex(aecUpdate(1)*32768+(aecUpdate(1)<0)*65536)])%顯示([′aecUpdate(2)=′dec2hex(aecUpdate(2)*32768+(aecUpdate(2)<0)*65536)])%顯示([′aecUpdateNear(1)=′…% dec2hex(aecUpdateNear(1)*32768+(aecUpdateNear(1)<0)*65536)])%顯示([′aecUpdateNear(2)=′…% dec2hex(aecUpdateNear(2)*32768+(aecUpdateNear(2)<0)*65536)])%顯示([′aecUpdatePeak2=′dec2hax(aecUpdatePeak2*2^31)])%顯示([′aecOutEnergy =′dec2hex(aecOutEnergy*ENERGY_SCALE)])%顯示([′aecRefEnergy=′dec2hex(aecRefEnergy*128)])%顯示([′anlpInEnergy=′dec2hex(anlpInEnergy*ENERGY_SCALE)])%顯示([′aecUpdateBase=′dec2hex(aecUpdateBase*32758)])%顯示([′aecUpdatePeak=′dec2hex(aecUpdatePeak*32768)])%顯示([′aecPeakToBase=′dec2hex(aecPaakToBasa*16)])%顯示([′aecStatusGauge=′dec2hex(aecStatusGauge*32768)])%顯示([′aecInNoise=′dec2hex(aecInNoise*2^31)])%顯示([′anlpInNoise=′dec2hex(anlpInNoise*2^31)])%顯示([′anlpComfortNoise(1)=′…%dec2hex(anlpComfortNoise(1)*32768+(aillpComfortNoise(1)<0)*65536)])%顯示([′anlpComfortNoise(2)=′…%dec2hex(anlpComfortNoise(2)*32768+(anlpComfortNoise(2)<0)*65536)])%顯示([′anlpArCoef=′dec2hex(anlpArCoef*2^31)])%顯示([′anlpArGain=′dec2hex(anlpArGain*32768)])%顯示([′aecChanGainTrial=′dec2hex(aecChanGainTrial*?)])%顯示([′aecChanGain=′dec2hex(aecChanGain*32768)])%顯示([′aecVoiceGainBase=′dec2hex(aecVoiceGainBase*32768)])%顯示([′aecVoiceGain=,dec2hex(aecVoiceGain*32768)])%顯示([′aecEchoGain=′dec2hex(aecEchoGain*32768)])%顯示([′aecDenom=′dec2hex(aecDenom*8)])%顯示([′aecNumer =′dec2hex(aecNumer*2^18)])%顯示([′aecUpdateGain=′dec2hex(aecUpdateGain*32768)])%顯示([′aecCoef(1)=′dec2hex(aecCoef(l)*32768+(aecCoef(1)<0)*65536)])%顯示([′aecCoef(2)=′dec2hex(aecCoef(2)*32768+(aecCoef(2)<0)*65536)])%顯示([′anlpWindowGain=′dec2hex(anlpWindowGain*16384)])%顯示([′anlpEchoGain=′dec2hex(anlpEchoGain*32768)])%顯示([′anlpEchoGain=′]);20*log10(anlpEchoGain)%顯示([′anlpComfortNoiseInOld=′dec2hex(anlpComfortNoiseInOld*32768)])%顯示([′anlpComfortNoiseOutOld=′dec2hex(anlpComfortNoiseOutOld*32768)])%顯示([′uplinkAudio(1)=′…% dec2hex(uplinkAudio(1)*32768+(uplinkAudio(1)<0)*65536)])%顯示([′uplinkAudio(2)=′…% dec2hex(uplinkAudio(2)*32768+(uplinkAudio(2)<0)*65536)])%暫停%標(biāo)繪([abs(aecUpdate)/aecUpdateBase;…% zeros(AEC_REF_TAPS-AEC_REF_TAPS-AEC_NEAR_TAPS,1);…%abs(aecUpdateNear)/aecUpdateBase])%軸線(
      )%x標(biāo)簽(′Update element′),y標(biāo)簽(′Normalized update magnitude′),暫停%標(biāo)繪(20*log10(abs(aecCoef.*profile))),軸線(
      );%x標(biāo)簽(′Coefficient number′),y標(biāo)簽(,Magnitude in dB′),暫停endfclose(fidOut);清除AEC_MAX_GAIN_THRESH AEC_BASELINE_THRESH_AEC_STATUS_GAUGE_SCALER ONE清除AEC_COEF_TAPS_AEC_NEAR_TAPS_AEC_REF_TAPS清除FRAME_SIZE FRAME_BITS ENERGY_SCALE COMFORT_NOISE_SIZE清除confirmedNoVoiceFlag清除LRmatrix downlinkAudio uplinkAudio aecRef aecUpdate aecUpdateNear aecOut清除frame m k i anlpSeed aecEchoEst aecShiftPending aecErrorShift ASM T清除aecRefEnergy aecInEnergy aecOutEnergy anlpInEnergy aecEchoEstEnergy清除anlpIn anlpRef anplRefEnvelope anlpDelta anlpOutLast清除aecUpdatePeak2 aecUpdatePeak aecUpdateBase aecPeakToBase清除aecStatusGauge aecDenom aecNumer aecUpdateGain aecLoopEchoGain清除aecInNoiseStateVars aecInEchoNoiseStateVars anlpInNoiseStateVars清除aecInVoice anlpInVoice aecInEchoVoice aecNearVoice清除aecNearRatio aecNearGainLast anlpEchoGain清除aecChanGainTrial anlpComfortNoiseIn anlpComfortNoiseOut清除aecPeakGain anlpwindowGain anlpDenom anlpArGain error quotient ma清除fidIn fidOut anlpNearSpeechCount anlpNearSpeechFlag ECHO_TO_NOISE_GOAL%根據(jù)一個(gè)信號(hào)的幀能量估計(jì)噪聲幀能量。%基于標(biāo)準(zhǔn)的噪聲估計(jì)用32比特的變量提供更寬的動(dòng)態(tài)范圍,因此即使在非常低的噪聲電平時(shí)(例如test_65.raw的遠(yuǎn)端)該運(yùn)算也保持不變。然而,基于標(biāo)準(zhǔn)的算法要求平方根和32比特平方運(yùn)算(更高的MIPS(百萬條指令/秒))。該基于能量的算法已經(jīng)為低噪聲電平的量化進(jìn)行優(yōu)化,并且它進(jìn)行一個(gè)可以接收的工作-尤其考慮噪聲電平估計(jì)對(duì)于非常低的噪聲電平(話音始終遠(yuǎn)大于噪聲)并不重要。還說明可以為基于標(biāo)準(zhǔn)和基于能量的算法使自適應(yīng)速度相同。在此所有的調(diào)整操作使用移位-僅為基于標(biāo)準(zhǔn)的算法移位一個(gè)以上的比特。%目標(biāo)是在信號(hào)中沒有語音時(shí)快速更新估計(jì),否則慢速更新估計(jì)。需要恒定自適應(yīng)以在汽車噪聲快速變化時(shí)予以跟蹤。話音激活檢測(cè)器(VAD)輸出對(duì)于確定何時(shí)快速更新是一個(gè)好的開始,但當(dāng)確實(shí)存在遠(yuǎn)高于噪聲的話音低電平時(shí)它有時(shí)指示沒有話音。NoVoiceFlag是由線性回波消除器的狀態(tài)標(biāo)準(zhǔn)限定后的VAD輸出以提高可靠性。然而,狀態(tài)標(biāo)準(zhǔn)并不區(qū)分噪聲和近端話音、雙方講話或音調(diào)。因此,該算法必須容許快速更新周期內(nèi)的一些話音。狀態(tài)標(biāo)準(zhǔn)順利工作的時(shí)間是在遠(yuǎn)端單方講話時(shí),在此對(duì)于正確估計(jì)噪聲以避免可以聽到的回波是最重要的。在此使用以降低錯(cuò)誤偏差(主要出現(xiàn)在近端話音過程中)的技巧是根據(jù)比較結(jié)果而不是線性濾波能量信號(hào)以固定速率提高和降低估計(jì)。使用提高時(shí)間常量1/4的降低時(shí)間常量使估計(jì)偏向于噪聲電平,而不考慮某些噪聲。通過固定增量而非固定時(shí)間常量提高和降低將導(dǎo)致與噪聲電平成正比的時(shí)間常量。%很難講出上升噪聲電平和話音之間的差別。在此提高常量確定跟蹤速率。然而,提高必須很慢以在話音過程中最小化誤差增長。執(zhí)行狀態(tài)機(jī)以在某些條件下允許噪聲估計(jì)更快的增加。如果狀態(tài)機(jī)觀察到在無話音的過程中在至少900毫秒的時(shí)間內(nèi)信號(hào)能量大于噪聲估計(jì)的八倍,假定噪聲電平已經(jīng)增加,并設(shè)置噪聲電平使其等于測(cè)試周期的測(cè)試噪聲估計(jì)。當(dāng)輸入噪聲由來自遠(yuǎn)端的噪聲控制時(shí),由于AMPS帶內(nèi)控制信道或者由于不良的射頻條件的消隱將致使噪聲電平臨時(shí)下降。狀態(tài)機(jī)在消隱之后試圖恢復(fù)噪聲估計(jì)。首先確認(rèn)能量下降在5和25個(gè)幀長度之間。然后確認(rèn)能量返回到原始水平。如果能量保持在圍繞原始噪聲電平的窗口內(nèi),需要較短的確認(rèn)周期。如果能量跳變得遠(yuǎn)高于原始水平,則可能出現(xiàn)噪聲,并需要一個(gè)較長的確認(rèn)周期以確保噪聲電平未下降。%NoiseStateVars矩陣的定義(1)=噪聲估計(jì)(2)=消隱之前的噪聲估計(jì)或測(cè)試噪聲估計(jì)(3)=狀態(tài)變量/計(jì)數(shù)器function[confirmedNoVoiceFlag、noiseStateVars]=…estnoise(inEnergy、noVoiceFlag、noiseStateVars)%以與父程序相同的方式定義所需常量。%更新綜合周期內(nèi)的抽樣數(shù)。FRAME_SIZE=160;%向右移位在一個(gè)抽樣幀上的累加值的比特?cái)?shù)。FRAME_BITS=ceil(log2(FRAME_SIZE));%將能量量化成32比特的比例因子(Z8.23格式w/FRAME_SIZE=160)ENERGY_SCALE=2^(31-FRAME_BITS);%如果父程序已經(jīng)初始化噪聲估計(jì),if noiseStateVars(1)==FRAME_SIZE,%采取行動(dòng)以加速呼叫開始的自適應(yīng);%設(shè)置標(biāo)記以便舒適噪聲將用該電平初始化;confirmedNoVoiceFlag=1;%開始于等于該能量的噪聲估計(jì)。NoisestateVars(1)=inEnergy;Else%更新噪聲估計(jì)。%通過缺省,清除標(biāo)志以便指示沒有舒適噪聲訓(xùn)練。ConfirmedNoVoiceFlag=0;%在白噪聲上Matlab中執(zhí)行下述偏向測(cè)試%>>n=160*3000;noise=zeros(1.m);%>>seed=1;for i=l:n,[noise(i)seed]=noisegen(seed);end%>>m=3000;for i=l:m,noiseEnergy(i)=sum(noise(160*(i-1)+1:160*i).^2);end%>>ne=100;for i=l:m,if ne>noiseEnergy(i),%>>ne=ne-ne/16;else,ne=ne+ne/64;end,neh(i)=ne;end%>>plot(neh) %neh是噪聲估計(jì)歷史記錄。%>>axis(
      } %注意neh在10幀之后調(diào)整。%>>1/(sum(neh(11:m))/(m-10)/(sum(noiseEnergy)/m)-1)%ans=-14.2082%這表示噪聲估計(jì)具有大約-1/14的偏向因子。%為了簡化運(yùn)算,為了比較從噪聲估計(jì)中減去其值的1/16以恢復(fù)偏向。%在匯編時(shí),為了比特的正確性在減法之前向右移位。noiseBiased=noiseStateVars(1)-noiseStateVars(1)/16;%量化成32比特noiseBiased=cell(noiseBiased*ENERGY_SCALE)/ENERGY_SCALE%如果VAD和狀態(tài)標(biāo)準(zhǔn)指示沒有話音,if noVoiceFlag,%快速調(diào)整噪聲估計(jì)。%如果噪聲估計(jì)太高,if noiseBiased>inEnergy,%降低噪聲估計(jì)。%為加速跟蹤下降的噪聲電平,如果噪聲估計(jì)高至8倍,設(shè)法立即設(shè)置噪聲估計(jì)使其等于信號(hào)能量,然而,這使得在激活時(shí)偏向極其相反,并產(chǎn)生錯(cuò)誤檢測(cè)問題。該時(shí)間常量太短以致于使噪聲估計(jì)反而工作得很好。%為了最小化偏差,在噪聲估計(jì)等于信號(hào)能量時(shí)不要降低。%除了零點(diǎn)之外,量化致使最小的改變1/ENERGY_SCALE。%在匯編中,為了比特的正確性在右移之前取反。noiseStateVars(1)=noiseStateVars(1)-noiseStateVars(1)/16;%為舒適噪聲訓(xùn)練設(shè)置標(biāo)記。輸入能量低于噪聲估計(jì)的要求提高了在話音期間不改變舒適噪聲的可能性。ConfirmedNoVoiceFlag=1;Else%提高噪聲估計(jì)。%使用最小增量以避免停滯在零點(diǎn)附近。%改為不使用相加min(noiseStateVars(1)/64、1/ENERGY_SCALE),因?yàn)樗鼘?dǎo)致較慢的自適應(yīng)以致瞬間增加的噪聲。NoiseStateVars(1)=noiseStateVars(1)+noiseStateVars(1)/64+……1/ENERGY_SCALE;EndElse%緩慢提高噪聲估計(jì)。%因?yàn)檎_跟蹤遞減噪聲電平的重要性,在話音期間不停止自適應(yīng)。噪聲的估計(jì)過高導(dǎo)致話音能量的估計(jì)過低。由于較低的遠(yuǎn)端話音能量,這對(duì)NLP輸入的影響比對(duì)線性回波消除器的影響更明顯。因而,結(jié)果是不充分的回波抑制。所以最好過低估計(jì)噪聲,而不要過高估計(jì)噪聲。%如果噪聲估計(jì)過高,if noiseBiased>inEnergy,%降低噪聲估計(jì)。%除了在零點(diǎn)之外,量化致使最小的改變1/ENERGY_SCALE。%在匯編中,為了比特的正確性在右移之前求反。NoiseStateVats(1)=noiseStateVars(1)-noiseStateVars(1)/64;Else%提高噪聲估計(jì)。%乍看起來好象正確跟蹤遞減的噪聲電平僅需要在話音期間降低。然而,這將致使偏向變得過于相反。根據(jù)經(jīng)驗(yàn)將提高速率確定成最快的可能速率,而不允許話音期間過多的錯(cuò)誤變化。因?yàn)樵跁和Vg話音可以持續(xù)若干秒,這變得非常慢。%不使用最小增量,否則對(duì)于話音期間的低噪聲電平,上升沿將過大。NoiseStateVars(1)=noiseStateVars(1)+noiseStateVars(1)/1024;EndEnd%量化成32比特。NoiseStateVars(1)=floor(noiseStateVars(1)*ENERGY_SCALE)/ENERGY_SCALE;%用于AMPS消隱和噪聲跳變跟蹤的狀態(tài)機(jī)。%不要在初始化時(shí)執(zhí)行。%如果狀態(tài)機(jī)處于空閑狀態(tài),if noiseStateVars(3)==0,%如果信號(hào)能量已經(jīng)明顯低于噪聲估計(jì),并且如果inEnergy的量化并不給出錯(cuò)誤結(jié)果,if noiseStateVars(1)>max(8*inEnergy、8/ENERGY_SCALE),%為狀態(tài)機(jī)存儲(chǔ)噪聲估計(jì)。NoiseStateVars(2)=noiseStateVars(1);%開始狀態(tài)機(jī)以查找消隱。NoiseStateVars(3)=1;%如果VAD和狀態(tài)標(biāo)準(zhǔn)指示沒有話音,信號(hào)能量明顯高于噪聲估計(jì),并且如果噪聲估計(jì)的量化并不給出錯(cuò)誤結(jié)果,elseif noVoiceFlag&amp;…(inEnergy>max(8*noiseStateVars(1),8/ENERGY_SCALE)),%初始化測(cè)試噪聲估計(jì)。NoiseStateVars(2)=inEnergy;%開始狀態(tài)機(jī)以查找噪聲跳變。NoiseStateVars(3)=-1;End%否則如果狀態(tài)機(jī)在查找噪聲跳變,elseif noiseStateVars(3)<0,%如果VAD和狀態(tài)繼續(xù)指示沒有話音,并且如果信號(hào)能量保持明顯高于噪聲估計(jì),if noVoiceFlag&amp;(inEnergy>8*noiseStateVars(1)),%偏向測(cè)試噪聲估計(jì)就象正規(guī)的噪聲估計(jì)一樣。%在匯編中,為了比特的正確性在相減之前右移。NoiseBiased=noiseStateVars(2)-noiseStateVars(2)/16;%量化成32比特。NoiseBiased=cell(noiseBiased*ENERGY_SCALE)/ENERGY_SCALE;%如果測(cè)試噪聲估計(jì)過高,if noiseBiased>inEnergy,%降低測(cè)試噪聲估計(jì)。%量化導(dǎo)致最小變化1/ENERGY_SCALE。%在匯編中,為了比特正確性在右移之前求反。NoiseStateVars(2)=noiseStateVars(2)-noiseStateVars(2)/16;Else%提高測(cè)試噪聲估計(jì)NoiseStateVars(2)=noiseStateVars(2)+noiseStateVars(2)/64;End%量化成32比特noiseStateVars(2)=floor(noiseStateVars(2)*ENERGY_SCALE)/ENERGY_SCALE;%遞減也用作一個(gè)計(jì)數(shù)器的狀態(tài)變量。NoiseStateVars(3)=noiseStateVars(3)-1;%如果在一個(gè)足夠長的周期內(nèi)信號(hào)能量保持明顯高于噪聲估計(jì)。%(測(cè)試跟蹤s_top10_1.raw的回波需要45個(gè)幀)if noiseStateVars(3)==-45,%噪聲估計(jì)跳轉(zhuǎn)到測(cè)試噪聲估計(jì)。NoiseStateVars(1)=noiseStateVars(2);%將狀態(tài)機(jī)重置回空閑狀態(tài)。NoiseStateVars(3)=0;EndElse,%否則狀態(tài)機(jī)在查找消隱。Else,%遞增狀態(tài)變量。NoiseStateVars(3)=noiseStateVars(3)+1;%狀態(tài)1-100計(jì)算所謂消隱周期內(nèi)的幀數(shù)。If noiseStateVars(3)<101,%如果能量再次變高,if 8*inEnergy>noiseStateVars(2),%如果消隱小于5幀,if noiseStateVars(3)-1<5,%檢測(cè)是錯(cuò)誤的或者不值得恢復(fù)噪聲估計(jì)。使?fàn)顟B(tài)機(jī)返回空閑狀態(tài)。NoiseStateVars(3)=0Else%話音已經(jīng)出現(xiàn)或者在消隱之前噪聲返回。%將狀態(tài)變量設(shè)置為101以啟動(dòng)下一程序段。NoiseStateVars(3)=101;End%如果低能量幀的計(jì)算過長,elseif noiseStateVars(3)-1==25,%消隱并未出現(xiàn)-而是噪聲電平降低。%使?fàn)顟B(tài)機(jī)返回空閑狀態(tài)。NoiseStateVars(3)=0;End%狀態(tài)機(jī)已經(jīng)檢測(cè)到所謂消隱周期的結(jié)束。%不考慮狀態(tài)機(jī)是否在計(jì)算話音或噪聲幀,首先檢測(cè)能量是否又降低。Elseif 8*inEnergy<noiseStateVars(2),%消隱并未出現(xiàn)-而是噪聲電平降低。%使?fàn)顟B(tài)機(jī)返回空閑狀態(tài)。NoiseStateVars(3)=0;%狀態(tài)101-200計(jì)算所謂消隱周期之后話音或噪聲幀的個(gè)數(shù)。Elseif noiseStateVars(3)<201,%如果能量變得很高,if inEnergy>noiseStateVars(2)*8,%假設(shè)這是話音。%將狀態(tài)變量設(shè)置為201以啟動(dòng)下一程序段。noiseStateVars(3)=201;%如果在最大和最小能量接近于所存儲(chǔ)的噪聲估計(jì)時(shí)存在足夠的幀數(shù),elseif noiseStateVars(3)-101==10,確認(rèn)消隱。將噪聲估計(jì)恢復(fù)成消隱之前的值。NoiseStateVars(1)=noiseStateVars(2);%使?fàn)顟B(tài)機(jī)返回空閑狀態(tài)。NoiseStateVars(3)=0;End%狀態(tài)201-300計(jì)算所謂消隱周期之后話音幀的個(gè)數(shù)。%如果在最小能量接近于所存儲(chǔ)的噪聲估計(jì)時(shí)存在足夠的幀數(shù),elseif noiseStateVars(3)-201==50,%確認(rèn)消隱。%將噪聲估計(jì)恢復(fù)成消隱之前的值。NoiseStateVars(1)=noiseStateVars(2);%使?fàn)顟B(tài)機(jī)返回空閑狀態(tài)。NoiseStateVars(3)=0;EndEndEnd]]></pre>**************************************************本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明不限于為說明目的已經(jīng)在此描述的特定示范性實(shí)施例。例如,所公開實(shí)施例的各種功能塊實(shí)際上是概念化的。這些決功能的實(shí)際實(shí)施可以使用各種技術(shù)完成。此外,可以使用幾個(gè)標(biāo)準(zhǔn)數(shù)字信號(hào)處理芯片實(shí)現(xiàn)每個(gè)示范性系統(tǒng),例如單一應(yīng)用性能的集成電路,或適當(dāng)配置的計(jì)算機(jī)。還注意,盡管已經(jīng)在在音頻回聲消除環(huán)境下描述了示范性實(shí)施例,本發(fā)明的教導(dǎo)同樣可以應(yīng)用于網(wǎng)絡(luò)回聲消除的環(huán)境中(例如,近端用戶是陸地線路用戶而遠(yuǎn)端用戶是移動(dòng)用戶的場(chǎng)合)。此外,本發(fā)明的某些方面一般可以應(yīng)用于通信系統(tǒng)而不限于回聲抑制系統(tǒng)。因此,本發(fā)明的范圍由附帶的權(quán)利要求書而非前面的說明書所限定,所有與本發(fā)明思想相一致的等同發(fā)明均包含在其中。
      權(quán)利要求
      1.一種配置用于衰減通信信號(hào)中回聲成分的回聲抑制裝置,該設(shè)備包括一個(gè)噪聲模擬處理器,配置以根據(jù)所述通信信號(hào)產(chǎn)生至少一個(gè)噪聲模型參數(shù),所述至少一個(gè)噪聲模型參數(shù)限定了所述通信信號(hào)的噪聲成分的一個(gè)參數(shù)模型;和一個(gè)噪聲發(fā)生處理器,配置以根據(jù)所述至少一個(gè)噪聲模型參數(shù)提供模擬出的噪聲樣本。
      2.按照權(quán)利要求1的回聲抑制裝置,其中所述回聲抑制裝置衰減所述通信信號(hào)的回聲和噪聲成分兩者以提供一個(gè)輸出信號(hào),其中所述模擬出的噪聲樣本被加入到所述輸出信號(hào)中以替代被衰減的噪聲成分。
      3.按照權(quán)利要求1的回聲抑制裝置,其中所述通信信號(hào)的噪聲成分被模擬成一個(gè)自回歸隨機(jī)過程。
      4.按照權(quán)利要求1的回聲抑制裝置,其中配置所述噪聲模擬處理器以通過根據(jù)所述通信信號(hào)樣本幀計(jì)算一個(gè)自相關(guān)向量來產(chǎn)生所述至少一個(gè)噪聲模擬參數(shù)。
      5.按照權(quán)利要求4的回聲抑制裝置,其中配置所述噪聲模擬處理器以循環(huán)地平滑對(duì)所述通信信號(hào)幾個(gè)幀計(jì)算出的自相關(guān)向量。
      6.按照權(quán)利要求4的回聲抑制裝置,其中配置所述噪聲模擬處理器以非循環(huán)地平滑對(duì)所述通信信號(hào)幾個(gè)幀計(jì)算出的自相關(guān)向量。
      7.按照權(quán)利要求4的回聲抑制裝置,其中配置所述噪聲模擬處理器以根據(jù)所述自相關(guān)向量計(jì)算一組濾波器系數(shù),所述濾波器系數(shù)為所述自回歸處理限定了一個(gè)頻譜整形濾波器。
      8.按照權(quán)利要求7的回聲抑制裝置,其中所述濾波器系數(shù)是使用一個(gè)Levinson-Durbin算法計(jì)算的。
      9.按照權(quán)利要求8的回聲抑制裝置,其中配置所述噪聲發(fā)生處理器以產(chǎn)生一個(gè)零平均偽隨機(jī)序列,所述序列具有與自相關(guān)向量零延遲系數(shù)成正比的方差,和對(duì)使用所述頻譜整形濾波器的所述序列濾波以提供所述模擬出的噪聲樣本。
      10.按照權(quán)利要求3的回聲抑制裝置,其中配置所述噪聲模擬處理器以通過使用回歸預(yù)定算法根據(jù)所述通信信號(hào)的樣本計(jì)算一組濾波器系數(shù)來產(chǎn)生所述至少一個(gè)噪聲模擬參數(shù),所述濾波器系數(shù)為所述自回歸處理限定了一個(gè)頻譜整形濾波器。
      11.按照權(quán)利要求10的回聲抑制裝置,其中所述自適應(yīng)算法是一個(gè)最小均方算法。
      12.按照權(quán)利要求10的回聲抑制裝置,其中所述自適應(yīng)算法是一個(gè)標(biāo)準(zhǔn)化最小均方算法。
      13.按照權(quán)利要求10的回聲抑制裝置,其中配置所述噪聲發(fā)生處理器以產(chǎn)生一個(gè)零平均偽隨機(jī)序列,所述序列具有與所述自適應(yīng)算法殘余誤差信號(hào)能量電平成正比的方差,和對(duì)使用所述頻譜整形濾波器的所述序列濾波以提供所述模擬出的噪聲樣本。
      14.按照權(quán)利要求1的回聲抑制裝置,其中所述通信信號(hào)的噪聲成分被模擬成為一個(gè)自回歸移動(dòng)平均過程。
      15.按照權(quán)利要求14的回聲抑制裝置,其中根據(jù)與環(huán)境相關(guān)的預(yù)先信息固定在頻譜整形濾波器中限定所述自回歸移動(dòng)平均過程的一組零點(diǎn),在該環(huán)境中將實(shí)現(xiàn)所述回聲抑制裝置。
      16.按照權(quán)利要求15的回聲抑制裝置,其中配置所述噪聲模擬處理器以通過根據(jù)所述通信信號(hào)的樣本幀計(jì)算一個(gè)自相關(guān)向量來產(chǎn)生所述至少一個(gè)噪聲模擬參數(shù)。
      17.按照權(quán)利要求16的回聲抑制裝置,其中在計(jì)算出所述自相關(guān)向量之前由一個(gè)中間濾波器對(duì)所述樣本幀濾波,所述中間濾波器包括對(duì)應(yīng)所述頻譜整形濾波器一組固定零點(diǎn)的一組固定極點(diǎn)。
      18.按照權(quán)利要求16的回聲抑制裝置,其中配置所述噪聲模擬處理器以循環(huán)地平均對(duì)所述通信信號(hào)樣本幀所計(jì)算出的自相關(guān)向量。
      19.按照權(quán)利要求16的回聲抑制裝置,其中配置所述噪聲模擬處理器以非循環(huán)地平滑對(duì)所述通信信號(hào)樣本幀所計(jì)算出的自相關(guān)向量。
      20.按照權(quán)利要求16的回聲抑制裝置,其中配置所述噪聲模擬處理器以根據(jù)所述自相關(guān)向量為所述頻譜整形濾波器計(jì)算一組極點(diǎn)。
      21.按照權(quán)利要求20的回聲抑制裝置,其中所述極點(diǎn)使用一個(gè)Levinson-Durbin算法計(jì)算的。
      22.按照權(quán)利要求20的回聲抑制裝置,其中配置所述噪聲發(fā)生處理器以產(chǎn)生一個(gè)零平均偽隨機(jī)序列,所述序列具有與自相關(guān)向量零延遲系數(shù)成正比的方差,和對(duì)使用所述頻譜整形濾波器的所述序列濾波以產(chǎn)生所述模擬出的噪聲樣本。
      23.按照權(quán)利要求15的回聲抑制裝置,其中配置所述噪聲模擬處理器以通過使用回歸預(yù)定算法根據(jù)所述通信信號(hào)的樣本為所述頻譜整形濾波器計(jì)算一組極點(diǎn)來產(chǎn)生所述至少一個(gè)噪聲模擬參數(shù)。
      24.按照權(quán)利要求23的回聲抑制裝置,其中所述自適應(yīng)算法是一個(gè)最小均方算法。
      25.按照權(quán)利要求23的回聲抑制裝置,其中所述自適應(yīng)算法是一個(gè)標(biāo)準(zhǔn)化最小均方算法。
      26.按照權(quán)利要求23的回聲抑制裝置,其中配置所述噪聲發(fā)生處理器以產(chǎn)生一個(gè)零平均偽隨機(jī)序列,所述序列具有與所述自適應(yīng)算法殘余誤差信號(hào)能量電平成正比的方差,和對(duì)使用所述頻譜整形濾波器的所述序列濾波以提供所述模擬出的噪聲樣本。
      27.按照權(quán)利要求14的回聲抑制裝置,其中所述自回歸移動(dòng)平均過程是一個(gè)一階過程,和其中限定所述一階過程的一個(gè)頻譜整形濾波器包括一個(gè)單一固定零點(diǎn)和一個(gè)單一可變極點(diǎn)。
      28.按照權(quán)利要求27的回聲抑制裝置,其中根據(jù)與環(huán)境相關(guān)的預(yù)先信息設(shè)置所述單一固定零點(diǎn),在該環(huán)境中將實(shí)現(xiàn)所述回聲抑制裝置。
      29.按照權(quán)利要求27的回聲抑制裝置,其中所述單一固定零點(diǎn)被設(shè)置得近似-1。
      30.按照權(quán)利要求27的回聲抑制裝置,其中所述單一固定零點(diǎn)被設(shè)置為-13/16。
      31.按照權(quán)利要求27的回聲抑制裝置,其中所述單一固定極點(diǎn)由α給出,和其中所述頻譜整形濾波器的增益與1-α成正比。
      32.按照權(quán)利要求27的回聲抑制裝置,其中配置所述噪聲模擬處理器以使用一個(gè)自適應(yīng)算法根據(jù)所述通信信號(hào)樣本計(jì)算所述單一可變極點(diǎn)。
      33.按照權(quán)利要求32的回聲抑制裝置,其中所述自適應(yīng)算法是一個(gè)最小均方算法。
      34.按照權(quán)利要求32的回聲抑制裝置,其中所述自適應(yīng)算法是一個(gè)標(biāo)準(zhǔn)化最小均方算法。
      35.按照權(quán)利要求32的回聲抑制裝置,其中配置所述噪聲發(fā)生處理器以產(chǎn)生一個(gè)零平均偽隨機(jī)序列,所述序列具有與自相關(guān)向量零延遲系數(shù)成正比的方差,和對(duì)使用所述頻譜整形濾波器的所述序列濾波以產(chǎn)生所述模擬出的噪聲樣本。
      36.按照權(quán)利要求1的回聲抑制裝置,其中所述通信信號(hào)噪聲成分的所述模型取決于所述通信信號(hào)樣本的線性正交變換。
      37.按照權(quán)利要求1的回聲抑制裝置,其中所述通信信號(hào)噪聲成分的所述模型是一個(gè)頻域模型。
      38.按照權(quán)利要求37的回聲抑制裝置,其中配置所述噪聲模擬處理器以通過根據(jù)所述通信信號(hào)樣本幀計(jì)算頻譜幅度的一個(gè)向量產(chǎn)生所述至少一個(gè)噪聲模擬參數(shù)。
      39.按照權(quán)利要求38的回聲抑制裝置,其中通過計(jì)算所述通信信號(hào)的所述樣本幀的付氏變換導(dǎo)出所述頻譜幅度向量。
      40.按照權(quán)利要求38的回聲抑制裝置,其中配置所述噪聲模擬處理器以循環(huán)地平滑對(duì)所述通信信號(hào)幾個(gè)幀所計(jì)算出的頻譜幅度向量。
      41.按照權(quán)利要求38的回聲抑制裝置,其中配置所述噪聲模擬處理器以非循環(huán)地平滑對(duì)所述通信信號(hào)幾個(gè)幀所計(jì)算出的頻譜幅度向量。
      42.按照權(quán)利要求38的回聲抑制裝置,其中配置所述噪聲發(fā)生處理器以產(chǎn)生相位值偽隨機(jī)序列并根據(jù)所述序列和所述頻譜幅度向量計(jì)算所述模擬出的噪聲樣本。
      43.按照權(quán)利要求42的回聲抑制裝置,其中通過計(jì)算一個(gè)復(fù)合向量的反付氏變換導(dǎo)出所述模擬出的噪聲樣本,在所述復(fù)合向量中的每個(gè)復(fù)合樣本包括來自所述頻譜幅度向量的一個(gè)頻譜幅度和來自所述偽隨機(jī)相位值序列的一個(gè)偽隨機(jī)相位。
      44.按照權(quán)利要求1的回聲抑制裝置,其中配置所述噪聲發(fā)生處理器以從所述通信信號(hào)樣本緩存器中偽隨機(jī)地選擇單一樣本,并使用由所述至少一個(gè)噪聲模擬參數(shù)限定的一個(gè)頻譜整形濾波器對(duì)所述偽隨機(jī)地選擇出的單一樣本序列濾波。
      45.一種回聲抑制裝置,包括一個(gè)回聲抑制器,配置用于衰減通信信號(hào)的回聲和噪聲成分;一個(gè)樣本緩存器,用于存儲(chǔ)所述通信信號(hào)的樣本幀;和一個(gè)噪聲發(fā)生處理器,配置用于從所述緩存器中偽隨機(jī)地選擇單一樣本,以便提供具有等于所述樣本幀功率電平的功率電平的白噪聲樣本的序列。
      46.按照權(quán)利要求45的回聲抑制裝置,其中所述噪聲發(fā)生處理器對(duì)所述白噪聲樣本序列濾波以提供被加入到所述回聲抑制器輸出中的舒適噪聲。
      47.一種回聲抑制裝置,包括一個(gè)回聲抑制器,配置用于衰減通信信號(hào)的回聲和噪聲成分;一個(gè)噪聲模擬和發(fā)生處理器,配置用于模擬所述通信信號(hào)的噪聲成分并根據(jù)所述模型對(duì)所述回聲抑制裝置提供舒適噪聲;一個(gè)話音激活檢測(cè)器,配置用于提供所述通信信號(hào)是否包括一個(gè)話音成分的一個(gè)指示;和一個(gè)噪聲電平估計(jì)器,配置用于計(jì)算所述通信信號(hào)噪聲電平的估計(jì)值并提供所述通信信號(hào)能量電平是否小于所述估計(jì)值的一個(gè)指示,其中所述噪聲模擬和發(fā)生處理器配置用于只當(dāng)所述話音激活檢測(cè)器指示在通信信號(hào)中沒有話音成分和所述噪聲電平估計(jì)器指示所述能量電平小于所述估計(jì)值時(shí)更新所述模型。
      48.一種回聲抑制裝置,包括一個(gè)回聲抑制器,配置用于衰減通信信號(hào)的回聲和噪聲成分,其中所述回聲抑制器消除所述通信信號(hào)落入衰減窗口內(nèi)的一部分;和一個(gè)舒適噪聲發(fā)生器,配置用于對(duì)所述回聲抑制裝置提供舒適噪聲,其中所述舒適噪聲發(fā)生器的一個(gè)輸出被限制到所述衰減窗口中以提供一個(gè)被加入到所述回聲抑制器音頻輸出中的受限舒適噪聲輸出。
      49.一種回聲抑制裝置,包括一個(gè)回聲抑制器,配置用于衰減通信信號(hào)的回聲和噪聲成分,其中所述回聲抑制器將所述通信信號(hào)落入衰減窗口內(nèi)的一部分乘以一個(gè)比例因子;和一個(gè)舒適噪聲發(fā)生器,配置用于對(duì)所述回聲抑制裝置提供舒適噪聲,其中所述舒適噪聲發(fā)生器的一個(gè)輸出被限制到所述衰減窗口中以提供一個(gè)受限舒適噪聲輸出,和其中所述受限舒適噪聲輸出根據(jù)所述比例因子成比例以提供被加入到所述回聲抑制器音頻輸出中的受限和成比例的舒適噪聲輸出。
      全文摘要
      公開了在回聲抑制系統(tǒng)中用于參數(shù)模擬背景噪聲和產(chǎn)生舒適噪聲的方法和設(shè)備。按照示范性實(shí)施例,背景噪聲模型是基于一組噪聲模型參數(shù),而噪聲模型參數(shù)又基于在回聲抑制系統(tǒng)中對(duì)實(shí)際背景噪聲的計(jì)量。該示范性實(shí)施例包括自回歸,自回歸移動(dòng)平均和頻域模型。示范性一階自回歸移動(dòng)平均模型包括固定單一零點(diǎn)和可變單一極點(diǎn)。該單一零點(diǎn)和單一極點(diǎn)在產(chǎn)生的模擬噪聲中足夠提供適合的頻譜斜率,和單一零點(diǎn)保證了模型是無條件穩(wěn)定的。也公開了利用各種回聲抑制系統(tǒng)的示范性參數(shù)噪聲模型的綜合。
      文檔編號(hào)H04M1/60GK1286862SQ98813859
      公開日2001年3月7日 申請(qǐng)日期1998年12月29日 優(yōu)先權(quán)日1998年1月9日
      發(fā)明者E·D·羅梅斯博格, L·S·布勒鮑姆, C·N·S·古魯帕蘭 申請(qǐng)人:艾利森公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1