音声の分析・合成処理の基本 ―― 携帯電話やVoIPで使われている音声圧縮技術の仕組み
tag: 組み込み ディジタル・デザイン
技術解説 2010年8月27日
2.CELP方式の概要
携帯電話やVoIPで用いられる音声圧縮方式の多くは,CELPと呼ばれる分析合成方式に基づいています.ここでは標準符号化方式の一つであるCS-ACELP方式の概要について説明します.
CS-ACELP方式では,個人差のある声をできるだけ忠実に合成するため,図1で示しているような単純なパルス音源ではなく,データベースとして用意した複数の固定音源と,過去に用いた音源を適応的に変化させる適応音源の二つを組み合わせて音源を作成しています.また,音声の分析合成を10msの短時間フレームごとに実行することで,より忠実度を高めています.
●デコーダの構成
図6に,CS-ACELPで採用している音声合成部,すなわちデコーダの概略を示します.
図6 CS-ACELP の音声合成部 (デコーダ)
過去の入力音源を現在のピッチ周期に基づいて修正した適応音源と,データベースとしてあらかじめ用意している固定音源を用いる.
CS-ACELPでは2種類の音源を加算して用います.一つは過去の入力音源を現在のピッチ周期に基づいて修正した適応音源,もう一つはデータベースとしてあらかじめ用意している固定音源です.また,それぞれ個別にゲインを乗じて音源の振幅を調整しています.
デコーダを動作させるためには,
- 音声合成フィルタ用LPC係数
- ピッチ周期
- 固定音源
- ゲイン
の四つの情報が必要です.エンコーダでは,この四つの情報を入力音声から抽出して符号化します.
●エンコーダの構成
CS-ACELPのエンコーダは,図7に示すような流れで実行されます.
図7 CS-ACELP の音声分析部(エンコーダ)の概要
最初に,線形予測分析を行いLPC係数を得ます.ここで,LPC係数と1対1に対応し,LPC係数よりも粗い量子化に対してひずみが小さいLSPと呼ばれる量を導入します.
CS-ACELPでは,LPC係数をLSPに変換し,これを18ビットで表現します.次に,音声の自己相関関数を利用してピッチ周期を推定します.得られたピッチ周期を14ビットで表現します.さらにピッチ周期と過去の入力音源から適応音源を作成し,その振幅調整用のゲイン1を計算します.
ここまでで,音声再合成フィルタと適応音源が得られました.さらに原音声との近似誤差を小さくするため,もう一つの音源を用います.この音源はデータベースにあらかじめ用意されたものから選択するので,固定音源と呼ばれます.原音声と再合成音声との誤差が最小になるように選択された固定音源のインデックスを34ビットで表現します.
最後に,固定音源の振幅調整用のゲイン2を計算し,ゲイン1と合わせて量子化し,14ビットで表現します.
結果として,LSP,ピッチ周期,固定音源,ゲインをすべて合わせて80ビットの情報を10msごとに送信します.従って,全体のビット・レートは8kbpsと非常に小さくなります.
CS-ACELPのエンコーダやデコーダは,非常に煩雑になるため,詳細は省略します.G.729のドキュメントはITU-TのWebページから自由に閲覧できます.
参考・引用*文献
(1) 古井貞熙;ディジタル音声処理,東海大学出版社,1985年.
(2) イモン イキン(著),武部幹(訳);適応フィルタ入門,現代工学社,1987年.
かわむら・あらた
大阪大学大学院 基礎工学研究科 システム創成専攻 助教
おち・ひろし
九州工業大学大学院 情報工学研究院 電子情報工学研究系 教授