線形予測符号

出典: フリー百科事典『ウィキペディア(Wikipedia)』

出典: フリー百科事典『ウィキペディア(Wikipedia)』
検索に移動

線形予測符号(せんけいよそくふごう、: linear predictive coding, LPC)は、音響信号処理および音声処理で使われるツールであり、圧縮された音声のデジタル信号のスペクトル包絡を表すのに線形予測法を使う。最も強力な音声解析技法の1つであり、低ビットレートで高品位音声を符号化することができ、音声パラメータの非常に正確な予測を提供する。

概要[編集]

話声信号は管の端にあるブザーにより生成され(有声音)、そこに時折こすれる音や破裂する音が加わる(歯擦音破裂音)という仮定の下、LPC が考案された。このモデルは非常に粗雑ではあるが、実際の話声生成に極めて近いものである。声門がブザーのような音を生成し、その特性は強さ(大きさ)と周波数(高さ)で決まる。声道(咽喉と口)は管を形成し、フォルマントを生み出す共鳴や生成した音の倍音周波数帯で特徴付けられる。歯擦音や破裂音は舌や唇や咽喉の動きによって生み出される。

LPCではフォルマントを予測し、その効果を信号から除去し、残った部分の強さと周波数を予測することで話声信号を分析する。フォルマントを除去する過程を逆フィルタリングと呼び、残った信号を残余 (residue) と呼ぶ。

フォルマントやブザー音や残余の強さと周波数を表す値を記録したり他所に転送することができる。そして、それらの情報を元に逆の工程を経て話声信号を合成できる。ブザー音と残余のパラメータから元の信号を生成し、フォルマントのパラメータから(管を表す)フィルタを生成し、元の信号にフィルタを作用させることで話声を得る。

話声信号は時間と共に変化するので、このプロセスは短時間の信号のかたまりに対して行い、そのかたまりをフレームと呼ぶ。一般に1秒間を30フレームから50フレームに分けると、明瞭な音声が得られ圧縮率もよい。

歴史[編集]

スタンフォード大学の Robert M. Gray によると、LPC の先駆けとなったのは1966年、電電公社の斉藤収三と板倉文忠が行った、最尤法を使った自動音素識別法による音声符号化であった。1967年、John Burg が最大エントロピー原理を使った手法を提案。1969年のアメリカ音響学会年次総会で、板倉と斉藤は部分相関法(PARCOR方式)、Glen Jacob Cullerはリアルタイム音声符号化、B.S. Atal はLPC音声符号化を発表した。1971年、Philco-Ford は16ビットLPCハードウェアを使ったリアルタイムLPCのデモンストレーションを行い、4台が売れた。

1972年、ARPAロバート・カーンリンカーン研究所の Jim Forgie、BBNテクノロジーズの Dave Walden が音声信号のパケット化の開発を開始し、後のVoIPへと繋がっていった。1973年、リンカーン研究所の記録によると、Ed Hofstetter が最初のリアルタイム2400bit/s LPC を実装した。1974年、ARPANET上で初の双方向LPCパケット音声通信が実現した(Culler-Harrison とリンカーン研究所間)。1976年、LPCを使ったARPANET上の音声会議が行われた。プロトコルは Network Voice Protocol が使われ、3500bit/sで Culler-Harrison、情報科学研究所スタンフォード研究所、リンカーン研究所を結んで行われた。1978年、BBN の Vishwanath らが可変ビットレートLPCアルゴリズムを開発した。

LPC 係数表現[編集]

LPCはスペクトル包絡情報を転送するのによく使われるため、転送誤りに対して耐性がなければならない。フィルタ係数は誤りに弱いため、その直接的な転送(係数の定義は線形予測法を参照)は適当ではない。言い換えれば、ごく小さな誤りでもスペクトル全体がおかしくなり、最悪の場合、予測フィルタが不安定になる。

そのための表現方法として Log Area Ratio (LAR)、線スペクトル対 (LSP) 分解、レビンソン再帰などがある。中でもLSP分解がよく使われる。LSP分解は予測器の安定性を保証でき、誤りがあってもその影響が局所的である。

応用[編集]

LPCは、話声の分析と再合成に広く使われている。電話での音声圧縮にも使われており、例えばGSMで使われている。他にも、音声をデジタイズ暗号化するセキュアな無線通信にも使われ、初期の例として米国政府の Navajo I がある。

LPC合成はヴォコーダーで使われ、電子音楽によく使われている。ポール・ランスキーの notjustmoreidlechatter はLPCを使って制作された[1]。1980年代に人気を呼んだ教育玩具 Speak & Spell は10次のLPCを使っていた。

ヤマハのデジタルサンプル方式のシンセサイザーでは、波形をLPCアルゴリズムで圧縮してROMに格納している。

FLAC音声コーデックでは、最大32次のLPC予測器を使っている。

予測符号化[編集]

LPCはより大きな枠組みである予測符号化(predictive coding)の一種である。予測符号化とは「予測を利用した効率の良い符号化」の総称である[1][2]

予測符号化では予測器(predictor)が過去系列に基づいて現在の値を推定する。予測器が完全でない限り、実際値-推定値間には誤差/残差が発生する。逆にいえば、残差がわかれば正確な実際値がわかる。すなわち過去系列・推定器・残差が手元にあれば、算出された推定値に残差を足しこむことで実際値を復号できる[3]

変動量の大きい信号を予測符号化により小さい残差系列へ変換、この残差系列にさらなる符号化/圧縮をかけて伝達すれば効率の良い信号伝達が可能になる[4]

LPCは予測符号化のうち、サンプル間の関係を線形と仮定したもの、すなわち としたものである。

関連項目[編集]

脚注[編集]

[脚注の使い方]
  1. ^ "Predictive coding is a remarkably simple concept, where prediction is used to achieve efficient coding of signals" Bishnu S. Atal. (2006). The History of Linear Prediction.
  2. ^ "予測符号化とは,着目している画素(対象画素)と空間的・時間的に近い位置にある画素(参照画素)の値から,予測関数に従って対象画素の画素値を予測し,このときの予測値と実際の画素値との誤差(予測誤差)を符号化する手法の総称である." 宮田. (2013). 4 章 予測符号化. 電子情報通信学会『知識の森』.
  3. ^ "prediction error is added to the predicted value to recover the signal." Bishnu S. Atal. (2006). The History of Linear Prediction.
  4. ^ "予測関数が充分に正確であれば,予測誤差は 0 や 0 に近い値をとる可能性が高く,この誤差に対して変換,量子化及びエントロピー符号化を適用することで大幅な圧縮効率の向上が期待できる." 宮田. (2013). 4 章 予測符号化. 電子情報通信学会『知識の森』.

参考文献[編集]