欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

執(zhí)行低復(fù)雜性頻譜估計技術(shù)來產(chǎn)生舒適噪聲的方法和系統(tǒng)的制作方法

文檔序號:7520103閱讀:346來源:國知局
專利名稱:執(zhí)行低復(fù)雜性頻譜估計技術(shù)來產(chǎn)生舒適噪聲的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及信號頻譜估計,尤其涉及一種以較低復(fù)雜性來估計信號頻譜并且產(chǎn)生舒適噪聲的方法和系統(tǒng)。
背景技術(shù)
數(shù)字用戶線(DSL、數(shù)字用戶回路、xDSL)包含了一種能在常規(guī)銅制電話線上高速傳送數(shù)字數(shù)據(jù)的技術(shù)。這種技術(shù)包括那些為在最終用戶與電話公司之間的銅制電話線上提供高速數(shù)據(jù)通信而設(shè)計的數(shù)字電信協(xié)議。
在將兩個常規(guī)調(diào)制解調(diào)器經(jīng)由電話系統(tǒng)(例如公用交換電話網(wǎng)(PSTN))相連的時候,可以將所述通信視為等同于語音通話。這樣做具有不需要電話公司(telco)進行投資的優(yōu)點,但缺點則是可用于所述通信地帶寬與語音通話可用的帶寬相同,通常最多只有64kb/s(DS0)。如果電話公司將所述信號作為數(shù)字而不是模擬信號來進行處理,那么,進入單個家庭或辦公室的雙絞銅線通常能以高于64kb/s的速率來進行有效傳送。
目前存在關(guān)于這種基礎(chǔ)方案的多種實施方式,這些實施方式在所使用的通信協(xié)議方面存在差別,并且提供了不同的服務(wù)等級。其中通信吞吐量可以是從大約128kb/s到8Mb/s以上的任何速率,此外,所述通信可以是對稱的,也可以是不對稱的(也就是說,可用帶寬在上游和下游方向可以相同,也可以是不同)。而設(shè)備價格和服務(wù)費用也會明顯變化。
在多種不同類型的現(xiàn)代電信設(shè)備中,其中一個很重要的部件是語音處理子系統(tǒng),這個子系統(tǒng)可以執(zhí)行如下功能,例如代碼轉(zhuǎn)換、雙音調(diào)頻(DTMF)處理、回波消除等等。需要這類語音處理的設(shè)備實例包括從揚聲器電話到全球數(shù)字移動電話系統(tǒng)(GSM)基站乃至寬帶集成接入設(shè)備的所有一切設(shè)備。語音處理子系統(tǒng)可以基于數(shù)字信號處理(DSP),其特征是以軟件方式執(zhí)行一組算法。這些算法和DSP編程方面的專家可以借助匯編碼的形式來為這些算法手寫代碼。并且希望得到一種簡單的方法,用于在所需要的組合中組合所需要的算法,然后通過一個簡單的外部接口對接到語音處理子系統(tǒng)。
經(jīng)由數(shù)字用戶線的語音傳送(VoDSL)涉及對銅錢基礎(chǔ)架構(gòu)產(chǎn)生杠桿作用(leveraging),以便提供優(yōu)質(zhì)的語音服務(wù)并支持經(jīng)由現(xiàn)有線路到達客戶的多種數(shù)據(jù)應(yīng)用。VoDSL是在結(jié)合了啟用語音業(yè)務(wù)的平臺自適應(yīng)的情況下實現(xiàn)DSL平臺的。它向數(shù)據(jù)競爭性的地方交換運營商(CLEC)提供了一種提高收益的方法,并且為現(xiàn)任的地方交換運營商(ILEC)提供了針對電纜調(diào)制解調(diào)器的應(yīng)答,此外還為長途交換運營商(IXC)提供了一種能夠訪問本地語音環(huán)路的方法。因此,任何運營商類型都可以借助VoDSL來增加可用服務(wù)的價值。
通常,VoDSL包括一個語音網(wǎng)關(guān)、一個集成的接入設(shè)備(IAD)以及其他組件。語音網(wǎng)關(guān)可以提供語音分組,所述語音分組經(jīng)過拆包并且轉(zhuǎn)換成一種用于遞送到語音交換機或其他相似設(shè)備的格式。語音網(wǎng)關(guān)允許從一個數(shù)據(jù)網(wǎng)絡(luò)來對業(yè)務(wù)量進行訪問,并且允許將業(yè)務(wù)量轉(zhuǎn)發(fā)到PSTN,以便提供服務(wù)和進行交換。IAD可以充當DSL調(diào)制解調(diào)器并執(zhí)行其他功能。所述IAD也可以充當DSL網(wǎng)絡(luò)服務(wù)與客戶語音數(shù)據(jù)設(shè)備之間的一個接口。另外,IAD還可以提供DSL網(wǎng)絡(luò)服務(wù)與客戶網(wǎng)絡(luò)設(shè)備之間的接口。此外還可以使用IAD來連接那些啟用語音和數(shù)據(jù)的設(shè)備。
VoDSL也可以經(jīng)由網(wǎng)際協(xié)議來進行傳送。在這里可以把VoIP定義成經(jīng)由網(wǎng)際協(xié)議的語音傳送,其中包括任何一種能在IP網(wǎng)絡(luò)上實現(xiàn)語音電話的技術(shù)。而某些涉及VoIP的難題則包括以一種可靠的方式來向用戶提供語音、傳真或視頻分組。而這種處理是可以通過從信源提取語音或數(shù)據(jù)來實現(xiàn)的,其中數(shù)字化所述語音和數(shù)據(jù),并且由于因特網(wǎng)的受限帶寬而對所述語音和數(shù)據(jù)進行壓縮,此外還通過所述網(wǎng)絡(luò)來發(fā)送語音和數(shù)據(jù)。然后可以反轉(zhuǎn)這個處理,以便能夠通過語音來進行通信。VoIP使得包括公司以及其他實體在內(nèi)的用戶能夠經(jīng)由IP網(wǎng)絡(luò)而不是PSTN來發(fā)出電話呼叫。
與VoDSL、VoIP以及其他語音應(yīng)用相關(guān)聯(lián)的因素包括可用于提高帶寬和吞吐量的靜音抑制。靜音抑制消除了分組化電話通話靜音部分(例如在無人說話的時候)的必要性。為了對語音與數(shù)據(jù)信息同傳的比特率進行優(yōu)化,語音信號檢測器將會檢測語音信號的靜音部分。與傳送語音信號的靜音部分所不同,在這里是將數(shù)據(jù)(例如靜音插入描述符)插入分組流,以便恢復(fù)那些否則將會分配給語音業(yè)務(wù)量的帶寬。在減少有效比特率的同時,刪除那些通常伴隨著語音數(shù)據(jù)“靜音”部分的背景噪聲,而這將會對個人接收和聽取絕對靜音的話音數(shù)據(jù)產(chǎn)生不希望有的影響,此外,刪除背景噪聲還會帶來傳送通-斷而不是持續(xù)連接的感覺。
在與靜音抑制相結(jié)合的情況下,可以執(zhí)行舒適噪聲生成來重建或構(gòu)造并替換語音以及其他語音信號的靜音部分。與常規(guī)的舒適噪聲生成器相關(guān)聯(lián)的一個缺點是它們需要更為強化的MIPS(百萬條指令每秒)以及更大的存儲容量,并且有可能降低效率和有效語音傳送。
現(xiàn)有的國際電信聯(lián)盟(ITU)建議G系列中的G729AB使用了一種用于產(chǎn)生高斯噪聲的更為簡單的方法,這種方法的缺點是帶有周期性。其他生成器則需要更為強化的MIPS,這些生成器通常不適合實時系統(tǒng),或者就是復(fù)雜性沒有得到保證。
在包含合成話音和其他語音信號的應(yīng)用中,可以實施一種高斯白噪聲生成器。其中一種實施高斯生成器的方法包括在一個均勻分布的隨機生成器上使用中心極限定理。然而,這種方法的缺點是帶有周期性,尤其是在處理生成等幅話音、噪聲信號的長期生成或是其它應(yīng)用的時候。其它生成器則需要更為強化的MIPS,這些生成通常并不適合實時系統(tǒng),或者就是復(fù)雜性沒有得到保證。
通常,由于過多的等待時間將會降低電話通話質(zhì)量,因此在電信設(shè)備上存在著非常緊密的等待時間需要。這樣一來,通常必須在很小的語音數(shù)據(jù)塊上執(zhí)行那些在遠程通信中使用的信號處理算法。舉例來說,在VoDSL客戶端設(shè)備(CPE)中,數(shù)字信號處理器作用于8kHz的4個取樣數(shù)據(jù)塊。
在經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)傳送語音的系統(tǒng)中,語音壓縮的一個高級特征是自適應(yīng)的靜音壓縮和重建。這種特征的一個方面在于使用一個意圖對噪聲進行頻譜整形的濾波器來對高斯白噪聲進行濾波,從而使其更緊密地接近‘真實’背景噪聲,由此產(chǎn)生仿真的背景噪聲信號,其中為了節(jié)省帶寬而沒有傳送背景噪聲。
然而,濾波系數(shù)未必包含正確的增益,因此合成信號與真實背景噪聲并不具有相同的功率。同樣,為濾波器提供的激勵通常具有某些增益,這些增益將會導(dǎo)致所述輸出具有不同于真實背景噪聲的增益。此外,仿真信號的有效生成在每次只能產(chǎn)生4個取樣,因此很難(并且相對昂貴,假設(shè)每秒將這個函數(shù)調(diào)用大約2000次)測量信號強度并且由此補償增益。
因此,在VoDSL和VoIP領(lǐng)域需要一種用于傳送語音信號的更為有效的方法和系統(tǒng)。

發(fā)明內(nèi)容
本發(fā)明的各個方面克服了上文提到的問題并且實現(xiàn)了附加的優(yōu)點。其中一個于發(fā)明方面提供了通過執(zhí)行復(fù)雜性很低的頻譜估計技術(shù)來產(chǎn)生舒適噪聲的方法和系統(tǒng)。本發(fā)明的一個方面涉及一種估計信號頻譜并且產(chǎn)生舒適噪聲(CN)的方式,與現(xiàn)有方法相比,所述方式的復(fù)雜性得到了降低。本發(fā)明的另一個方面涉及從自適應(yīng)處理中分離出濾波器參數(shù)編碼,以便以靜音插入描述符的形式來進行傳送。在那些MIPS和存儲器都很昂貴的系統(tǒng)中,本發(fā)明使用了這樣一種方法,所述方法利用了信號頻譜在一個擴展時段實質(zhì)保持恒定這一事實,并且本發(fā)明適合隨時間變化的頻譜。這樣做有一個好處,那就是所產(chǎn)生的舒適噪聲是輸入噪聲的更為逼真再現(xiàn),并且所產(chǎn)生的舒適噪聲是均勻分布的。為了進行傳送而實施的濾波器參數(shù)編碼分離提供了增強的靈活性,同時這種分離還會在不同系統(tǒng)之間產(chǎn)生更大的互通性。而另一個益處則是更有效地使用了MIPS和存儲器。
此外,現(xiàn)有ITU建議G系列中的G729AB使用了一種不同的舒適噪聲生成(CNG)方法,所述方法需要很高級別的MIPS和存儲器。并且存在多種用于CNG的不同實施方式。例如,本發(fā)明的這個發(fā)明方面具有以下一個或多個超越上述方法的優(yōu)點產(chǎn)生更加令人滿意的有色舒適噪聲(與白色相反);使用復(fù)雜性更低的算法,所述算法減少了對于作為實時系統(tǒng)重要部件的MIPS和存儲器的需要;以及在不依賴于自適應(yīng)處理的情況下實施濾波器參數(shù)編碼(成為反射系數(shù)),由此提供了只在必要時才使用MIPS的更大靈活性,從而允許將濾波器參數(shù)編碼成某些其他編碼形式,而基礎(chǔ)算法則仍然保持不變(唯一改變的是編碼算法)。
根據(jù)本發(fā)明的一個示范性實施例,一種用于執(zhí)行頻譜估計以便產(chǎn)生舒適噪聲的方法包括以下步驟接收一個輸入噪聲信號;在一個時段上使用一種算法來近似輸入噪聲信號的頻譜;對不存在話音信號進行檢測;以及在檢測到話音信號不存在的時候基于近似步驟來產(chǎn)生舒適噪聲;其中在這個時段上,輸入噪聲信號的頻譜實質(zhì)是恒定的。
根據(jù)本發(fā)明的這個示范性實施例的其他方面,所述方法還包括所述近似步驟還包含了使用反向預(yù)測器而使輸入噪聲適合于預(yù)測信號的頻譜步驟;通過執(zhí)行一個內(nèi)部檢查來確定輸入噪聲信號處于大約為固有噪聲電平的6dB的范圍以內(nèi)的步驟,其中阻止接近噪聲尖峰和話音分段中的至少一個;其中所述算法是一個最小均方算法;其中所述算法是一個帶有遺忘因子(leaky)的最小均方算法;其中所述算法是一個歸一化的最小均方算法;其中所述算法是一個線性預(yù)測編碼算法;通過執(zhí)行一個最小均方誤差以及至少一個最小均方系數(shù)的可變精度計算而使所述算法實質(zhì)獨立于噪聲電平變化的步驟;其中所產(chǎn)生的舒適噪聲實質(zhì)上是均勻分布的;通過歸一化所述算法而使近似步驟實質(zhì)獨立于信號幅度變化的步驟;從近似步驟中分離出編碼成至少一個反射系數(shù)的濾波器系數(shù),以便發(fā)送至少一個靜音插入描述符的步驟;其中增強了系統(tǒng)之間的互通性;其中有效使用了MIPS和存儲器;所述近似步驟還包括由一個合成濾波器來對輸入噪聲信號進行濾波的步驟,其中如下定義所述合成濾波器
其中M代表多個分支;w代表一個預(yù)測器系數(shù);H是變量z的函數(shù);其中合成濾波器是一個10階合成濾波器;其中所述近似估計步驟還包括如下步驟檢測話音數(shù)據(jù)之間的噪聲;自適應(yīng)所述噪聲;以及在話音休止的時候,基于所述自適應(yīng)步驟來創(chuàng)建靜音插入描述符;其中如下所示,靜音插入描述符是通過將至少一個直接形式系數(shù)轉(zhuǎn)換成至少一個反射系數(shù)而產(chǎn)生的
Bn(z)=z-mAmz-1)
其中如下所示,通過將至少一個反射系數(shù)轉(zhuǎn)換成直接形式系數(shù)而對靜音插入描述符進行解碼
A0(z)=B0(z)=1
Am(z)=Am-1(z)+z-1Bm-1(z)kmm=1,2,…M-1
Bm(z)=z-mAm(z-1) m=1,2,…,M-1
并且其中所述近似估計步驟還包括以下步驟檢測話音數(shù)據(jù)之間的噪聲;自適應(yīng)所述噪聲;以及在話音休止的時候,基于輸入噪聲信號的平均頻譜來產(chǎn)生增強的噪聲。
根據(jù)本發(fā)明的另一個示范性實施例,一種用于執(zhí)行頻譜估計來產(chǎn)生舒適噪聲的系統(tǒng)包括一個用于接收輸入噪聲信號的接收機;一個在某個時段上使用算法來對輸入噪聲信號頻譜進行近似的編碼器;一個用于檢測是否不存在話音信號的檢測器;以及一個舒適噪聲生成器,在檢測到不存在話音信號的時候,所述生成器基于頻譜的近似來產(chǎn)生舒適噪聲;其中在這個時段上,輸入噪聲信號的頻譜實質(zhì)上是恒定的。
根據(jù)本發(fā)明這個實施例的一個示范性方面,所述編碼器還使用一個反向預(yù)測器而使輸入噪聲適合于預(yù)測信號頻譜;執(zhí)行一個內(nèi)部檢查以便確定輸入噪聲信號處于大約為固有噪聲電平的6dB的范圍以內(nèi);其中避免接近噪聲尖峰和話音分段中的至少一個;其中所述算法是一個最小均方算法;其中所述算法是一個帶有遺忘因子(leaky)的最小均方算法;其中所述算法是一個歸一化的最小均方算法;其中所述算法是一個線性預(yù)測編碼算法;其中執(zhí)行了最小均方誤差以及至少一個最小均方系數(shù)的可變精度計算,以使所述算法實質(zhì)上獨立于噪聲電平變化;其中所產(chǎn)生的舒適噪聲實質(zhì)上是均勻分布的;歸一化所述算法,以使頻譜的近似步驟實質(zhì)上獨立于信號幅度變化;其中從頻譜的近似步驟中分離出編碼成至少一個反射系數(shù)的濾波器系數(shù),以便發(fā)送至少一個靜音插入描述符;其中系統(tǒng)之間的互通性得到了增強;其中MIPS和存儲器得到了有效使用;所述近似步驟還包括一個用于對輸入噪聲信號進行濾波的合成濾波器,其中所述合成濾波器是如下定義的
其中M代表多個分支;w代表一個預(yù)測器系數(shù);H是變量z的函數(shù);其中合成濾波器是一個10階合成濾波器;其中所述編碼器還包括一個用于檢測話音數(shù)據(jù)之間噪聲的檢測器;一個自適應(yīng)所述噪聲的適配器;以及靜音插入描述符生成器,用于在話音休止的時候,基于所述自適應(yīng)步驟來創(chuàng)建靜音插入描述符;其中如下所示,靜音插入描述符是通過將至少一個直接形式系數(shù)轉(zhuǎn)換成至少一個反射系數(shù)而產(chǎn)生的
Bn(z)=z-mAm(z-1)
其中如下所示,通過將至少一個反射系數(shù)轉(zhuǎn)換成直接形式系數(shù)而對靜音插入描述符進行解碼
A0(z)=B0(z)=1
Am(z)=Am-1(z)+z-1Bm-1(z)kmm=1,2,…M-1
Bm(z)=z-mAm(z-1) m=1,2,…,M-1
并且其中所述編碼器還包括一個用于檢測話音數(shù)據(jù)之間的噪聲的檢測器;一個自適應(yīng)所述噪聲的適配器;以及一個噪聲生成器,在話音休止的時候,所述噪聲生成器基于輸入噪聲信號的平均頻譜來產(chǎn)生增強的噪聲。
在此引入并構(gòu)成說明書一部分的附圖描述了本發(fā)明的不同實施例,并且這些附圖以及說明書解釋了本發(fā)明的原理。
縮略語列表
● AAL-ATM適配層
● ADSI-模擬顯示服務(wù)接口
● ADSL-非對稱數(shù)字用戶線
● AGC--自動增益控制
● ASIC-專用集成電路
● ATM-異步傳送模式
● BUN-寬帶統(tǒng)一框架
● CBR-恒定比特率
● CIDCW-呼叫等待時的主叫用戶標識符
● CLEC-競爭性的地方交換運營商
● CN-舒適噪聲
● CNG-舒適噪聲生成
● CO-中心局
● CO/DLC-中心局/數(shù)字回路載波
● CPCS-公共部分匯聚子層
● CPE-客戶端設(shè)備
● CRC-循環(huán)冗余碼校驗
● CS-ACELP-共軛結(jié)構(gòu)的代數(shù)碼激勵線性預(yù)測
● DLCI-數(shù)據(jù)鏈接連接標識
● DSL-數(shù)字用戶線
● DSL PHY-數(shù)字用戶線的物理層設(shè)備
● DSLAM-數(shù)字用戶線的接入復(fù)用器
● DSP-數(shù)字信號處理
● DSVD-數(shù)字語音數(shù)據(jù)同傳
● DTM-雙音調(diào)制
● DTMF-雙音(或多個)頻率調(diào)制
● ECSR-具有單個反射器的回聲消除器
● EEPROM-電可擦可編程序只讀存儲器
● EPD-早期分組丟棄
● GSM-全球數(shù)字移動電話系統(tǒng)
● IAD-集成接入設(shè)備
● IADs-多個集成接入設(shè)備
● IETF-因特網(wǎng)工程任務(wù)組
● ILEC-現(xiàn)任本地交換運營商
● IMA-ATM反向多路復(fù)用
● IP-網(wǎng)際協(xié)議
● ISOS-SiliconTM上的集成軟件
● ISP-因特網(wǎng)服務(wù)提供商
● ITU-國際電信聯(lián)盟
● IXC-長途交換運營商
● L-長度
● LMS-最小均方
● MIPS-每秒百萬條指令
● NAT-網(wǎng)絡(luò)地址轉(zhuǎn)換
● NLMS-歸一化最小均方
● NRT-非實時
● OAM-操作和管理
● OSI-開放式系統(tǒng)互連
● PBX-專用小交換機
● PC-個人計算機
● TCP/IP-在網(wǎng)際協(xié)議之上的傳輸控制協(xié)議
● PDU-協(xié)議數(shù)據(jù)單元
● PPD-部分分組丟失
● PPPoA-通過ATM的點到點協(xié)議
● PPPoE-通過以太網(wǎng)絡(luò)的點對點通信協(xié)議
● PPTP-點對點的隧穿協(xié)議
● PSTN-公共交換電話網(wǎng)
● RMS-均方根
● RT-實時
● RTP-實時傳送協(xié)議
● SDRAM-同步動態(tài)隨機存取存儲器
● SDSL-對稱數(shù)字用戶線
● SF-擴縮因數(shù)
● SID-靜音插入描述符
● SNMP-簡單網(wǎng)絡(luò)管理協(xié)議
● SOHO-小型辦公/在家辦公
● SSCS-特定業(yè)務(wù)會聚子層
● SVC-交換虛電路
● UNI-用戶網(wǎng)絡(luò)接口
● USB-通用串行總線
● V-伏特
● VAGC-具有自動增益控制的語音活動檢測
● VBR-可變比特率
● VoDSL-數(shù)字用戶線上的語音傳送
● VPI/VCI-虛路徑標識符/虛信道標識符
● WAN-廣域網(wǎng)


在這里可以結(jié)合附圖而對以下關(guān)于本發(fā)明的詳細描述進行研究,從而更全面地理解本發(fā)明,其中
圖1是對根據(jù)本發(fā)明第一方面的一個實施例的編碼器實例進行描述的流程圖。
圖2是對根據(jù)本發(fā)明第一方面的一個實施例的另一個編碼器實例進行描述的流程圖。
圖3a是根據(jù)本發(fā)明第二方面的一個實施例來實現(xiàn)多個生成器的系統(tǒng)的一個實例。
圖3b是對根據(jù)本發(fā)明第二方面的一個實施例的話音合成濾波器實例進行描述的框圖。
圖4a是對根據(jù)本發(fā)明第三方面的一個實施例的解碼器實例進行描述的流程圖。
圖4b是根據(jù)本發(fā)明第三方面的一個實施例來實現(xiàn)解碼器處理的系統(tǒng)的實例。
圖4c是根據(jù)本發(fā)明第三方面的一個實施例來實現(xiàn)產(chǎn)生背景噪聲的系統(tǒng)的實例。
圖5是對根據(jù)本發(fā)明第四方面的一個實施例的濾波器實例進行描述的框圖。
圖6是對根據(jù)本發(fā)明第四方面的一個實施例的濾波器實例進行描述的框圖。
圖7描述的是根據(jù)本發(fā)明第四方面的一個實施例來進行精密調(diào)諧自動增益控制的處理的實例的框圖。
圖8描述的是根據(jù)本發(fā)明實施例而在編碼端使用了CNG的系統(tǒng)的實例。
圖9描述的是根據(jù)本發(fā)明一個實施例而在沒有發(fā)送SID的時候在編碼端使用了CNG的系統(tǒng)的實例。
圖10描述的是根據(jù)本發(fā)明一個實施例而在解碼端使用了CNG的系統(tǒng)的實例。
圖11描述的是根據(jù)本發(fā)明實施例而在解碼端使用了CNG的系統(tǒng)的實例。
圖12描述的是根據(jù)本發(fā)明實施例的CNG_adapt函數(shù)的流程圖。
圖13描述的是根據(jù)本發(fā)明實施例的CNG_generate函數(shù)的流程圖。
圖13描述的是根據(jù)本發(fā)明實施例的CNG_generate函數(shù)的流程圖。
圖14描述的是根據(jù)本發(fā)明實施例的CNG_decode函數(shù)的流程圖。
圖15是可以結(jié)合本發(fā)明的發(fā)明方面的軟件結(jié)構(gòu)的示意圖。
圖16是可以結(jié)合本發(fā)明的發(fā)明方面的軟件結(jié)構(gòu)的示意圖。
圖17是可以結(jié)合本發(fā)明的發(fā)明方面的硬件結(jié)構(gòu)的示意圖。
圖18是可以結(jié)合本發(fā)明的發(fā)明方面的硬件結(jié)構(gòu)的示意圖。
圖19是可以結(jié)合本發(fā)明的發(fā)明方面的軟件結(jié)構(gòu)的示意圖。
具體實施例方式
下文中的描述意圖通過提供多個特定實施例以及包含VoDSL與VoIP的應(yīng)用細節(jié)來描述關(guān)于本發(fā)明的全面理解。然而應(yīng)該理解,本發(fā)明并不局限于這些僅僅作為示范的特定實施例和細節(jié)。此外還應(yīng)該理解,根據(jù)已知的系統(tǒng)和方法,具有本領(lǐng)域普通技能的任何人都可以意識到將本發(fā)明用于預(yù)期目的,并從依賴于特定設(shè)計和其他需要的多個替換實施例中受益。
根據(jù)本發(fā)明的一個實施例,可以提供一種用于產(chǎn)生舒適噪聲的低復(fù)雜性的頻譜估計技術(shù)。此外可以實施一個舒適噪聲生成器來壓縮和重建語音信號的靜音部分。CNG可以與語音活動檢測器、回聲消除器或其他相似設(shè)備一起工作,以便壓縮靜音或產(chǎn)生舒適噪聲。此外,本發(fā)明提供了一種通過估計信號頻譜來產(chǎn)生舒適噪聲的簡化技術(shù)。
本發(fā)明的一個方面包括估計信號頻譜并且以低于現(xiàn)有方法的復(fù)雜性來產(chǎn)生舒適噪聲(CN)。本發(fā)明的另一個方面可以包括從自適應(yīng)處理中分離出濾波器參數(shù)編碼,以便以靜音插入描述符的形式來進行傳送。
在那些每秒百萬條指令(MIPS)以及存儲器都很昂貴的系統(tǒng)中,本發(fā)明的方法使用了信號頻譜在一個擴展預(yù)定時段實質(zhì)保持恒定這一事實,其中在這個預(yù)定時段,所述方法適于所述頻譜。由此可以產(chǎn)生作為輸入噪聲更逼真再現(xiàn)的舒適噪聲。此外,所生成的舒適噪聲可能會更為均勻。
根據(jù)本發(fā)明的另一個實施例,用于傳輸?shù)臑V波器參數(shù)編碼分離可以提供增強的靈活性。例如,在不同的系統(tǒng)之間可以識別到更大的互通性。此外,MIPS和存儲器可以得到更為有效的使用。
本發(fā)明可以產(chǎn)生一個令人更為滿意的有色舒適噪聲(例如與白噪聲相反)。本發(fā)明可以包含一種不太復(fù)雜的算法并且免除了作為實時系統(tǒng)重要部件的MIPS和存儲器。濾波器參數(shù)編碼(例如將其編碼成反射系數(shù))可以在不依賴于自適應(yīng)處理的情況下得到實現(xiàn),由此提供了只在必要時使用MIPS的更大靈活性。在另一個實例中,如果要把濾波器編碼成某些其他的編碼類型,那么基礎(chǔ)算法可以仍然保持恒定或是基本不變。因此在這個實例中,唯一改變的就是編碼算法。
圖1描述的是根據(jù)本發(fā)明一個實施例的編碼器的流程圖。這種操作模式可以在聲碼器(或相似設(shè)備)不具有相關(guān)或內(nèi)嵌的靜音壓縮能力的時候使用。如圖1所示,為了改進系統(tǒng)壓縮,CNG可以適應(yīng)那些在話音數(shù)據(jù)部分之間感知的背景噪聲,并且在話音并未活動的時候創(chuàng)建那些代表所感知的噪聲特性的靜音插入描述符(SID)。
在步驟110,對包括語音和靜音/背景數(shù)據(jù)在內(nèi)的輸入數(shù)據(jù)進行接收。在步驟112,對“近端”話音活動進行判定,其中所述“近端”話音活動即為處于語音/話音數(shù)據(jù)前端或開端的話音或語音數(shù)據(jù)部分。如果得出一個肯定應(yīng)答,則在步驟114中進行G7xx編碼。此外,在步驟116中,將碼字數(shù)據(jù)發(fā)送到信道(向解碼器傳送的),并且可以返回系統(tǒng)狀態(tài),以便在步驟110中接收輸入數(shù)據(jù)。如果得出一個否定應(yīng)答,則在步驟118中進行舒適噪聲生成器的自適應(yīng)。然后在步驟120,濾波器參數(shù)編碼會將SID發(fā)送到信道(向解碼器傳送的),并且可以返回系統(tǒng)狀態(tài),以便在步驟110中接收輸入數(shù)據(jù)。簡單的說,圖1描述了這樣一種方式,其中可以將輸入數(shù)據(jù)分為話音或靜音,由此將語音碼字或SID分別發(fā)送到那些將要傳送到解碼器的信道。如圖15所示并且如下所述,圖1的系統(tǒng)可以用在DSP芯片區(qū)域1540中。
圖2描述的是根據(jù)本發(fā)明另一個實施例而在沒有發(fā)送SID時的替換編碼器的流程圖。如圖15所示并且如下所述,可以在DSP芯片區(qū)域1540中實施圖2的系統(tǒng)。當近端話音并未活動的時候,CNG適應(yīng)噪聲并且產(chǎn)生可以由一個聲碼器來進行編碼的噪聲。這種模式可以在殘留回聲與噪聲組合令人感到厭煩的時候使用。CNG可以基于所述輸入的平均頻譜來產(chǎn)生那些在感覺上有所增強的噪聲。
在步驟210,可以對輸入數(shù)據(jù)進行接收。在步驟212,判定近端話音是否活動。如果近端話音沒有活動,那么如步驟214所示,可以自適應(yīng)并產(chǎn)生舒適噪聲。并且可以在步驟216中執(zhí)行G7xx編碼。此外,在步驟210,可以發(fā)送碼字數(shù)據(jù)并將其轉(zhuǎn)發(fā)給輸入數(shù)據(jù)。
例如,根據(jù)本發(fā)明的一個實施例,通過使用最小均方(LMS)函數(shù),可以實施舒適噪聲生成算法,以便近似估計輸入噪聲頻譜。但是也可以實施其他函數(shù),例如歸一化最小均方(NLMS)或線性預(yù)測編碼(LPC)。所述自適應(yīng)可以使用如下事實,即反向預(yù)測器會使輸入白噪聲適合于所需要的預(yù)測信號頻譜。然后,只要不存在話音,就可以使用這種自適應(yīng)來產(chǎn)生噪聲。由于噪聲頻譜在一個時段上保持近似恒定,因此本發(fā)明的方法可以在不使用更復(fù)雜的信號處理的情況下產(chǎn)生很有利的結(jié)果。下文將對個別模塊進行更為詳細的描述。為了防止自適應(yīng)于噪聲尖峰信號或是話音分段,可以執(zhí)行一個內(nèi)部檢查,以便確定所述輸入處于大小為6dB(或其他預(yù)定值)的固有噪聲電平的范圍以內(nèi)。
根據(jù)經(jīng)驗,可以確定一個10階合成濾波器,以便在MIPS與性能之間提供一個有利的均衡。根據(jù)本發(fā)明,也可以實施其他濾波器。例如,為了確保所述自適應(yīng)的增強的穩(wěn)定性,可以使用名為帶有遺忘因子的LMS(Leaky LMS)的LMS算法的一個變量。根據(jù)本發(fā)明,也可以使用其他變量。為使所述算法獨立于一定范圍(例如-30dBm到-100dBm)以內(nèi)的噪聲電平變化,可以實施一種關(guān)于LMS誤差和LMS系數(shù)的可變精度計算。另外還可以歸一化所述帶有遺忘因子的LMS,以使所述自適應(yīng)獨立于信號幅度變化。在以下等式中,括號中的數(shù)值表示時間,粗體變量則表示陣列(例如,vec(n)指的是陣列“vec”在時間n的值)。
參數(shù)
M分支數(shù)目
μ自適應(yīng)步長大小
a正值
n在時間n上的誤差
數(shù)據(jù)
u(n)M×1型分支輸入矢量
w(0)如果已知,則是適當值,否則為0
d(n)在時間n上的預(yù)期響應(yīng)
e(n)在時間n上的誤差
計算
n=0,1,2,……
e(n)=d(n)-w(n)Tu(n)
(1-μa)非常接近1,但是小于1
由于LMS自適應(yīng)實質(zhì)上是一個預(yù)測處理,因此可以存在以下關(guān)系
如果xk,……,xk-M是輸入取樣序列,那么
W(n)=預(yù)測器系數(shù)w0,……,wm
u(n)=xk-1,……,xk-M
d(n)=xk
合成濾波器則如下定義
上面的合成濾波器H(z)可以對白噪聲進行過濾。
通過濾波器以及計算得到的濾波器輸出增益,可以對一個固定噪聲序列進行過濾,從而可以計算近似增益。這個近似增益與所需要的增益(固有噪聲電平)相除就給出了產(chǎn)生所述輸出時所要使用的比率。
通過將直接形式轉(zhuǎn)換成網(wǎng)格系數(shù)(例如反射系數(shù)),可以產(chǎn)生SID。
Bn(z)=z-mAm(z-1)
在解碼函數(shù)中,可以使用一個逆運算來將反射系數(shù)轉(zhuǎn)換成直接形式的系數(shù)
A0(z)=B0(z)=1
Am(z)=Am-1(z)+z-1Bm-1(z)km m=1,2,…M-1
Bm(z)=z-mAm(z-1) m=1,2,…,M-1
所述近似增益計算也可以在解碼函數(shù)中執(zhí)行。該方法與自適應(yīng)中的方法相同(或相似)。
為了確保所述輸出處于電話/話音頻帶(150Hz~3400Hz)以內(nèi),可以借助以下的帶通濾波器來對合成濾波器的輸出進行過濾。
根據(jù)本發(fā)明的另一個實施例,可以為實時話音合成應(yīng)用實施一個簡單的高斯白噪聲生成器。在話音合成和其他應(yīng)用中,可以實施一個高斯白噪聲生成器。本發(fā)明提供了一種方法和系統(tǒng),所述方法和系統(tǒng)使用兩個或更多均勻分布(或?qū)嵸|(zhì)均勻分布)的生成器來為不同話音應(yīng)用提升其周期的不規(guī)則性。本發(fā)明還提供了一種方法和系統(tǒng),用于在不具有關(guān)于定點和其他系統(tǒng)的最低計算復(fù)雜性的情況下產(chǎn)生具有很長周期的高斯隨機噪聲。
在合成話音的時候,可以實施一個高斯隨機噪聲生成器。為了簡單起見,這類序列是從一個偽隨機序列生成器中接收的,然后是從中心極限定理中產(chǎn)生的。例如,作為經(jīng)常發(fā)生的情況,在對偽隨機生成器周期加以限制,尤其是在合成穩(wěn)定頻譜信號的時候,這種噪聲生成形式可能導(dǎo)致產(chǎn)生由周期性引起的可以聽到的人工產(chǎn)物。本發(fā)明提供了一種用于在不損害應(yīng)用簡單性的情況下克服這個缺陷的方法和系統(tǒng)。
為了產(chǎn)生一個幾乎是非周期性的信號,在這里可以實施不同的兩個或更多隨機數(shù)生成器,例如,隨機數(shù)生成器具有一個與2的乘方相等的周期(P=2k)。
圖3a是根據(jù)本發(fā)明的用于實施多個生成器的系統(tǒng)的一個實例。隨機數(shù)生成器可以包括16比特生成器,舉例來說,其中周期每隔65536次就可以重復(fù)。在這種情況下,輸入數(shù)目可以等于6,但是也可以將其設(shè)定為其他值。隨機數(shù)生成器320可以包括與一個平均值計算組件340相耦合的輸入321、322和323,并且可以包括與平均值計算組件340相耦合的輸入324,325,326。隨機數(shù)生成器330可以包括與平均值計算組件342相耦合的輸入334、335、336。平均值計算組件340可以輸出那些輸入321、322、323、331、332、333的一個平均值A(chǔ)vg1。平均值計算組件342可以輸出那些輸入324、325、326、334、335、336的一個平均值A(chǔ)vg2。
作為實例,以下生成器具有一個大小為216的周期并且可以根據(jù)本發(fā)明而得到實施。
生成器1(例如隨機數(shù)生成器320)
a=seed1×31821+13849
seed1=a的符號擴展的低16比特
rand1=seed1
生成器2(例如隨機數(shù)生成器322)
b=seed2×31421+13849
seed2=b的符號擴展的低16位
rand2=seed2
如下文中更詳細描述的那樣,按照中心極限定理,可以為總計2*N個取樣(來自各個生成器的N個取樣)計算平均值,以便給出高斯噪聲輸出的一個單獨的值。

在各個周期之后,其中一個生成器的取樣生成可以提前1(或其他值),以使這個生成器的周期實質(zhì)上小于其他生成器的周期?,F(xiàn)在,這兩個生成器的周期是互質(zhì)的,可以將生成器周期遞增到P*(P-1)/(gcd(P,N)*gcd(P-1,N)),其中P是第一生成器周期,P-1是第二生成器周期,gcd(x,y)是x、y這兩個數(shù)字的最大公約數(shù)。本發(fā)明的這種方法可以推廣到具有不同周期的M個隨機生成器。
例如,可以設(shè)置隨機數(shù)生成器330,以便丟棄其中一個取樣,由此從所述周期中去除某個預(yù)定量(例如一個取樣)。結(jié)果,隨機數(shù)生成器330每隔65535次即可重復(fù),而隨機數(shù)生成器320則每隔65536次才可以重復(fù)。Avg1和Avg2可用于計算一個高斯值,所述高斯值產(chǎn)生一個改善的出聲背景噪聲。所述噪聲可以是從生成器(例如330)中丟棄一個取樣的產(chǎn)物,由此將周期性所引起的可以聽到的人工產(chǎn)物減至最小。舉例來說,如果沒有按照本發(fā)明來實施一個與第一生成器(例如320)具有不同周期的第二生成器(例如330),那么,可以在例如大約1.2秒的時間察覺到一個合成的可以聽到的重復(fù)。實質(zhì)上,通過實施本發(fā)明,可以消除這種可以聽到的重復(fù)(或?qū)⑵錅p至最小)。
如圖3b所示,在這里可以通過形成話音合成濾波器的激勵來產(chǎn)生話音。高斯激勵信號312可以由話音合成濾波器310進行過濾,以便在濾波器輸出314上產(chǎn)生一個由合成話音表示的已濾波信號。
例如,可以對處于8000Hz取樣率的后續(xù)實例進行比較。在一個實例中,P等于65536,N等于6。生成器周期大約為24小時,單獨選取的各個高斯生成器的周期大約是2秒。
根據(jù)本發(fā)明的另一個實施例,可以在缺少包含頻譜信息的SID分組的情況下提供有色舒適噪聲的生成(CNG)。
在那些將語音通話的帶寬使用率減至最小的語音通信系統(tǒng)中,語音活動檢測以及靜音壓縮或消除可用于減少那些否則將會在通話的非語音分段中需要的帶寬。而發(fā)送少數(shù)或是不發(fā)送有關(guān)非語音音頻的信息則可以節(jié)省帶寬。此外也可以在一個SID分組中傳送這種信息。
當前,在沒有傳送頻譜信息的時候有可能會產(chǎn)生白噪聲,由于白噪聲通常并未涉及那些已經(jīng)壓縮或是并未傳送的非語音背景噪聲,因此聽到所述白噪聲會令人感到不快。由此導(dǎo)致出現(xiàn)了可以察覺的不一致現(xiàn)象。在通話的接收端,可以合成所述靜音。如果并未傳送那些與非語音背景信號相關(guān)聯(lián)的頻譜信息,那么,合成的背景信號通常不會與真實背景噪聲具有相同的頻譜特性。與沒有人講話的時候相比,在某人說話的時候,上述情況有可能在背景噪聲中引起令人厭惡的出聲差別。本發(fā)明提供了一種用于克服上述問題的方法和系統(tǒng)。特別地,本發(fā)明提供了一種方法和系統(tǒng),用于在缺少包含頻譜估計的SID分組的情況下產(chǎn)生有色舒適噪聲。
某些靜音壓縮方案能夠允許傳送描述背景噪聲頻譜特性的信息。其他技術(shù)則只能提供背景噪聲功率電平或是不提供任何關(guān)于背景噪聲的信息。當SID中并未包含頻譜信息的時候,解碼器不具有那些能夠從中產(chǎn)生頻譜自適應(yīng)的背景噪聲的信息。當前存在很多系統(tǒng)設(shè)計因素,這些因素可以防止將頻譜信息包含在SID之中。其中,所述因素可以包括低復(fù)雜性和互通性。例如,低復(fù)雜性因素可以包括簡化發(fā)送端設(shè)備,它可以防止產(chǎn)生包含頻譜信息的SID或者極大限制所述SID的產(chǎn)生。在另一個實例中,互通性因素可以包括若干標準,這些標準可以在那些明確定義SID的地方給出,其中SID既可以包含背景噪聲功率,也可以包含關(guān)于背景噪聲的最少信息,還可以不包含關(guān)于背景噪聲的信息。
本發(fā)明提供了一種方法和系統(tǒng),用于在缺少包含頻譜信息的SID分組的情況下產(chǎn)生反映實際噪聲頻譜的有色噪聲。舉例來說,可以通過實施如上所述的用于CNG的低復(fù)雜性的頻譜估計技術(shù)來產(chǎn)生舒適噪聲。
本發(fā)明提供了一種在解碼器端使用話音以及話音與噪聲之間的過渡余音的信息內(nèi)容來產(chǎn)生舒適噪聲的方法和系統(tǒng)。通過使用各種對有色噪聲頻譜進行估計的算法,可以實現(xiàn)這種針對噪聲所進行的自適應(yīng)。根據(jù)本發(fā)明的一個實施例,可以實施一種自適應(yīng)算法,所述算法與時間而不是基于算法的數(shù)據(jù)塊相適應(yīng),由此防止重復(fù)產(chǎn)生那些存在于所適應(yīng)的數(shù)據(jù)塊中的人工產(chǎn)物。本發(fā)明的自適應(yīng)與所發(fā)送的固有噪聲電平相關(guān)聯(lián),并且提供了產(chǎn)生有色舒適噪聲的能力。如圖4a所示,以下附圖以流程圖的形式顯示了這種思想。
圖4a是根據(jù)本發(fā)明一個實施例的用于解碼器處理的流程圖的實例。在步驟410,可以對話音/余音內(nèi)容進行識別。如果存在話音/余音內(nèi)容,則在步驟412中執(zhí)行舒適噪聲自適應(yīng)。如果不存在話音/余音內(nèi)容,則在步驟414中產(chǎn)生舒適噪聲。并且可以把來自步驟412和步驟414的信息轉(zhuǎn)發(fā)到步驟410的輸入端。
圖4b描述了根據(jù)本發(fā)明一個實施例的用于執(zhí)行解碼器處理的系統(tǒng)400的一個實例。圖4還描述了一個示范性的檢測輸入信號424,它是為了進行傳送而被處理的,此外還描述了一個接收信號438(二者顯示在作為y坐標的時間之上的作為x坐標的信號幅度)。422可以代表電話或是依附于解碼器420的其他語音設(shè)備,其中編碼器對語音和其他信號進行處理并且將其傳送到解碼器450。這些信號由一個接收電話或其他語音通信設(shè)備452接收。在這個實例中,語音信號430和語音信號432是由一個與設(shè)備422和/或420相關(guān)聯(lián)的語音活動檢測器來進行檢測的,與信號440和442一樣,這些信號分別被傳送到一個接收端(450和/或452)。434可以表示語音信號的余音部分,其中所述余音部分表示的是從語音到靜音的過渡??梢詫嵤┮粋€固有噪聲電平估計器來檢測背景噪聲。信號436表示背景噪聲。在一個實例中,可以傳送一個與背景噪聲436相關(guān)聯(lián)的功率量度。例如,背景噪聲436可以具有大小為-60dB的功率。信號444可以表示以大小為-60dB的功率所產(chǎn)生的背景噪聲。
根據(jù)本發(fā)明,在解碼器端可以借助一種自適應(yīng)算法并且使用語音信號440中的微小暫停(例如446和448)來產(chǎn)生背景噪聲444。換句話說,可以從諸如440這類語音信號的微小暫?;蜷g隙中獲悉背景噪聲。這個信息可以用來產(chǎn)生圖4c的濾波器462。因此,通過僅限于傳送語音信號,可以保存那些從編碼器420發(fā)送到解碼器450的信息。本發(fā)明提供了一種用于在并未傳送背景噪聲本身的時候在解碼端進行自適應(yīng)的方法和系統(tǒng)。換句話說,所述傳送僅限于語音信號。由此可以不發(fā)送那些關(guān)于背景噪聲的信息,以便節(jié)省帶寬。根據(jù)另一個實施例,可以使用余音434來產(chǎn)生背景噪聲。余音434表示的是介于語音與非語音部分之間的過渡時段。因此,余音434可能包含關(guān)于背景噪聲的信息,并且在444中可以使用所述信息來產(chǎn)生背景噪聲。
圖4c是根據(jù)本發(fā)明的用于產(chǎn)生背景噪聲的系統(tǒng)的一個實例。白噪聲生成器460產(chǎn)生了在創(chuàng)建替換背景的過程中使用的白噪聲,以便在接收端將其插入非語音部分,并且所述白噪聲生成器可以包括一個隨機數(shù)生成器,但是也可以實施其它類型的生成器。濾波器462接收白噪聲生成器460的輸出并且可以代表一個激勵濾波器,在一個實例中,所述濾波器可能是固定的。此外,借助一種自適應(yīng)算法,可以基于與語音信號之中諸如446或448這類微小暫?;蚴侵T如434這類余音部分有關(guān)的信息來創(chuàng)建濾波器462。這個信息可用于在非語音信號中精確有效地產(chǎn)生背景噪聲。因此,濾波器462可以輸出一個噪聲序列,所述序列表示的是在語音信號之間的編碼器端測得的真實(或近似真實)噪聲或噪聲特性。
根據(jù)本發(fā)明的另一個實施例,可以提供一種在實時系統(tǒng)中為定點低延遲算法確定濾波器增益以及自動增益控制的方法和系統(tǒng)。在那些低等待時間具有強制性并且濾波器不是常數(shù)而是基于輸入信號的變量的系統(tǒng)中,可以實施一種用于確定濾波器增益和自動增益控制(AGC)的方法和系統(tǒng)。本發(fā)明提供了一種用于實施低速MIPS的方法和系統(tǒng),所述方法和系統(tǒng)有益于那些在各個呼叫上產(chǎn)生單獨取樣(或少數(shù)取樣)的應(yīng)用。根據(jù)本發(fā)明,也可以執(zhí)行其他應(yīng)用。
本發(fā)明的一個附加方面包括使用一個近似估算來對濾波器增益進行計算。其中可以包括對在頻譜方面與所過濾的輸入相似的信號進行濾波,然后則對所述信號進行精確調(diào)諧。在本發(fā)明的這個方面,精確調(diào)諧處理可以基于所述算法的低延遲和低MIPS狀態(tài)中的短期移動均方計算。此外也可以執(zhí)行其他變化。
在另一個方案中,本發(fā)明提供了一種方法和系統(tǒng),所述方法和系統(tǒng)使用小于強制增益計算的MIPS來控制輸出增益,然后基于所述增益來對輸出進行擴縮。本發(fā)明的方法和系統(tǒng)尤其適合單個取樣(或少數(shù)取樣)輸入的情況。
根據(jù)本發(fā)明的一個實施例,通過過濾已知(或典型的)的輸入信號,可以計算出濾波器的近似輸出增益。舉例來說,可以在一個時間緊迫(time-critical)的例程中完成這種計算,如果濾波器分支保持恒定,則可以在算法開端完成所述計算。通過使用增益(GO),可以為輸出(GR)的給定均方根(RMS)值計算擴縮因數(shù)(SF)。其中GR的值可以由其他裝置加以確定,但也可以是一個恒定的輸出電平。
圖5和圖6描述的是根據(jù)本發(fā)明實施例的濾波器以及濾波器增益GF的框圖的實例。圖5顯示了一個典型的輸入信號512,該信號由濾波器510過濾,以便產(chǎn)生514所示的近似輸出增益。圖6顯示的是一個輸入增益GI,該增益由612顯示并由一個具有輸出增益GO的濾波器增益GF來進行過濾,其中輸出增益GO由614顯示,濾波器增益GF則是由610顯示。根據(jù)本發(fā)明的一個實施例,以下計算適用于圖6的濾波器。
GO=GF×GI
GR=GO×SF
例如,就關(guān)于增益的精密調(diào)諧而言,當前在濾波過程中可以使用在算法非決定性階段計算的擴縮因數(shù)來控制輸出增益。由于所述輸出可以是可用的逐個取樣,因此,在例如與塊長度相等的預(yù)定時段中,可以對這種取樣數(shù)據(jù)塊的均方值進行計算。當達到預(yù)定塊長度(L)時,可以對均方值以及輸出RMS的平方值進行比較。并且可以使用其他方法來確定輸出RMS的值。為了易于發(fā)現(xiàn)均值,可以通過計算L的倒數(shù)來產(chǎn)生一個簡單倍數(shù)(simple multiple),也可以使L成為2的倍數(shù)或是其他數(shù)字。根據(jù)所述輸出的增益小于GR-D dB還是大于GR+D dB,可以將擴縮因數(shù)增加一個很小的預(yù)定量Delta(Δ)dB。Δ代表所述改變是快速還是平緩進行的,D表示的是一個可以由用戶定義的預(yù)定常數(shù)。
圖7描述的是根據(jù)本發(fā)明實施例的AGC精密調(diào)諧的處理。在步驟710,可以輸出一個如s所示的取樣。在步驟712,可以執(zhí)行一個平方和(sum square)計算,其中平方和可以等于平方和+s2,其中s表示取樣,平方和表示各個取樣的平方的總和。此外,可以將一個計數(shù)器提前一個或幾個預(yù)定值。在步驟714,如果確定所述計數(shù)大于L(例如塊長度)的預(yù)定值,則執(zhí)行一個均方計算,其中如步驟716所示,所述均方可以等于平方和除以L所得到的值。否則可以在步驟710中輸出一個或幾個取樣。在步驟718,可以確定均方值是否大于GR+D dB。其中常數(shù)D表示一個可以由用戶定義的預(yù)定常數(shù)。如果這樣的話,在步驟720,可以將SF的值增大Delta dB。如果在步驟722確定均方值小于GR-D dB,那么在步驟724中,可以將SF減少Delta dB。否則也可以在步驟710中接收一個或幾個輸出取樣。在步驟720和/或步驟724的輸出端,可以建立一個通向步驟7109的反饋環(huán)路。
在將近似增益應(yīng)用于輸出之后,可以應(yīng)用自動增益控制(AGC)來確保所產(chǎn)生的噪聲處于±2dB以內(nèi)。并且可以將輸出增益作為4毫秒時間上的塊平均值來進行計算。如果這個平均值大于(小于)6dB的所需的固有噪聲電平,則在每隔4毫秒的時間將輸出增益減少(增加)3dB。
根據(jù)本發(fā)明的另一個實施例,CNG模塊壓縮并重建話音信號的靜音部分。為了壓縮靜音或產(chǎn)生舒適噪聲,CNG可以與任何一種活動檢測器一起工作,例如具有自動增益控制模塊的語音活動檢測(VAGC),此外CNG也可以與回聲消除器一起工作,例如具有單獨反射器(ECSR)模塊的回聲消除器。此外也可以實施其他應(yīng)用。下文與圖8~14中概括的多種方式都可以使用CNG。
圖8描述的是根據(jù)本發(fā)明一個實施例而在編碼端使用了CNG的系統(tǒng)的一個實例。這種操作模式可以在聲碼器不具有靜音壓縮能力的時候使用。為了改進系統(tǒng)壓縮,如圖8所示,在話音并未活動的時候,CNG自適應(yīng)于話音數(shù)據(jù)與靜音插入描述符(SID)之間的噪聲。
如圖8所示,在步驟810,編碼器接收輸入數(shù)據(jù)的BLOCK_SIZE(塊大小)。在步驟812,對近端話音活動加以判定。如果近端話音并未活動,則在步驟818執(zhí)行NFE_run和CNG_adapt函數(shù)。如果需要,在步驟820發(fā)送SID分組。如果近端話音活動,則在步驟814中執(zhí)行G7xx編碼,并且在步驟816中把碼字發(fā)送到信道(傳送到解碼器),在解碼器上,可以使用所述碼字來對信號信息進行解碼。在步驟820和/或步驟816中執(zhí)行的輸出之后,可以復(fù)位系統(tǒng)狀態(tài),以便在步驟810中接收新的輸入數(shù)據(jù)。從這點向前,系統(tǒng)將會重新啟動并且把輸入數(shù)據(jù)轉(zhuǎn)換成步驟816的話音碼字或步驟820的SID分組,其中所述處理將會繼續(xù)進行,直到話音輸入停止為止(例如,呼叫結(jié)束)。
圖9描述的是根據(jù)本發(fā)明實施例而在沒有發(fā)送SID的時候在編碼端使用了CNG的系統(tǒng)的一個實例。在步驟910,可以接收輸入數(shù)據(jù)的BLOCK_SIZE。當在步驟912中判定近端話音沒有活動的時候,CNG會在步驟914中自適應(yīng)噪聲并且產(chǎn)生由聲碼器來進行編碼的噪聲。特別地,在步驟914中可以執(zhí)行NFE_run、CNG_adapt以及CNG_generate函數(shù)。這種模式可以在殘留回聲以及噪聲組合令人感到不快的時候使用。如圖9所示,CNG是基于所述輸入的平均頻譜來產(chǎn)生那些在感覺方面有所增強的噪聲的。在步驟912,如果確定近端話音活動,則在步驟916中開始進行G7xx編碼,并且在步驟918,把經(jīng)過編碼的碼字發(fā)送到信道(傳送到解碼器),從而在解碼器上合成話音。在步驟918的輸出之后,系統(tǒng)可以復(fù)位到步驟910。所述系統(tǒng)預(yù)備接收數(shù)據(jù)取樣的新的BLOCK_SIZE數(shù)字,并且所述處理將會繼續(xù),直到話音輸入停止為止(例如呼叫結(jié)束)。
圖10描述的是根據(jù)本發(fā)明實施例而在解碼端使用了CNG的系統(tǒng)的一個實例。在步驟1010,如果接收到的碼字即為步驟1012中確定的SID,那么,CNG會在步驟1014中對該信息進行解碼并且在步驟1016中產(chǎn)生舒適噪聲。特別地,在步驟1014,可以執(zhí)行CNG_decode函數(shù),并且在步驟1016,可以執(zhí)行CNG_generate函數(shù)。SID通常包含了所要產(chǎn)生的噪聲頻譜信息。這種模式可以在編碼端使用CNG或是符合IETF(或其他)標準的其他任何舒適噪聲生成算法的時候使用。如果需要的話,也可以在中斷服務(wù)程序(ISR)的過程中使用CNG_generate()。在1012,如果沒有接收到SID,則在步驟1018執(zhí)行G7xx解碼。在步驟1020,可以產(chǎn)生輸出數(shù)據(jù)的BLOCK_SIZE并且將其轉(zhuǎn)發(fā)到步驟1010。當在步驟1020中輸出話音/靜音之后,所述系統(tǒng)將會復(fù)位,以便接收新的碼字或SID,并且所述處理將會繼續(xù)進行,直到呼叫結(jié)束為止(例如碼字或SID停止)。
圖11描述的是根據(jù)本發(fā)明實施例而在解碼端使用了CNG的系統(tǒng)的另一個實例。在這個實例中,除了固有噪聲電平之外,SID不具有任何關(guān)于噪聲的信息。在聲碼器的解碼處理過程中,CNG自適應(yīng)于話音數(shù)據(jù)之間的噪聲并且會在接收到SID的時候產(chǎn)生噪聲。這種情況使用戶能夠產(chǎn)生與實際背景噪聲更接近的噪聲,而不是簡單的白噪聲。
在步驟1110,對碼字進行接收。在步驟1112,可以對SID進行檢測。如果沒有接收到SID并且因此沒有執(zhí)行檢測,則在步驟1116中執(zhí)行G7xx解碼。在步驟1118,執(zhí)行NFE_run()和CNG_adapt()這兩個函數(shù)。如果需要的話,在步驟1114,也可以將CNG_generate()用在ISR之中。在步驟1120,可以產(chǎn)生輸出數(shù)據(jù)的BLOCK_SIZE并且將其轉(zhuǎn)發(fā)到步驟1110。
現(xiàn)在將會在下文中給出根據(jù)本發(fā)明某個特定實施例并且涉及示范性常數(shù)、結(jié)構(gòu)、原型、存儲器使用情況以及文件描述的附加細節(jié)。
/* The following constants define the default parameter values */#define CNG_ADAPTSIZE_DEF (40)#define CNG_GENSIZE_DEF (40)/* The following constants define the max.and min.parameter values */#define CNG_MAX_ADAPTSIZE (80)#define CNG_MAX_GENSIZE (80)#define CNG_MIN_ADAPTSIZE (40)#define CNG_MIN_GENSIZE (1)/* The following constant defines the size of the SID */#define CNG_SIDSIZE (11)/* The following constants define the modes of CNG operation */#define CNG_NO_SID (0)#define CNG_REFLC_SID (1)Internal Object Definitiontypedef struct{int stackMemAddr; /* Saving stackMem address */int xm1; /* Band Pass filter history */int xm2; /* Band Pass filter history */int xm3; /* Band Pass filter history */int ym1; /* Band Pass filter history */int ym2; /* Band Pass filter history */int ym3; /* Band Pass filter history */int 1msErr; /* Error for 1ms */int highBuf; /* Buffer for AGC calc. */int lowBuf; /* Buffer for AGC calc. */<!-- SIPO <DP n="26"> --><dp n="d26"/>int highPrevBuf; /* Buffer for AGC calc. */int lowPrevBuf; /* Buffer for AGC calc. */int count; /* Count for AGC */int seed1; /* Seed for Rand Generator 1 */int c13849; /* Constant for Rand */int seed2; /* Seed for Rand Generator 2 */int c31821; /* Constant for Rand */int 1msPredCoef[11];/* Predictor coeffs.*/int curRms; /* Gain factor for output */int c15330; /* AGC constant */int c21835; /* AGC constant */int c14736; /* AGC constant */int flag; /* AGC flag */int noise; /* Noise floor */int randCount;/* Counter for randomizing */int genSize1; /* pGENSIZE-1 */int adaptSize1; /* pADAPTSIZE-1 */int 1msHist[11];/* History for 1ms */int genMem[10]; /* History for synth filter */}_CNG_Internal;Local Parameter Definitiontypedef struct{int pADAPTSIZE; /* Adapt block size */int pGENSIZE; /* Generate block size */}CNO_Params;Object Definitiontypedef struct{longbuffer;; /* Even alignment */_CNG_Internal internal; /* internal object */int*dst_ptr;int*src_ptr;int*sid_ptr;intsidMode;}CNG_Obj;typedef CNG_Obj *CNG_Handle;Function Prototypes may include the followingvoid CNG_init(CNG_Handle cng_ptr,CNG_Params *params_ptr,int *stack_ptr);void CNG_adapt(CNG_Handle cng_ptr,NFE_Handle nfe_ptr);void CNG_decode(CNG_Handle cng_ptr);void CNG_generate(CNG_Handle cng_ptr);
以下是與CNG模塊相關(guān)聯(lián)的示范文件的列表和描述。
表1
下列實例代碼顯示了CNG模塊如何自適應(yīng)和產(chǎn)生話音信號靜音部分。在這里使用線性模式的G726來對活動語音進行編碼和解碼。而VAGC則被用于檢測靜音。假設(shè)靜音插入描述符(SID)具有因特網(wǎng)工程任務(wù)組(IETF)的草擬SID格式。
#include<comm.h>#include<nfe.h>#iuclude<vagc.h>#include<cng.h>#include<g726.h>#undef USE_C_STACK /* If defined,CNG will use the C stack.*/#define BLOCK_SIZE (40)#define SPEECH (0)#define SID (1)NFE_Obj nfeObj;VAGC_Obj vagcObj;CNG_Obj cngObj;G726_Obj encObj;G726_Obj decObj;GLOBAL_Params globals={<!-- SIPO <DP n="28"> --><dp n="d28"/>4004, /* 0dBm level for input signal */4004}; /* 0dBm level for output signal */NFE_Params nfePara={NFE_MINNOISE_DEF,/* Minimum noise floor in dBm */NFE_MAXNOISE_DEF,/* Maximum noise floor in dBm */BLOCK_SIZE};VAGC_Params vagcPara={VAGC_tSUSTAIN_DEF,/* Number of blocks for Sustain */VAGC_tHCNGOVER_DEF,/* Number of blocks for HCNGover */VAGC_tDECAY_DEF,/* Decay time */VAGC_pMAXGAIN_DEF,/* Maximum gain */VAGC_pINITGAIN_DEF,/* Initial gain */VAGC_pGLI_DEF};/* Input speech gain*/CNG_Params cngPara={BLOCK_SIZE, /* Adapt block size */BLOCK_SIZE};/* Generate block size */#ifndef USE_C_STACKextern int *vpoStack_ptr;/* VP Open stack to be used by CNG */#endifint src[BLOCK_SIZE];int dst[BLOCK_SIZE];int mubuf[BLOCK_SIZE/2];int cBuf[BLOCK_SIZE/2];int sid[CNG_SIDSIZE];/**========main=========*/void main(){NFE_Handle nfe_ptr=&amp;nfeObj;VAGC_Handle vagc_ptr=&amp;vagcObj;CNG_Handle cng_ptr=&amp;cngObj;G726_Handle enc_ptr=&amp;encObj;G726_Handle dec_ptr=&amp;decObj;int buffer[BLOCK_SIZE];int retVal;int codeword;int *stack_ptr;/** Placeholder;Initialize host device driver*/#ifdef USE_C_STACKstack_ptr=NULL;#elsestack_ptr=vpoStack_ptr;#endif/** Initialize VP OPEN modules*/nfe_ptr->src_ptr=src;<!-- SIPO <DP n="29"> --><dp n="d29"/>nfe_ptr->xmit_ptr=NULL;NFE_init(nfe_ptr,&amp;globals,&amp;nfePara,NFE_COLDSTART,stack_ptr);vagc_ptr->dst_ptr=NULL;vagc_ptr->agcMode=VAGC_BYPASSAGC;VAGC_init(vagc_ptr,&amp;globals,&amp;vagcPara,VAGC_COLDSTART,stack_ptr);/* Initialize G726 encoder/decoder5ms block,32kbps rate */G726_init(enc_ptr,G726_ENCODE,stack_ptr,BLOCK_SIZE,4,0);G726_init(dec_ptr,G726_DECODE,stack_ptr,BLOCK_SIZE,4,0);cng_ptr->src_ptr=src;cng_ptr->dst_ptr=dst;cng_ptr->sid_ptr=sid;cng_ptr->sidMode=CNG_REFLG_SID;CNG_init(cng_ptr,&amp;cngPara,stack_ptr);while(1){/** PlaceholderRead BLOCK_SIZE/2 words of mu-law input speech* data into mubuf[]*/mu2linear(BLOCK_SIZE,mubuf,src);NFE_run(nfe_ptr);VAGC_run(vagc_ptr,nfe_ptr);/* Encoder */if(vagc_ptr->portActive){enc_ptr->src_ptr=src;enc_ptr->dst_ptr=cBuf;G726_encode(enc_ptr);codeword=SPEECH;}else{CNG_adapt(cng_ptr,nfe_ptr);codeword=SID;}/* Decoder */if(codeword=SPEECH){dec_ptr->src_ptr=cBuf;dec_ptr->dst_ptr=dst;G726_decode(dec_ptr);}else{/** Placeholdercopy received information to sid buffer.* Set unused reflection coefficients to zero.*/CNG_decode(cng_ptr);CNG_generate(cng_ptr);}/** Placeholderwrite BLOCK_SIZE samples of decoded speech from<!-- SIPO <DP n="30"> --><dp n="d30"/>*dst[] to output file*/}/* Placeholderclose the host device driver */}
以下實例代碼顯示了CNG模塊如何在回聲消除應(yīng)用中壓縮或重建話音信號的靜音部分。在這里使用G726來對活動語音進行編碼和解碼。在這個實例中,CNR是與ECSR一起工作的。此外假設(shè)SID只具有噪聲電平信息。
#include<comm.h>#include<nfe.h>#include<ecsr.h>#include<cng.h>#include<g726.h>#undef USE_C_STACK /* Ifdefined,CNG will use the C stack.*/#define BLOCK_SIZE(40)#define TAIL_LENGTH(256) /* 32ms Tail Length */#define SPEECH (0)#define SID (1)NFE_Obj nfeObj1;NFE_Obj nfeObj2;ECSR_Obj ecObj;CNG_Obj cngObj;G726_Obj encObj;G726_Obj decObj;GLOBAL_Params globals={4004,/* 0dBm level for input signal */4004};/* 0dBm level for output signal */NFE_Params nfePara={NFE_MINNOISE_DEF, /* Minimum noise floor in dBm */NFE_MAXNOISE_DEF, /* Maximum noise floor in dBm */BLOCK_SIZE};ECSR_Params ecsrPara={BLOCK_SIZE, /* Block size for ECSR_run() */TAIL_LENGTH, /* Tail length in samples */0,/* ISR block size for ECSR_run() */0,/* minimum voice power */100}; /* hangover time */CNG_Params cngPara={BLOCK_SIZE, /* Adapt block size */BLOCK_SIZE}; /* Adapt block size */#ifndef USE_C_STACKextern int VPO_STACKMEM;int*vpoStack_ptr=&amp;VPO_STACKMEM;/* VP Open stack used by modules */<!-- SIPO <DP n="31"> --><dp n="d31"/>#endifint src[BLOCK_SIZE];int dst[BLOCK_SIZE];int muBuf[BLOCK_SIZE/2];int cbuf[BLOCK_SIZE/2];int rin[BLOCK_SIZE];int sin[BLOCK_SIZE];int sout[BLOCK_SIZE];int nlpOut[BLOCK_SIZE];int dlyBuf[ECSR_32MS_DLY_BUF_SIZE];/**========main========*/void main(){NFE_Handle nfe1_ptr=&amp;nfeObj1;NFE_Handle nfe2_ptr=&amp;nfeObj2;ECSR_Handle ec_ptr=&amp;ecObj;CNG_Handle cng_ptr=&amp;cngObj;G726_Handle enc_ptr=&amp;encObj;G726_Handle dec_ptr=&amp;decObj;int buffer[BLOCK_SIZE];int retVal;int *stack_ptr;/** PlaceholderInitialize host device driver*/#ifdef USE_C_STACKstack_ptr=NULL;#elsestack_ptr=vpoStack_ptr;#endif/** Initialize VP OPEN modules*/ec_ptr->control=ECSR_ERL|ECSR_NLP;ec_ptr->rin_ptr=rin;ec_ptr->sin_ptr=sin;ec_ptr->soutFull_ptr=sout;ec_ptr->nlpOut_ptr=nlpOut;ec_ptr->dlyBuf_ptr=dlyBuf;ECSR_init(ec_ptr,&amp;globals,&amp;ecsrPara,ECSR_COLDSTART,stack_ptr);/** nfe1 is used for noise estimation on the encoding side*/nfe1_ptr->src_ptr=sout;nfe1_ptr->xmit_ptr=rin;NFE_init(nfe1_ptr,&amp;globals,&amp;nfePara,NFE_COLDSTART,stack_ptr);/** nfe2 is used for noise estimation on the decoding side*/nfe2_ptr->src_ptr=dst;nfe2_ptr->xmit_ptr=NULL;<!-- SIPO <DP n="32"> --><dp n="d32"/>NFE_init(nfe2_ptr,&amp;globals,&amp;nfePara,NFE_COLDSTART,stack_ptr);/* Initialize G726 encoder/decoder5ms block,32kbps rate */enc_ptr->src_ptr=src;enc_ptr->dst_ptr=cbuf;G726_init(enc_ptr,G726_ENCODE,stack_ptr,BLOCK_SIZE,4,0);dec_ptr->src_ptr=cbuf;dec_ptr->dst_ptr=dst;G726_init(dec_ptr,G726_DECODE,stack_ptr,BLOCK_SIZE,4,0);/** As dst buffer is mutually exclusive,we can use the same buffer*/cng_ptr->src_ptr=dst;cng_ptr->dst_ptr=dst;/* SID is not required,set sidMode to CNG_NO_SSIPO <DP n="33"> --><dp n="d33"/>else{CNG_generate(cng_ptr);}/** Placeholderwrite BLOCK_SIZE samples of decoded speech from*dst[]to output file*//* Placeholderbreak when done */}/* Placeholderclose the host device driver */}
本發(fā)明的模塊函數(shù)可以包括CNG_init()、CNG_adapt()、CNG_decode()和CNG_generate(),但是也可以實施其他模塊函數(shù)。
與CNG_init()模塊函數(shù)相關(guān)聯(lián)的示范性代碼包括
void CNG_init(
CNG_Handle cng_ptr,/* pointer to local CNG object */
CNG_Params *cngParams_ptr,/* pointer to CNG parameters */
int *stack_ptr);/*pointer to stack memory */
這些模塊可以具有一個最先調(diào)用的初始化函數(shù)。在調(diào)用CNG的初始化函數(shù)CNG_init()之前,首先將會創(chuàng)建兩個數(shù)據(jù)結(jié)構(gòu)。所創(chuàng)建的第一個結(jié)構(gòu)可以包括CNG對象。其中可以為CNG的各個同時應(yīng)用實施一個對象。CNG_init()對這個對象進行初始化。第二個結(jié)構(gòu)可以包括CNG參數(shù)。這個結(jié)構(gòu)是針對個別需要而被初始化的。下面的表2顯示了示范性參數(shù)及其范圍。
CNG_init()可以使用三個(或更多)調(diào)用變元。第一個調(diào)用變元可以包括一個指向CNG對象結(jié)構(gòu)的指針。第二調(diào)用變元包括一個指向CNG參數(shù)結(jié)構(gòu)的指針。第三個調(diào)用變元包括一個指向堆棧暫存空間的指針*stack_ptr。它指向的是為暫存空間(例如臨時變量)分配的存儲器的底部(例如最高地址)。
如果*stack_ptr指向NULL,則將現(xiàn)有C堆棧用于暫存空間。如果使用一個獨立的暫存空間,那么必須存在足夠的空間,以便分配給那些具有最大暫存空間利用率的模塊,而對任何ISR使用而言,所述空間還要加上開銷,其中如果中斷所述模塊,則有可能需要所述ISR使用。常數(shù)CNG_STACKMEMSIZE代表CNG所需要的暫存空間數(shù)量,其中不包括任何關(guān)于ISR使用的開銷。
表2
Function CNG_adapt()
void CNG_adapt(
CNG_Handle cng_ptr, /* pointer to local CNG object */
NFE_Handle nfe_ptr);/* pointer to NFE object */
圖12描述的是根據(jù)本發(fā)明實施例的用于CNG_adapt函數(shù)的流程圖。兩個調(diào)用變元可以包括分別指向CNG對象和NFE對象的指針。表3描述的是在圖12的CNG_adapt函數(shù)中使用的示范性指針和模式賦值。在調(diào)用CNG_adapt()之前,首先要為源指針、SID模式以及SID緩存器指針賦值。源指針是一個指向大小為pADAPTSIZE并在其上進行自適應(yīng)的源緩存器的指針。在這里將所述指針分配給了cng_ptr->src_ptr。
SID模式值確定CNG_adapt是否計算了SID系數(shù)。SID模式是通過cng_ptr->sidMode來指定的。對那些不需要SID計算的應(yīng)用而言,可以將這種模式設(shè)定為CNG_NO_SID,否則將這個值設(shè)定為CNG_REFLC_SID。如果使用CNG_REFLC_SID模式,則用戶需要為SID緩存器指針cng_ptr->sid_ptr賦值。而SID緩存器的大小則應(yīng)該是CNG_SIDSIZE。
在初始化CNG對象之后,每隔pADAPTSIZE個取樣就可以調(diào)用一次CNG_adapt(),以便執(zhí)行針對靜音的自適應(yīng)。只要檢測到語音靜止,則調(diào)用CNG_adapt()。但在ISR中卻不能調(diào)用CNG_adapt()。如果將SID模式設(shè)定為CNG_REFLC_SID,則CNG_adapt()將會輸出固有噪聲電平以及SID緩存器中的反射系數(shù)。
如果舒適噪聲凈荷只包括固有噪聲電平而不包含其他涉及噪聲頻譜的信息,那么可以調(diào)用CNG_adapt()來適應(yīng)于語音信號之間的噪聲,由此確保所產(chǎn)生的噪聲具有較好的質(zhì)量并且更接近或更能代表實際噪聲。為了防止適應(yīng)于所產(chǎn)生的噪聲,如圖11所示,在數(shù)目為pADAPTSIZE的取樣包含解碼話音而不包含由CNG產(chǎn)生的噪聲的時候,可以調(diào)用CNG_adapt()。
圖12顯示了根據(jù)本發(fā)明一個實施例來執(zhí)行CNG_adapt函數(shù)的步驟。在步驟1210,確定信號功率減去6dB是否小于或等于噪聲功率。如果不是,則在步驟1212中執(zhí)行LMS自適應(yīng)。在步驟1214,可以執(zhí)行濾波器增益歸一化和輸出增益計算。在步驟1216,確定sidMode(SID模式)是否等于CNG_REFLC_SID。如果等于,則在步驟1218中執(zhí)行從直接形式到反射系數(shù)的轉(zhuǎn)換。而返回1220則表示CNG_adapt函數(shù)結(jié)束。
表3
與CNG_decode()模塊函數(shù)相關(guān)聯(lián)的示范性代碼是
void CNG_decode(
CNG_Handle cng_ptr);/* pointer to local CNG object */
圖13描述的是一個根據(jù)本發(fā)明實施例的用于CNG_decode函數(shù)的流程圖。由于它只具有唯一的調(diào)用變元,因此可以包括一個指向CNG對象的指針。表3描述了這些指針以及模式賦值。在調(diào)用CNG_decode()之前,可以將SID指針cng_ptr->sid_ptr指派給一個大小為CNG_SIDSIZE的緩存器。并且將SID中未曾使用的反射系數(shù)設(shè)定為零。
CNG_decode()可以對靜音插入描述符(SID)進行解碼,并對CNG_generate()產(chǎn)生舒適噪聲所使用的濾波器參數(shù)以及對象變量進行初始化。每隔數(shù)目為pADAPTSIZE的取樣即可調(diào)用一次CNG_decode()。當SID包含噪聲頻譜特性即全極點濾波器的反射系數(shù)的時候,可以使用CNG_decode()。
在SID只包含噪聲電平的應(yīng)用中,不能使用CNG_decode()。如圖11所示,可以在解碼器中使用CNG_adapt()。在后一種情況下,可以將cng_ptr->sidMode設(shè)定為CNG_NO_SID,以便減少MIPS。
圖13顯示的是根據(jù)本發(fā)明實施例而用于執(zhí)行CNG_decode函數(shù)的步驟。在步驟1310,可以對SID參數(shù)進行解碼并且執(zhí)行從反射系數(shù)到直接形式的轉(zhuǎn)換。在步驟1312,可以執(zhí)行濾波器增益歸一化以及輸出增益的計算。而返回1314則表示CNG_decode函數(shù)的結(jié)束。
與CNG_generate()模塊函數(shù)相關(guān)聯(lián)的示范性代碼是
void CNG_generate(
CNG_Handle cng_ptr);/*pointer to local CNG object*/
圖14描述的是根據(jù)本發(fā)明實施例而用于CNG_generate函數(shù)的流程圖。調(diào)用變元可以包含一個指向CNG對象的指針。表3描述了這些指針以及模式賦值。在調(diào)用CNG_generate()之前,首先應(yīng)該將cng_ptr->dst_ptr分配成指向一個大小為pGENSIZE的輸出緩存器。
CNG_generate()可以在各個呼叫上產(chǎn)生數(shù)目為pGENSIZE的取樣。這個函數(shù)也可以在ISR中得到調(diào)用。這種特性則是通過pGENSIZE(參見CNG_init)規(guī)定的。用于產(chǎn)生舒適噪聲的信息可以直接從對象中獲取,并且可以由CNG_decode()或是CNG_adapt()進行更新。
圖14顯示了根據(jù)本發(fā)明實施例而用于執(zhí)行CNG_generate()函數(shù)的示范性處理的步驟。在步驟1410中可以合成噪聲。在步驟1412,可以執(zhí)行帶通濾波。在步驟1414中執(zhí)行的是自動增益控制。返回1416代表CNG_generate函數(shù)結(jié)束。
對本發(fā)明的模塊需要而言,功能說明可以包括適應(yīng)于話音的靜音部分、產(chǎn)生舒適噪聲以及創(chuàng)建靜音插入描述符。對適應(yīng)于話音的靜音部分以及產(chǎn)生舒適噪聲而言,重建的舒適或背景噪聲應(yīng)該盡可能多地保存原始信號能量和頻譜形狀。對創(chuàng)建靜音插入描述符而言,可以如在注明日期為2001年10月的關(guān)于舒適噪聲的實時傳送協(xié)議(RTP)凈荷的IETF草案中描述的那樣來創(chuàng)建SID。
性能說明可以包括重建靜音(舒適噪聲)的質(zhì)量,并且舉例來說,性能說明還可以依照帶有附錄B的國際電信聯(lián)盟(ITU)標準G.729/G.729A。
在圖15~19中對在缺少SID分組的情況下使用了CNG的上述系統(tǒng)進行了論述。CNG軟件被用在解碼端上。在編碼端,靜音作為能級而被壓縮并且沒有傳送頻譜信息。而在編碼端上并不需要CNG。并且在解碼端,CNG算法適應(yīng)于那些由G7xx解碼器在話音分段中產(chǎn)生的話音,并且CNG算法使用該信息而在缺少話音分段的情況下合成靜音/背景噪聲。
在MagnesiumTM產(chǎn)品中,California,SantaClara的Virata公司擴展了硅片上集成軟件(ISOSTM)的優(yōu)點——即預(yù)先集成軟件、預(yù)先封裝系統(tǒng)、可選軟件模塊以及系統(tǒng)靈活性,所有這些將導(dǎo)致出現(xiàn)針對語音處理市場的快速和低風險研發(fā),由此提供一個函數(shù)和接口驅(qū)動器包——vCoreTM——以及可以兼容C54的數(shù)字信號處理(DSP)芯片,所述芯片可以是例如德州儀器(Texas Instrument)制造的芯片。其目標針對的是電信設(shè)備,例如寬帶集成接入設(shè)備(IAD)、專用小交換機(PBX)、按鍵系統(tǒng)、無線基站以及IP電話。從理論上講,這種強大的硬件和軟件組合適合那些強化MIPS的語音和電話算法,并且可以包括VoDSL和VoIP的應(yīng)用。
上述發(fā)明概念也可以引入專用集成電路(ASIC)或是芯片組,例如包含了可以在多種應(yīng)用中使用的Viata公司的MagnesiumTMDSP芯片。圖15和16描述了可以引入本發(fā)明的硬件/軟件架構(gòu)1500和1600。圖15的系統(tǒng)包括協(xié)議處理器1510、網(wǎng)絡(luò)處理器1520、物理接口部分1530以及外部設(shè)備部分1540,此外還包含了執(zhí)行預(yù)期功能的軟件。如圖15所示,可以將舒適噪聲生成器的功能1550作為一種語音算法或其他軟件來加以實施。
圖16的系統(tǒng)包括一個與多種模塊和/或應(yīng)用進行通信的軟件接口1624,其中包括一個語音檢測和自動增益控制(AGC)模塊1610、一個呼叫等待時的呼叫方標識符(CIDCW)模擬顯示服務(wù)接口(ADSI)模塊1612、一個全雙工揚聲器電話模塊614、一個呼叫處理傳真音調(diào)檢測模塊1616、一個語音編碼器模塊1618、一個雙音調(diào)制(或多)頻率(DTMF)檢測和刪除模塊1620以及一個線路回聲消除器模塊1622。根據(jù)本發(fā)明,可以提供一個舒適噪聲生成器模塊1636。另外,客戶應(yīng)用1626、HeliumTM主機接口1628、主機驅(qū)動器1630、信道驅(qū)動器1632以及電話接口控制1634還可以提供其他功能。此外也可以實施其他應(yīng)用、模塊和功能。
Virata的MagnesiumTM的語音軟件vCoreTM是一個已經(jīng)在世界上數(shù)以百計的應(yīng)用中得到檢驗的對象和源代碼軟件庫。vCoreTM基于一種開放和靈活的模塊化軟件架構(gòu),它能使系統(tǒng)設(shè)計人員以最少的開發(fā)和測試勞動強度來提供一種優(yōu)化和有效的客戶解決方案。與vCoreTM相關(guān)聯(lián)的軟件模塊可用于大范圍的應(yīng)用,其中包含電話功能、網(wǎng)絡(luò)回聲消除器、傳真/數(shù)據(jù)功能、語音編碼器以及其他功能。
也可以將電話功能引入所述系統(tǒng),其中所述電話功能包括DTMF——雙音調(diào)制(或多個)頻率生成和移除;MFD——多頻音調(diào)檢測;UTD——通用呼叫進行音調(diào)檢測;FMTD——傳真和調(diào)制解調(diào)器的音調(diào)檢測音調(diào)生成器——單、雙和已調(diào)制;VAGC——具有自動增益控制的語音活動檢測。網(wǎng)絡(luò)回聲消除器可以包括ITU G.168-多反射器(直到128毫秒的尾部)以及ITU G.168-單反射器(直到48毫秒的尾部)。傳真/數(shù)據(jù)功能可被引入所述系統(tǒng),其中包含了呼叫方ID、具有呼叫等待的呼叫方ID、T.38和I.366.2的傳真延遲、高層數(shù)據(jù)鏈路控制(HDLC)的發(fā)送/接收以及全雙工揚聲器電話。語音編碼器可以包括G.726、G.728-低延遲編碼器;G.729、G.729A、G.729B、G.729AB、G.729E;G.723.1、G.723.1A;全球數(shù)字移動電話系統(tǒng)GSM-EFR、GSM-AMR;G.722.1-音頻編碼器;以及專有編碼器。
現(xiàn)在參考圖17~19,基于DSL的語音集成接入設(shè)備(IAD)通常需要集成范圍很大的復(fù)雜技術(shù),其中包括異步傳送模式(ATM)、分組、橋接、IP以及路由選擇網(wǎng)絡(luò);實時、高品質(zhì)、語音業(yè)務(wù)量處理;語音編碼/解碼、回聲消除、雙音調(diào)頻(DTMF)以及其他算法;并且還包含了語音控制和公共電話系統(tǒng)互通協(xié)議。這些技術(shù)強制推行硅片和軟件需求,并且需要通過高度集成來實現(xiàn)無縫操作。
舉例來說,Virata的AzuriteTM芯片組是針對DSL集成接入設(shè)備(IAD)并且集成了語音數(shù)據(jù)的解碼方案。通過集成“基于DSL的語音”系統(tǒng)組件,這些芯片組明顯提高了性能,降低了成本,并且加快了進入市場的時間。Virata的AzuriteTM 3000系列芯片組以Vriata的MagnesiumTM DSP、HeliumTM通信處理器以及完整的軟件堆棧為特征。無論外部數(shù)字用戶線是xDSL、非對稱數(shù)字用戶線(ADSL)、對稱數(shù)字用戶線(SDSL)還是其他技術(shù),Virata的PHY的中樞(neutral)Helium通信處理器都可以與任何一種外部數(shù)字用戶線的物理層設(shè)備(DSL PHY)結(jié)合使用,由此使得3000系列適合很大范圍以內(nèi)的DSL IAD。Virata的Azurite 4000系列芯片組以Virata的Magnesium DSP、Beryllium通信處理器以及完整的軟件堆棧為特征。Virata的Beryllium通信處理器包括一個內(nèi)嵌式ADSL PHY,由此使得4000系列能夠為ADSL IAD實現(xiàn)極高等級的集成。
在一個實施例中,可以將本發(fā)明引入那些在DSL中心局(CO)設(shè)備中使用的組件。CO設(shè)備通常包括具有內(nèi)嵌式外圍設(shè)備的高性能處理器以及針對各種CO設(shè)備應(yīng)用的集成通信協(xié)議堆棧。例如,對中心局/數(shù)字回路載波(CO/DLC)環(huán)境中具有發(fā)明性的解決方案而言,其中一種可能的應(yīng)用包括數(shù)字用戶線接入復(fù)用器(DSLAM)的線路卡。舉例來說,可以使用Virata的Helium處理器以及ISOS軟件來集中7個之多的雙緩存(快速和交織路徑)ADSL端口或是13個之多的單緩存(只有交織路徑)端口,在這兩種情況下,假設(shè)把雙緩存端口面朝上行方向或者將其連接到了DSLAM或小型SLAM應(yīng)用的底板。Helium的高速UTOPIA2接口可以支持多種不同的DSL PHY設(shè)備(例如ADSL、SHDSL(單線高比特率數(shù)字用戶線或?qū)ΨQ高密度數(shù)字用戶線)及其他設(shè)備。并且多個設(shè)備可以結(jié)合使用,以便支持具有更多端口的線路卡。在這里可以從本地存儲器中啟動Helium,也可以從中心處理器/存儲器中遠程啟動Helium。
所提供的軟件可以支持多種異步傳送模式(ATM)功能,例如操作和管理(OAM)、優(yōu)先級隊列、業(yè)務(wù)量整形(恒定比特率(CBR)、實時(rt)-可變比特率(VBR),非實時(nrt)-VBR),管制(信元標記)以及擁塞管理(早期分組丟棄(EPD)、部分分組丟棄(PPD))。在控制平面上,Helium與Q.2931呼叫處理代理是一起提供的,其中所述呼叫處理代理建立一個交換虛電路(SVC),并且在其內(nèi)部將指派的ATM標簽(虛路徑標識符/虛信道標識符(VPI/VCI)分配給物理的T1廣域網(wǎng)(WAN)端口)。在管理平面上,Helium是與簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)代理一起提供的,所述代理可以由網(wǎng)元管理所使用,以便配置或是監(jiān)視模塊性能,例如對鏈路故障引起的業(yè)務(wù)事件中止進行檢測,維護和報告循環(huán)冗余碼誤差校驗(CRC)的差錯計數(shù)等等。
在另一個實例中,使用Virata的HeliumTM處理器用來支持ATM與幀中繼之間的協(xié)議轉(zhuǎn)換。這種自適應(yīng)可以在DSLAM或ATM交換機中使用,以便經(jīng)由例如幀中繼網(wǎng)絡(luò)而把數(shù)據(jù)傳送到一個因特網(wǎng)服務(wù)提供商(ISP)。來自交換機背板的ATM信元經(jīng)由UTOPIA-2接口而被Helium接收,并且轉(zhuǎn)換成一個AAL-5 PDU(協(xié)議數(shù)據(jù)單元)。由此產(chǎn)生的PDU封裝到一個具有數(shù)據(jù)鏈路連接標識符(DLCI)的HDLC報頭之中,以便結(jié)束針對幀中繼所進行的轉(zhuǎn)換。如在協(xié)議堆棧圖中指示的那樣,在其他方向上,所述處理將會倒轉(zhuǎn)。在控制平面上,Helium是與Q.2931呼叫處理代理一起提供的,其中所述代理建立了SVC,并且在SVC內(nèi)部將指派的ATM標簽(VPI/VCI)分配給一個物理的T1 WAN端口。在管理平面上,Helium是與一個SNMP代理一起提供的,所述代理可以由網(wǎng)元管理使用,以便配置或監(jiān)視模塊性能,例如對鏈路故障所引起的業(yè)務(wù)事件中止進行檢測,維護和報告循環(huán)冗余碼誤差校驗(CRC)的差錯計數(shù)等等。
在另一個實例中,在為ATM邊緣交換機或小型SLAM設(shè)計ATM反向復(fù)用(IMA)線路卡的過程中使用了Virata的Helium處理器。Helium的UTOPIA 1/2接口支持14個之多的分離設(shè)備。所述軟件支持業(yè)務(wù)量管理功能,例如優(yōu)先級隊列、業(yè)務(wù)量整形和管制。舉例來說,在擁塞過程中將會延遲或丟棄那些低優(yōu)先級信元(信元丟失優(yōu)先級(CLP)=1),以便為語音或視頻這類具有高優(yōu)先級且無法忍受延遲的業(yè)務(wù)量提供空間。作為選擇,也可以調(diào)用EPD(早期分組丟棄)來丟棄歸屬于某個錯誤分組的全部信元。在控制平面上,Helium是與建立并刪除了SVC的用戶網(wǎng)絡(luò)接口(UNI)3.0/4.0的信令堆棧一起提供的。在管理平面上,Helium是與SNMP代理以及Telnet應(yīng)用一起提供的,所述Telnet應(yīng)用可以由網(wǎng)元管理使用,以便配置或監(jiān)視IMA模塊的性能。
圖17描述了DSL家庭/辦公室路由器以及網(wǎng)關(guān)硬件的一個實例。如圖17所示,IAD 1700包括標準電話塞孔1710,由此經(jīng)由一個編解碼器/SLIC(串行線接口電路)1712而把標準的電話線連接到一個語音DSP。這種操作可以在本地執(zhí)行,例如家庭辦公或小型商務(wù)環(huán)境中經(jīng)常使用的專用交換機(PBX)或是在家辦公/小型辦公(SOHO)的網(wǎng)關(guān),并且所述操作也可以在中心局中遠程進行。例如,SLIC 1712可以是一個四端口SLIC,它可以連接到一個語音DSP 1720,如1730所示,所述DSP可以支持舒適噪聲生成器功能。語音DSP(例如Magnesium)1720以及ATM這類更高級別的信息處理和分組化處理器位于中心局或PBX/網(wǎng)關(guān)。語音DSP 1720可以連接到Helium 1722。Virata的Helium是一個單獨的芯片,其中高度集成了ATM交換以及層2/3的處理設(shè)備。HeliumTM還包括一個網(wǎng)絡(luò)處理器,它對連至以太網(wǎng)和通用串行總線(USB)以及其他物理接口的直接連接進行控制。舉例來說,Helium 1722可以連接到10BaseT1724、同步動態(tài)隨機存取存儲器(SDRAM)1726、電可擦可編程序只讀存儲器(EEPROM)1728、DSL PHY 1740以及其他接口。DSLPHY 1740還可以連接到ADSL 1744,所述ADSL則連接到線路驅(qū)動器和濾波器1746。在1748那里可以提供一個對接到DSL的接口。另外,在1750還可以提供一個支持大小為+5伏(V)或其他數(shù)量的電壓的電力供應(yīng)單元。
語音DSP 1720對語音數(shù)據(jù)進行編碼/壓縮,并且如1730所示,舒適噪聲生成器功能可以刪除所述信號的靜音部分,也可以對其進行壓縮和編碼。當在更高級的處理器上為了IP或DSL傳送等目的而對其進行處理之后,可以經(jīng)由網(wǎng)絡(luò)來把那些經(jīng)過壓縮的語音數(shù)據(jù)傳送到一個接收器設(shè)備,在所述接收器設(shè)備中逐層解碼所述信息,最終通過解碼所述數(shù)據(jù)分組來提取語音數(shù)據(jù)。舒適噪聲生成器可以處于接收器所在的位置,例如,所述舒適噪聲生成器可以處于語音DSP所在的位置,由此可以根據(jù)來自信源的數(shù)據(jù)而對信號靜音部分進行解碼,如果已經(jīng)完全刪除了靜音數(shù)據(jù),那么舒適噪聲生成器可以重建噪聲數(shù)據(jù),以便將其插入信號的靜音部分。這個重建的噪聲數(shù)據(jù)可以是基于那些從語音數(shù)據(jù)、歷史數(shù)據(jù)或是所保存的配置文件等等中測得或估計的噪聲數(shù)據(jù)。通過刪除靜音數(shù)據(jù),所述系統(tǒng)節(jié)省了帶寬。然而希望實現(xiàn)的是通過在靜音時段重建和插入舒適噪聲數(shù)據(jù)來避免感覺到信號的接通或切斷。
可以使用Virata的G.729-附錄B以及G.729A-附錄B中的共軛結(jié)構(gòu)的代數(shù)碼激勵線性預(yù)測(CS-ACELP)語音編碼器算法來實施語音數(shù)據(jù)的壓縮和編碼。在Virata的G.729A-附錄B中,CS-ACELP語音編碼器算法模塊執(zhí)行的是ITU-T G.729A-附錄A和附錄B的語音編碼器標準。G.729A的附錄B定義了語音活動檢測器和舒適噪聲生成器,以便與專為V.70 DSVD(數(shù)字數(shù)據(jù)/語音同傳)應(yīng)用進行優(yōu)化的G.729和G.729A結(jié)合使用。其中使用共軛結(jié)構(gòu)的代數(shù)碼編碼激勵線性預(yù)測編碼函數(shù)來把編解碼器(編碼器/解碼器)或線性數(shù)據(jù)壓縮成8Kbps的編碼。在Virata的G.729-附錄B中,CS-ACELP語音編碼器算法模塊執(zhí)行的是ITU-T G.729-附錄B中的語音編碼器標準。G.729A的附錄B定義了一個語音活動檢測器以及舒適噪聲生成器,以便與專為V.70 DSVD應(yīng)用進行優(yōu)化的G.729和G.729A結(jié)合使用。其中使用CS-ACELP編碼算法來將編解碼器或線性數(shù)據(jù)壓縮成8KBps的編碼。
作為強化MIPS的G729壓縮算法的一種替換方案,在結(jié)合上述舒適噪聲生成器(CNG)技術(shù)的情況下,本發(fā)明考慮使用G726標準來進行壓縮。舉例來說,CNG位于語音DSP的vCoreTM軟件模塊之中,所述模塊可以是例如Virata的Magnesium處理器。在這里將對語音數(shù)據(jù)進行壓縮和編碼,并且將會轉(zhuǎn)發(fā)分組,以便對其進行更高級別的分組層次化,由此最終沿著通信網(wǎng)絡(luò)來傳送所述分組。一旦到達目的地接收機,則對語音數(shù)據(jù)進行解碼,并且一個CNG將會解碼數(shù)據(jù)并且構(gòu)造或重建噪聲信息,其中噪聲信息與這里描述的語音信息是包含在一起的。
圖18描述了根據(jù)本發(fā)明的一個實施例的軟件架構(gòu)。其中可以執(zhí)行主DSP 1822的應(yīng)用來處理那些從音頻信道經(jīng)由主機接口層(HST)到達主機處理器的系統(tǒng)級數(shù)據(jù)流。特別地,主DSP 1822可以支持低開銷處理1824以及低等待時間處理1826,此外還可以支持其它類型的處理。FXS驅(qū)動器1836(TFXS)對狀態(tài)轉(zhuǎn)移和用于FXS事件接口的信號防抖進行處理。較低的層包含了用于編解碼器1838的設(shè)備驅(qū)動器、SLIC 1840以及用于音頻信道的設(shè)備驅(qū)動器1834(CNL)。在啟動之后,啟動載入器1830可以加載DSP圖像。其中所述系統(tǒng)提供了最小的開銷、最低的CPU利用率、最短的等待時間以及簡易集成的組合。
圖18描述的是與Virata的Magnesium處理器1820相連的Virata的Helium處理器1810,所述Magnesium處理器1820經(jīng)由編解碼器/SLIC 1852而與電話1850或其他設(shè)備相連。Helium處理器1810可以支持語音編程接口1812以及硬件抽象層1814。并且處理器1810也可以支持其他功能。Magnesium處理器1820可以包括共享存儲器1828、啟動載入器1830、主機接口1832、不同算法(例如舒適噪聲生成器1842)1842~1848、不同驅(qū)動器(例如1834~1840)以及其他功能。
圖19描述的是根據(jù)本發(fā)明實施例的DSL集成接入設(shè)備軟件。如圖19所示,語音DSP軟件可以包括呼叫建立1910、語音處理1912和管理1914。并且還可以提供其他語音軟件。如1916所示的本發(fā)明的舒適噪聲生成器功能可以得到處于1912的語音處理功能支持。語音DSP接口1920在語音DSP軟件與通信處理器軟件之間提供了一個接口。通信處理器軟件可以包括電話信令1922、DSP接口1924、公共服務(wù)特定匯聚子層(SSCS)接口1926、急流(JetStream)SSCS 1928、Copperoom SSCS 1930、專有SSCS 1932、路由器1934、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)、點到點的隧道協(xié)議(PPTP)1936、網(wǎng)際協(xié)議上的傳輸控制協(xié)議(TCP/IP)1938、生成樹網(wǎng)橋1940、開放式系統(tǒng)互連(OSI)的第2層1942、請求注解RFC1944、通過ATM的點到點協(xié)議(PPPoA)1946、通過以太網(wǎng)的點到點協(xié)議(PPPoE)1948、ATM適配層(AAL)-2的公共部分匯聚子層(CPCS)1950、ATM適配層(AAL)-5 1952、信令1954、業(yè)務(wù)量管理1956、寬帶統(tǒng)一框架(BUN)設(shè)備驅(qū)動器框架1958、ATM驅(qū)動器1960和/或其它功能。
數(shù)據(jù)封裝功能可以借助不同方法提供,其中包括1944所示的RFC 1483;PPPoA 1946以及PPPoE 1948。而對封裝以及其下的邏輯連接則可以進行一般的處理。舉例來說,封裝可以附著于生成樹網(wǎng)橋1940或IP路由器1934。最終結(jié)果可以包括易于在具有常規(guī)分組接口的端口與具有封裝的端口之間進行路由選擇或橋接的能力,也可以包括易于在具有封裝的端口之間易于進行路由或橋接的能力。如1944所示的RFC 1483提供了一種經(jīng)由ATM網(wǎng)絡(luò)而與末端站相連的簡單方法。PPPoA 1946可以使用IP分組的形式來傳送用戶數(shù)據(jù)。在一個實例中,可以使用PPPoE 1948的封裝并經(jīng)由以太網(wǎng)和使用RFC1483封裝的DSL鏈路來把PPP業(yè)務(wù)量從個人計算機(PC)或其它設(shè)備最終傳送到DSL設(shè)備。PPPoE中繼代理可以充當一網(wǎng)橋,以便確定本地發(fā)起的PPPoE業(yè)務(wù)量所歸屬的會話。
AAL-2(例如1950)可用于傳送語音業(yè)務(wù)量。AAL可以包括至少兩層。較低的層可以包括一個用于處理尾部添加、填充、CRC檢查及其他功能的CPCS。較高的層包括一個用于處理特定服務(wù)的任務(wù)的SSCS,舉例來說,所述任務(wù)可以是數(shù)據(jù)傳輸保證。AAL-5(例如1952)可以為具有優(yōu)化吞吐量意圖的數(shù)據(jù)提供有效可靠的傳送,并且還可以執(zhí)行其他功能。
AAL-5 1952是一個用于定義如何將數(shù)據(jù)分割成信元的ATM適配層,它還執(zhí)行信元重組。并且可以定義不同的AAL,以便支持各種業(yè)務(wù)量需求。
信令1954可以提供一種在兩點之間動態(tài)建立虛電路的裝置。生成樹網(wǎng)橋1940可以在兩個物理上拆散并具有生成樹選項的網(wǎng)絡(luò)之間提供一個透明網(wǎng)橋。所述生成樹算法可以對冗余度進行處理并且可以提高牢固性。
BUN設(shè)備驅(qū)動器框架1958向基于大量分組和信元的硬件設(shè)備提供了一個常規(guī)接口。在這里可以將BUN稱為設(shè)備驅(qū)動器框架,因為它從依賴于硬件的原語中分離出了依賴于硬件的功能,由此簡化了設(shè)備驅(qū)動器的開發(fā)、維護和調(diào)試。
ATM驅(qū)動器1960在應(yīng)用軟件任務(wù)與物理ATM端口之間傳遞數(shù)據(jù),例如,ATM驅(qū)動器1960可以執(zhí)行ATM信元的分割和重組、AAL封裝,并且可以對并行數(shù)據(jù)流進行復(fù)用。
雖然以上描述包含了許多細節(jié)和特性,但是應(yīng)該理解,這些細節(jié)和特性僅僅是出于說明目的而被包含的,不應(yīng)將其視為是對本發(fā)明的限制。在不脫離本發(fā)明實質(zhì)和范圍的情況下,可以對上述實施例進行多種修改。
本發(fā)明并不局限于這里描述的特定實施例的范圍。實際上,除了這里描述的修改之外,對本領(lǐng)域普通技術(shù)人員來說,根據(jù)以上描述和附圖,本發(fā)明的不同修改將是顯而易見的。因此,在這里意味著這些修改都落入了以下的附加權(quán)利要求范圍以內(nèi)。此外,盡管在這里已經(jīng)在特定環(huán)境的特定實施上下文中用于特定目的的本發(fā)明進行了描述,但是本領(lǐng)域技術(shù)人員將會了解,本發(fā)明的用途并不僅限于此,并且可以在多種環(huán)境中有利地實施本發(fā)明,以便將其用于多種目的。因此,有鑒于這里公開的本發(fā)明的全部精神和實質(zhì),應(yīng)該對以下闡述的權(quán)利要求進行分析。
權(quán)利要求
1.一種用于執(zhí)行頻譜估計以便生成舒適噪聲的方法,所述方法包括以下步驟
接收一個輸入噪聲信號;
使用一種算法而在一個時段近似輸入噪聲信號的頻譜;
檢測是否不存在話音信號;以及
在檢測到不存在話音信號的的時候,基于近似步驟來產(chǎn)生舒適噪聲;
其中輸入噪聲信號的頻譜實質(zhì)上在這個時段是恒定的。
2.權(quán)利要求1的方法,其中近似步驟還包括以下步驟
使用一個反向預(yù)測器而使輸入噪聲適合于所預(yù)測的信號的頻譜。
3.權(quán)利要求1的方法,還包括以下步驟
執(zhí)行一個內(nèi)部檢查,以便確定輸入噪聲信號處于大約為固有噪聲電平的6dB范圍以內(nèi)。
4.權(quán)利要求3的方法,其中避免接近噪聲尖峰以及話音分段中的至少一個。
5.權(quán)利要求1的方法,其中所述算法是一種最小均方算法。
6.權(quán)利要求1的方法,其中所述算法是一種帶有遺忘因子的最小均方算法。
7.權(quán)利要求1的方法,其中所述算法是一種歸一化的最小均方算法。
8.權(quán)利要求1的方法,其中所述算法是一種線性預(yù)測編碼算法。
9.權(quán)利要求1的方法,還包括以下步驟
執(zhí)行最小均方誤差和至少一個最小均方系數(shù)的可變精度計算,以使所述算法實質(zhì)上獨立于噪聲電平變化。
10.權(quán)利要求1的方法,其中所產(chǎn)生的舒適噪聲實質(zhì)上是均勻分布的。
11.權(quán)利要求1的方法,還包括以下步驟
歸一化所述算法,以使近似步驟實質(zhì)上獨立于信號幅度變化。
12.權(quán)利要求1的方法,還包括以下步驟
從近似步驟中分離出編碼成至少一個反射系數(shù)的濾波器系數(shù),以便傳送至少一個靜音插入描述符。
13.權(quán)利要求12的方法,其中系統(tǒng)之間的互通性得到了增強。
14.權(quán)利要求13的方法,其中MIPS和存儲器得到了有效使用。
15.權(quán)利要求1的方法,其中近似步驟還包括如下步驟
由一個合成濾波器來過濾輸入噪聲信號。
16.權(quán)利要求1的方法,其中如下定義所述合成濾波器
其中M代表多個分支;w代表一個預(yù)測器系數(shù);H是變量z的函數(shù)。
17.權(quán)利要求15的方法,其中所述合成濾波器是一個10階合成濾波器。
18.權(quán)利要求1的方法,其中近似估計步驟還包括如下步驟
檢測話音數(shù)據(jù)之間的噪聲;
自適應(yīng)所述噪聲;以及
在話音休止的時候,基于所述自適應(yīng)步驟來創(chuàng)建靜音插入描述符。
19.權(quán)利要求18的方法,其中
如下所示,靜音插入描述符是通過將至少一個直接形式系數(shù)轉(zhuǎn)換成至少一個反射系數(shù)而產(chǎn)生的
Bn(z)=z-mAm(z-1)
20.權(quán)利要求18的方法,其中
如下所示,通過將至少一個反射系數(shù)轉(zhuǎn)換成直接形式系數(shù)而對靜音插入描述符進行解碼
A0(z)=B0(z)=1
Am(z)=Am-1(z)+z-1Bm-1(z)km m=1,2,…M-1
Bm(z)=z-mAm(z-1) m=1,2,…,M-1
21.權(quán)利要求1的方法,其中近似步驟還包括以下步驟
檢測話音數(shù)據(jù)之間的噪聲;
自適應(yīng)所述噪聲;以及
在話音休止的時候,基于輸入噪聲信號的平均頻譜來產(chǎn)生增強的噪聲。
22.一種用于執(zhí)行頻譜估計以便產(chǎn)生舒適噪聲的系統(tǒng),所述系統(tǒng)包括
一個接收機,用于接收輸入噪聲信號;
一個編碼器,用于在某個時段上使用算法來對輸入噪聲信號頻譜進行近似;以及
一個檢測器,用于檢測是否不存在話音信號;
一個舒適噪聲生成器,在檢測到不存在話音信號的時候,基于頻譜近似來產(chǎn)生舒適噪聲;
其中在這個時段上,所述輸入噪聲信號實質(zhì)是恒定的。
23.權(quán)利要求22的系統(tǒng),其中編碼器還使用一個反向預(yù)測器而使輸入噪聲信號適合于預(yù)測信號頻譜。
24.權(quán)利要求22的系統(tǒng),其中執(zhí)行了一個內(nèi)部檢查,以便確定輸入噪聲信號處于大約為固有噪聲電平的6dB范圍以內(nèi)。
25.權(quán)利要求24的系統(tǒng),其中避免接近于噪聲尖峰和話音分段中的至少一個。
26.權(quán)利要求22的系統(tǒng),其中所述算法是一種最小均方算法。
27.權(quán)利要求22的系統(tǒng),其中所述算法是一種帶有遺忘因子的最小均方算法。
28.權(quán)利要求22的系統(tǒng),其中所述算法是一種歸一化的最小均方算法。
29.權(quán)利要求22的系統(tǒng),其中所述算法是一種線性預(yù)測編碼算法。
30.權(quán)利要求22的系統(tǒng),其中執(zhí)行了最小均方誤差和至少一個最小均方系數(shù)的可變精度計算,以使所述算法實質(zhì)上獨立于噪聲電平變化。
31.權(quán)利要求22的系統(tǒng),其中所產(chǎn)生的舒適噪聲實質(zhì)上是均勻分布的。
32.權(quán)利要求22的方法,歸一化所述算法,以使頻譜的近似步驟實質(zhì)上獨立于信號幅度變化。
33.權(quán)利要求22的系統(tǒng),其中從頻譜的近似步驟中分離出編碼成至少一個反射系數(shù)的濾波器系數(shù),以便傳送至少一個靜音插入描述符。
34.權(quán)利要求33的系統(tǒng),其中系統(tǒng)之間的互通性得到了增強。
35.權(quán)利要求34的系統(tǒng),其中MIPS和存儲器得到了有效使用。
36.權(quán)利要求22的系統(tǒng),還包括一個合成濾波器,用于過濾輸入噪聲信號。
37.權(quán)利要求22的系統(tǒng),其中如下定義所述合成濾波器
其中M代表多個分支;w代表一個預(yù)測器系數(shù);H是變量z的函數(shù)。
38.權(quán)利要求36的系統(tǒng),其中所述合成濾波器是一個10階合成濾波器。
39.權(quán)利要求22的系統(tǒng),其中所述編碼器還包括
一個檢測器,用于檢測話音數(shù)據(jù)之間的噪聲;
一個適配器,用于自適應(yīng)所述噪聲;以及
靜音插入描述符生成器,用于在話音休止的時候基于自適應(yīng)步驟來創(chuàng)建靜音插入描述符。
40.權(quán)利要求39的系統(tǒng),其中如下所示,靜音插入描述符是通過將至少一個直接形式系數(shù)轉(zhuǎn)換成至少一個反射系數(shù)而產(chǎn)生的
Bn(z)=z-mAm(z-1)
41.權(quán)利要求39的系統(tǒng),其中如下所示,通過將至少一個反射系數(shù)轉(zhuǎn)換成直接形式系數(shù)而對靜音插入描述符進行解碼
A0(z)=B0(z)=1
Am(z)=Am-1(z)+z-1Bm-1(z)km m=1,2,…M-1
Bm(z)=z-mAm(z-1) m=1,2,…,M-1
42.權(quán)利要求22的系統(tǒng),其中所述編碼器還包括
一個檢測器,用于檢測話音數(shù)據(jù)之間的噪聲;
一個適配器,用于自適應(yīng)所述噪聲;以及
一個噪聲生成器,用于在話音休止的時候基于輸入噪聲信號的平均頻譜來產(chǎn)生增強的噪聲。
全文摘要
本發(fā)明涉及一種用于執(zhí)行低復(fù)雜性的頻譜估計技術(shù)以便產(chǎn)生舒適噪聲的方法和系統(tǒng)。本發(fā)明的另一個方面包括從自適應(yīng)處理中分離出濾波器參數(shù)編碼,以便以靜音插入描述符的形式來進行傳送。一種用于執(zhí)行頻譜估計,以便產(chǎn)生舒適噪聲的方法包括以下步驟接收一個輸入噪聲信號;使用一種算法而在一個時段近似輸入噪聲信號的頻譜;檢測是否不存在話音信號;以及在檢測到不存在語音信號的時候,基于近似步驟來產(chǎn)生舒適噪聲;其中輸入噪聲信號的頻譜實質(zhì)上在這個時段是恒定的。
文檔編號H03K5/159GK1539138SQ0281532
公開日2004年10月20日 申請日期2002年6月12日 優(yōu)先權(quán)日2001年6月12日
發(fā)明者瓦蘇德夫·S·納雅克, 瓦蘇德夫 S 納雅克 申請人:格魯斯番維拉塔公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
河源市| 浏阳市| 长白| 德昌县| 临夏市| 平罗县| 开化县| 宽城| 来安县| 宣恩县| 安新县| 扎鲁特旗| 山西省| 铜陵市| 鄂托克前旗| 台南县| 沭阳县| 玉树县| 东阿县| 宾川县| 宁远县| 朔州市| 枣强县| 文登市| 高州市| 澄江县| 扎鲁特旗| 宁国市| 永春县| 即墨市| 宜章县| 连州市| 瑞昌市| 平和县| 民勤县| 敦化市| 海淀区| 阜城县| 沅江市| 山西省| 新丰县|