《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信与网络 > 业界动态 > 一种基于G.711包丢失隐藏改进算法的研究

一种基于G.711包丢失隐藏改进算法的研究

2008-07-14
作者:严志军1,2, 许希斌2

??? 摘 要:? 對(duì)一種改進(jìn)的高性能包丟失隱藏算法" title="包丟失隱藏算法">包丟失隱藏算法進(jìn)行了分析。此算法以G.711脈沖編碼調(diào)制" title="編碼調(diào)制">編碼調(diào)制為基礎(chǔ),建立一種新型線性預(yù)測(cè)模型,并通過(guò)仿真得出此改進(jìn)算法對(duì)VoIP語(yǔ)音丟失包能起到比較好的恢復(fù)效果。
??? 關(guān)鍵詞:? VoIP? 平均意見(jiàn)得分? 包丟失隱藏算法? 線性預(yù)測(cè)

?

??? 當(dāng)前VoIP受到人們?cè)絹?lái)越多的喜愛(ài)和歡迎,其受關(guān)注程度逐步超越傳統(tǒng)的以電路交換為基礎(chǔ)的公用交換電話網(wǎng)絡(luò)(PTSN)。然而IP網(wǎng)絡(luò)需要解決的問(wèn)題不僅是基于非實(shí)時(shí)業(yè)務(wù),更重要的是實(shí)時(shí)業(yè)務(wù)。而IP網(wǎng)絡(luò)中實(shí)時(shí)業(yè)務(wù)的保證主要在以下幾個(gè)方面:抖動(dòng)、延時(shí)和信道錯(cuò)誤。這些錯(cuò)誤的產(chǎn)生就會(huì)導(dǎo)致收端的包丟失,從而降低語(yǔ)音的通話質(zhì)量。以模擬為基礎(chǔ)的編碼器,特別是國(guó)際電聯(lián)(ITU-T" title="ITU-T">ITU-T)標(biāo)準(zhǔn)的G.723.1[1]和G.729-A[2],由于它們的低速率(G.723.1為5.3k~6.4kbps,G.729-A為8kbps)而普遍用于IP網(wǎng)絡(luò)語(yǔ)音編碼。這些編碼器內(nèi)嵌的包丟失隱藏算法可靠地保證了網(wǎng)絡(luò)中包丟失帶來(lái)的失真等。但是,這些算法都需要比較多的內(nèi)存保存足夠完好的傳輸幀來(lái)恢復(fù)丟失的幀,這樣可能會(huì)因此破壞網(wǎng)絡(luò)中一些好的包而導(dǎo)致“State Error”出現(xiàn)。另一方面,脈沖編碼調(diào)制(PCM,64kbps)相對(duì)以上兩種編碼方式有更高的質(zhì)量,但是它沒(méi)有能力對(duì)丟失的包進(jìn)行恢復(fù)。與模擬編碼器相比,PCM調(diào)制方式能更迅速恢復(fù)丟失的包。相對(duì)簡(jiǎn)單的PCM調(diào)制方式和其良好的性能使得其在VoIP采用的編碼算法中占有重要的地位。
??? 在PCM流中,已經(jīng)有好幾種方法描述幀丟失問(wèn)題。最簡(jiǎn)單的就是在幀丟失期間,插入靜音包。這種方式雖然在一定程度上解決了包丟失問(wèn)題,但是帶來(lái)的后果是難以忍受的通話靜音。其他的隱藏算法主要是依據(jù)語(yǔ)音相對(duì)固定的特性。還有一種比較普遍的商業(yè)包丟失隱藏算法原理是復(fù)制接收端最后一個(gè)好的語(yǔ)音包作為丟失的包。這種算法較前一種算法有所改進(jìn)但是還是不能得到高質(zhì)量" title="高質(zhì)量">高質(zhì)量的語(yǔ)音包[3]。
??? 還有一種標(biāo)準(zhǔn)是ANSI標(biāo)準(zhǔn)T1-521-2000(附錄B)。這種算法需要良好的線性預(yù)測(cè)模型預(yù)測(cè)丟失的語(yǔ)音波形。它完全采用模擬為基礎(chǔ)的codecs方式。它首先對(duì)從前一個(gè)傳輸完好的語(yǔ)音包進(jìn)行完整的分析;其次,綜合單元利用上述分析的一些參數(shù)連同最近接收的語(yǔ)音采樣點(diǎn)進(jìn)行合成,成為一個(gè)最相似語(yǔ)音包代替丟失的語(yǔ)音包。算法的延時(shí)為5ms。同時(shí)算法計(jì)算也比較復(fù)雜(每10ms包2.3MIPS)。此算法得到的語(yǔ)音包的質(zhì)量與ITU-T G.711附錄A相當(dāng)[4]。
1 APLC算法描述
??? ITU-T制定的G.711標(biāo)準(zhǔn)中,已經(jīng)提供了其PCM編碼方式的包丟失隱藏算法(PLC)[5]。這種方法主要是波形替代,其原理如下:首先,PLC算法通過(guò)語(yǔ)音采樣進(jìn)行基音周期檢測(cè),并且把語(yǔ)音采樣點(diǎn)保存到歷史buffer中(history buffer)(390個(gè)采樣點(diǎn),8kHz采樣頻率);其次隱藏單元指針指向一個(gè)基音周期末端,然后復(fù)制包丟失期間的語(yǔ)音信號(hào)。預(yù)先復(fù)制的基音周期放到一個(gè)由丟失的語(yǔ)音段產(chǎn)生的間隙。算法同時(shí)對(duì)最后一個(gè)接收到的完好語(yǔ)音包和丟失的包進(jìn)行迭加,這種迭加保證了語(yǔ)音傳輸?shù)钠交妥匀?。同時(shí)算法在迭加過(guò)程中有3.75ms的延時(shí)。
??? 上述算法PCM編碼以線性預(yù)測(cè)為基礎(chǔ),其線性預(yù)測(cè)公式為:

???

其中,S(n)為第n個(gè)數(shù)據(jù)采樣點(diǎn),p為預(yù)測(cè)序列值,a(i)為線性預(yù)測(cè)系數(shù),b(n)為線性預(yù)測(cè)誤差。
??? 從(1)式可見(jiàn),語(yǔ)音采樣S(n)由二部分組成,第一部分為線性預(yù)測(cè)系數(shù)與一組過(guò)去的樣本值S(n-1),S(n-2),…S(n-p)線性組合而成,它可以看成從S(n)過(guò)去的樣本值來(lái)預(yù)測(cè)或估計(jì)當(dāng)前值S(n)的結(jié)果,故又稱之為線性預(yù)測(cè)值;第二部分是輸入的預(yù)測(cè)誤差b(n)。
??? 如果LPC從連續(xù)的采樣點(diǎn)中得不到相關(guān)系數(shù)的話,b(n)誤差會(huì)比較大。在發(fā)生包丟失的情況下,前一個(gè)采樣點(diǎn)通過(guò)公式(1)可以得到。但是輸入的預(yù)測(cè)誤差b(n)是不確定的。在ITU-T標(biāo)準(zhǔn)G.711-Annex A中,丟失幀的基音周期預(yù)測(cè)信號(hào)通過(guò)一種類(lèi)似的隱藏算法——反向基音周期復(fù)制(RORPP)實(shí)現(xiàn)。公式如下:

???

其中,S(n)表示LPC預(yù)測(cè),為基音周期預(yù)測(cè)周期信號(hào),G為基音周期預(yù)測(cè)系數(shù)。設(shè)參數(shù)α、β,(2)式可變?yōu)椋?/FONT>

???

??? 再設(shè)μ、v,則上式變?yōu)?

???

??? 參數(shù)μ、v根據(jù)網(wǎng)絡(luò)中包丟失的嚴(yán)重程度分別賦予不同的值。
??? 其工作原理如下:
??? 在PCM解碼過(guò)程中,接收端對(duì)接收的包進(jìn)行解碼并且發(fā)送到音頻輸出口。同時(shí)為了支持包隱藏算法,解碼輸出的信號(hào)同時(shí)保存到總長(zhǎng)為390個(gè)采樣的history buffer中,此history buffer用來(lái)計(jì)算自相關(guān)參數(shù)、預(yù)估基音周期和LP系數(shù),并且提供預(yù)先的采樣點(diǎn)S(n-i),i??? 丟失的語(yǔ)音包中至少有一個(gè)包,計(jì)算丟失包恢復(fù)的參考值主要為丟失的前10ms包(首次丟失幀)。在包丟失開(kāi)始期間,基音周期檢測(cè)單元根據(jù)ITU-T包丟失隱藏標(biāo)準(zhǔn)G.711-A計(jì)算出自相關(guān)系數(shù)的不同峰值來(lái)預(yù)估當(dāng)前的基音周期,采樣點(diǎn)是由這種基音周期檢測(cè)方式計(jì)算出來(lái)的。與此同時(shí),系統(tǒng)計(jì)算出最后20ms語(yǔ)音采樣點(diǎn)前50個(gè)自相關(guān)系數(shù)。LP分析器通過(guò)Levinson-Durbin算法計(jì)算出LP系數(shù)。為了能覆蓋到至少一個(gè)基音周期,LP預(yù)測(cè)序列值設(shè)為50。前50個(gè)自相關(guān)系數(shù)用于LP合成濾波器(語(yǔ)音模型)中。
??? 眾所周知,一個(gè)語(yǔ)音幀有80個(gè)采樣點(diǎn)。在此算法中,在語(yǔ)音丟失幀中采樣90個(gè)點(diǎn),以達(dá)到平穩(wěn)傳輸包的目的。最后10個(gè)采樣點(diǎn)是根據(jù)丟失的包進(jìn)行預(yù)測(cè)的值。如果下一個(gè)包仍然丟失,則這10個(gè)采樣點(diǎn)就作為下個(gè)丟失包的前10個(gè)采樣點(diǎn);如果下一個(gè)包沒(méi)有發(fā)生丟失,則這些采樣點(diǎn)與一衰減系數(shù)" title="衰減系數(shù)">衰減系數(shù)相乘,并且和下一個(gè)完好的語(yǔ)音包的前10個(gè)采樣點(diǎn)(和一升序系數(shù)相乘)迭加。迭加后的輸出即用來(lái)替代包丟失后的下一包頭10個(gè)完好的采樣點(diǎn)。這種處理保證了丟失語(yǔ)音部分到完好語(yǔ)音包的平滑傳輸。
??? 如果包丟失超過(guò)10ms,則只需稍微改變ITU-T G.711-A中長(zhǎng)期預(yù)估采樣值,而仍然采用上次丟失計(jì)算出的那些參數(shù)進(jìn)行下10ms丟失包的恢復(fù)計(jì)算。在連續(xù)丟包情況下,基音周期預(yù)測(cè)復(fù)制器與一衰減系數(shù)相乘,此衰減系數(shù)初始值為1,每隔10ms下降0.2。衰減系數(shù)反映了丟包期間包衰減的平滑度。最后在連續(xù)丟包60ms后,基音周期預(yù)測(cè)復(fù)制器和輸入殘余信號(hào)都為0,式(3)變成沒(méi)有輸入的模型,最后導(dǎo)致語(yǔ)音包嚴(yán)重失真而不能恢復(fù)。
2 仿真試驗(yàn)分析
??? 仿真試驗(yàn)的目的是為了驗(yàn)證上面提出的APLC算法的可行性及系統(tǒng)性能的改善程度。在本仿真試驗(yàn)中,選一個(gè)比較典型的一段語(yǔ)音包(從采樣點(diǎn)47 700~48 000)為研究對(duì)象,參數(shù)α、β、μ、v的值分別為0.4和0.6。圖1為此段完好的語(yǔ)音包。

?


??? 圖2為丟失的語(yǔ)音包段。圖3和圖4分別是經(jīng)過(guò)G.711 PLC算法和APLC算法恢復(fù)的語(yǔ)音包數(shù)據(jù)。

?

?

?

?

??? 圖5是通過(guò)ITU-T 的P.862 PESQ(Perceptual Estimation of Speech Quality)標(biāo)準(zhǔn)對(duì)其Mos值分別進(jìn)行估計(jì)的結(jié)果,通過(guò)4個(gè)人分別說(shuō)一段8s長(zhǎng)的相同的話。文件的格式為線性PCM,談話文件從ITU-T附錄P.23得到。

?


??? 從上述仿真結(jié)果分析可以看到,有5%包丟失率的語(yǔ)音數(shù)據(jù)在經(jīng)過(guò)G.711 PLC算法后,丟失語(yǔ)音包的恢復(fù)不是很理想。而經(jīng)APLC算法后,語(yǔ)音包的恢復(fù)可以從圖4中看出,相對(duì)于G.711有了比較大的改進(jìn),整體Mos值也有較大的改進(jìn),達(dá)到3.6。APLC算法達(dá)到了預(yù)期的目的。
??? 本文中介紹一種新的基于PCM(每包為10ms語(yǔ)音包長(zhǎng))包丟失隱藏算法。新的算法模型通過(guò)對(duì)線性預(yù)測(cè)參數(shù)進(jìn)行改進(jìn),形成改進(jìn)的APLC算法,最后通過(guò)對(duì)語(yǔ)音數(shù)據(jù)包仿真驗(yàn)證了新算法對(duì)丟失包的高質(zhì)量的還原效果。但是APLC線性預(yù)測(cè)效果在特定的條件下還不是很準(zhǔn)確,如參數(shù)μ、v的設(shè)置,理論上應(yīng)該是每時(shí)每刻根據(jù)語(yǔ)音信號(hào)的不同,這兩個(gè)參數(shù)動(dòng)態(tài)地變化著。但是實(shí)際上,這種動(dòng)態(tài)的改變目前還不能做到,在后面的工作中需要作進(jìn)一步深入研究。
參考文獻(xiàn)
[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.

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

相關(guān)內(nèi)容