複製鏈接
請複製以下鏈接發送給好友

線性預測編碼

鎖定
線性預測編碼(LPC)是主要用於音頻信號處理與語音處理中根據線性預測模型的信息用壓縮形式表示數字語音信號譜包絡(en:spectral envelope)的工具。它是最有效的語音分析技術之一,也是低位速下編碼方法高質量語音最有用的方法之一,它能夠提供非常精確的語音參數預測。
中文名
線性預測編碼
外文名
linear predictive coding
起源時間
1966 年
用    途
傳輸頻譜包絡信息
應用學科
通信

線性預測編碼綜述

線性預測編碼的基礎是假設聲音信號(濁音)是音管末端的蜂鳴器產生的,偶爾伴隨有嘶嘶聲與爆破聲(齒擦音與爆破音)。儘管這看起來有些原始,但是這種模式實際上非常接近於真實語音產生過程。聲帶之間的聲門產生不同強度(音量)與頻率(音調)的聲音,喉嚨與嘴組成共鳴聲道。嘶嘶聲與爆破聲通過舌頭、嘴唇以及喉嚨的作用產生出來。
線性預測編碼通過估計共振峯、剔除它們在語音信號中的作用、估計保留的蜂鳴音強度與頻率來分析語音信號。剔除共振峯的過程稱為逆濾波,經過這個過程剩餘的信號稱為殘餘信號(en:residue)。
描述峯鳴強度與頻率、共鳴峯、殘餘信號的數字可以保存、發送到其它地方。線性預測編碼通過逆向的過程合成語音信號:使用蜂鳴參數與殘餘信號生成源信號、使用共振峯生成表示聲道的濾波器,源信號經過濾波器的處理就得到語音信號。
圖1 圖1
由於語音信號隨着時間變化,這個過程是在一段段的語音信號幀上進行處理的。通常每秒 30 到 50 幀的速度就能對可理解的信號進行很好的壓縮。

線性預測編碼原理

一個時間離散線性系統輸出的樣本可以用其輸入樣本和過去的輸出樣本的線性組合,即線性預測值來逼近。通過使實際輸出值和線性預測值之間差的均方值最小的方法能夠確定唯一的一組預測器係數。這些係數就是線性組合中所用的加權係數。在這一原理中,系統實際上已被模型化了,這一模型就是零極點模型。它有兩種特例:①全極點模型,又稱自迴歸模型。這時預測器只根據輸出過去的樣本進行預測。②全零點模型,又稱滑動平均模型。這時預測器只根據輸入樣本進行預測。迄今為止,最常用的模型還是全極點模型。這有幾個原因:―是全極點模型最易計算;二是在多數情況下,不可能知道輸入;三是對語音信號,在不考慮鼻音和部分擦音時,聲道的傳輸函數是一個全極點函數。
模型參數的估值在全極點模型下有兩種方法,即自關法和協方差法,它們分別適用於平穩信號和非平穩信號。模型參數的基本形式是線性預測係數,但它還有很多等價的表示形式。不同形式的係數在導致的逆濾波器結構,系統穩定性和量化時要求的比特數等方面都有所不同。現在公認的較好形式是反射係數,它所對應的濾波器具有格型結構,穩定性好量化時要求的比特數也少。

線性預測編碼線性預測編碼的早期歷史

根據斯坦福大學 Robert M. Gray 的説法,線性預測編碼起源於 1966 年,當時 NTT 的 S. Saito 和 F. Itakura 描述了一種自動音素識別的方法,這種方法第一次使用了針對語音編碼的最大似然估計實現。1967 年,John Burg 略述了最大熵的實現方法。1969 年 Itakura 與 Saito 提出了部分相關(en:partial correlation)的概念, May Glen Culler 提議進行實時語音壓縮,B. S. Atal 在美國聲學協會年會上展示了一個 LPC 語音編碼器。1971 年 Philco-Ford 展示了使用 16 位 LPC 硬件的實時 LPC 並且賣出了四個。
1972 年 ARPA 的 Bob Kahn 與 Jim Forgie (en:Lincoln Laboratory, LL) 以及 Dave Walden (BBN Technologies) 開始了語音信息包的第一次開發,這最終帶來了 Voice over IP 技術。根據 Lincoln Laboratory 的非正式歷史資料記載,1973 年 Ed Hofstetter 實現了第一個 2400 位/秒 的實時 LPC。1974 年,第一個雙向實時 LPC 語音包通信在 Culler-Harrison 與 Lincoln Laboratories 之間通過 ARPANET 以 3500 位/秒 的速度實現。1976 年,第一次 LPC 會議通過 ARPANET 使用 Network Voice Protocol 在Culler-Harrison、ISI、SRI 與 LL 之間以 3500 位/秒 的速度實現。最後在 1978 年,BBN 的 Vishwanath et al. 開發了第一個變速 LPC 算法。

線性預測編碼線性預測編碼係數表示

線性預測編碼經常用來傳輸頻譜包絡信息,這樣它就可以容忍傳輸誤差。由於直接傳輸濾波器係數(參見線性預測中係數定義)對於誤差非常敏感,所以人們不希望直接傳輸濾波器係數。換句話説,一個小的誤差不會扭曲整個頻譜或使整個頻譜質量下降,但是一個小的誤差可能使預測濾波器變得不穩定。
有許多更加高級的表示方法,如對數面積比(en:log area ratio,LAR)、線譜對(en:line spectral pairs,LSP) 分解以及反射係數等。在這些方法中,LSP 由於它能夠保證預測器的穩定性、並且小的係數偏差帶來的譜誤差也是局部的這些特性,所以得到了廣泛應用。

線性預測編碼應用

線性預測編碼通常用於語音的重新合成,它是電話公司使用的聲音壓縮格式,如 GSM 標準就在使用這種格式。它還用作安全無線通信中的格式,在安全的無線通信中,聲音必須進行數字化加密然後通過狹窄的語音信道傳輸。
線性預測編碼合成也可以用於構建聲音合成器,樂器用作從歌手聲音預測得到的時變濾波器的激勵信號,這在電子音樂中有一定的流行。
1980年流行的 Speak & Spell 教育玩具中使用了一個 10 階的線性預測編碼。
FLAC 音頻編解碼器中使用了 0 到 4 階的線性預測編碼預測器。 [1] 
參考資料