VoIP中語音壓縮編碼技術(shù)的研究與性能分析
Internet的巨大成功。必將使IP成為未來信息網(wǎng)絡(luò)的支柱技術(shù),以IP為核心的分組化和以移動(dòng)通信為核心的無線化已成為電信網(wǎng)絡(luò)演進(jìn)的主流方向。TCP/IP的網(wǎng)絡(luò)技術(shù)不但無可置疑地成為數(shù)據(jù)領(lǐng)域的主導(dǎo)技術(shù),而且已經(jīng)開始進(jìn)入電信領(lǐng)域,其突破口就是電話業(yè)務(wù)。
IP網(wǎng)絡(luò)電話是一項(xiàng)涉及計(jì)算機(jī)網(wǎng)絡(luò)、信令協(xié)議、數(shù)字信號(hào)處理等多個(gè)領(lǐng)域的綜合性技術(shù),它具有價(jià)格低廉、可以靈活地提供各種增值業(yè)務(wù)、有利于企業(yè)建立高效綜合服務(wù)內(nèi)部網(wǎng)、有利于運(yùn)營(yíng)商開拓新的市場(chǎng)、有助于和IP網(wǎng)絡(luò)新技術(shù)的融合、促進(jìn)網(wǎng)絡(luò)技術(shù)的發(fā)展等獨(dú)特的優(yōu)勢(shì)。其中價(jià)格低廉是IP電話能夠進(jìn)入市場(chǎng)的首要因素,其根本原因是IP電話均采用語音分組技術(shù)、語音壓縮編碼和統(tǒng)計(jì)復(fù)用,帶寬利用率高,完成一次通信所需的成本大幅度降低。IP電話中的語音處理主要需要解決兩個(gè)問題:一是在保證一定話音質(zhì)量的前提下盡可能地降低編碼比特率,二是在IP網(wǎng)絡(luò)環(huán)境下保證一定的通話質(zhì)量。前者正是我們要研究的語音編碼技術(shù)。
1、語音編碼技術(shù)
1.1 語音編碼技術(shù)的分類
根據(jù)語音編碼的發(fā)展過程,把語音編碼技術(shù)歸納為以下3類:
1.1.1 波形編
碼
波形編碼方式是能夠忠實(shí)地表現(xiàn)波形的編碼方式。語音信號(hào)的波形編碼力圖使重建的語音波形保持原語音信號(hào)的波形狀態(tài)。這類編碼器通常是將語音信號(hào)作為一般的波形信號(hào)來處理,所以它具有適應(yīng)能力強(qiáng)、話音質(zhì)量好、抗噪抗誤碼能力強(qiáng)等特點(diǎn),但是波形編碼所需的編碼速率比較高,其速率一般在64 kbit/s~16 kbit/s。其中64 kbit/s PCM的語音編碼方式是其中的一個(gè)代表。
1.1.2 參數(shù)編碼
參數(shù)編碼是根據(jù)聲音的形成模型,把聲音變換成參數(shù)的編碼方式。其基本方法是通過對(duì)語音信號(hào)特征參數(shù)的提取及編碼,力圖使重建語音信號(hào)具有盡可能高的可懂性,即保持原語音的語義。而重建的信號(hào)的波形同原語音信號(hào)的波形可能會(huì)有相當(dāng)大的差別。參數(shù)編碼的最大優(yōu)點(diǎn)是編碼速率低,通常小于 4.8kbit/s,有時(shí)可以低至600 bit/s~2.4 kbit/s。缺點(diǎn)是合成語音質(zhì)量差,自然度較低,對(duì)講話環(huán)境噪聲較敏感,且時(shí)延大。
參數(shù)編碼的典型例子就是語音信號(hào)的線性預(yù)測(cè)編碼(LPC),它已被公認(rèn)為是目前參數(shù)編碼中最有效的方法。
1.1.3 混合編碼
混合編碼結(jié)合了以上兩種編碼方式的優(yōu)點(diǎn),采用線性技術(shù)構(gòu)成聲道模型,不只傳輸預(yù)測(cè)參數(shù)和清濁音信息,而且預(yù)測(cè)誤差信息和預(yù)測(cè)參數(shù)同時(shí)傳輸,在接收端構(gòu)成新的激勵(lì)去激勵(lì)預(yù)測(cè)參數(shù)構(gòu)成的合成濾波器,使得合成濾波器輸出的信號(hào)波形與原始語聲信號(hào)的波形最大程度的擬合,從而獲得自然度較高的語聲。這種編碼技術(shù)的關(guān)鍵是:如何高效地傳輸預(yù)測(cè)誤差信息。依據(jù)對(duì)激勵(lì)信息的不同處理,這類編碼主要有:多脈沖線性預(yù)測(cè)編碼(MPLPC)、規(guī)則脈沖激勵(lì)線性預(yù)測(cè)編碼(RPELPC)、碼激勵(lì)線性預(yù)測(cè)編碼(CELPC)、低時(shí)延的碼激勵(lì)線性預(yù)測(cè)編碼(LD-CELPC)。
混合編碼克服了原有波形編碼器與聲碼器的弱點(diǎn),而結(jié)合了它們的優(yōu)點(diǎn),在4 kbit/s~16 kbit/s速率上能夠得到高質(zhì)量合成語音。在本質(zhì)上具有波形編碼的優(yōu)點(diǎn),有一定抗噪和抗誤碼的性能,但時(shí)延較大。
1.2 語音壓縮編碼的原理
IP網(wǎng)絡(luò)電話中的語音處理需要解決的一個(gè)重要問題就是在保證一定話音質(zhì)量的前提下,盡可能降低編碼比特率。這主要依靠語音編碼技術(shù)來解決。IP 電話宜使用ITU-T定義的低比特率編碼標(biāo)準(zhǔn),其比特率為5.3 kbit/s~16 kbit/s,均為低復(fù)雜度編碼算法,話音分組長(zhǎng)度在30 ms以下,話音質(zhì)量較好。從前面列舉的幾種編碼方式也可看出,同一段語音信號(hào),采用不同的編碼方式,其編碼后的比特率各不相同。那么為什么我們能夠?qū)φZ音信號(hào)進(jìn)行壓縮編碼從而達(dá)到降低語音信號(hào)的比特率呢?
1.2.1 利用了語音信號(hào)的相關(guān)性
語音信源是相關(guān)信源,因此經(jīng)過采樣和量化的信號(hào)之間還有很強(qiáng)的相關(guān)性,為了降低編碼速率,人們就希望盡可能多地去除語音信號(hào)之間的相關(guān)性。線性預(yù)測(cè)編碼技術(shù)(LPC)就是一種用來去除語音信號(hào)之間相關(guān)性的常用技術(shù)。語音信號(hào)中存在兩種類型的相關(guān)性:其一是在樣點(diǎn)之間短時(shí)相關(guān)性。語音信號(hào)在某些短時(shí)段中呈現(xiàn)出隨機(jī)噪聲的特性,在另一些短時(shí)段中,則呈現(xiàn)出周期信號(hào)的特性,其他一些是二者的混合。簡(jiǎn)而言之,語音信號(hào)的特征是隨時(shí)間而變化的,只是在一短段時(shí)間中,語音信號(hào)才保持相對(duì)穩(wěn)定一致的特征,也就是語音信號(hào)的短時(shí)平穩(wěn)性。其二是相鄰基音周期之間存在的長(zhǎng)時(shí)相關(guān)性。由于語音信號(hào)中的短時(shí)相關(guān)性和長(zhǎng)時(shí)相關(guān)性很強(qiáng),通過減弱這些相關(guān)性,使語音信號(hào)之間相關(guān)性降低,然后再進(jìn)行編碼,這樣就可以實(shí)現(xiàn)語音壓縮編碼,降低比特率。
1.2.2 利用了人耳的聽覺特性
利用人耳的掩蔽效應(yīng)也可以進(jìn)行語音壓縮編碼,降低比特率。兩個(gè)響度不等的聲音作用于人耳時(shí),響度較高的頻率成分的存在會(huì)影響到對(duì)響度較低的頻率成分的感覺,使其變得不易被察覺,這就是我們所說的掩蔽效應(yīng)。在語音頻譜中,能 量較高的頻段即共振峰處的噪聲相對(duì)于能量較低頻段的噪聲而言不易被感知。因此在度量原始語音與合成語音之間的誤差時(shí)可計(jì)入這一因素。在語音能量高的頻段,允許二者的誤差大一些,從而進(jìn)一步降低編碼比特率。為此引入一個(gè)頻域感覺加權(quán)濾波器W(f)來計(jì)算二者的誤差。感覺加權(quán)濾波器的頻率響應(yīng)中的峰、谷值正好與語音譜中相反。所以感覺加權(quán)濾波器的作用就是使實(shí)際誤差信號(hào)的譜不再平坦。而是有著與語音信號(hào)譜具有相似的包絡(luò)形狀。這就使誤差度量的優(yōu)化過程與感覺上的共振峰對(duì)誤差的掩蔽效應(yīng)相吻合,產(chǎn)生較好的主觀聽覺效果。
1.2.3 線性預(yù)測(cè)分析——合成編碼方法
IP網(wǎng)絡(luò)電話中所使用的語音信號(hào)壓縮編碼方式大多數(shù)是基于合成—分析法的線性預(yù)測(cè)編碼(ABS-LPC)方法,這是一種混合編碼方法。線性預(yù)測(cè)技術(shù)就是用過去樣點(diǎn)的線性組合來預(yù)測(cè)當(dāng)前樣點(diǎn)。假如用S(n)代表原始語音信號(hào),用線性預(yù)測(cè)的方法求出預(yù)測(cè)器的系統(tǒng)預(yù)測(cè)系數(shù)αi,構(gòu)成線性預(yù)測(cè)逆濾波 器,S(n)通過該濾波器后得到了去除短時(shí)相關(guān)性的語音信號(hào)。再將其進(jìn)行基音預(yù)測(cè),建立基音逆濾波器。去除它的長(zhǎng)時(shí)相關(guān)性后,就可得到最后的殘差信號(hào)。殘差信號(hào)是完全隨機(jī)的、不可預(yù)測(cè)的部分。根據(jù)速率的不同要求,可對(duì)殘差信號(hào)采用不同的量化方法,從而得到不同的編碼速率,讓量化后的殘差信號(hào)作為激勵(lì)信號(hào)依次通過基音濾波器與線性預(yù)測(cè)濾波器后,便得到了合成語音信號(hào),見圖1。
圖1 語音生成模型
編碼的過程就是不斷改變模型參數(shù),使模型更好地適應(yīng)原始語音信號(hào)。為此又引入了合成分析的概念。同時(shí),利用人耳的掩蔽效應(yīng),引入了感覺加權(quán)濾波器。綜合以上兩方面,可以得到圖2所示的線性預(yù)測(cè)分析—合成編碼的方框圖。
圖2 線性預(yù)測(cè)分析—合成編碼方案
合成—分析法的基本原理可以概括如下:假定—原始信號(hào)可以用一個(gè)模型來表示,這個(gè)模型又是由一組參數(shù)來決定的,隨著這組參數(shù)的變化,模型所產(chǎn)生的合成信號(hào)就會(huì)改變,原始信號(hào)與合成信號(hào)之間的誤差也隨之而變化。為了使模型參數(shù)能更好地適應(yīng)原始信號(hào),可以規(guī)定一個(gè)誤差準(zhǔn)則:當(dāng)誤差越小,模型合成信號(hào)就和原始信號(hào)越接近。這樣總能找到一組參數(shù),使誤差最小,此時(shí)這組參數(shù)決定的模型就可以使用。一般在編碼端配備編碼和本地解碼兩個(gè)部分。配備本地解碼的目的是完成合成功能,以便計(jì)算原始語音信號(hào)與合成語音信號(hào)之間的誤差值。在圖2中之所以采用反饋控制,是為了求出最佳模型參數(shù),使合成語音與原始語音在某種準(zhǔn)則下最為接近。
基于合成—分析法的線性預(yù)測(cè)編碼的過程實(shí)質(zhì)上就是不斷地改變模型參數(shù),使模型更好地適應(yīng)原始語音信號(hào)的過程。原始語音信號(hào)被分成幀,幀的長(zhǎng)度和模型參數(shù)決定了編碼速率。
2、IP語音壓縮編碼算法及性能分析
2.1 常用的語音壓縮編碼算法
IP電話經(jīng)常使用ITU定義的兩個(gè)標(biāo)準(zhǔn):G.723.1、G.729。它們采用的都是線性預(yù)測(cè)分析-合成編碼和碼本激勵(lì)矢量量化技術(shù),即混合編碼的方法。
2.1.1 G.723協(xié)議
G.723協(xié)議是一個(gè)雙速率語音編碼建議[1],其兩種速率分別是5.3 kbit/s和6.3 kbit/s。此協(xié)議是一個(gè)數(shù)字傳輸系統(tǒng)概況協(xié)議,適用于低速率多媒體服務(wù)中語音或音頻信號(hào)的壓縮算法。它作為完整的H.324系列標(biāo)準(zhǔn)的一部分,主要配合低速率圖像編碼H.263標(biāo)準(zhǔn)。在IP電話網(wǎng)關(guān)中,G.723協(xié)議被用來實(shí)現(xiàn)實(shí)時(shí)語音編碼解碼處理。
G.723.1協(xié)議的編解碼算法中兩種速率的編解碼基本原理是一樣的,只是激勵(lì)信號(hào)的量化方法有差別。對(duì)高速率(6.3 kbit/s)編碼器,其激勵(lì)信號(hào)采用多脈沖最大似然量化(MP-MLQ)法進(jìn)行量化,對(duì)低速率(5.3 kbit/s)編碼器,其激勵(lì)信號(hào)采用代數(shù)碼激勵(lì)線性預(yù)測(cè)(ACELP)法量化。
編碼過程是首先選速率為64 kbit/s的PCM語音信號(hào)轉(zhuǎn)化成均勻量化的PCM信號(hào),然后把輸入語音信號(hào)的每240個(gè)樣點(diǎn)組成一個(gè)幀,也就是30 ms的幀長(zhǎng)。每個(gè)幀通過高通濾波器后再分為4個(gè)子幀。對(duì)于每個(gè)子幀,計(jì)算出10階線性預(yù)測(cè)濾波器的系數(shù)。為了適于矢量量化,把預(yù)測(cè)系數(shù)轉(zhuǎn)化為線性頻譜對(duì)(LSP:line spectrum pair)。量化前的系數(shù)構(gòu)成短時(shí)感覺加權(quán)濾波器,原始語音信號(hào)經(jīng)過該濾波器得到感覺加權(quán)語音信號(hào)。對(duì)于每?jī)蓚€(gè)子幀,編碼器用感覺加權(quán)語音信號(hào)求得開環(huán)基音周期,基音周期范圍從18個(gè)樣點(diǎn)到142個(gè)樣點(diǎn)。此后編碼器所進(jìn)行的操作都是基于60個(gè)樣點(diǎn)進(jìn)行的。最后,激勵(lì)信號(hào)被量化,然后把這些參數(shù)和激勵(lì)信號(hào)量化結(jié)果傳送到解碼器。由于幀長(zhǎng)為30 ms,并存在另外的7.5 ms的前向延遲,導(dǎo)致37.5 ms總的編碼延遲。
G.723.1協(xié)議是為了低速可視會(huì)議業(yè)務(wù)而設(shè)計(jì)的。由于可視會(huì)議業(yè)務(wù)每秒鐘只傳輸很少數(shù)量的幀,而且又有比較大的時(shí)延,這就是G.723.1 允許有30 ms幀長(zhǎng)的原因。這個(gè)幀長(zhǎng)比較大,卻正好適合可視會(huì)議這種情況。而且它的編碼速度比較低,可以把盡可能多的比特用在圖像傳輸上。
2.1.2 G.729協(xié)議
G.729協(xié)議是一個(gè)能在8 kbit/s速率上實(shí)現(xiàn)高質(zhì)量語音編碼的建議,也是H.323協(xié)議中有關(guān)音頻編碼的標(biāo)準(zhǔn)[2]。在IP電話網(wǎng)關(guān)中,G.729協(xié)議被用來實(shí)現(xiàn)實(shí)時(shí)語音編碼處理。G.729協(xié)議采用的是CS-ACELP即共軛結(jié)構(gòu)算術(shù)碼激勵(lì)線性預(yù)測(cè)的算法。CS- ACELP以CELP編碼模型為基礎(chǔ),它把語音分成幀,每幀10 ms,也就是80個(gè)采樣點(diǎn)。對(duì)于每一幀語音,編碼器從中分析出CELP模型參數(shù),其中包括線性預(yù)測(cè)系數(shù),自適應(yīng)碼本和隨機(jī)碼本的索引值和增益。然后把這些參數(shù)傳送到解碼端,解碼器利用這些參數(shù)構(gòu)成激勵(lì)源和合成濾波器,從而重現(xiàn)原始語音。
編碼過程是首先將速率為64 kbit/s的PCM語音信號(hào)轉(zhuǎn)化成均勻量化的PCM信號(hào),通過高通濾波器后,把輸入語 音信號(hào)的每80個(gè)樣點(diǎn)組成一個(gè)幀,也就是10 ms的幀長(zhǎng)。對(duì)于每個(gè)幀用線性預(yù)測(cè)法求得LP濾波器系數(shù),為了適于矢量量化,把預(yù)測(cè)系數(shù)轉(zhuǎn)化為L(zhǎng)SP。利用合成-分析方法,使原始語音和合成語音之間的誤差最小,來獲得最佳激勵(lì)信號(hào)。激勵(lì)信號(hào)的量化是通過兩個(gè)碼本來實(shí)現(xiàn)的,即自適應(yīng)碼本和隨機(jī)碼本。自適應(yīng)碼本反映的是長(zhǎng)時(shí)預(yù)測(cè)結(jié)果,也就是基音預(yù)測(cè)結(jié)果。隨機(jī)碼本反映的是經(jīng)過長(zhǎng)時(shí)預(yù)測(cè)和短時(shí)預(yù)測(cè)后的殘留信號(hào)。
2.2 性能分析與比較
語音編碼的主要問題是怎樣在編碼質(zhì)量、編碼速率、算法復(fù)雜度以及抗誤碼性能、編解碼時(shí)延等方面求得最佳。這幾個(gè)因素相互聯(lián)系,密切相關(guān)。下面就這些方面對(duì)G.729與G.723.1系統(tǒng)進(jìn)行分析與比較,并給出了實(shí)驗(yàn)的結(jié)果[3]。
2.2.1 編碼質(zhì)量
編碼質(zhì)量是衡量語音編碼優(yōu)劣的關(guān)鍵性能之一,對(duì)它的評(píng)價(jià)通常有客觀評(píng)價(jià)與主觀評(píng)價(jià)兩種。信噪比是衡量語音編碼質(zhì)量的客觀標(biāo)準(zhǔn)。其計(jì)算可采用長(zhǎng)時(shí)信噪比和短時(shí)信噪比兩種準(zhǔn)則。由于在語音信號(hào)中小能量占信號(hào)能量的比率較小,而恰恰小信號(hào)對(duì)主觀聽音效果又有比較大的影響,因此長(zhǎng)時(shí)信噪比不能反應(yīng)小能量量化的質(zhì)量,在語音信號(hào)處理中經(jīng)常采用短時(shí)信噪比。設(shè)每段有M個(gè)語音樣點(diǎn),則第m段的分段信噪比定義為
其中分式的分子分母分別表示M個(gè)語音樣點(diǎn)的總能量和量化噪聲的總能量。如果輸入語音共有N段,則平均分段信噪比為
此次試驗(yàn)分別對(duì)男聲、女聲、童聲以及混聲進(jìn)行了測(cè)試,它們得到的信噪比(尤其是時(shí)域信噪比)并不很高,然而經(jīng)過主觀評(píng)價(jià)即MOS(mean opinion score)分評(píng)價(jià),它們的聽音質(zhì)量還相對(duì)較高,其結(jié)果如表1所示,由此說明了基于參數(shù)編碼與波形編碼的語音編碼器的不同。
表1 ITU-T語音編碼標(biāo)準(zhǔn)的比較
項(xiàng)目 G.729 G.723.1 G.729 annex A
比特率/(kbit/s) 8 5.3/6.3 8
幀大小/ms 10 30 10
頭開銷/ms 5 1.5 5
MOS 4 3.7 4
出臺(tái)時(shí)間 1995年 1995年 1996年
2.2.2 編碼速率
就目前而言,與ITU-T的其他編碼標(biāo)準(zhǔn)相比,G.723.1的碼速是最低的。它的碼率為5.3/6.3 kbit/s,在編碼碼率方面擁有優(yōu)勢(shì)。G.729語音編碼速率為8 kbit/s,在編碼速率方面僅次于G.723.1,因而它們都較好地解決了通信過程中帶寬不足的矛盾,有良好的應(yīng)用前景。
2.2.3 編解碼復(fù)雜度
編解碼的復(fù)雜度與語音編碼的質(zhì)量有密切的關(guān)系,在同樣的碼率下,采用復(fù)雜的算法將獲得更好的語音質(zhì)量。表2給出了G.729與G.723.1在硬件實(shí)現(xiàn)上所需的資源。G.729在時(shí)延方面較G.723.1有優(yōu)勢(shì);在復(fù)雜度方面,G.723.1相對(duì)G.729較優(yōu),但是G.729 annex A卻有更大的優(yōu)勢(shì)。
表2 G.723.1,G.729與G.729annex A的比較
項(xiàng)目 G.723.1 G.729 G.729 annex A
比特率/(kbit/s) 5.3/6.4 8.0 8.0
幀長(zhǎng)/ms 30 10 10
頭開銷/ms 7.5 5 5
整個(gè)編碼時(shí)延/ms 37.5 15 15
指令/(百萬條/s) 16 20 10.5
RAM/byte 2 200 3 000 2 000
2.2.4 抗誤碼性能
抗誤碼性能是衡量語音編碼質(zhì)量的因素之一。測(cè)試表明,當(dāng)隨機(jī)誤差為0.1%,G.729編碼系統(tǒng)的性能與32 kbit/s G726 ADPCM相當(dāng),當(dāng)誤碼率為10%,人耳雖能感覺到語音質(zhì)量的下降,但仍能聽懂語音含義;G.723.1抗誤碼性能與G.729基本相當(dāng)。
2.2.5 編解碼時(shí)延
增加算法的復(fù)雜度可以提高語音的編碼質(zhì)量。但往往也帶來編解碼的時(shí)延,在實(shí)時(shí)語音通信中對(duì)通話質(zhì)量有很大影響。對(duì)于G.729系統(tǒng)而言由于碼率為8kbit/s,每幀80個(gè)樣點(diǎn),因此幀大小為10 ms,再加上頭開銷5ms,整個(gè)系統(tǒng)的編解碼時(shí)延為15ms,大大低于G.723.1的37.5 ms的時(shí)延(幀大小為30ms,再加上頭開銷7.5 ms)。因此在編解碼時(shí)延方面G.729較G.723.1為優(yōu)。
3、結(jié)論
混合編碼中把激勵(lì)模型和語音的時(shí)
雖然IP電話目前正處于蒸蒸日上的階段。但它也存在這樣或那樣一些不盡如人意的方面。如何提高IP分組語音通信的質(zhì)量,或者更一般地說,如何在IP網(wǎng)絡(luò)上實(shí)現(xiàn)包括實(shí)時(shí)通信業(yè)務(wù)在內(nèi)的綜合業(yè)務(wù)通信,這正是我們需要進(jìn)一步研究的。
評(píng)論