線性預測編碼

線性預測編碼(英語:LPC, Linear predictive coding)是主要用於音頻信號處理語音處理中,根據線性預測模型的信息用壓縮形式表示數字語音信號譜包絡(spectral envelope)的工具。它是有效的語音分析技術之一,也是低位速下編碼方法高質量語音有用的方法之一,它能夠提供非常精確的語音參數預測。

buy
add image

綜述

線性預測編碼用線性預測方法對信號編碼,基本思想是:「一個語音取樣的現在值,可以用若干個語音取樣過去值的加權線性組合來逼近」,即 時刻的信號 表示為之前 次的過去信號 的線性組合。預測係數 與預測殘差 可被編碼。

 

通過使實際語音抽樣和線性預測抽樣之間差值的平方和達到最小值,能夠決定唯一的一組預測係數。

線性預測編碼通過估計共振峰、剔除它們在語音信號中的作用、估計保留的蜂鳴音強度與頻率來分析語音信號。剔除共振峰的過程稱為逆濾波,經過這個過程剩餘的信號稱為殘餘信號(residue)。

若區間 (常稱作幀)的信號( )能用線性組合很好地表示,就可將信號信息變換為區間中的 個不變預測係數( )和 個小振幅殘餘信號( )。 描述峰鳴強度與頻率、共鳴峰、殘餘信號的數字可以保存、發送到其它地方。對殘餘信號應用各種壓縮,可以用更少的信息量傳遞信號。線性預測編碼通過逆向的過程合成語音信號:使用蜂鳴參數與殘餘信號生成源信號、使用共振峰生成表示聲道的濾波器,源信號經過濾波器的處理就得到語音信號。

由於語音信號是一種非平穩的時變信號,又同時具有短時平穩性,這個過程是在一段段的語音信號幀上進行處理的。通常每秒30到50幀的速度,就能對可理解的信號進行很好的壓縮。

對LPC高效編碼的機制有各種解釋,其中之一是源-濾波器模型:殘餘信號可解釋為聲帶激勵,預測係數可解釋為具有共振特性的聲道模型。

線性預測編碼的早期歷史

根據斯坦福大學Robert M. Gray的說法,線性預測編碼起源於1966年,當時日本電信電話公社的S. Saito和F. Itakura描述了一種自動音素識別的方法,這種方法第一次使用了針對語音編碼的最大似然估計實現。1967年,John Burg略述了最大熵的實現方法。1969年Itakura與Saito提出了部分相關(partial correlation)的概念, May Glen Culler提議進行實時語音壓縮,B. S. Atal在美國聲學協會年會上展示了一個LPC語音編碼器。1971年Philco-Ford展示了使用16位LPC硬件的實時LPC並且賣出了四個。

1972年美國國防部國防高等研究計劃署(DARPA)的Bob Kahn林肯實驗室(Lincoln Laboratory, LL)的Jim Forgie,以及BBN科技的Dave Walden開始了語音信息包的第一次開發,這最終帶來了Voice over IP技術。根據林肯實驗室的非正式歷史資料記載,1973年Ed Hofstetter實現了第一個2400位/秒的實時LPC。1974年,第一個雙向實時LPC語音包通信在Culler-Harrison與林肯實驗室之間通過ARPANET以3500位/秒的速度實現。1976年,第一次LPC會議通過ARPANET使用Network Voice Protocol在Culler-Harrison、ISI、SRI與LL之間以3500位/秒的速度實現。最後在1978年,BBN的Vishwanath et al.開發了第一個變速LPC算法。

線性預測編碼係數表示

線性預測編碼經常用來傳輸頻譜包絡信息,這樣它就可以容忍傳輸誤差。由於直接傳輸濾波器係數(參見線性預測中係數定義)對於誤差非常敏感,所以人們不希望直接傳輸濾波器係數。換句話說,一個小的誤差不會扭曲整個頻譜或使整個頻譜質量下降,但是一個小的誤差可能使預測濾波器變得不穩定。

有許多更加高級的表示方法,如對數面積比(log area ratio,LAR)、線譜對(line spectral pairs,LSP)分解以及反射係數等。在這些方法中,LSP由於它能夠保證預測器的穩定性、並且小的係數偏差帶來的譜誤差也是局部的這些特性,所以得到了廣泛應用。

應用

線性預測編碼通常用於語音的重新合成,它是電話公司使用的聲音壓縮格式,如GSM標準就在使用這種格式。它還用作安全無線通信中的格式,在安全的無線通信中,聲音必須進行數字化加密然後通過狹窄的語音信道傳輸。

線性預測編碼合成也可以用於構建聲音合成器,樂器用作從歌手聲音預測得到的時變濾波器的激勵信號,這在電子音樂中有一定的流行。

1980年流行的Speak & Spell教育玩具中使用了一個10階的線性預測編碼。

FLAC音頻編解碼器中使用了0到4階的線性預測編碼預測器。

參考文獻

參見

外部連結