VoIP中的語(yǔ)音編碼技術(shù)分析
(2009-04-01 10:38:00)隨著(zhù)互聯(lián)網(wǎng)的迅速發(fā)展,出現了一種基于Internet的電話(huà)新業(yè)務(wù)——VoIP業(yè)務(wù)。VoIP(Voice overIP,基于IP的語(yǔ)音通信)也稱(chēng)為IP電話(huà),是建立在Internet上的新型數字化傳輸技術(shù)。VoIP的使用,可以極大地降低用戶(hù)的通信費用,而互聯(lián)網(wǎng)的蓬勃發(fā)展也促進(jìn)VoIP技術(shù)的迅猛發(fā)展。VoIP網(wǎng)絡(luò )電話(huà)的成功開(kāi)發(fā)和應用,預示了以IP為基礎的新一代信息網(wǎng)絡(luò )的出現,積極地探索和跟蹤這項新技術(shù)無(wú)疑具有十分重要的意義。
1 語(yǔ)音編碼的原理
為使VoIP網(wǎng)絡(luò )電話(huà)能夠可靠地進(jìn)行語(yǔ)音通信,必須解決好兩個(gè)問(wèn)題:一是在保證一定話(huà)音質(zhì)量的前提下盡可能地降低編碼比特率,二是在IP網(wǎng)絡(luò )環(huán)境下保證一定的通話(huà)質(zhì)量。前者正是我們要探討的語(yǔ)音編碼技術(shù),同一段語(yǔ)音信號,采用不同的編碼方式,其編碼后的比特率各不相同。那么如何對語(yǔ)音信號進(jìn)行壓縮編碼從而達到降低語(yǔ)音信號的比特率呢?
1.1 利用了語(yǔ)音信號的相關(guān)性
語(yǔ)音信號主要存在兩方面的冗余度,即語(yǔ)音信號幅度分布的非均勻性和樣本之間的相關(guān)性。非均勻性表現為小幅度語(yǔ)音信號出現的概率大而大幅度語(yǔ)音信號出現的概率小,非均勻量化技術(shù)正是針對語(yǔ)音信號的這一特點(diǎn)而提出的,例如ADPCM編碼算法;樣本之間的相關(guān)性表現為樣本點(diǎn)之間的短時(shí)相關(guān)性和相鄰基音周期之間的長(cháng)時(shí)相關(guān)性,利用語(yǔ)音信號的相關(guān)性,可以在實(shí)現低速率編碼時(shí),也能保持較高的語(yǔ)音編碼質(zhì)量,例如線(xiàn)性預測算法就是利用這一原理。
1.2 利用了人耳的聽(tīng)覺(jué)特性
人耳對語(yǔ)音信號的聽(tīng)覺(jué)特性表現在3個(gè)方面:一是人耳對語(yǔ)音信號的分辨率有限;二是人耳對語(yǔ)音信號某些失真不是很敏感;三是人耳的掩蔽效應。低速率高品質(zhì)語(yǔ)音編碼算法的實(shí)現就是基于人耳的這些聽(tīng)覺(jué)特性,既可以保證人耳感覺(jué)不到語(yǔ)音質(zhì)量的下降,又降低了語(yǔ)音編碼速率。
1.3 靜音壓縮
測試表明,人在正常談話(huà)時(shí),有50%左右是靜音,而靜音信息只需很少幾個(gè)參數(4字節/幀)來(lái)表示。靜音編碼主要由兩個(gè)算法組成:語(yǔ)音檢測(VoiceActivity Detection VAD)和柔和噪聲再生(Comfort NoiseGenerator CNG)。VAD是用來(lái)檢測輸入的信號是實(shí)際語(yǔ)音信號還是背景噪聲。如果檢測到是語(yǔ)音信號,則對語(yǔ)音信號進(jìn)行固定速率的編碼;如果輸入信號被檢測為背景噪聲,編碼器則對其進(jìn)行低速率編碼。CNG的作用是在話(huà)音信號的接收端重構背景噪聲。在G.723.1編碼器中引入靜音壓縮技術(shù)后,實(shí)際的平均編碼速率要小于5.3kb/s,可以達到3.5 kb/s以下。VoIP網(wǎng)絡(luò )電話(huà)中已被廣泛使用的線(xiàn)性預測合成分析編碼就是基于此項原理的應用。
2 語(yǔ)音編碼技術(shù)的分類(lèi)
根據語(yǔ)音編碼的發(fā)展過(guò)程,我們把該技術(shù)歸納為以下3類(lèi):
2.1 波形編碼(或稱(chēng)為非參數編碼)
波形編解碼器基本上不考慮信號是如何產(chǎn)生的,而直接將輸入的模擬信號抽樣編碼,然后將量化后的樣值傳送到終端,在終端原始信號被重組到與原信號大致接近的程度。因此波形編碼方式是能夠忠實(shí)地表現波形的編碼方式。由于這類(lèi)編碼器通常將語(yǔ)音信號作為一般的波形信號來(lái)處理,所以它具有適應能力強、話(huà)音質(zhì)量好、抗噪抗誤碼的能力強等特點(diǎn),它最大的缺點(diǎn)是同其他的編解碼器相比,它要使用大量的帶寬,當波形編解碼器用于低帶寬時(shí),話(huà)音質(zhì)量下降得非???。
脈沖編碼調制(PCM)、自適應增量調制(ADM或ΔM編碼)、自適應差分編碼(ADPCM)、自適應預測編碼(APC)、自適應子帶編碼(ASBC)、自適應變換編碼(ATC)等都屬于波形編碼。
2.2 參數編碼(或稱(chēng)為模型編碼或聲碼化編碼)
參數編碼是根據聲音的形成模型,把聲音變換成參數的編碼方式。其基本方法是通過(guò)對語(yǔ)音信號特征參數的提取及編碼,力圖使重建語(yǔ)音信號具有盡可能的可懂性,即保持原語(yǔ)音的語(yǔ)義。而重建的信號波形同原語(yǔ)音信號的波形可能會(huì )有相當大的差別。由于參數編碼是保護語(yǔ)聲模型,重建清晰可識別的語(yǔ)聲,而不注重波形的擬合,所以這類(lèi)編碼技術(shù)實(shí)現的是合成語(yǔ)聲質(zhì)量下的低速或極低速的編碼。參數編碼的優(yōu)點(diǎn)是:編碼速率低,編碼速率通常小于4.8kb/s,可以低至600 b/s~2.4kb/s;缺點(diǎn)是:合成語(yǔ)音質(zhì)量差,特別是自然度較低,連熟人之間都不一定能聽(tīng)出講話(huà)人是誰(shuí)。另外,這類(lèi)編碼器對講話(huà)環(huán)境噪聲較敏感,需要安靜的講話(huà)環(huán)境才能給出較高的可懂度,且時(shí)延大。
線(xiàn)性預測編碼(LPC)、多帶激勵(MBE)編碼、余弦變換編碼(STC)均屬參數編碼。
2.3 混合編碼
混合編碼是將波形編碼與參數編碼結合而產(chǎn)生的一種編碼方式。采用線(xiàn)性技術(shù)構成聲道模型,不只傳輸預測參數和清濁音信息,而是將預測誤差信息和預測參數同時(shí)傳輸,在接收端構成新的激勵減去激勵預測參數構成的合成濾波器,使得合成濾波器輸出的信號波形與原始語(yǔ)聲信號的波形最大程度地擬合,從而獲得自然度較高的語(yǔ)聲?;旌暇幋a克服了原有波形編碼器與聲碼器的弱點(diǎn),結合了它們的優(yōu)點(diǎn),在4kb/s~16 kb/s速率上能夠得到高質(zhì)量合成語(yǔ)音,在本質(zhì)上具有波形編碼的優(yōu)點(diǎn),有一定抗噪和抗誤碼的性能,但時(shí)延較大。
多脈沖線(xiàn)性預測編碼(MPLPC)、規則脈沖激勵線(xiàn)性預測編碼(RPELPC)、碼激勵線(xiàn)性預測編碼(CELPC)、低時(shí)延的碼激勵線(xiàn)性預測編碼(LD-CELPC)等都屬于混合編碼。
3 VoIP中常用語(yǔ)音編碼算法的性能分析和比較
3.1 G.711協(xié)議
G.711是在電路交換電話(huà)網(wǎng)中普遍使用的一種波形編解碼算法。G.711以8kHz作為抽樣頻率,如果使用統一量化方式,話(huà)音中通用的信號層次的每一個(gè)樣本就要12比特來(lái)表示,這就產(chǎn)生了96kb/s的比特速率。如果使用不統一的量化方式,表示一個(gè)樣本只需要8比特。G.711通常被稱(chēng)為PCM(脈沖編碼調制)。
G.711有A律和u律兩個(gè)變型,兩者之間的區別主要在于不統一量化的使用方式,兩者都是關(guān)于0對稱(chēng)。對于較低的信號層次來(lái)講,A律對于信號的歪曲程度比u律更小一些,這是因為它對一個(gè)較大范圍內的低層次信號提供較小的量化間隔,但以較大范圍內的高層信號的較大量化層次為代價(jià)。A律和u律都提供了良好的語(yǔ)音質(zhì)量,并且Mos等級都在4.3左右。
3.2 G.723協(xié)議
G.723協(xié)議是一個(gè)雙速率語(yǔ)音編碼協(xié)議,其兩種速率分別是5.3 kb/s和6.3kb/s,較高比特率的輸出基于ML-MLQ技術(shù),提供某種程度上較高質(zhì)量的音質(zhì);較低速率的輸出基于CELP,為系統設計人員提供了更大的靈活性。G.723.1協(xié)議的編解碼算法中兩種速率的編解碼基本原理是一樣的,只是激勵信號的量化方法有差別。對高速率(6.3kb/s)編碼器,其激勵信號采用多脈沖最大似然量化(MP-MLQ)法進(jìn)行量化,對低速率(5.3kb/s)編碼器,其激勵信號采用代數碼激碼線(xiàn)性預測(ACELP)法量化。
編碼過(guò)程是首先選速率為64kb/s的PCM語(yǔ)音信號轉化成均勻量化的PCM信號,然后把輸入語(yǔ)音信號的每240個(gè)樣點(diǎn)組成一個(gè)幀,也就是30ms的幀長(cháng)。每個(gè)幀通過(guò)高通濾波器后再分為4個(gè)子幀。對于每個(gè)子幀,計算出10階線(xiàn)性預測濾波器的系數。為了適于矢量量化,把預測系數轉化為線(xiàn)性頻譜對(LineSpectrumPair,LSP),然后進(jìn)行矢量量化。量化前的系數構成短時(shí)感覺(jué)加權濾波器,原始語(yǔ)音信號經(jīng)過(guò)該濾波器得到感覺(jué)加權語(yǔ)音信號。對于每?jì)蓚€(gè)子幀,編碼器用感覺(jué)加權語(yǔ)音信號求得開(kāi)環(huán)基音周期,基音周期范圍從18個(gè)樣點(diǎn)到142個(gè)樣點(diǎn)。此后編碼器所進(jìn)行的操作都是基于60個(gè)樣點(diǎn)進(jìn)行的。由開(kāi)環(huán)基音周期和感覺(jué)加權是在開(kāi)環(huán)基音周期點(diǎn)周?chē)囊欢ǚ秶鷥惹蟮玫?。最后,激勵信號被量化,然后把這些參數和激勵信號量化結果傳送到解碼器。由于幀長(cháng)為30ms,并存在另外的7.5 ms的前向延遲,導致37.5 ms總的編碼延遲。
G.723協(xié)議適用于低速率多媒體服務(wù)中語(yǔ)音或音頻信號的壓縮算法,在IP電話(huà)網(wǎng)關(guān)中,被用來(lái)實(shí)現實(shí)時(shí)語(yǔ)音編碼解碼處理。
3.3 G.726協(xié)議
G.726協(xié)議采用的是ADPCM語(yǔ)音編碼算法,提供了64 kb/s PCM碼流至低速率ADPCM碼流的轉換。協(xié)議給出40kb/s,32 kb/s,24 kb/s和16 kb/s 4種比特率。其中,40kb/s信道主要用于在數字電路倍增設備(DCME)上傳送數據modem信號,特別用于4.8 kb/s以上速率的modem;24kb/s和16kb/s信道主要用作DCME語(yǔ)音傳送的過(guò)載信道。G.726設計的主要用途仍然是傳統的電路交換網(wǎng),但是其低比特率方案也可用于VoIP。
3.4 G.728協(xié)議
G.728協(xié)議采用的編碼算法是LD-CELP,即低時(shí)延的碼激勵線(xiàn)性預測的算法。LD-CELP采用后向自適應預測器(BackwordAdaptivePredictor)對短時(shí)譜和增益進(jìn)行預測。LD-CELP編碼器發(fā)送的只是激勵矢量在碼本中的地址標號,而解碼端的濾波器參數和增益參數都是在解碼端計算得來(lái)的。在大多數編碼系統中,這類(lèi)參數都是在編碼端求得,然后傳輸到解碼端。
編碼過(guò)程是首先將速率為64kb/s的PCM輸入信號轉化成均勻量化的PCM信號,接著(zhù)由5個(gè)連續的語(yǔ)音樣點(diǎn)組成一個(gè)5維矢量,激勵碼本中共有1024個(gè)5維矢量。對每一個(gè)輸入矢量,編碼器利用合成—分析法從碼本中搜索出最佳碼本矢量,然后將10比特的碼本標號傳給對方。每20個(gè)樣點(diǎn)構成一個(gè)復幀,一個(gè)復幀構成一個(gè)自適應周期,每復幀更新一次LP系數。最佳碼本矢量通過(guò)增益加權和合成濾波器后形成合成語(yǔ)音,該合成語(yǔ)音用來(lái)更新濾波器狀態(tài),以便繼續為下一個(gè)輸入矢量進(jìn)行編碼。合成濾波器系數和增益分別通過(guò)各自的后向自適應單元進(jìn)行周期性地更新。
3.5 G.729協(xié)議
G.729協(xié)議是一個(gè)能在8kb/s速率上實(shí)現高質(zhì)量語(yǔ)音編碼的協(xié)議,它采用的是CS-ACELP即共軛結構算術(shù)碼激勵線(xiàn)性預測的算法。CS-ACELP以CELP編碼模型為基礎,它把語(yǔ)音分成幀,每幀10ms,也就是80個(gè)采樣點(diǎn)。對于每一幀語(yǔ)音,編碼器從中分析出CELP模型參數,其中包括線(xiàn)性預測系數,自適應碼本和隨機碼本的索引值和增益,然后把這些參數傳送到解碼端,解碼器利用這些參數構成激勵源和合成濾波器,從而重現原始語(yǔ)音。
編碼過(guò)程是首先將速率為64kb/s的PCM語(yǔ)音信號轉化成均勻量化的PCM信號,通過(guò)高通濾波器后,把輸入語(yǔ)音信號的每80個(gè)樣點(diǎn)組成一個(gè)幀,也就是10ms的幀長(cháng)。對于每個(gè)幀用線(xiàn)性預測法求得LP濾波器系數,為了適于矢量量化,把預測系數轉化為線(xiàn)譜對,然后進(jìn)行矢量量化。利用合成—分析方法,使原始語(yǔ)音和合成語(yǔ)音之間的誤差最小,來(lái)獲得最佳激勵信號。激勵信號的量化是通過(guò)兩個(gè)碼本來(lái)實(shí)現的,即自適應碼本和隨機碼本。自適應碼本反映的是長(cháng)時(shí)預測結果,也就是基音預測結果。隨機碼本反映的是經(jīng)過(guò)長(cháng)時(shí)預測和短時(shí)預測后的殘留信號。
在IP電話(huà)網(wǎng)關(guān)中,G.729協(xié)議被用來(lái)實(shí)現實(shí)時(shí)語(yǔ)音編碼處理。
3.6 VoIP常用語(yǔ)音編碼算法的性能分析和比較
從表1可以看出:G.711由于采用的是波形編碼算法,具有高質(zhì)量和低時(shí)延的語(yǔ)音,主要的缺點(diǎn)是需要64kb/s的帶寬。G.723.1,G728,G.729都采用了混合編碼算法,混合編碼把激勵模型和語(yǔ)音的時(shí)域波形結合到一起,從而改善了合成語(yǔ)音的質(zhì)量。但這3種語(yǔ)音壓縮編碼算法的區別在于激勵模型的不同。G.723.1Mos值約為3.8,優(yōu)點(diǎn)在于僅需要很窄的語(yǔ)音帶寬便可具有較高的語(yǔ)音質(zhì)量;缺點(diǎn)在于在編碼器一端至少有37.5ms的時(shí)延。G.728最大的優(yōu)點(diǎn)是它能提供高質(zhì)量和低時(shí)延的語(yǔ)音。
4 結語(yǔ)
語(yǔ)音編碼技術(shù)是建立和處理VoIP網(wǎng)絡(luò )電話(huà)的原動(dòng)力,可以預見(jiàn),隨著(zhù)互聯(lián)網(wǎng)技術(shù)的發(fā)展,原來(lái)G.711的64kb/s語(yǔ)音編碼算法最終會(huì )被淘汰,并由低比特率編碼算法所替代。