??? 摘 要:? 對一種改進的高性能包丟失隱藏算法" title="包丟失隱藏算法">包丟失隱藏算法進行了分析。此算法以G.711脈沖編碼調制" title="編碼調制">編碼調制為基礎,建立一種新型線性預測模型,并通過仿真得出此改進算法對VoIP語音丟失包能起到比較好的恢復效果。
??? 關鍵詞:? VoIP? 平均意見得分? 包丟失隱藏算法? 線性預測
?
??? 當前VoIP受到人們越來越多的喜愛和歡迎,其受關注程度逐步超越傳統(tǒng)的以電路交換為基礎的公用交換電話網絡(PTSN)。然而IP網絡需要解決的問題不僅是基于非實時業(yè)務,更重要的是實時業(yè)務。而IP網絡中實時業(yè)務的保證主要在以下幾個方面:抖動、延時和信道錯誤。這些錯誤的產生就會導致收端的包丟失,從而降低語音的通話質量。以模擬為基礎的編碼器,特別是國際電聯(lián)(ITU-T" title="ITU-T">ITU-T)標準的G.723.1[1]和G.729-A[2],由于它們的低速率(G.723.1為5.3k~6.4kbps,G.729-A為8kbps)而普遍用于IP網絡語音編碼。這些編碼器內嵌的包丟失隱藏算法可靠地保證了網絡中包丟失帶來的失真等。但是,這些算法都需要比較多的內存保存足夠完好的傳輸幀來恢復丟失的幀,這樣可能會因此破壞網絡中一些好的包而導致“State Error”出現(xiàn)。另一方面,脈沖編碼調制(PCM,64kbps)相對以上兩種編碼方式有更高的質量,但是它沒有能力對丟失的包進行恢復。與模擬編碼器相比,PCM調制方式能更迅速恢復丟失的包。相對簡單的PCM調制方式和其良好的性能使得其在VoIP采用的編碼算法中占有重要的地位。
??? 在PCM流中,已經有好幾種方法描述幀丟失問題。最簡單的就是在幀丟失期間,插入靜音包。這種方式雖然在一定程度上解決了包丟失問題,但是帶來的后果是難以忍受的通話靜音。其他的隱藏算法主要是依據語音相對固定的特性。還有一種比較普遍的商業(yè)包丟失隱藏算法原理是復制接收端最后一個好的語音包作為丟失的包。這種算法較前一種算法有所改進但是還是不能得到高質量" title="高質量">高質量的語音包[3]。
??? 還有一種標準是ANSI標準T1-521-2000(附錄B)。這種算法需要良好的線性預測模型預測丟失的語音波形。它完全采用模擬為基礎的codecs方式。它首先對從前一個傳輸完好的語音包進行完整的分析;其次,綜合單元利用上述分析的一些參數連同最近接收的語音采樣點進行合成,成為一個最相似語音包代替丟失的語音包。算法的延時為5ms。同時算法計算也比較復雜(每10ms包2.3MIPS)。此算法得到的語音包的質量與ITU-T G.711附錄A相當[4]。
1 APLC算法描述
??? ITU-T制定的G.711標準中,已經提供了其PCM編碼方式的包丟失隱藏算法(PLC)[5]。這種方法主要是波形替代,其原理如下:首先,PLC算法通過語音采樣進行基音周期檢測,并且把語音采樣點保存到歷史buffer中(history buffer)(390個采樣點,8kHz采樣頻率);其次隱藏單元指針指向一個基音周期末端,然后復制包丟失期間的語音信號。預先復制的基音周期放到一個由丟失的語音段產生的間隙。算法同時對最后一個接收到的完好語音包和丟失的包進行迭加,這種迭加保證了語音傳輸的平滑和自然。同時算法在迭加過程中有3.75ms的延時。
??? 上述算法PCM編碼以線性預測為基礎,其線性預測公式為:
??? 
其中,S(n)為第n個數據采樣點,p為預測序列值,a(i)為線性預測系數,b(n)為線性預測誤差。
??? 從(1)式可見,語音采樣S(n)由二部分組成,第一部分為線性預測系數與一組過去的樣本值S(n-1),S(n-2),…S(n-p)線性組合而成,它可以看成從S(n)過去的樣本值來預測或估計當前值S(n)的結果,故又稱之為線性預測值;第二部分是輸入的預測誤差b(n)。
??? 如果LPC從連續(xù)的采樣點中得不到相關系數的話,b(n)誤差會比較大。在發(fā)生包丟失的情況下,前一個采樣點通過公式(1)可以得到。但是輸入的預測誤差b(n)是不確定的。在ITU-T標準G.711-Annex A中,丟失幀的基音周期預測信號通過一種類似的隱藏算法——反向基音周期復制(RORPP)實現(xiàn)。公式如下:
??? 
其中,S(n)表示LPC預測,
為基音周期預測周期信號,G為基音周期預測系數。設參數α、β,(2)式可變?yōu)椋?/FONT>
??? 
??? 再設μ、v,則上式變?yōu)?
??? 
??? 參數μ、v根據網絡中包丟失的嚴重程度分別賦予不同的值。 ??? 丟失的語音包中至少有一個包,計算丟失包恢復的參考值主要為丟失的前10ms包(首次丟失幀)。在包丟失開始期間,基音周期檢測單元根據ITU-T包丟失隱藏標準G.711-A計算出自相關系數的不同峰值來預估當前的基音周期,采樣點
??? 其工作原理如下:
??? 在PCM解碼過程中,接收端對接收的包進行解碼并且發(fā)送到音頻輸出口。同時為了支持包隱藏算法,解碼輸出的信號同時保存到總長為390個采樣的history buffer中,此history buffer用來計算自相關參數、預估基音周期和LP系數,并且提供預先的采樣點S(n-i),i
是由這種基音周期檢測方式計算出來的。與此同時,系統(tǒng)計算出最后20ms語音采樣點前50個自相關系數。LP分析器通過Levinson-Durbin算法計算出LP系數。為了能覆蓋到至少一個基音周期,LP預測序列值設為50。前50個自相關系數用于LP合成濾波器(語音模型)中。
??? 眾所周知,一個語音幀有80個采樣點。在此算法中,在語音丟失幀中采樣90個點,以達到平穩(wěn)傳輸包的目的。最后10個采樣點是根據丟失的包進行預測的值。如果下一個包仍然丟失,則這10個采樣點就作為下個丟失包的前10個采樣點;如果下一個包沒有發(fā)生丟失,則這些采樣點與一衰減系數" title="衰減系數">衰減系數相乘,并且和下一個完好的語音包的前10個采樣點(和一升序系數相乘)迭加。迭加后的輸出即用來替代包丟失后的下一包頭10個完好的采樣點。這種處理保證了丟失語音部分到完好語音包的平滑傳輸。
??? 如果包丟失超過10ms,則只需稍微改變ITU-T G.711-A中長期預估采樣值,而仍然采用上次丟失計算出的那些參數進行下10ms丟失包的恢復計算。在連續(xù)丟包情況下,基音周期預測復制器與一衰減系數相乘,此衰減系數初始值為1,每隔10ms下降0.2。衰減系數反映了丟包期間包衰減的平滑度。最后在連續(xù)丟包60ms后,基音周期預測復制器和輸入殘余信號都為0,式(3)變成沒有輸入的模型,最后導致語音包嚴重失真而不能恢復。
2 仿真試驗分析
??? 仿真試驗的目的是為了驗證上面提出的APLC算法的可行性及系統(tǒng)性能的改善程度。在本仿真試驗中,選一個比較典型的一段語音包(從采樣點47 700~48 000)為研究對象,參數α、β、μ、v的值分別為0.4和0.6。圖1為此段完好的語音包。
?

??? 圖2為丟失的語音包段。圖3和圖4分別是經過G.711 PLC算法和APLC算法恢復的語音包數據。
?

?

?

?
??? 圖5是通過ITU-T 的P.862 PESQ(Perceptual Estimation of Speech Quality)標準對其Mos值分別進行估計的結果,通過4個人分別說一段8s長的相同的話。文件的格式為線性PCM,談話文件從ITU-T附錄P.23得到。
?

??? 從上述仿真結果分析可以看到,有5%包丟失率的語音數據在經過G.711 PLC算法后,丟失語音包的恢復不是很理想。而經APLC算法后,語音包的恢復可以從圖4中看出,相對于G.711有了比較大的改進,整體Mos值也有較大的改進,達到3.6。APLC算法達到了預期的目的。
??? 本文中介紹一種新的基于PCM(每包為10ms語音包長)包丟失隱藏算法。新的算法模型通過對線性預測參數進行改進,形成改進的APLC算法,最后通過對語音數據包仿真驗證了新算法對丟失包的高質量的還原效果。但是APLC線性預測效果在特定的條件下還不是很準確,如參數μ、v的設置,理論上應該是每時每刻根據語音信號的不同,這兩個參數動態(tài)地變化著。但是實際上,這種動態(tài)的改變目前還不能做到,在后面的工作中需要作進一步深入研究。
參考文獻
[1] Dual rate speech coder for multimedia communications transmitting at 5.3 and 6.3kbps. ITU-T Recommendation??G.723.1, March 1996.
[2] ?Coding of speech at 8kbps using conjugate-structure algebraic-code-excited linear-prediction (CS-ACELP). ITU-T Recommendation G.729,March 1996.
[3]?GUNDUZHAN E, MONTAHAN K. A linear prediction based packet loss concealment algorithm for PCM coded speech,IEEE Trans. Speech and Audio Process. 9(8) (November 2001):778-785.
[4] ?HASSAN M, NAYANDORO A. Internet telephony: services,technical challenges, and products. IEEE Communication Magazine, April 2000:96-103.
[5]? MAHFUZ E. Packet loss concealment for voice transmission over IP networks. Department of Electrical Engineering ?McGill University Montreal,Canada, September 2001.
