首頁(yè) >> 新聞

VoIP技術(shù)之語(yǔ)音編碼器

2004/09/14

  本章綜述在IP語(yǔ)音技術(shù)(VOIP)中常用的編碼解碼器(codess)。它們常被稱為編碼解器、語(yǔ)音編碼器或者簡(jiǎn)稱為編碼器。有關(guān)這方面的知識(shí)很多。

  本章首先簡(jiǎn)要介紹編碼器的主要功能、編碼器的分類,然后闡述以及用于VOIP的三種編碼器:IUT-T G.723語(yǔ)音編者按碼器、ITU-T G.729語(yǔ)音編碼器。

  一、 語(yǔ)音編碼器的功能 語(yǔ)音編碼器的主要功能就是把用戶語(yǔ)音的PCM(脈沖編碼調(diào)制)樣值編碼成少量的比特(幀)。這種方法使得語(yǔ)音在連路產(chǎn)生誤碼、網(wǎng)絡(luò)抖動(dòng)和突發(fā)傳輸時(shí)具有健壯性(Robustness)。在接收端,語(yǔ)音幀先被誤碼為PCM語(yǔ)音樣值,然后再轉(zhuǎn)換成語(yǔ)音波形。

  二、 語(yǔ)音編器的分類 語(yǔ)音編碼器分為三種類形:(a)波形編器;(b)聲碼器;(c)混合編碼器。波形編碼器會(huì)盡可能構(gòu)出包括背景噪單在內(nèi)的模擬波形。由于波形編碼器作用于所有輸入信號(hào),因此會(huì)產(chǎn)生高質(zhì)量的樣值。然而,波形編碼器工作在高比特率。例如:ITU-G.711規(guī)范(PCM)用的比特率為64Kbps。

  聲碼器(vocoder)不會(huì)再生原始波形。這組編碼器會(huì)提取一組參數(shù),這組參數(shù)被送到接收端,用來(lái)導(dǎo)出語(yǔ)音產(chǎn)生模形。線性預(yù)測(cè)編碼(LPC)用來(lái)獲取一時(shí)變數(shù)字濾波器的參數(shù)。這個(gè)濾波器用來(lái)模擬說(shuō)話人的聲道輸出[WEST96]。在電話系統(tǒng)中使用聲碼器,語(yǔ)音質(zhì)量不夠好。


合成分析操作(點(diǎn)擊看大圖)


低比特率編碼器的MOS得分--比特率關(guān)系曲線(WEST96)

  在VOIP中常用的語(yǔ)音編碼器是混合編碼器,它融入了波形編碼器和聲器的長(zhǎng)處,它的另一特點(diǎn)是它工作在非常低的比特率(4-6Kbps)。混合編碼器采用合成分析(AbS)。

  為了說(shuō)明問(wèn)題,考慮人的聲道產(chǎn)生的一個(gè)語(yǔ)音模式:當(dāng)人說(shuō)話產(chǎn)生語(yǔ)音信號(hào)時(shí)就會(huì)發(fā)出濁音(如音素pa、da等)和清音(如音素sh、th)。激勵(lì)信號(hào)就是由輸入的語(yǔ)音信號(hào)導(dǎo)出的,其方法是使合成語(yǔ)音與輸入語(yǔ)音的差別非常小。LPC的用法、激勵(lì)的產(chǎn)生以及對(duì)合成分析(AbS)系統(tǒng)的誤差檢查均如圖4-1所示。 長(zhǎng)話質(zhì)量編碼器在比特率高于8Kbps時(shí)容易實(shí)現(xiàn),如圖4-2所示。長(zhǎng)話質(zhì)量的語(yǔ)音平均意見(jiàn)得分(MOS)必須在分或許分以上。傳統(tǒng)的PCN語(yǔ)音在比特率小于32 Kbps,語(yǔ)音質(zhì)量會(huì)嚴(yán)重惡化,在這里就不討論P(yáng)CN了;旌暇幋a和聲碼器在比特率相當(dāng)?shù)偷腗OS上的得分是可接受的。在現(xiàn)階段,大多數(shù)基于VOIP的編碼器的工作范圍在5.2~8kbps。研究表明,標(biāo)準(zhǔn)的編碼器在比特率為4 Kbps時(shí)能提供可接受的NOS得分,一些分用系統(tǒng)在4.8 Kbps的MOS上的得分為3.8。

  矢量量化和碼激勵(lì)線性預(yù)測(cè) 一種較好的方法就是用預(yù)測(cè)存儲(chǔ)的最優(yōu)參數(shù)(碼元矢量)的碼本對(duì)輸入語(yǔ)音信號(hào)的表示矢量進(jìn)行編碼,這種技術(shù)稱為矢量量化(VQ,vector quantization)。 將VQ和AbS技術(shù)結(jié)合在一起會(huì)進(jìn)一步提高編碼性能。AbS VQ是技術(shù)構(gòu)成CELP的基礎(chǔ)。VQ和AbS VQ的主要區(qū)別在于進(jìn)行矢量量化碼簿搜索時(shí)采用的量化失真測(cè)量定義的不同。

  三、線性預(yù)測(cè)合成分析編碼器 最常用的比特率在4.8kbps~16 kbps之間的語(yǔ)音編碼器是基于模型編碼器的,這些編碼器都是線性預(yù)測(cè)合成分析(LPAS)方法。為了隨著時(shí)間的變化模擬語(yǔ)音信號(hào),線性預(yù)測(cè)語(yǔ)音產(chǎn)生模型必須用適當(dāng)?shù)男盘?hào)來(lái)激勵(lì)。每隔一段固定時(shí)間(如每隔20ms),語(yǔ)音模型參數(shù)和激勵(lì)參數(shù)都必須做一次估計(jì)和更新,并用來(lái)控制語(yǔ)音模型。下面將介紹兩種LPAS編碼器:前向至應(yīng)LPAS編碼器和后向自適應(yīng)LPAS編碼器。 3.1 前向自適應(yīng)LPAS編碼器:8kbps G.729編碼器和6.3kbps 與5.3kbps G.723.1編碼器 在前向自適應(yīng)的AbS編碼器中,預(yù)測(cè)濾波器的系數(shù)和增益是顯示傳送的。為了提供長(zhǎng)話質(zhì)量的語(yǔ)音性能,這兩種編碼器都依賴于信源模型。激勵(lì)信號(hào)(以語(yǔ)音基調(diào)周期的信息形式表示)也要傳送。這種編碼器所提供的模型對(duì)語(yǔ)音信號(hào)來(lái)說(shuō)是比較好的,但對(duì)于一些噪音或者多數(shù)器來(lái)說(shuō)并不合適。因此,在背景噪音和音樂(lè)環(huán)境下,LPAS編碼器的質(zhì)量比7.726和7.727的編碼器的質(zhì)量要差一些。

 、 G.723.1 ITU-T G.723.1編碼器在6.4kbps提供長(zhǎng)話質(zhì)量語(yǔ)音。同時(shí) G.723.1還包括一個(gè)工作在5.3kbps的低質(zhì)量語(yǔ)音編碼器。G.723.1是為低比特率可視電話而設(shè)計(jì)的。在這種適應(yīng)中,由于視頻編碼時(shí)延通常大于語(yǔ)音編碼時(shí)延,因此對(duì)時(shí)延的要求不是很嚴(yán)格。G.723.1編碼器的幀長(zhǎng)為30ms,還有7.5ms的前視。再加上編碼器的處理時(shí)延,編碼器的單向總時(shí)延為67.5ms。其它時(shí)延是由系統(tǒng)緩沖區(qū)和網(wǎng)絡(luò)造成的。

  G.723.1編碼器首先對(duì)語(yǔ)音信號(hào)進(jìn)行傳統(tǒng)電話帶寬的波濾(基于G.712),再對(duì)語(yǔ)音信號(hào)用傳統(tǒng)的8000Hz速率進(jìn)行抽樣(基于G.711),并變換成位的線性PCM碼作作為該編碼器的輸入。在編碼器中對(duì)輸出進(jìn)行逆操作來(lái)重構(gòu)語(yǔ)音信號(hào)。 G.723.1系統(tǒng)用LPAS編碼方法將語(yǔ)音信號(hào)編碼成幀。編碼器能夠產(chǎn)生兩種速率的語(yǔ)音流量:(a)用于高速率的6.3kbps;

  (b)用于低速率的5.3kbps。主速率編碼器使用多脈沖最大自然量化(MP-MLQ),低速率編碼器使用代數(shù)碼激勵(lì)線性預(yù)測(cè)(ACELP,Algebraic-Code-Excited Linear-Prediction)方法。編碼器和解碼器都必須支持兩種速率,并通能夠在幀間對(duì)兩種速度進(jìn)行轉(zhuǎn)換,此系統(tǒng)同樣能夠?qū)σ魳?lè)和其它音頻信號(hào)進(jìn)行壓縮和解壓縮,但它對(duì)語(yǔ)音信號(hào)來(lái)說(shuō)是最優(yōu)的。

  編碼器對(duì)幀進(jìn)行操作,每幀包括240個(gè)樣點(diǎn),采用速率為8000Hz。在進(jìn)一步的處理(高通濾波器去直流分量)后把每幀分成4個(gè)子幀,每個(gè)子幀包括60個(gè)樣點(diǎn),其它的各種操作包括LPC濾波器以及LSP濾波器非量化系數(shù)的計(jì)算等,將會(huì)導(dǎo)致30ms的分組時(shí)延。對(duì)每個(gè)子幀,用未經(jīng)處理的輸入信號(hào)計(jì)算LPC濾波器。最后一個(gè)子幀的濾波器系數(shù)用來(lái)預(yù)測(cè)分裂矢量量化器(PSVQ,Predictive split Vector quantizer)進(jìn)行量化。正如前面所介紹的,前視占有7.5ms,所以整個(gè)編碼時(shí)延為37.5ms。這個(gè)時(shí)延在評(píng)介編碼器,尤其是通過(guò)數(shù)據(jù)網(wǎng)絡(luò)傳輸語(yǔ)音時(shí)是個(gè)很重要的因素,因?yàn)槿绻幋a及解碼時(shí)延比較小的話,就意味著處理互聯(lián)網(wǎng)中的時(shí)延及其抖動(dòng)時(shí)具有更大的自由度。 解碼器的處理也是基于幀的,解碼過(guò)程如下(G.723.1算法摘要):

  ·對(duì)LPC的量化索引號(hào)進(jìn)行解碼。

  ·對(duì)構(gòu)造LPC合成濾波器。

  ·對(duì)每個(gè)子幀,先對(duì)自適應(yīng)碼本激勵(lì)和固定碼本激勵(lì)解碼,然后再輸入合成濾波器。

  ·激勵(lì)信號(hào)經(jīng)基音后置濾波器處理后,再送入合成濾波器。

  ·合成信號(hào)被輸入到共振峰后置濾波器,該濾波器采用增益標(biāo)度單元以使其輸出能量維持在糨的輸入水平。

  靜音壓縮已運(yùn)用多年,它運(yùn)用了在總會(huì)話時(shí)間中靜音時(shí)間占大約50%這一事實(shí)。其基本思路是在靜音期間減少傳送的比特?cái)?shù),從而節(jié)省了所需傳輸?shù)目偙忍財(cái)?shù)。 在電話網(wǎng)中,多年來(lái)對(duì)模擬語(yǔ)音信號(hào)都是用時(shí)間分配語(yǔ)音插值(TASI,Time-Assigned Speech Interpolation)主法進(jìn)行處理。這一技術(shù)也就是將其它語(yǔ)音信號(hào)或者數(shù)據(jù)信號(hào)放置在談話的靜音期間內(nèi),從而為多信道鏈路提供附加容量。現(xiàn)今,TASI已運(yùn)用數(shù)字信號(hào)中并被賦予新名稱--其中的一個(gè)例子就是時(shí)分多址(TDMA,Time Division Multiple Access)。簡(jiǎn)要地講,DTMA是將通常的信號(hào)劃分成很小的、數(shù)字化片段(slots即時(shí)隙)。這些時(shí)隙和其它時(shí)隙一起在一個(gè)信道中進(jìn)行時(shí)分復(fù)用。

  G.723.1采用了執(zhí)行不連續(xù)傳輸?shù)撵o音壓縮,這就意味著在靜音期間的比特流中加入了人為的噪聲。除了預(yù)留帶寬之外,這種技術(shù)使發(fā)信機(jī)的調(diào)制解調(diào)器保持邊續(xù)工作,并且避免了載波信號(hào)的時(shí)通時(shí)斷。

 、 G.729 G.729編碼器是為低時(shí)延應(yīng)用設(shè)計(jì)的,它的幀長(zhǎng)只有10ms,處理時(shí)延也是10ms,再加上5ms的前視,這就使得G.729產(chǎn)生的點(diǎn)到點(diǎn)的時(shí)延為25ms,比特率為8 kbps。這些時(shí)延性能在互聯(lián)網(wǎng)中很重要,因?yàn)槲覀冎廊魏文軠p少時(shí)延的因素都是非常重要的。

  G.729有兩個(gè)版本:G.729和G.729A。G.729比G.723.1簡(jiǎn)單。這兩個(gè)版本互相兼容但它們的性能有些不同,復(fù)雜性低的版本(G.729A)性能較差。兩種編碼器都提供了對(duì)幀丟失和分組丟失的隱藏處理機(jī)制,因此在因特網(wǎng)上傳輸語(yǔ)音時(shí),這兩種編碼器都是很好的選擇。Cox等[COX98]認(rèn)為G.729在處理隨機(jī)比特錯(cuò)誤方面性能不好。建議在有隨機(jī)比特錯(cuò)誤的信道上不使用此編碼器,除非利用信道編碼(前向糾錯(cuò)碼和卷積碼,將在無(wú)線部份討論)保護(hù)最敏感的比特。

  3.2 后向自適應(yīng)LPAS編碼:16 kbps G.728低時(shí)延碼激勵(lì)線性預(yù)測(cè) G.728是低比特線性預(yù)測(cè)合成分析編碼器(G.729和G.723.1)和后向ADPCM編碼器的混合體。G.728是LD-CELP編碼器,它一次只處理5個(gè)樣點(diǎn)。

  CELP是上種語(yǔ)音編碼技術(shù),它的激勵(lì)信號(hào)是從一個(gè)可能的激勵(lì)信號(hào)集合中通過(guò)全搜索方法選出的。低速率語(yǔ)音編碼呂器對(duì)樣值預(yù)測(cè)濾波器采用前向自適應(yīng)方案。而LD-CELP采用后向自適應(yīng)濾波器并每隔2.5ms做一次更新。CELP中共有1024個(gè)可能的激勵(lì)矢量。這些矢量可進(jìn)一步分析為4種可能的增益,兩種符號(hào)(+和-)與128種形狀矢量。

  對(duì)于低速率(56~128 kbps)的綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)可視電話,G.728是一種建議采用的語(yǔ)音編碼器。由于其后向自適應(yīng)特性,因此G.728是一種低時(shí)延編碼器,但它比其它的編碼器都復(fù)雜,這是因?yàn)樵诰幋a器中必須重復(fù)做50階LPC分析。G.728還采用了自適應(yīng)后置濾波器來(lái)提高其性能。

 四、參數(shù)語(yǔ)音編碼器:2.4 kbps混合激勵(lì)線性預(yù)測(cè)編碼 參數(shù)編碼器采用簡(jiǎn)化激勵(lì)信號(hào)的語(yǔ)音模型,因而能工作在最低比特率。前而討論的所有語(yǔ)音編碼器都可描述為波形跟蹤,它們輸出信號(hào)的波形和相位與輸入信號(hào)很相似。

  參數(shù)語(yǔ)音編碼器卻不同,它不呈現(xiàn)為波形跟蹤。這類編碼器是基于分析合成模型的,可用相當(dāng)少的參數(shù)表示語(yǔ)音信號(hào)。這些參數(shù)通常是每隔20ms~40ms就會(huì)從語(yǔ)音信號(hào)中提取和量化。在接收端,這些參數(shù)用來(lái)生成合成語(yǔ)音信號(hào)。在理想條件下,合成語(yǔ)音聽(tīng)起來(lái)和原始語(yǔ)音相似。在背景噪音較大的情況下,由于輸入的語(yǔ)音信號(hào)不能根據(jù)其內(nèi)在的語(yǔ)音模型很好的建模,所以任何參數(shù)編碼器都將失敗。美國(guó)政府選擇了2.4 kbps MELP用于保密電話。

  對(duì)于我媒體應(yīng)用,[COX98]的研究指出:當(dāng)需要低比特率時(shí),參數(shù)編碼器是一種好的選擇。例如,簡(jiǎn)單的用戶游戲中經(jīng)常用參數(shù)編碼器。這會(huì)降低所需的存儲(chǔ)空間。出于同樣的原因,參數(shù)編碼器對(duì)某些多媒體消息型業(yè)務(wù)也是一種好的選擇。對(duì)所有類型的語(yǔ)音環(huán)境來(lái)說(shuō),參數(shù)編碼器的絕對(duì)語(yǔ)音質(zhì)量都較低,尤其是在噪聲環(huán)境下。如果事先能對(duì)語(yǔ)音文件做仔細(xì)的編輯,那么這個(gè)缺點(diǎn)是能克服的。目前,多媒體應(yīng)用中的大多數(shù)參數(shù)編碼器都不是標(biāo)準(zhǔn)的。而是適用于這類專用編碼器。

  用于無(wú)線通信的G.723.1可變速率編碼 G.723.1的附件C規(guī)定了一個(gè)信道編碼規(guī)范,此規(guī)范可以和三倍速率的語(yǔ)音編碼器一起使用。這個(gè)信道編碼器的比特率的可變的,它作為整個(gè)H.324標(biāo)準(zhǔn)系列的一部份,是為移動(dòng)多媒體應(yīng)用設(shè)計(jì)的。

  這個(gè)信道編碼器支持的比特率范圍從0.7 kbps到4.3 kbps。它也支持G.723.1的三個(gè)操作模式的編解碼器,即高速率模式、低速率模式和不連續(xù)傳送模式。 這個(gè)信道編碼器采用截短卷積碼,根據(jù)每一類型信息比特主觀重要性的不同,信道編碼器的比特率可對(duì)不同的比特類型分進(jìn)行優(yōu)化。這種分配算法對(duì)編碼器和解碼器都是已知的。每次的系統(tǒng)控制信號(hào)無(wú)論是改變G.723.1的速率還是改變信道編碼器的比特率,這個(gè)算法都會(huì)使信道編碼器適應(yīng)于新的語(yǔ)音業(yè)務(wù)配置。

  如果信道編碼器的可用速率較低,那么首先要保護(hù)主觀上最敏感的比特位。當(dāng)信道編碼器的比特率增加時(shí),多余的信道比特首先用來(lái)保護(hù)更多的信息比特位,然后再對(duì)已保護(hù)過(guò)的比特類型增強(qiáng)保護(hù)。 在運(yùn)用信道編碼之前,語(yǔ)音參數(shù)要在信道適配層作部份的變化以提高對(duì)傳輸錯(cuò)誤的健壯性。

  五、編碼器評(píng)價(jià) 評(píng)估編碼器的性能時(shí)要考慮幾個(gè)重要因素。這些因素如下提示:

  ·幀大。簬拇笮”硎菊Z(yǔ)音流量的時(shí)間長(zhǎng)度,也稱為幀時(shí)延。 幀是語(yǔ)音信號(hào)的分立部件,且每幀是根據(jù)語(yǔ)音樣點(diǎn)更新的。本 介紹的編碼器都是一次處理一幀。每幀信息各放在各語(yǔ)音分組 中,并傳送給接收端。

  ·處理時(shí)延:它表示在編碼器中對(duì)一幀語(yǔ)音做編碼算法處理所 需時(shí)間。它通常簡(jiǎn)單計(jì)入幀時(shí)延。處理時(shí)延好稱為算法時(shí)延。

  ·前視時(shí)延:編碼器為了對(duì)當(dāng)前幀的編碼提供幫助而檢查下一 幀的一定長(zhǎng)度,此長(zhǎng)度就稱為前視時(shí)延。前視的想法是為了利 用相鄰語(yǔ)音幀之間的密切相關(guān)性。 幀長(zhǎng)度:這個(gè)值表示經(jīng)編碼處理后的字節(jié)數(shù)(不包括幀頭)。

  ·語(yǔ)音比特率:當(dāng)編解碼器的輸入是標(biāo)準(zhǔn)脈沖編碼調(diào)制的語(yǔ)音 碼流(比特率為64 kbit/s)時(shí),編解碼器的輸出速率。

  ·DSP MIPS:此值是指支持特定編碼器的DSP處理器的最低 速度。值提注意的是DSP MISP與其它處理器的MISP速率無(wú) 關(guān)。與用在工作站和個(gè)人計(jì)算機(jī)上通用處理器不同,這些DSP 是為特定任務(wù)而專門設(shè)計(jì)的。因此,為實(shí)現(xiàn)上述的編解碼器處 理所需求MISP,通用處理器要比專用DSP處理器大。

  ·RAM需求:它描述了支持特定的編碼過(guò)程所需要RAM的大 小。

  評(píng)價(jià)編碼器性能的關(guān)鍵因素是編碼器工作所需時(shí)間。這個(gè)時(shí)間是指編碼器的緩存及處理時(shí)間,稱為單向系統(tǒng)時(shí)延。其值等于:幀大小+處理時(shí)延+前視時(shí)延。顯然,解碼時(shí)延也非常重要。實(shí)際上,解碼時(shí)延大約是編碼時(shí)延的一半。

  六、語(yǔ)音編碼器的比較 為了標(biāo)準(zhǔn)編碼器的討論作個(gè)總結(jié),表4-1[RUDK97]對(duì)幾種編碼器的比特率、MOS、復(fù)雜性(以G .711為基準(zhǔn))和時(shí)延(幀大小及前視時(shí)間)作為比較。


標(biāo)準(zhǔn) 編碼類型 比特率 MOS 復(fù)雜性 時(shí)延 (kbps) (ms) G.711 PCM 64 4.3 1 0.125 G.726 ADPCM 32 4.0 10 0.125 G.728 LD-CELP 16 4.0 50 0.625 GSM RAE_LPT 13 3.7 5 20 G.729 CSA-CELP 8 4.0 30 15 G.729A 15 G.723.1 ACELP 6.3 3.8 25 37.5 MP-MLQ 6.3 US Dod LPC-10 2.4 合成語(yǔ)音 10 22.5 FS1015

  七、小結(jié) 語(yǔ)音編碼器是建立和處理VOIP分組的發(fā)動(dòng)機(jī)的。它由DSP驅(qū)動(dòng)。 原來(lái)的DS0、TMD G.711 64kbps編碼器最終會(huì)被工業(yè)淘汰,并由低比特率編碼器所替代。

IT168辦公通信


分類信息:     文摘