線スペクトル対
線スペクトル対(せんスペクトルつい、line spectral pairs、LSP)、あるいは線スペクトル周波数(せんスペクトルしゅうはすう、line spectral frequencies、LSF)は、線形予測係数を表現するために用いられるもので、その優れた特性のため線形予測を用いる音声符号化方式の多くで使われている。
線スペクトル対の考え方は1975年に板倉文忠が発表した。
線スペクトル対は全世界の携帯電話での音声符号化に欠かせない基礎技術であり、その重要性のため2014年にIEEEマイルストーン賞に認定された。
携帯電話やVoIPなどで音声符号化を行う際、音声の特徴の1つである声道の周波数特性を線形予測フィルターの係数としてパラメータ化し、送信を行う。しかし線形予測フィルターの係数は量子化誤差に敏感で、誤差が大きいとフィルターが発振する問題がある。
線スペクトル対は線形予測係数と等価な周波数領域の係数で、線スペクトル対で表現されたフィルターは量子化誤差の影響が少なく、また線形予測係数と比較して時間方向の変化が滑らかで補間を行いやすい。そのため、音声符号化に用いた場合より少ない情報量で同等の音声品質が得られ、多くの音声符号化方式で用いられている。
声道を固定長で一定の直径を持つ音響管の並びとしてモデル化した時、線スペクトル対は声門を開いたときと閉じたときそれぞれでの共振周波数の組にあたるパラメータである。くちびる側は完全開放のため反射係数が-1と見なし、声門側は開いたときの反射係数を1、閉じたときの反射係数を-1とモデル化すると、両端でのエネルギー損失が無いため声道全体が無損失系となり、音響管の伝達関数は線スペクトル状になる。この線スペクトルの周波数のペアで線形予測係数を表現するため、線スペクトル対という名称で呼ばれる。
Z変換を使って表した線形予測多項式は次の式で表される。
A(z) = 1- \sum_{k=1}^p a_k z^{-k}
ここで実数の係数 a_k \, は線形予測係数である。
この式は以下の2つの式に分解できる。
\begin{cases}
P(z)=A(z)+ z^{-(p+1)}A(z^{-1})\\
Q(z)=A(z)- z^{-(p+1)}A(z^{-1})
\end{cases}
ここで P(z) は声門が完全に閉じたとき(反射係数 -1)に対応し、Q(z) は声門が完全に開いたとき(反射係数 1)に対応する。この式が LSP 多項式である。
線スペクトル対の値はこの多項式の根で表される。
元の多項式 A(z) は以下の式から容易に復元できる。
A(z)= \frac{1}{2} \left( P(z)+Q(z)\right)
多項式 A(z) の全ての根がz平面上の |z|=1 の単位円の内部にある時、P(z) = 0 の根と Q(z) = 0 の根はどちらもすべて単位円周上にあることが示せて、これを利用して根の実部cos ωと対応する線スペクトル対の各周波数 ωi を求める。
P(z) と Q(z) の根にそれぞれ対応するωは必ず交互に相手のものを間に挟むので,以下のように並べることができる。
0 < \omega_1 < \omega_2 < \omega_3 < \cdots < \omega_p < \pi
また、この条件は線スペクトル対を使った合成フィルターが安定であるための必要十分条件でもあることが示されている。
線形予測係数を線スペクトル対に変換するためには、P(z) = 0, Q(z) = 0 の根を求める必要がある。以下では単純化のために線形予測多項式 A(z) の次数が偶数 N の場合を考える。この時 LSP 多項式の P(z)、Q(z) は N+1 次の多項式になる。
LSP 多項式の P(z) と Q(z) はそれぞれ (1+ z^{-1} ) と (1- z^{-1} ) で割り切れる。残りの多項式は (z+ z^{-1} ) / 2 で割り切れ、単位円上では (z+ z^{-1} ) / 2= \cos \omega と表現できる。すなわち、P(z) と Q(z) は以下のように因数分解できる。
P(z) = \left( 1+ z^{-1} \right) \prod_{i=1,3, ..., N-1} \left( 1-2 \cos \omega_i z^{-1} + z^{-2} \right)
Q(z) = \left( 1- z^{-1} \right) \prod_{i=2,4, ..., N} \left( 1- 2 \cos \omega_i z^{-1} + z^{-2} \right)
この式の根を求めることで線スペクトル対 ωi が計算できる。
。
(1) 線形予測係数 a_i から P(z)、Q(z) の各係数を計算
P(z)、Q(z) の定義を用い以下の式で計算。多項式の係数を p_i , q_i とすると、
p_0 = p_{N+1} =1 \,
p_i = p_{N-i+1} = a_i + a_{N-i+1} \,
q_0 = - q_{N+1} = 1 \,
q_i = - q_{N-i+1} = a_i - a_{N-i+1} \,
(2) P(z)、Q(z) それぞれを (1+ z^{-1} )、(1- z^{-1} ) で割る
単位円上の根からの実根除去に相当。
この多項式の除算は係数の加減算により計算可能で、除算後の多項式の係数を p' , q' とすると、
p'_0 = 1 \,
p'_i = p_i - p'_{i-1} \,
q'_0 = 1 \,
q'_i = q_i + q'_{i-1} \,
(3) 除算後の多項式 P'(z)、Q'(z) を x=(z+ z^{-1} ) / 2 で置き換え
残った複素共役根の実軸への射影に相当。置き換え後の式はチェビシェフ多項式で表現できる。
P'(z)、Q'(z) は x に関する N/2 次の多項式になり、多項式の係数は p' , q' から機械的に計算できる。
(4) x を変数とする2つの方程式をニュートン・ラプソン法で解く
区間(-1, 1)内に根 x_i が交互に存在し、2つの方程式を交互に解くことで高速に求めることが可能。
(5) 求めた根から線スペクトル対 ωi を計算
求めた N 個の根 x_i から以下の式で ωi を求める。
\omega_i = \arccos( x_i ) \,
線スペクトル対を線形予測係数に変換する場合はより単純で、上記とは逆に、線スペクトル対 ωi から P(z)、Q(z) の各係数を計算し、
A(z)= \frac{1}{2} \left( P(z)+Q(z)\right)
を求めればよい。
P(z)、Q(z) の各係数は、( 1 - 2 \cos \omega_i z^{-1} + z^{-2} ) の形式の2次多項式の積を求め、さらに (1+ z^{-1} ) あるいは (1- z^{-1} ) を掛けた式の係数として機械的に計算できる。
P(z)、Q(z) の係数には対称性があるため、N/2 次の係数から以下の式で線形予測係数に変換できる。
\begin{array}{lcl}
a_i       & = & \frac{1}{2} \left( p_i + q_i \right)\\
a_{N-i+1} & = & \frac{1}{2} \left( p_i - q_i \right)
\end{array}
線スペクトル対にはいくつかの優れた特性がある。
量子化誤差の影響が少なく、少ないビット数(4 bit/parameter)に量子化してもフィルターの発振などの問題が起きにくい。
時間方向の変化が滑らかで補間を行いやすいため、パラメータの更新周期を減らすことができ、情報量の削減が可能である。
安定性の必要十分条件が分かっており、それを満たせば合成フィルターが安定であることが理論的に保証されている。
総合的に、少ない情報量で同等の音声品質が得られる。
これらの特性により、CELPに代表される多くの音声符号化方式で、線形予測係数の表現のために利用されている。