馬麗靜
摘 要:通過對(duì)矢量量化技術(shù)基本原理的介紹,概述了矢量量化過程中的關(guān)鍵問題、矢量量化器碼本的設(shè)計(jì)、失真測(cè)度和降低復(fù)雜度,闡述了語音波形的矢量量化和語音參數(shù)的矢量量化。針對(duì)矢量量化的發(fā)展現(xiàn)狀,提出了下一步的研究發(fā)展方向和對(duì)策。
關(guān)鍵詞:矢量量化;語音信號(hào);碼書;語音質(zhì)量
中圖分類號(hào):TN912.3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-6835(2014)01-0134-02
語音通信中語音技術(shù)的不斷發(fā)展和應(yīng)用實(shí)踐,讓人們?cè)絹碓疥P(guān)心傳輸速度和語音質(zhì)量等相關(guān)問題。20世紀(jì)70年代后期,一種新的數(shù)據(jù)壓縮技術(shù)發(fā)展起來,就是矢量量化。這種數(shù)據(jù)壓縮技術(shù)迎合了人們對(duì)語音信號(hào)的要求,它把語音數(shù)據(jù)進(jìn)行壓縮編碼,在不損失語音信息的前提下,力求用盡可能低的編碼速率傳輸高語音質(zhì)量的信息,從而解決語音數(shù)字通信中語音質(zhì)量和傳輸數(shù)碼率在技術(shù)上相互矛盾的問題。通常情況下我們關(guān)心的是語音質(zhì)量是否失真,傳輸速度是否夠快,能否用最少的參數(shù)體現(xiàn)語音特征,矢量量化技術(shù)就考慮到了這些問題,并給出了很好的解決方法。
1 矢量量化的基本原理
語音信號(hào)經(jīng)過預(yù)處理,分成一幀一幀,矢量量化的過程是將語音信號(hào)波形的k個(gè)樣點(diǎn)的每一幀或有k個(gè)參數(shù)的每一參數(shù)幀,構(gòu)成k維歐氏空間中的一個(gè)矢量,然后將此矢量進(jìn)行整體量化。
矢量量化理論從標(biāo)量量化發(fā)展而來,兩者對(duì)比,標(biāo)量量化是k=1的一維矢量量化。它們的區(qū)別是標(biāo)量量化設(shè)置若干個(gè)量化間隔,而矢量量化是將k維無限空間劃分為M個(gè)區(qū)域邊界,然后將輸入信號(hào)的矢量和這些間隔或邊界進(jìn)行比較,根據(jù)最小失真測(cè)度公式,選擇距離最小的區(qū)域邊界或間隔的中心矢量值來量化。目前,對(duì)失真測(cè)度已有不少研究,例如曾提出過均方誤差、加權(quán)的均方誤差和線性預(yù)測(cè)失真測(cè)度等。理想的失真測(cè)度失真小,語音質(zhì)量好,并且計(jì)算簡(jiǎn)單。在劃分好區(qū)域建立好失真測(cè)度公式后輸入語音信號(hào),將其變?yōu)槭噶窟M(jìn)行量化,對(duì)所有的k維矢量都用有限的M個(gè)碼字表示,并將所有碼字編號(hào),作為存儲(chǔ)或傳輸?shù)膮?shù),這樣所有的k維矢量都可以用這些碼字的碼號(hào)表示。在恢復(fù)時(shí),直接復(fù)原或進(jìn)行反變換,就可以得到恢復(fù)的時(shí)域信號(hào)。
2 量化過程中的關(guān)鍵問題
在矢量量化過程中,找到最佳的矢量量化器和最佳的碼本設(shè)計(jì)是關(guān)鍵。實(shí)現(xiàn)矢量量化器最佳設(shè)計(jì),要具備以下兩個(gè)條件:①對(duì)給定的碼本在矢量空間X中輸入信號(hào)矢量,信號(hào)矢量可以用矢量空間某區(qū)域邊界Si的角標(biāo)i來表示;②對(duì)給定的區(qū)域邊界Si 找出最佳碼本矢量,使平均失真最小,得到碼本。整個(gè)設(shè)計(jì)過程是實(shí)現(xiàn)上述兩個(gè)條件的反復(fù)迭代過程,矢量量化器的設(shè)計(jì)就是為了得到最佳劃分、最佳碼書。這個(gè)過程就是對(duì)初始碼書進(jìn)行優(yōu)化,一直到系統(tǒng)性能得到滿足為止。
研究人員經(jīng)過多年的努力,在最基本的矢量量化器基礎(chǔ)上,已經(jīng)研究出了各種各樣矢量量化器的變種。這樣做主要是為了降低一些碼書大、維數(shù)高的矢量量化系統(tǒng)的復(fù)雜度,使其在實(shí)際應(yīng)用中發(fā)揮優(yōu)越性。約束矢量量化、預(yù)測(cè)矢量量化、有記憶的矢量量化、有限狀態(tài)矢量量化和帶反饋計(jì)算的自適應(yīng)矢量量化等都是各國(guó)學(xué)者研究的重點(diǎn)方向。
3 語音信號(hào)矢量量化技術(shù)的研究現(xiàn)狀
早在20世紀(jì)70年代后期,矢量量化的技術(shù)就開始發(fā)展,80年代開始逐步完善起來。最初,只是提出了分組量化的一般性理論,后來,由Linde,Buzo 和Gray將標(biāo)量量化的Lloyd-Max算法推廣,產(chǎn)生了第一個(gè)可行的矢量量化碼書設(shè)計(jì)算法——LBG算法。從此,矢量量化技術(shù)的研究進(jìn)入了一個(gè)全面高速的發(fā)展時(shí)期。目前,用于語音信號(hào)矢量量化的主要是語音波形的矢量量化和語音參數(shù)的矢量量化。
3.1 語音波形的矢量量化
過去,語音波形的壓縮編碼大多采用標(biāo)量量化的方法,并且已經(jīng)研究得相當(dāng)深入。例如,自適應(yīng)預(yù)測(cè)編碼和自適應(yīng)變換等都可在16 kb/s數(shù)碼率條件下工作得很好。它和近年提出的多脈沖線性預(yù)測(cè)編碼都可在保證語音質(zhì)量的同時(shí)在集成電路上實(shí)現(xiàn)傳輸。但是,當(dāng)誤差量化的比特?cái)?shù)下降時(shí),尤其降到了1 bit/樣本以下時(shí),性能就會(huì)迅速變差,這就是標(biāo)量量化的局限性。與矢量的整體量化相比,各樣本的標(biāo)量量化性能更優(yōu)越。在理論上,在相同SNR情況下前者可以用較低的傳輸數(shù)碼率。但是,目前語音波形的矢量量化只能做到8 kb/s左右時(shí)才可以得到好的語音質(zhì)量,這也就是矢量量化尚需人們?nèi)ド钊胙芯康脑颉膶?shí)踐經(jīng)驗(yàn)知,當(dāng)每樣本比特?cái)?shù)為1 bit/樣本時(shí),矢量量化的SNR才達(dá)到12~15 dB。如果想降低數(shù)碼率,又要達(dá)到上述的SNR,似乎只有增大矢量的維數(shù)——k維數(shù)。語音波形矢量量化的一個(gè)問題是k增大,會(huì)導(dǎo)致運(yùn)算量和存儲(chǔ)量增大,也就增大了算法的復(fù)雜度。雖然人們可以在碼本構(gòu)造、搜索算法等方面部分解決這個(gè)問題,但k的增大仍是需要關(guān)注的重點(diǎn)問題。另一個(gè)問題是,語音波形的矢量量化在合成時(shí)會(huì)出現(xiàn)語音波形的不連續(xù)現(xiàn)象,特別在低碼率時(shí)顯得更為突出。雖然這個(gè)問題可以用交疊一些樣本構(gòu)成矢量的方法來緩解,或者用剩余誤差序列來構(gòu)成矢量而不用波形直接構(gòu)成矢量,但這終究是一個(gè)需要解決的問題。這種理論上的先進(jìn)性和實(shí)踐上的落后性之間的矛盾,正是研究矢量量化的依據(jù)和動(dòng)力。
3.2 語音參數(shù)的矢量量化
語音信號(hào)通過預(yù)處理,提取出特征參數(shù),例如線性預(yù)測(cè)參數(shù),把這些參數(shù)組構(gòu)成矢量,進(jìn)行整體矢量量化,就是對(duì)語音參數(shù)的矢量量化。線性預(yù)測(cè)參數(shù)的矢量量化是研究最廣泛的參數(shù)矢量量化。這方面最早和最簡(jiǎn)單的工作是在原來2.4 kb/s的10階線性預(yù)測(cè)聲碼器的基礎(chǔ)上進(jìn)行的。矢量量化前,每幀22.5 m/s,用54 bit量化;矢量量化后,傳輸數(shù)碼率為800 b/s。其做法是:每三個(gè)連續(xù)幀為一組矢量,只對(duì)該組線性預(yù)測(cè)系數(shù)進(jìn)行矢量量化。設(shè)計(jì)這個(gè)方案的要點(diǎn)是,采用與能量和增益無關(guān)的對(duì)數(shù)似然比失真測(cè)度作為VQ的距離測(cè)度。碼本尺寸為1 024 bit,即用10來表示其角標(biāo)。碼本是用10個(gè)人大約30 min的隨機(jī)對(duì)話語音來進(jìn)行測(cè)試而產(chǎn)生的。碼本分為濁音和清音兩種,都用LBG算法訓(xùn)練。通常,清音碼本比濁音碼本失真率低,所以,在相同的失真指標(biāo)下,清音碼本的尺寸可以小一些。根據(jù)各種評(píng)估系統(tǒng)的測(cè)試可知,結(jié)果同2 400 b/s的LPC-10聲碼器的音相近。同時(shí),他們還對(duì)上述已矢量量化了的LPC聲碼器作了進(jìn)一步的碼率壓縮研究,提出了兩種方法:①幀重復(fù)LPC矢量量化法。在800 b/s的LPC VQ的基礎(chǔ)上,用這個(gè)方法之后,可達(dá)到250 b/s的碼率。②矩陣量化法。這實(shí)際上是考慮了語音信號(hào)的段特性,這種量化的基元是一個(gè)矩陣——不是采用一幀幀的的矢量幀來量化,而是采用矢量段來進(jìn)行矢量量化。這種方法最后的傳輸數(shù)碼率可低達(dá)150 b/s。endprint
4 研究發(fā)展方向和對(duì)策
針對(duì)目前的現(xiàn)狀,許多學(xué)者在以下兩方面進(jìn)行探討。
4.1 改進(jìn)LBG算法
各種算法都有優(yōu)點(diǎn)和缺點(diǎn),LBG算法容易實(shí)現(xiàn),但它也有缺點(diǎn),這也正是需要人們改進(jìn)的方向。LBG算法的缺點(diǎn)是:在每次迭代的最佳劃分階段,要減少?gòu)拇a書中搜索訓(xùn)練矢量的最近碼字時(shí),就需要大量的存儲(chǔ)空間和煩瑣的計(jì)算;如何提高碼書訓(xùn)練的收斂速度和最終碼書的性能;如何增強(qiáng)碼書的自適應(yīng)能力。各種改進(jìn)算法紛紛發(fā)表,主要目的就是為了獲得更好的初始碼書,以提高碼書性能或加快設(shè)計(jì)速度。
4.2 新的碼書設(shè)計(jì)算法
為了改善碼書性能,采用各種各樣的全局優(yōu)化技術(shù)進(jìn)行碼書設(shè)計(jì)也是一個(gè)研究方向。人們分別將基于模糊聚類理論的設(shè)計(jì)算法、模擬退火算法和演化算法應(yīng)用到矢量量化碼書設(shè)計(jì)中,同時(shí)將人工神經(jīng)網(wǎng)絡(luò)同矢量量化結(jié)合。所有這些全局優(yōu)化算法的性能都要比LBG算法高。
近年來,雖然在矢量量化方面有好多算法不斷被提出,它們也各有優(yōu)勢(shì)和不足,但提出一套具有較高計(jì)算精度、較低計(jì)算復(fù)雜度和存儲(chǔ)復(fù)雜度及優(yōu)越的量化性能的完整算法,是需要人們不斷深入探討的課題。目前,矢量量化技術(shù)的研究進(jìn)展很快,不僅在理論研究上,而且在系統(tǒng)結(jié)構(gòu)、計(jì)算機(jī)模擬和硬件實(shí)現(xiàn)等方面也取得了不少成果,例如采用矢量量化技術(shù),已能將聲碼器的傳輸速率從2 400 bit/s降低到150~180 bit/s,而仍能保持較好的語音質(zhì)量和可懂度。在語音識(shí)別方面,矢量量化研究也得到很好的應(yīng)用,各種各樣的矢量量化系統(tǒng)得以提出和進(jìn)一步的實(shí)現(xiàn)。
5 結(jié)束語
隨著科學(xué)技術(shù)日新月異的變化,矢量量化技術(shù)也將在方法、理論上有新的發(fā)展,特別是在語音識(shí)別方面,同隱馬爾可夫鏈結(jié)合使用,直接用于構(gòu)成語音識(shí)別和說話人識(shí)別系統(tǒng)。在低速語音編碼和合成方面,用于特定的人和非特定的人的語音識(shí)別,許多研究是很有實(shí)用性的。隨著半導(dǎo)體技術(shù)和微電子工藝的成熟發(fā)展,針對(duì)各種硬件,例如各種DSP的特點(diǎn),開發(fā)對(duì)應(yīng)的矢量量化算法已成為熱點(diǎn),進(jìn)一步的研究會(huì)使其在今后的語音通信中發(fā)揮越來越大的效用。
參考文獻(xiàn)
[1]D.Y.Wong.An 800 bps LPC Vector Quantization Vocoder[J].IEEE Trans,1982,30(5):770-780.
[2]王炳錫.語音編碼[M].西安:西安電子科技大學(xué)出版社,2002.
[3]朱民雄.計(jì)算機(jī)語音技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.
〔編輯:白潔〕endprint