線性預測編碼
線性預測編碼(英語:LPC, Linear predictive coding)是主要用於音頻信號處理與語音處理中,根據線性預測模型的信息用壓縮形式表示數字語音信號譜包絡(spectral envelope)的工具。它是有效的語音分析技術之一,也是低位速下編碼方法高質量語音有用的方法之一,它能夠提供非常精確的語音參數預測。
綜述
線性預測編碼用線性預測方法對信號編碼,基本思想是:「一個語音取樣的現在值,可以用若干個語音取樣過去值的加權線性組合來逼近」,即時刻的信號表示為之前次的過去信號的線性組合。預測係數與預測殘差可被編碼。
通過使實際語音抽樣和線性預測抽樣之間差值的平方和達到最小值,能夠決定唯一的一組預測係數。
線性預測編碼通過估計共振峰、剔除它們在語音信號中的作用、估計保留的蜂鳴音強度與頻率來分析語音信號。剔除共振峰的過程稱為逆濾波,經過這個過程剩餘的信號稱為殘餘信號(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階的線性預測編碼預測器。
參考文獻
參見
外部連結
- 實時LPC分析與綜合學習軟件 (頁面存檔備份,存於互聯網檔案館)
- HawkVoice開源LPC軟件與API
- 使用線性預測編碼(LPC)的語音編碼DSP experts.com