《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 用于VOIP的G.729A算法的優(yōu)化改進

用于VOIP的G.729A算法的優(yōu)化改進

2008-07-08
作者:楊召青, 黃 冰, 宋欽梅

??? 摘 要: 在VOIP應(yīng)用的基礎(chǔ)上,介紹了VOIP的現(xiàn)狀及其用于VOIP語音編碼" title="語音編碼">語音編碼標(biāo)準的發(fā)展方向,并對VOIP網(wǎng)路通信語音編碼標(biāo)準之一的G.729 A[1]進行了優(yōu)化改進,提出了一種利用重新初始化來獲得狀態(tài)恢復(fù)(RbR)與WD-LSP[8](Weighted delta-LSP)相結(jié)合的CS-ACELP語音編碼算法,利用重新初始化來獲得狀態(tài)恢復(fù),解決了包丟失階段和在包丟失以后階段產(chǎn)生差錯脈沖所引起的重建語音質(zhì)量" title="語音質(zhì)量">語音質(zhì)量下降問題的同時,采用WD-LSP降低了算法復(fù)雜度" title="算法復(fù)雜度">算法復(fù)雜度。
??? 關(guān)鍵詞: G.729A? WD-LSP? CS-ACELP? RbR

?

???? VOIP是近年來快速發(fā)展起來的一項新的網(wǎng)絡(luò)通信技術(shù),已在全世界得到了廣泛應(yīng)用。然而受網(wǎng)絡(luò)傳輸帶寬、傳輸速率和網(wǎng)絡(luò)環(huán)境等因素的制約,目前網(wǎng)絡(luò)電話在語音質(zhì)量和傳輸延時方面還有待完善。低速率語音編解碼" title="編解碼">編解碼技術(shù)是IP網(wǎng)絡(luò)多媒體通信中最關(guān)鍵的技術(shù)之一。有低速率語音壓縮編解碼技術(shù)的基礎(chǔ)上,結(jié)合網(wǎng)絡(luò)通信技術(shù),提出了一種高效的語音實時通信方案。
1 編解碼方案的選擇
??? 壓縮和解壓縮方案的選擇需要考慮語音質(zhì)量、速度、復(fù)雜度、延時四個方面。IP 語音通信主要使用ITU定義的幾個語音編碼的標(biāo)準:G.723.1、G.728和G.929。G.729A是ITU推出的用于第四代語音編碼標(biāo)準,采用了共軛結(jié)構(gòu)-算術(shù)碼本激勵線性預(yù)測編碼(CS-ACELP)算法。
2 VOIP語音編碼改進中的關(guān)鍵技術(shù)
??? VOIP中語音編碼或稱語音壓縮編碼研究的基本問題主要包括:(1)在給定編碼速率的條件下如何得到盡量好的重建語音質(zhì)量,或稱編碼質(zhì)量。同時應(yīng)盡量減小編解碼時延以及算法的復(fù)雜度。(2)由于語音在網(wǎng)絡(luò)傳輸使用UDP的協(xié)議,對在傳輸過程中出現(xiàn)錯誤或丟失采用的幀檢錯糾錯和丟失補償處理,以保證更好的語音質(zhì)量,因此對整個 G.729A聲碼器的改進也是針對上述兩個方面進行的。
3 RbR與WD-LSP[8]相結(jié)合的CS-ACELP語音編碼算法
3.1 WD-LSP在G.729A中的應(yīng)用
??? G.729A編碼器中功能模塊的改進重點在于自適應(yīng)碼本搜索,因為它們占用了聲碼器大部分的處理時間。這包括自適應(yīng)碼本矢量的產(chǎn)生、自適應(yīng)碼本時延的碼字編碼、自適應(yīng)碼本增益的計算、固定碼本搜索、固定碼本矢量的產(chǎn)生、固定碼本的碼字編碼、固定碼本增益的量化。同時與自適應(yīng)碼本搜索相關(guān)的開環(huán)基音分析也有改進的余地。本文采用一種新的降低算法復(fù)雜度的方法,即結(jié)合WD-LSP(Weighted delta-LSP)采用次最優(yōu)部分碼本快速搜索的CS-ACELP 語音編碼算法[3],其原理圖如圖1所示。

????????????????????????
??? 在G.729A語音編碼階段,為了減少搜索最佳自適應(yīng)碼本延遲必需的計算量,開環(huán)基音延遲Top在每幀(10ms)都作一次分析,因而需要較多的CPU時間用于開環(huán)基音分析。因此可采用WD-LSP函數(shù)來減少用于開環(huán)基音分析的計算量。WD-LSP函數(shù)主要用于區(qū)分UV-V(unvoice-voice)/S-V(silence-voice)的邊界。其原理是:如果函數(shù)值大于給定的極限值η,則開環(huán)基音延遲Top重新估計,否則,Top用前一幀的自適應(yīng)碼本延遲來更新。在第i幀F(xiàn)i的WD-LSP函數(shù)和用于確定Top的算法描述如下:
???
??? 如果Fi>η,重新估計Top
??? 另外Top=自適應(yīng)碼本延遲
??? 其中LSPi(k)是在第i幀中的k階LSP系數(shù);wk是加權(quán)系數(shù),它用于增強UV-V/S-V邊界的WD-LSP函數(shù)。為了獲取wk,一個包含23 014個UV-V邊界和9 519個S-V邊界的大型數(shù)據(jù)庫用于估計delta-LSP在UV-V/S-V邊界的平方根值(RMS)。因此,WD-LSP用于檢測VU-V/S-V邊界非常敏感。η是一個設(shè)為0.01的極限值。整個計算可節(jié)省21%的計算量,且合成語音質(zhì)量仍然較好。
3.2 RbR改善包丟失所引起的語音質(zhì)量
??? 由于G.729A具有15ms的低算法延遲[8]和丟失包的恢復(fù)機制,因此G.729A應(yīng)用于VOIP是一種很好的選擇。G.729A把語音分為每10ms為一幀,同時每一幀再被分為兩個5ms的子幀。需要傳輸?shù)膮?shù)以每幀80bit進行傳輸,因此導(dǎo)致要求8kbps的數(shù)據(jù)傳輸率。
??? 語音傳輸過程中,在包丟失階段和在包丟失以后的一個階段都會產(chǎn)生差錯脈沖。跟在包丟失后面的差錯稱為狀態(tài)錯誤,這些錯誤都可以被耳朵察覺到從而會明顯地降低語音的質(zhì)量。
??? 包丟失后一段延時內(nèi)有錯誤,原因就是在包丟失的一個階段編碼器與解碼器的狀態(tài)不能夠再同步。在本文中用于狀態(tài)的所有存儲器都在編碼器和解碼器中不會相互交換,但是會進行經(jīng)常的更新以保證它們在兩邊相同。編碼器產(chǎn)生以系列的參數(shù)來模擬基于當(dāng)前狀態(tài)的語音。這些參數(shù)傳輸?shù)浇獯a器再由這些參數(shù)和本地的狀態(tài)來重新產(chǎn)生語音。在正規(guī)操作下,編碼器和解碼器的狀態(tài)不斷更新以保持相同,從而使解碼器重新合成原始語音。但是在包丟失階段,因為接收者不能完全對狀態(tài)進行更新,因此編碼器與解碼器不再同步。即使之后沒有數(shù)據(jù)包丟失,正確接收數(shù)據(jù)包時,解碼器用錯誤的狀態(tài)來重新產(chǎn)生語音,無疑會導(dǎo)致明顯的語音失真。本文所定義的G.729A算法的狀態(tài)如表1所示。這是通過分析和基于文獻[5]確定的。

????????????????????????????
??? 在大量仿真的基礎(chǔ)上,可以注意到在狀態(tài)#1、#4和#5重新同步以前,該算法分別采用4幀、2幀和1幀。而狀態(tài)#2和#3是基于過去的輸出,所以對于這些狀態(tài)所采用的幀的數(shù)量是變化的,并且隨著包丟失發(fā)生的位置而變化。仿真表明:在上一幀為幀擦除的情況下,對應(yīng)于狀態(tài)#2和#3分別以32幀和30幀來獲得重新的同步。這些結(jié)果顯示在一幀丟失后,所有的狀態(tài)獲得重新同步平均需要32幀。然而,也應(yīng)該注意到,在包丟失后語音質(zhì)量下降不會持續(xù)很長時間。
??? 另外做了一個測試來核實哪種狀態(tài)對語音質(zhì)量的下降影響最大。修改算法,以便在需要進行幀的數(shù)據(jù)擦除時獨立地對值進行修改,而不需要擦除一幀的數(shù)據(jù)。結(jié)果表明#2狀態(tài)無疑是引起語音下降的主要狀態(tài),同時在當(dāng)同步喪失時對狀態(tài)錯誤的影響最大。
??? 在G.729A中,對包丟失發(fā)生時有很好的應(yīng)對處理方法,但是對于因包丟失引起的狀態(tài)錯誤沒能得到好的恢復(fù)。在G.729A中采用了一種新的方法來提高在包丟失期間自錯誤狀態(tài)的恢復(fù)情況。
??? 對于一個給定的狀態(tài),解碼器產(chǎn)生了與這個狀態(tài)相對應(yīng)的一系列最佳的語音壓縮參數(shù)。然而壓縮質(zhì)量無疑依賴于狀態(tài)的最佳性,在包丟失發(fā)生后差錯發(fā)生的主要原因是狀態(tài)和壓縮參數(shù)的不匹配。
??? 基于上面的討論,建議當(dāng)發(fā)生包丟失時,通過每N幀在編碼器和解碼器兩端對狀態(tài)#2進行周期性的歸零初始化來維持解碼器和編碼器的匹配。這種通過重新初始化來獲得恢復(fù)的方法具有簡單性同時保證了在包丟失時減少了狀態(tài)差錯的數(shù)量。
??? 通過試驗發(fā)現(xiàn),為了獲得更好的結(jié)果必須對所描述的關(guān)于執(zhí)行RbR的技術(shù)進行修改。這是由于對其進行初始化的幀以及跟隨此幀的下一幀比未進行初始化的幀對于包丟失更敏感。為了補償這種情況,試驗表明最有效的方式是增加冗余信息" title="冗余信息">冗余信息。如果對其進行初始化的幀為幀#n,那么解決的方法就是將幀#n的增益值和固定碼本向量與幀#n+1一起傳輸。同樣的,將#n+1幀的基音值和增益與幀#n+2一起傳送。無論包丟失發(fā)生在幀#n+1還是幀#n+2,都可以用冗余信息來減少包丟失的影響。每個初始化間隔冗余信息需要76bit,從而去除了這些幀對于幀丟失的額外的敏感度。對于N=10的初始化間隔,RbR需要8.76kbps(大約9.5%的冗余)。
3.3 試驗結(jié)果
??? 為了評價RbR的性能,需要一個合適的方法來評價語音質(zhì)量。因為人耳的特性,并不是所有的誤差都能被察覺,這取決于作為語音質(zhì)量的指標(biāo)的平方誤差的數(shù)值。為了客觀地評價語音質(zhì)量,采用了圖2所示的系統(tǒng)。這個系統(tǒng)用一個知覺模型來計算兩個語音文件的聽覺差,這個知覺模型類似于MPEG聲頻壓縮的模型[6]。這個誤差是所有語音幀的總和除以采樣的數(shù)量來獲得每個采樣的知覺誤差(PEpS)。這種方法被證明是檢測語音質(zhì)量的一種很好的指標(biāo)。

??????????????????
??? 需要考慮的首要問題是證明當(dāng)未發(fā)生幀擦除時,RbR是否會對語音產(chǎn)生影響。這是因為傳輸者沒有辦法預(yù)知包丟失是否發(fā)生,而在未發(fā)生包丟失時也要進行RbR操作。對應(yīng)于不同初始化間隔的進行RbR操作的PEpS和未進行RbR操作的PEpS的比較如圖3所示。可以看到,當(dāng)初始化間隔N的選取大于9時其降低不明顯。如果N進一步減小,其質(zhì)量將會降低從而使得輸出語音變?yōu)樵肼?。測試將狀態(tài)#2設(shè)置為0的影響,因為需要內(nèi)插狀態(tài)#2的數(shù)值,因此自適應(yīng)碼本向量為0。在這種情況下,所有的激勵都是由用于無聲語音的固定碼本向量組成。如果語音為有聲語音,則編碼器以分析-合成的特性來選取最佳的固定碼本向量,因此可以使原始語音與合成語音之間的知覺誤差最小,從而使下降度維持在最小。同樣,自適應(yīng)前向濾波器用于對所有固定碼本向量進行濾波也可以減少下降度的影響,這是因為它增加了一些有聲元素到固定碼本向量中。這也能達到筆者所期望的狀態(tài),即如果RbR不是進行經(jīng)常操作,則在未發(fā)生包丟失的階段由RbR引起的下降度不明顯。

????????????????????????????
??? 本文就提高重建語音的音質(zhì)與降低算法復(fù)雜度方面,針對G.729A目前的現(xiàn)狀,提出了利用重新初始化來獲得狀態(tài)恢復(fù)(RbR)與WD-LSP(Weighted delta-LSP)相結(jié)合的CS-ACELP 語音編碼算法,解決了目前網(wǎng)絡(luò)通信由于帶寬和包丟失帶來的問題,保證了語音的質(zhì)量。對今后G.729A語音編碼的發(fā)展改進以及在VOIP中的應(yīng)用具有一定的意義。
參考文獻
[1] ITU-T Recommendation G.729 Annex A[S].
[2] HWANG Shaw-Hwa. Computional improvement for G.729?standard[J]. ELECTRONIC LETTERS.22nd June 2000:
?1163-1164.
[3]?ITU-T G.729: Coding of speech at 8kb/s using conjugat-estructure algebraic-code excited linear-prediction(CSACELP).International Telecommunications Union, March1996.
[4]?楊國芳,高飛.一種基于G[1].729的CS-ACELP新算法[J].語音技術(shù),2004,(1):56-59.
[5] ROSENBERG J. G.729 Error Recovery for InternetTele-phony. Columbia University report, Spring 1997,
?http://www.cs.columbia.edu/-jdrosen/e688O/index.html
[6] NOLL P. MPEG digital audio coding. IEEE Signal Processing Magazine, September 1997:59-81.
[7] SALAMI R. ITU-T G.729 Annex A: Reduced complexity ?8kb/s CS-ACELP codec for digital simultaneous voice
?and Data. IEEE Communications Magazine,Sept.1997:56-63.
[8]?HWANG Shaw Hwa. Computional improvement for G.729?standard[J]. Electronic Letters. 22nd June 2000:1163-1164.
[9] ?MERMELSTEIN P, QIAN Ya sheng. Analysis by synthesis ?speech coding with generalized pitch prediction[D]. IEEE?International Conference on Acoustics, Speech and Signal?Processing, Vol. I of VI,1-4(HC), 1999.
[10] COMBESCURE P, SCHNITZLER J. A 16, 24, 32kbit/s?wideband speech codec based on ATCELP[C]. IEEE
?International Conference on Acoustics, Speech and Signal?Processing, Vol. I of VI,5-8(HC), 1999.
[11] MONTMINY C, ABOULNASR T. Improving the performance of ITU-T G.729A for VoIP[J].

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。