線形予測符号
線形予測符号化(せんけいよそくふごうか、linear predictive coding, LPC)は線形予測法を用いた信号の符号化である。
特に音響信号処理・音声処理における音声分析・符号化・圧縮・合成で広く利用される。
線形予測符号化 (LPC) は線形予測法を用いた信号の符号化である。すなわち時点 t の信号 s_t を p 次の過去信号 s_{t-1} \sim s_{t-p} の線形結合を用いて予測し、信号を予測係数 a_i と予測残差 \varepsilon_t に符号化する手法である。
s_t = \varepsilon_t - \sum_{i=1}^p a_i s_{t-i}
区間 N の信号 (s_1 \sim s_N) が線形結合でよく表現できれば、区間中で不変な予測係数 p 個 (a_i \sim a_p) と振幅の小さい残差 N 個 (\varepsilon_1 \sim \varepsilon_N) へと信号を変換できる。残差系列に対して様々な圧縮を適用することで信号をより小さい情報量で伝達できる。この区間はしばしばフレームと呼ばれる。
例えば音声信号は数十ミリ秒の区間で定常性を持ち線形結合で良く表現できると経験的に知られている。残差系列の小振幅を生かしてエントロピー符号化をおこなえば高効率の可逆圧縮が実現でき、残差系列のパルス性を生かして量子化をおこなえば10倍スケールの非可逆圧縮が実現できる(例: CELP)。
LPCが効率の良い符号化を可能にしているメカニズムには様々な解釈が存在する。音響信号処理・音声処理ではヒトの音声生成モデルに基づいた解釈がなされる。その1つにソース・フィルタモデルがある。すなわち残差系列を声帯励起信号として、予測係数をフォルマント特性をもつ声道として解釈するモデルである。
線形予測(信号推定分野で)は、遅くとも Norbert Wiener が雑音に埋もれた信号を検出する最適フィルタと予測の数学理論を打ち立てた1940年代にまで遡れる。Claude Channon が信号符号化の一般理論を確立した直後の1955年には、C. Chapin Cutler, Bernard M. Oliver, Henry C. Harrison, Peter Elias らが信号の線形予測に関する論文2編を発表した。
線形予測の音声信号への適用は、1966年に電電公社の齋藤收三と板倉文忠と、1967年にベル電話研究所の Bishnu S. Atal と Manfred R. Schroeder および John Burg により独立になされた。板倉と齋藤は、最尤推定に基づく統計的手法を論じ、Atal と Schroeder は適応的線形予測を論じ、Burg は最大エントロピー原理を提案した。
1969年のアメリカ音響学会年次総会では、板倉と齋藤は部分自己相関法(PARCOR方式)、Glen Jacob Cullerはリアルタイム音声符号化、B.S. Atal はLPC音声符号化を発表した。1971年、Philco-Ford は16ビットLPCハードウェアを使ったリアルタイムLPCのデモンストレーションを行い、4台が売れたという。1970-1980年代は、LPC技術が Atal と Schroeder によって進められ、1978年には Atal と BBN の Vishwanath らは可変レートLPCアルゴリズムを開発した。同年、ベル研究所の Atal と Schroeder は、適応線形符号化(adaptive predictive coding)と呼ばれる人間の聴覚マスキング特性を利用したLPCコーデック(codec)を提案した。これは後に、オーディオ圧縮フォーマットMP3が1993年に紹介された中で用いられた知覚符号化技術の基礎となった。
LPCは VoIP (voice-over-IP) 技術の基盤でもある。1972年、ARPAの Bob Kahn、リンカーン研究所の Jim Forgie、BBNテクノロジーズの Dave Walden が音声信号のパケット化の開発を開始し、後のVoIPへと繋がっていった。1973年、リンカーン研究所の非公式記録によると、Ed Hofstetter が最初のリアルタイム2400bit/s LPC を実装した。1974年には、初の実時間双方向 3500bit/s LPC パケット音声通信が ARPANET 上で Culler-Harrison とリンカーン研究所間で達成された。1976年、ARPANET上で3500bit/sの Network Voice Protocol により、 Culler-Harrison、情報科学研究所、スタンフォード研究所、リンカーン研究所を結んで、初のLPC音声会議が行われた。
LPCの線形予測係数(LP coefficients)は数学的に等価な別の形式(例: ログ面積比、反射係数/PARCOR)で表現できる。
様々な係数表現が開発された背景にはノイズ耐性がある。LPCは符号化手法であり、生成された符号はしばしばノイズをもつ伝送路を伝達される(例: 電話)。ゆえに符号は伝送誤りに対して耐性がなければならない。しかし線形予測係数は誤りに弱いためごく小さな誤差でもスペクトル全体が歪み、悪くすると小さい誤差のために予測フィルタが不安定になることもある。ゆえにノイズ耐性に着目した係数表現が開発されてきた。
線スペクトル対 (line spectral pairs; LSP) 分解は、予測器の安定性が保証されていることと、係数の小さい変移によっておこるスペクトルの誤差は局所的であることなどから、特に好評である。
一般にLPCを利用と称していても、詳細にはLSPが用いられている方式も多い。携帯電話やスマートフォン、オーディオ符号化、テレビジョンのディジタル放送方式などで広く用いられている。LSP方式は、2014年にIEEEマイルストーンに選ばれた。
LPCは、音声の分析と再合成に広く使われていて、例えばGSMのような標準化がなされて、電話会社の音声圧縮の方式としても使われている。また、音声をディジタル化し暗号化して狭帯域伝送しても安全な無線通信にも使われ、初期の例として米国政府の Navajo I がある。
LPC合成は、歌い手の音声から推定された時変フィルタを楽器音で駆動してボコーダを構成することにも使われる。これは電子音楽ではポピュラーな方法である。ポール・ランスキー の有名なコンピュータ音楽 "notjustmoreidlechatter" は線形予測符号化を用いて制作された。1980年代に人気を呼んだ教育玩具 Speak & Spell は10次のLPCを使っていた。
LPC予測器は Shorten, MPEG-4 ALS, FLAC, SILK audio codec, および他にもロスなしオーディオコーデックにも使われている。
ヤマハのデジタルサンプル方式のシンセサイザーでは、波形をLPCアルゴリズムで圧縮してROMに格納している。FLAC音声コーデックでは、最大32次のLPC予測器を使っている。
LPCはバイオリンなどの弦楽器の音色分析としても関心を持たれている。
LPCはより大きな枠組みである予測符号化(predictive coding)の一種である。予測符号化とは「予測を利用した効率の良い符号化」の総称である。
予測符号化では予測器(predictor)が過去系列に基づいて現在の値を推定する。予測器が完全でない限り、実際値-推定値間には誤差/残差が発生する。逆にいえば、残差がわかれば正確な実際値がわかる。すなわち過去系列・推定器・残差が手元にあれば、算出された推定値に残差を足しこむことで実際値を復号できる。
符号化: e_t = x_t - predictor(x_{<t} | \theta)
復号: \hat{x}_t = predictor(\hat{x}_{<t} | \theta) + e_t
このように、予測により信号を残差へ符号化し、予測により残差を信号へ復号する方式が予測符号化である。変動量の大きい信号を予測符号化により小さい残差系列へ変換、この残差系列にさらなる符号化/圧縮をかけて伝達すれば効率の良い信号伝達が可能になる。
LPCは予測符号化のうち、サンプル間の関係を線形と仮定したもの、すなわち predictor(x_{<t} | \theta) = \sum_{k=1}^N \theta_k x_{t-k} としたものである。