(57)【要約】【課題】無声部や定常雑音部に対する音声品質を改善することができる音声符号化装置等を提供すること。【解決手段】可変型部分的代数符号帳／ランダム符号帳３６０１は、音源パルスで構成された音源ベクトルを生成する。拡散パタン生成器３６０３は、１種類の拡散パタンを加工して拡散パタンを生成する。パルス拡散器３６０２は、生成された拡散パタンにしたがって、生成された音源ベクトルのパルスを拡散する。誤差最小化器１７１２は、聴覚重み付け後の誤差信号のエネルギを最小とする前記音源ベクトルを決定する。拡散パタンの加工は１種類の拡散パタンの少なくとも１サンプル目の振幅値を変えることによって行われる。【選択図】図３６
2008165259.tif 000002
【特許請求の範囲】
【請求項１】
音源パルスで構成された音源ベクトルを生成する音源ベクトル生成手段と、拡散パタンを生成する拡散パタン生成手段と、前記生成された拡散パタンにしたがって前記生成された音源ベクトルのパルスを拡散するパルス拡散手段と、聴覚重み付け後の誤差信号のエネルギを最小とする前記音源ベクトルを決定する誤差最小化手段と、を具備する音声符号化装置であって、
前記拡散パタン生成手段は、１種類の拡散パタンを加工して拡散パタンを生成し、前記拡散パタンの加工は前記１種類の拡散パタンの少なくとも１サンプル目の振幅値を変えることによって行われる、音声符号化装置。
【請求項２】
前記拡散パタン生成手段は、１種類の拡散パタンの少なくとも１サンプル目の振幅に、別途算出された係数を乗算することにより前記拡散パタンの加工を行う、請求項１記載の音声符号化装置。
【請求項３】
音源パルスで構成された音源ベクトルを生成する音源ベクトル生成工程と、拡散パタンを生成する拡散パタン生成工程と、前記生成された拡散パタンにしたがって前記生成された音源ベクトルのパルスを拡散するパルス拡散工程と、聴覚重み付け後の誤差信号のエネルギを最小とする前記音源ベクトルを決定する誤差最小化工程と、を具備する音声符号化方法であって、
前記拡散パタン生成工程では、１種類の拡散パタンを加工して拡散パタンを生成し、前記拡散パタンの加工は前記１種類の拡散パタンの少なくとも１サンプル目の振幅値を変えることによって行われる、音声符号化方法。
【請求項４】
前記拡散パタン生成工程では、１種類の拡散パタンの少なくとも１サンプル目の振幅に、別途算出された係数を乗算することにより前記拡散パタンの加工を行う、請求項３記載の音声符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声信号を符号化して伝送する移動通信システムなどにおいて低ビットレートを実現する音声符号化装置および音声符号化方法、特に音声信号を声道情報と音源情報とに分離して表現するようなＣＥＬＰ（Code Excited Linear Prediction）型の音声符号化装置および音声符号化方法に関する。
【背景技術】
【０００２】
ディジタル移動通信や音声蓄積の分野においては、電波や記憶媒体の有効利用のために音声情報を圧縮し、高能率で符号化するための音声符号化装置が用いられている。中でもＣＥＬＰ（Code Excited Linear Prediction：符号励振線形予測符号化）方式をベースにした方式が中・低ビットレートにおいて広く実用化されている。ＣＥＬＰの技術については、非特許文献１に示されている。
【０００３】
ＣＥＬＰ型音声符号化方式は、音声をある一定のフレーム長（５ｍｓ〜５０ｍｓ程度）に区切り、各フレーム毎に音声の線形予測を行い、フレーム毎の線形予測による予測残差（励振信号）を、既知の波形からなる適応符号ベクトルと雑音符号ベクトルを用いて符号化するものである。適応符号ベクトルは、過去に生成した駆動音源ベクトルを格納している適応符号帳から選択されて使用され、雑音符号ベクトルは、予め用意された定められた数の定められた形状を有するベクトルを格納している雑音符号帳から選択されて使用される。雑音符号帳に格納される雑音符号ベクトルには、ランダムな雑音系列のベクトルや何本かのパルスを異なる位置に配置することによって生成されるベクトルなどが用いられる。
【０００４】
数本のパルスを異なる位置に配置するタイプの雑音符号帳の代表的なものの一つに代数符号帳がある。代数符号帳については「ＩＴＵ−Ｔ勧告Ｇ．７２９」などに具体的内容が示されている。
【０００５】
代数符号帳を用いた雑音符号ベクトル生成器の従来例を図４０を参照して以下に具体的に説明する。
【０００６】
図４０は、代数符号帳を用いた雑音符号ベクトル生成器の基本的なブロック図である。図において、第１のパルス発生器１，第２のパルス発生器２から発生されたパルスを加算器３で加算して、２本のパルスを異なる位置に立てることによって雑音符号ベクトルを生成している。代数符号帳の具体例を図４１及び図４２に示す。図４１は、８０サンプルの中に２本のパルスを立てる一例、図４２は８０サンプルの中に３本のパルスを立てる一例、をそれぞれ示している。なお、図４１及び図４２において、表の下部に記載されている数はパルス位置の組み合わせの数である。
【非特許文献１】M.R.Schroeder and B.S.Atal："Code-Excited Linear Prediction (CELP)：High-quality Speech at Very Low Bit Rates"，Proc．ICASSP-85, 25.1.1, pp.937-940, 1985"
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の代数符号帳を用いた雑音符号ベクトル生成器においては、各音源パルスの探索位置が独立しており、ある音源パルスと別の音源パルスとの相対的位置関係を利用することはない。このため、様々な形状の雑音符号ベクトルを生成することが可能である一方、十分なパルス位置を表現するために多くのビット数が必要となり、生成されるべき雑音符号ベクトルの形状に偏りが見られる場合には、必ずしも効率的な符号帳ではないという問題がある。また、代数符号帳に必要なビット数を減らすために、音源パルス数を減らす手法が考えられるが、この場合は音源パルスが少ないために無声部や定常雑音部での主観的品質が大きく劣化するという問題がある。
【０００８】
本発明はかかる点に鑑みてなされたものであり、拡散パタンを用いて音源ベクトルを拡散させるため、雑音符号帳のサイズを削減することができるとともに、無声部や定常雑音部に対する音声品質を改善することができる音声符号化装置及び音声符号化方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の音声符号化装置は、音源パルスで構成された音源ベクトルを生成する音源ベクトル生成手段と、拡散パタンを生成する拡散パタン生成手段と、前記生成された拡散パタンにしたがって前記生成された音源ベクトルのパルスを拡散するパルス拡散手段と、聴覚重み付け後の誤差信号のエネルギを最小とする前記音源ベクトルを決定する誤差最小化手段と、を具備する音声符号化装置であって、前記拡散パタン生成手段は、１種類の拡散パタンを加工して拡散パタンを生成し、前記拡散パタンの加工は前記１種類の拡散パタンの少なくとも１サンプル目の振幅値を変えることによって行われる、構成を採る。
【００１０】
本発明の音声符号化方法は、音源パルスで構成された音源ベクトルを生成する音源ベクトル生成工程と、拡散パタンを生成する拡散パタン生成工程と、前記生成された拡散パタンにしたがって前記生成された音源ベクトルのパルスを拡散するパルス拡散工程と、聴覚重み付け後の誤差信号のエネルギを最小とする前記音源ベクトルを決定する誤差最小化工程と、を具備する音声符号化方法であって、前記拡散パタン生成工程では、１種類の拡散パタンを加工して拡散パタンを生成し、前記拡散パタンの加工は前記１種類の拡散パタンの少なくとも１サンプル目の振幅値を変えることによって行われる、方法を採る。
【発明の効果】
【００１１】
本発明によれば、拡散パタンを用いて音源ベクトルを拡散させるため、雑音符号帳のサイズを削減することができるとともに、無声部や定常雑音部に対する音声品質を改善することができる。
【発明を実施するための最良の形態】
【００１２】
本発明の骨子は、部分的代数符号帳を用いて雑音符号ベクトルを生成することにより、すなわち代数符号帳から生成される複数の音源パルスのうち、少なくとも２本は近接するような組合わせのみを生成する雑音符号ベクトルを用いることにより、代数符号帳サイズを効率的に削減する。また、無声音声や定常雑音信号に対応したランダム符号帳を部分的代数符号帳と併用することにより、すなわち無声部や定常雑音部に有効な音源ベクトルを格納することによって、無声部や定常雑音部に対する主観的品質を改善する。さらに、モード判定結果によって、部分的代数符号帳サイズと、併用するランダム符号帳のサイズとの比率を切換えることにより、モード判定誤り時の品質劣化を抑えつつ、無声音声や背景雑音に対する符号化性能を改善して主観的品質を改善する。
【００１３】
ここで、近接するパルスとは、あるパルスからの距離が１．２５ｍｓ以下、すなわち８ｋＨｚサンプリングのディジタル信号において、１０サンプル程度以下であるパルスのことをいう。
【００１４】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
【００１５】
（実施の形態１）
図１は、本発明に係る音声符号化及び／又は復号化装置を備えた音声信号送信機及び／又は受信機を示すブロック図である。
【００１６】
図１に示す音声信号送信機では、音声信号１０１が音声入力装置１０２によって電気的アナログ信号に変換され、Ａ／Ｄ変換器１０３に出力される。アナログ音声信号は、Ａ／Ｄ変換器１０３によってディジタル音声信号に変換され、音声符号化装置１０４に出力される。音声符号化装置１０４は、音声符号化処理を行い、符号化した情報をＲＦ変調装置１０５に出力する。ＲＦ変調装置１０５においては、符号化された音声信号に対して、変調・増幅・符号拡散などの電波として送出するための処理を行い、符号化された音声信号を送信アンテナ１０６に出力する。最後に送信アンテナ１０６から電波（ＲＦ信号）が送出される。
【００１７】
一方、受信機においては、電波（ＲＦ信号）を受信アンテナ１０７で受信する。受信信号は、ＲＦ復調装置１０８に送られる。ＲＦ復調器１０８は、符号逆拡散・復調など電波信号を符号化情報に変換するための処理を行い、符号化情報を音声復号化装置１０９に出力する。音声復号化装置１０９は、符号化情報の復号処理を行ってディジタル復号音声信号をＤ／Ａ変換器１１０へ出力する。Ｄ／Ａ変換器１１０は、音声復号化装置１０９から出力されたディジタル復号音声信号をアナログ復号音声信号に変換して音声出力装置１１１に出力する。最後に音声出力装置１１１が電気的アナログ復号音声信号を復号音声に変換して出力する。
【００１８】
次に、上記構成を有する音声信号送信機及び／又は受信機における雑音符号ベクトル生成器について説明する。図２は、実施の形態１に係る雑音符号ベクトル生成器を備えた音声符号化装置を示すブロック図である。同図に示す音声符号化装置は、前処理器２０１、ＬＰＣ分析器２０２、ＬＰＣ量子化器２０３、適応符号帳２０４、乗算器２０５、部分的代数符号帳２０６、乗算器２０７、加算器２０８、ＬＰＣ合成フィルタ２０９、加算器２１０、聴覚重みづけ器２１１、誤差最小化器２１２を備える。
【００１９】
この雑音符号ベクトル生成器においては、入力音声データは、音声信号をＡ／Ｄ変換して得られるディジタル信号であり、処理単位時間（フレーム）毎に前処理器２０１に入力される。前処理器２０１は、入力音声データを主観的に高品質化したり符号化に適した状態の信号に変換するための処理を行うもので、例えば直流成分をカットするためのハイパスフィルタ処理や音声信号の特徴を強調するようなプリエンファシス処理などを行う。
【００２０】
前処理後の信号は、ＬＰＣ分析器２０２と加算器２１０とに出力される。ＬＰＣ分析器２０２は、前処理器２０１から入力した信号を用いてＬＰＣ分析（線形予測分析）を行い、得られたＬＰＣ（線形予測係数）をＬＰＣ量子化器２０３に出力する。ＬＰＣ量子化器２０３は、ＬＰＣ分析器２０２から入力したＬＰＣの量子化を行い、量子化ＬＰＣをＬＰＣ合成フィルタ２０９へ出力し、量子化ＬＰＣの符号化データを伝送路を通じて復号器側へ出力する。
【００２１】
適応符号帳２０４は、過去に生成した励振ベクトル（加算器２０８から出力されるベクトル）のバッファであり、誤差最小化器２１２によって指定された位置から適応符号ベクトルを切り出して乗算器２０５へ出力する。乗算器２０５は適応符号帳２０４から出力された適応符号ベクトルに適応符号ベクトル利得を乗じて加算器２０８へ出力する。適応符号ベクトル利得は、誤差最小化器によって指定される。部分的代数符号帳２０６は、後述する図４や図１０又はこれに類する構成を有する符号帳であり、少なくとも２本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトルを乗算器２０７へ出力する。
【００２２】
乗算器２０７は、部分的代数符号帳２０６から出力された雑音符号ベクトルに雑音符号ベクトル利得を乗じて加算器２０８へ出力する。加算器２０８は、乗算器２０５から出力された適応符号ベクトル利得乗算後の適応符号ベクトルと乗算器２０７から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳２０４とＬＰＣ合成フィルタ２０９とに出力する。
【００２３】
適応符号帳２０４へ出力された励振ベクトルは、適応符号帳２０４を更新する場合に用いられ、ＬＰＣ合成フィルタ２０９に出力された励振ベクトルは、合成音声を生成するために用いられる。ＬＰＣ合成フィルタ２０９は、ＬＰＣ量子化器２０３から出力された量子化ＬＰＣを用いて構成される線形予測フィルタであって、加算器２０８から出力された励振ベクトルを用いてＬＰＣ合成フィルタを駆動し、合成信号を加算器２１０に出力する。
【００２４】
加算器２１０は、前処理器２０１から出力された前処理後の入力音声信号とＬＰＣ合成フィルタ２０９から出力された合成信号との差分（誤差）信号を計算し、聴覚重みづけ器２１１に出力する。聴覚重みづけ器２１１は、加算器２１０から出力される差分信号を入力として、聴覚的な重みづけを行い、誤差最小化器２１２へ出力する。誤差最小化器２１２は、聴覚重みづけ器２１１から出力された聴覚重みづけ後の差分信号を入力として、例えばその２乗和が最小となるように適応符号帳２０４から適応符号ベクトルを切り出す位置と、部分的代数符号帳２０６から生成する雑音符号ベクトルと、乗算器２０５で乗じる適応符号ベクトル利得と、乗算器２０７で乗じる雑音符号ベクトル利得との値を調整し、各々を符号化し音源パラメータ符号化データとして伝送路を通じて復号器側に出力する。
【００２５】
図３は、実施の形態１に係る雑音符号ベクトル生成器を備えた音声復号化装置を示すブロック図である。同図に示す音声復号化装置は、ＬＰＣ復号器３０１、音源パラメータ復号器３０２、適応符号帳３０３、乗算器３０４、部分的代数符号帳３０５、乗算器３０６、加算器３０７、ＬＰＣ合成フィルタ３０８、後処理器３０９を備える。
【００２６】
伝送路を通じてＬＰＣ符号化データと音源パラメータ符号化データがフレーム単位でＬＰＣ復号器３０１と音源パラメータ復号器３０２とにそれぞれ入力される。ＬＰＣ復号器３０１は、量子化ＬＰＣを復号してＬＰＣ合成フィルタ３０８に出力する。後処理器３０９で量子化ＬＰＣを使用する場合は、後処理器３０９にも同時に出力される。音源パラメータ復号器３０２は、適応符号ベクトルを切り出す位置情報と、適応符号ベクトル利得と、雑音符号ベクトルを指定するインデックス情報と、雑音符号ベクトル利得とを、適応符号帳３０３と、乗算器３０４と、部分的代数符号帳３０５と、乗算器３０６とにそれぞれ出力する。
【００２７】
適応符号帳３０３は、過去に生成した励振ベクトル（加算器３０７から出力されるベクトル）のバッファであり、音源パラメータ復号器３０２から入力した切り出し位置から適応符号ベクトルを切り出して乗算器３０４に出力する。乗算器３０４は、適応符号帳３０３から出力された適応符号ベクトルに、音源パラメータ復号器３０２から入力した適応符号ベクトル利得を乗じて加算器３０７へ出力する。
【００２８】
部分的代数符号帳３０５は、後述する図４や図１０又はこれに類する構成を有する図２の２０６に示したものと同一の部分的代数符号帳であり、音源パラメータ復号器３０４から入力したインデックスで指定される少なくとも２本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトルを乗算器３０６へ出力する。
【００２９】
乗算器３０６は、部分的代数符号帳から出力された雑音符号ベクトルに、音源パラメータ復号器３０２から入力される雑音符号ベクトル利得を乗じて、加算器３０７へ出力する。加算器３０７は、乗算器３０６から出力される適応符号ベクトル利得乗算後の適応符号ベクトルと、乗算器３０６から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳３０３とＬＰＣ合成フィルタ３０８とに出力する。
【００３０】
適応符号帳３０３へ出力された励振ベクトルは、適応符号帳３０３を更新する場合に用いられ、ＬＰＣ合成フィルタ３０８に出力された励振ベクトルは、合成音声を生成するために用いられる。ＬＰＣ合成フィルタ３０８は、ＬＰＣ復号器３０１から出力された量子化ＬＰＣを用いて構成される線形予測フィルタであって、加算器３０７から出力された励振ベクトルを用いてＬＰＣ合成フィルタを駆動し、合成信号を後処理器３０９に出力する。
【００３１】
後処理器３０９は、ＬＰＣ合成フィルタ３０８から出力される合成音声に対して、ホルマント強調処理やピッチ強調処理やスペクトル傾斜補正処理などから成るポストフィルタ処理や定常的な背景雑音を聞きやすくするための処理など主観的品質を改善するための処理を行い、復号音声データとして出力する。
【００３２】
次に、本発明に係る雑音符号ベクトル生成器について詳細に説明する。図４は、本発明の実施の形態１に係る雑音符号ベクトル生成装置の構成を示すブロック図である。
【００３３】
第１のパルス発生器４０１は、例えば図５（ａ）のパルス番号１の欄に示されるような予め定められた位置候補の一つに第１のパルスを立て、加算器４０４に出力する。また同時に、第１のパルス発生器４０１は、第１のパルスを立てた位置情報をパルス位置限定器４０２に出力する。パルス位置限定器４０２は、第１のパルス発生器４０１から第１のパルス位置を入力し、その位置を基準にして第２のパルスの位置候補を決定する。
【００３４】
第２のパルスの位置候補は、例えば図５（ａ）のパルス番号２の欄に示されるように第１のパルスの位置（＝Ｐ１）からの相対表現で表される。パルス位置限定器４０２は、第２のパルスの位置候補を第２のパルス発生器４０３へ出力する。第２のパルス発生器４０３は、パルス位置限定器４０２から入力された第２のパルスの位置候補の一つに第２のパルスを立て、加算器４０４に出力する。
【００３５】
加算器４０４は、第１のパルス発生器４０１から出力された第１のパルスと第２のパルス発生器４０３から出力された第２のパルスとを入力して２本のパルスから成る第１の雑音符号ベクトルを切換えスイッチ４０９に出力する。
【００３６】
一方、第２のパルス発生器４０７は、例えば図５（ｂ）のパルス番号２の欄に示されるような予め定められた位置候補の一つに第２のパルスを立て、加算器４０８に出力する。また同時に、第２のパルス発生器４０７は、第２のパルスを立てた位置情報をパルス位置限定器４０６に出力する。パルス位置限定器４０６は、第２のパルス発生器４０７から第２のパルス位置を入力し、その位置を基準にして第１のパルスの位置候補を決定する。
【００３７】
第１のパルスの位置候補は、例えば図５（ｂ）のパルス番号１の欄に示されるように第２のパルスの位置（＝Ｐ２）からの相対表現で表される。パルス位置限定器４０６は、第１のパルスの位置候補を第１のパルス発生器４０５へ出力する。第１のパルス発生器４０５は、パルス位置限定器４０６から入力された第１のパルスの位置候補の一つに第１のパルスを立て、加算器４０８に出力する。
【００３８】
加算器４０８は、第１のパルス発生器４０５から出力された第１のパルスと第２のパルス発生器４０７から出力された第２のパルスとを入力して２本のパルスから成る第２の雑音符号ベクトルを切換えスイッチ４０９に出力する。
【００３９】
切換えスイッチ４０９は、加算器４０４から出力される第１の雑音符号ベクトルと、加算器４０８から出力される第２の雑音符号ベクトルのどちらか一方を選択して最終的な雑音符号ベクトル４１０として出力する。この選択は外部からの制御によって指定される。
【００４０】
なお、２本のパルスのうち一方を上記のように絶対位置で表し、他方を上記のように相対位置で表現した場合、絶対位置で表されるパルスがフレーム末尾付近にある場合に相対位置で表現されるパルスがフレーム外にはみ出す場合がある。このため、実際の探索アルゴリズムにおいては、はみ出す組合わせが生じる部分のみ別パターンとし、図５に示すように３種類の探索位置パターン（ａ〜ｃ）に分けて探索することが考えられる。図５はフレーム長を８０サンプル（０〜７９）とし、１フレームの中に２本のパルスを立てる場合の一例を示す。図５に示した符号帳からは、図４０に示す従来の代数符号帳から生成できる雑音符号ベクトルの総エントリの一部のみを生成できる。この意味で、図５に示すような本発明の代数符号帳を部分的代数符号帳と呼ぶこととする。
【００４１】
以下に図６〜図８を参照して図５の符号帳を用いた上記実施の形態における雑音符号ベクトル生成方法（符号化方法、雑音符号帳探索方法）の処理の流れについて説明する。図６では、パルスの極性（＋、−）は別途符号化されること想定してパルスの位置のみを符号化する場合について具体的に示している。
【００４２】
まず、ステップ（以下、ＳＴと省略する）６０１において、ループ変数ｉ、誤差関数最大値Ｍａｘ、インデックスｉｄｘ、出力インデックスｉｎｄｅｘ、第１のパルス位置ｐｏｓｉｔｉｏｎ１、第２のパルス位置ｐｏｓｉｔｉｏｎ２の初期化が行われる。
【００４３】
ここで、ループ変数ｉは、絶対位置で表現されるパルスのループ変数として使われ、初期値は０である。誤差関数最大値Ｍａｘは、表現可能な最小値（例えば「−１０＾３２」）に初期化され、探索ループで計算される誤差評価関数の最大化を行うために用いられる。インデックスｉｄｘは、本雑音符号ベクトル生成方法によって生成されるコードベクトルの各々に付与されるインデックスで、初期値は０であり、パルスの位置を一つ変えるたびにインクリメントされる。ｉｎｄｅｘは、最終的に出力される雑音符号ベクトルのインデックス、ｐｏｓｉｔｉｏｎ１は、最終的に決定される第１のパルスの位置、ｐｏｓｉｔｉｏｎ２は、最終的に決定される第２のパルスの位置である。
【００４４】
次に、ＳＴ６０２において、第１のパルス位置（ｐ１）をｐｏｓ１ａ［ｊ］にセットする。ｐｏｓ１ａ［  ］は、図５（ａ）のパルス番号１の欄に示される位置（０、２、・・、７２）である。ここでは、第１のパルスが絶対位置で表現されるパルスである。
【００４５】
次に、ＳＴプ６０３においてループ変数ｊの初期化が行われる。ループ変数ｊは相対位置で表現されるパルスのループ変数で、初期値は０である。ここでは、第２のパルスが相対位置で表現される。
【００４６】
次に、ＳＴ６０４において、第２のパルス位置（ｐ２）をｐ１＋ｐｏｓ２ａ［ｊ］にセットする。ｐ１は既にＳＴ６０２においてセットされている第１のパルス位置であり、ｐｏｓ２ａ［４］＝｛１、３、５、７｝である。ｐｏｓ２ａ［  ］の要素数を減らすことにより部分的代数符号帳のサイズ（雑音符号ベクトルの総エントリ数）を減らすことができる。この場合、減らした数に応じて図５（ｃ）の内容を変更する必要がある。また、増やす場合も同様である。
【００４７】
次に、ＳＴ６０５において、セットされた２本のパルス位置にパルスを立てた場合の誤差評価関数Ｅの計算を行う。誤差評価関数は、ターゲットとなるベクトルと雑音符号ベクトルから合成されるベクトルとの誤差を評価するためのもので、例えば下記式（１）が用いられる。なお、ＣＥＬＰ符号化器で一般的によく用いられるように、適応符号ベクトルに対して雑音符号ベクトルを直交化する場合には式（１）を変形した式を用いることになる。式（１）の値が最大になるときにターゲットとしているベクトルと雑音符号ベクトルで合成フィルタを駆動して得られる合成ベクトルとの誤差が最小となる。
【数１】
2008165259.tif 000003
【００４８】
次に、ＳＴ６０６において、誤差評価関数Ｅの値が誤差評価関数最大値Ｍａｘを越えているかどうかの判定を行う。Ｅ値が最大値Ｍａｘを越えていれば、ＳＴ６０７に進み、越えていなければＳＴ６０７をスキップしてＳＴ６０８に進む。
【００４９】
ＳＴ６０７では、ｉｎｄｅｘとＭａｘとｐｏｓｉｔｉｏｎ１とｐｏｓｉｔｉｏｎ２の更新が行われる。即ち、誤差評価関数最大値ＭａｘをＳＴ６０５にて計算された誤差評価関数Ｅに更新し、ｉｎｄｅｘをｉｄｘに更新し、ｐｏｓｉｔｉｏｎ１を第１のパルスの位置ｐ１に更新し、ｐｏｓｉｔｉｏｎ２を第２のパルスの位置ｐ２に更新する。
【００５０】
次に、ＳＴ６０８において、ループ変数ｊとインデックス番号ｉｄｘをそれぞれインクリメントする。ループ変数ｊをインクリメントすることによって第２のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。
【００５１】
次に、ＳＴ６０９において、ループ変数ｊが第２のパルスの位置候補の総数ＮＵＭ２ａ未満かどうかのチェックを行う。図５に示す部分的代数符号帳では、ＮＵＭ２ａ＝４である。ループ変数ｊがＮＵＭ２ａ未満の場合はｊのループを繰り返すためにＳＴ６０４に戻る。ループ変数ｊがＮＵＭ２ａに達していれば、ｊのループは終了しＳＴ６１０に進む。
【００５２】
ＳＴ６１０では、ループ変数ｉのインクリメントが行われる。ループ変数ｉをインクリメントすることによって第１のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。
【００５３】
次に、ＳＴ６１１において、ループ変数ｉが第１のパルスの位置候補の総数ＮＵＭ１ａ未満かどうかのチェックを行う。図５に示す部分的代数符号帳では、ＮＵＭ１ａ＝３７である。ループ変数ｉがＮＵＭ１ａ未満の場合はｉのループを繰り返すためにＳＴ６０２に戻る。ループ変数ｉがＮＵＭ１ａに達していれば、ｉのループは終了し、図７のＳＴ７０１に進む。ＳＴ６１２に進んだ時点で図５（ａ）の探索は終了し、図５（ｂ）の探索ループが開始される。
【００５４】
次に、ＳＴ７０１では、ループ変数ｉがクリアされて０になる。ＳＴ７０２において、第２のパルス位置（ｐ２）をｐｏｓ２ｂ［ｉ］にセットする。ｐｏｓ２ｂ［  ］は図５（ｂ）のパルス番号２の欄に示される位置（１、３、・・、６１）である。ここでは第２のパルスが絶対位置で表現されるパルスである。
【００５５】
次に、ＳＴ７０３においてループ変数ｊの初期化が行われる。ループ変数ｊは相対位置で表現されるパルスのループ変数で、初期値は０である。ここでは、第１のパルスが相対位置で表現される。
【００５６】
次に、ＳＴ７０４において第１のパルス位置（ｐ１）をｐ２＋ｐｏｓ１ｂ［ｊ］にセットする。ｐ２は既にＳＴ７０２においてセットされている第２のパルス位置、ｐｏｓ１ｂ［４］＝｛１、３、５、７｝である。ｐｏｓ１ｂ［  ］の要素数を減らすことにより部分的代数符号帳のサイズ（雑音符号ベクトルの総エントリ数）を減らすことができる。この場合、減らした数に応じて図５（ｃ）の内容を変更する必要がある。また、ｐｏｓ１ｂ［  ］の要素数を増やす場合も同様である。
【００５７】
次に、ＳＴ７０５において、セットされた２本のパルス位置にパルスを立てた場合の誤差評価関数Ｅの計算を行う。誤差評価関数は、ターゲットとなるベクトルと雑音符号ベクトルから合成されるベクトルとの誤差を評価するためのもので、例えば式（１）に示されるような式が用いられる。なお、ＣＥＬＰ符号化器で一般的によく用いられるように、適応符号ベクトルに対して雑音符号ベクトルを直交化する場合には式（１）を変形した式を用いることになる。式（１）の値が最大になるときにターゲットとしているベクトルと雑音符号ベクトルで合成フィルタを駆動して得られる合成ベクトルとの誤差が最小となる。
【００５８】
次に、ＳＴ７０６において、誤差評価関数Ｅの値が誤差評価関数最大値Ｍａｘを越えているかどうかの判定を行う。Ｅ値が最大値Ｍａｘを越えていればＳＴ７０７に進み、越えていなければＳＴ７０７をスキップしてＳＴ７０８に進む。
【００５９】
ＳＴ７０７では、ｉｎｄｅｘとＭａｘとｐｏｓｉｔｉｏｎ１とｐｏｓｉｔｉｏｎ２の更新が行われる。即ち、誤差評価関数最大値ＭａｘをＳＴ７０５にて計算された誤差評価関数Ｅに更新し、ｉｎｄｅｘをｉｄｘに更新し、ｐｏｓｉｔｉｏｎ1を第１のパルスの位置ｐ１に更新し、ｐｏｓｉｔｉｏｎ２を第２のパルスの位置ｐ２に更新する。
【００６０】
次に、ＳＴ７０８において、ループ変数ｊとインデックス番号ｉｄｘをそれぞれインクリメントする。ループ変数ｊをインクリメントすることによって第１のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。
【００６１】
次に、ＳＴ７０９において、ループ変数ｊが第１のパルスの位置候補の総数ＮＵＭ１ｂ未満かどうかのチェックを行う。図５に示す部分的代数符号帳では、ＮＵＭ１ｂ＝４である。ループ変数ｊがＮＵＭ１ｂ未満の場合は、ｊのループを繰り返すためにＳＴ７０４に戻る。ループ変数ｊがＮＵＭ１ｂに達していれば、ｊのループは終了しＳＴ７１０に進む。
【００６２】
ＳＴ７０１では、ループ変数ｉのインクリメントが行われる。ループ変数ｉをインクリメントすることによって第２のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。
【００６３】
次に、ＳＴ７１１において、ループ変数ｉが第２のパルスの位置候補の総数ＮＵＭ２ｂ未満かどうかのチェックを行う。図５に示す部分的代数符号帳では、ＮＵＭ２ｂ＝３６である。ループ変数ｉがＮＵＭ２ｂ未満の場合は、ｉのループを繰り返すためにＳＴ７０２に戻る。ループ変数ｉがＮＵＭ２ｂに達していれば、ｉのループは終了し、図８のＳＴ８０１に進む。ＳＴ８０１に進んだ時点で図５（ｂ）の探索は終了し、図５（ｃ）の探索ループが開始される。
【００６４】
ＳＴ８０１では、ループ変数ｉがクリアされて０になる。次に、ＳＴ８０２において第１のパルス位置（ｐ１）をｐｏｓ１ｃ［ｉ］にセットする。ｐｏｓ１ｃ［  ］は図５（ｃ）のパルス番号１の欄に示される位置（７４、７６、７８）である。ここでは第１第２双方のパルスが絶対位置で表現される。
【００６５】
次に、ＳＴ８０３においてループ変数ｊの初期化が行われる。ループ変数ｊは第２のパルスのループ変数で、初期値は０である。
【００６６】
次に、ＳＴ８０４において、第２のパルス位置（ｐ２）をｐｏｓ２ｃ［ｊ］にセットする。ｐｏｓ２ｃ［  ］は図５（ｃ）のパルス番号２の欄に示される位置｛７３、７５、７７、７９｝である。
【００６７】
次に、ＳＴ８０５において、セットされた２本のパルス位置にパルスを立てた場合の誤差関数Ｅの計算を行う。誤差関数は、ターゲットとなるベクトルと雑音符号ベクトルから合成されるベクトルとの誤差を評価するためのもので、例えば式（１）に示されるような式が用いられる。なお、ＣＥＬＰ符号化器で一般的によく用いられるように、適応符号ベクトルに対して雑音符号ベクトルを直交化する場合には、式（１）を変形した式を用いることになる。式（１）の値が最大になるときにターゲットとしているベクトルと雑音符号ベクトルで合成フィルタを駆動して得られる合成ベクトルとの誤差が最小となる。
【００６８】
次に、ＳＴ８０６において、誤差評価関数Ｅの値が誤差評価関数最大値Ｍａｘを越えているかどうかの判定を行う。越えていればＳＴ８０７に進み、越えていなければＳＴ８０７をスキップしてＳＴ８０８に進む。ＳＴ８０７では、ｉｎｄｅｘとＭａｘとｐｏｓｉｔｉｏｎ１とｐｏｓｉｔｉｏｎ２の更新が行われる。即ち、誤差評価関数最大値ＭａｘをＳＴ８０５にて計算された誤差評価関数Ｅに更新し、ｉｎｄｅｘをｉｄｘに更新し、ｐｏｓｉｔｉｏｎ1を第１のパルスの位置ｐ１に更新し、ｐｏｓｉｔｉｏｎ２を第２のパルスの位置ｐ２に更新する。
【００６９】
次に、ＳＴ８０８において、ループ変数ｊとインデックス番号ｉｄｘをそれぞれインクリメントする。ループ変数ｊをインクリメントすることによって第２のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。
【００７０】
次に、ＳＴ８０９において、ループ変数ｊが第２のパルスの位置候補の総数ＮＵＭ２ｃ未満かどうかのチェックを行う。図５に示す部分的代数符号帳では、ＮＵＭ２ｃ＝４である。ループ変数ｊがＮＵＭ２ｃ未満の場合はｊのループを繰り返すためにＳＴ８０４に戻る。ループ変数ｊがＮＵＭ２ｃに達していれば、ｊのループは終了しＳＴ８１０に進む。
【００７１】
ＳＴ８１０では、ループ変数ｉのインクリメントが行われる。ループ変数ｉをインクリメントすることによって第１のパルスの位置を動かし、次のインデックス番号の雑音符号ベクトルを評価することになる。
【００７２】
次に、ＳＴ８１１において、ループ変数ｉが第１のパルスの位置候補の総数ＮＵＭ１ｃ未満かどうかのチェックを行う。図５に示した部分的代数符号帳では、ＮＵＭ１ｃ＝３である。ループ変数ｉがＮＵＭ１ｃ未満の場合はｉのループを繰り返すためにＳＴ８０２に戻る。ループ変数ｉがＮＵＭ１ｃに達していれば、ｉのループは終了しＳＴ８１２に進む。ＳＴ８１２に進んだ時点で図５（ｃ）の探索は終了し、全ての探索が終了する。
【００７３】
最後に、ＳＴ８１２において、探索結果であるｉｎｄｅｘが出力される。ｉｎｄｅｘに対応する２本のパルス位置ｐｏｓｉｔｉｏｎ１とｐｏｓｉｔｉｏｎ２は出力する必要はないが、局部復号用に使用することができる。なお、各パルスの極性（＋か−か）は、式（１）におけるベクトルｘＨと合わせることにより（式（１）におけるｘＨとｃの相関が正のときのみを考えることにより）、予め決定しておくことが可能であるので、上記実施の形態では省略している。
【００７４】
以下に図９を参照して図５の符号帳を用いた上記実施の形態における雑音符号ベクトル生成方法（復号化方法）の処理の流れを説明する。図９では、パルスの極性（＋、−）は別途復号化されること想定してパルスの位置のみを復号化する場合について具体的に示している。
【００７５】
まず、ＳＴ９０１において、符号器から受け取った雑音符号ベクトルのインデックスｉｎｄｅｘがＩＤＸ１未満かどうかをチェックする。ＩＤＸ１は図５の符号帳における（ａ）の部分の符号帳サイズで、図６のＳＴ６０１における時点でのｉｄｘの値である。より具体的にはＩＤＸ１＝３２×４＝１２８である。ｉｎｄｅｘがＩＤＸ１未満であれば、２本のパルス位置は図５（ａ）で表現される部分であるので、ＳＴ６０２に進む。ｉｎｄｅｘがＩＤＸ１以上である場合は、図５（ｂ）又は（ｃ）の部分になるのでさらにチェックを行うため、ＳＴ９０５に進む。
【００７６】
ＳＴ９０２では、ｉｎｄｅｘをＮｕｍ２ａで割った商ｉｄｘ１を求める。ｉｄｘ１は第１のパルスのインデックス番号となる。ＳＴ９０２においてｉｎｔ（）は（  ）内の整数部を求める関数である。
【００７７】
次に、ＳＴ９０３において、ｉｎｄｅｘをＮｕｍ２ａで割った余りｉｄｘ２を求める。ｉｄｘ２は第２のパルスのインデックス番号となる。
【００７８】
次に、ＳＴ９０４において、ＳＴ９０２で求められたｉｄｘ１を用いた第１のパルスの位置ｐｏｓｉｔｉｏｎ１を、ＳＴ９０３で求められたｉｄｘ２を用いて第２のパルスの位置ｐｏｓｉｔｉｏｎ２を、それぞれ図５（ａ）の符号帳を用いて決定する。決定されたｐｏｓｉｔｉｏｎ１とｐｏｓｉｔｉｏｎ２はＳＴ９１４で用いられる。
【００７９】
ＳＴ９０１でｉｎｄｅｘがＩＤＸ１以上である場合は、ＳＴ９０５に進む。ＳＴ９０５では、ｉｎｄｅｘがＩＤＸ２未満かどうかをチェックする。ＩＤＸ２は図５の符号帳における（ａ）の部分と（ｂ）の部分を合わせた符号帳サイズで、図６のＳＴ８０１における時点でのｉｄｘの値である。より具体的にはＩＤＸ２＝３２×４＋３１×４＝２５２である。ｉｎｄｅｘがＩＤＸ２未満であれば、２本のパルス位置は図５（ｂ）で表現される部分であるので、ＳＴ９０６に進む。ｉｎｄｅｘがＩＤＸ２以上である場合は、図５（ｃ）で表現される部分であるので、ＳＴ９１０に進む。
【００８０】
ＳＴ９０６では、ｉｎｄｅｘからＩＤＸ１を減じて、ＳＴ９０７に進む。ＳＴ９０７では、ＩＤＸ１減算後のｉｎｄｅｘをＮｕｍ１ｂで割った商ｉｄｘ２を求める。このｉｄｘ２は第２のパルスのインデックス番号となる。ＳＴ９０７においてｉｎｔ（  ）は（  ）内の整数部を求める関数である。
【００８１】
次に、ＳＴ９０８において、ＩＤＸ１減算後のｉｎｄｅｘをＮｕｍ１ｂで割った余りｉｄｘ１を求める。このｉｄｘ１は第１のパルスのインデックス番号となる。
【００８２】
次に、ＳＴ９０９において、ＳＴ９０７で求められたｉｄｘ２を用いた第２のパルスの位置ｐｏｓｉｔｉｏｎ２を、ＳＴ９０８で求められたｉｄｘ１を用いて第１のパルスの位置ｐｏｓｉｔｉｏｎ１を、それぞれ図５（ｂ）の符号帳を用いて決定する。決定されたｐｏｓｉｔｉｏｎ１とｐｏｓｉｔｉｏｎ２はＳＴ９１４で用いられる。
【００８３】
ＳＴ９０５でｉｎｄｅｘがＩＤＸ２以上である場合は、ＳＴ９１０に進む。ＳＴ９１０では、ｉｎｄｅｘからＩＤＸ２を減じて、ＳＴ９１１に進む。ＳＴ９１１では、ＩＤＸ２減算後のｉｎｄｅｘをＮｕｍ２ｃで割った商ｉｄｘ１を求める。このｉｄｘ１は第１のパルスのインデックス番号となる。ＳＴ９１１においてｉｎｔ（  ）は（  ）内の整数部を求める関数である。
【００８４】
次に、ＳＴ９１２において、ＩＤＸ２減算後のｉｎｄｅｘをＮｕｍ２ｃで割った余りｉｄｘ２を求める。このｉｄｘ２は第２のパルスのインデックス番号となる。
【００８５】
次に、ＳＴ９１３において、ＳＴ９１１で求められたｉｄｘ１を用いた第１のパルスの位置ｐｏｓｉｔｉｏｎ１を、ＳＴ９１２で求められたｉｄｘ２を用いて第２のパルスの位置ｐｏｓｉｔｉｏｎ２を、それぞれ図５（ｃ）の符号帳を用いて決定する。決定されたｐｏｓｉｔｉｏｎ１とｐｏｓｉｔｉｏｎ２はＳＴ９１４で用いられる。
【００８６】
ＳＴ９１４では、第１のパルスの位置ｐｏｓｉｔｉｏｎ１と第２のパルスの位置ｐｏｓｉｔｉｏｎ２とを用いて雑音符号ベクトルｃｏｄｅ［  ］を生成する。即ち、ｃｏｄｅ［ｐｏｓｉｔｉｏｎ１］とｃｏｄｅ［ｐｏｓｉｔｉｏｎ２］以外は０であるベクトルを生成する。ｃｏｄｅ「ｐｏｓｉｔｉｏｎ１」とｃｏｄｅ「ｐｏｓｉｔｉｏｎ２」は別途復号されている極性ｓｉｇｎ１とｓｉｇｎ２によって＋１又は１となる（ｓｉｇｎ１及びｓｉｇｎ２は＋１又は１の値をとる）。ｃｏｄｅ［  ］が復号される雑音符号ベクトルである。
【００８７】
次に、パルス数が３本である部分的代数符号帳の構成例を図１０に示す。
【００８８】
図１０における構成例は、３本のうち少なくとも２本は近接した位置に配置されるようにパルス探索位置を限定する構成を採る。この構成に対応する符号帳を図１１に示す。
【００８９】
図１０を用いて以下に説明を加える。第１のパルス発生器１００１は、例えば図１１（ａ）のパルス番号１の欄に示されるような予め定められた位置候補の一つに第１のパルスを立て、加算器１００５に出力する。また同時に、第１のパルス発生器１００１は、第１のパルスを立てた位置情報をパルス位置限定器１００２に出力する。パルス位置限定器１００２は、第１のパルス発生器１００１から第１のパルスの位置情報を入力し、その位置を基準にして第２のパルスの位置候補を決定する。第２のパルスの位置候補は例えば図１１（ａ）のパルス番号２の欄に示されるように第１のパルスの位置（＝Ｐ１）からの相対表現で表される。
【００９０】
パルス位置限定器１００２は、第２のパルス位置の候補を第２のパルス発生器１００３へ出力する。第２のパルス発生器１００３は、パルス位置限定器１００２から入力された第２のパルスの位置候補の一つに第２のパルスを立て、加算器１００５へ出力する。第３のパルス発生器１００４は、例えば図１１（ａ）のパルス番号３の欄に示されるような予め定められた位置候補の一つに第３のパルスを立て、加算器１００５に出力する。加算器１００５は、１００１、１００３、１００４の各パルス発生器から出力された合計３つのインパルスベクトルのベクトル加算を行い、３本のパルスから成る雑音符号ベクトルを切換スイッチ１０３１に出力する。
【００９１】
第１のパルス発生器１００６は、例えば図１１（ｄ）のパルス番号１の欄に示されるような予め定められた位置候補の一つに第１のパルスを立て、加算器１０１０に出力する。また同時に、第１のパルス発生器１００６は、第１のパルスを立てた位置情報をパルス位置限定器１００７に出力する。パルス位置限定器１００７は、第１のパルス発生器１００６から第１のパルスの位置情報を入力し、その位置を基準として第３のパルスの位置候補を決定する。第３のパルスの位置候補は例えば図１１（ｄ）のパルス番号３の欄に示されるように第１のパルスの位置（＝Ｐ１）からの相対表現で表される。
【００９２】
パルス位置限定器１００７は、第３のパルス位置の候補を第３のパルス発生器１００８へ出力する。第３のパルス発生器１００８は、パルス位置限定器１００７から入力された第３のパルスの位置候補の一つに第３のパルスを立て、加算器１０１０へ出力する。第２のパルス発生器１００９は、例えば図１１（ｄ）のパルス番号２の欄に示されるような予め定められた位置候補の一つに第２のパルスを立て、加算器１０１０に出力する。加算器１０１０は、１００６、１００８、１００９の各パルス発生器から出力された合計３つのインパルスベクトルのベクトル加算を行い、３本のパルスから成る雑音符号ベクトルを切換スイッチ１０３１に出力する。
【００９３】
第３のパルス発生器１０１１は、例えば図１１（ｂ）のパルス番号３の欄に示されるような予め定められた位置候補の一つに第３のパルスを立て、加算器１０１５に出力する。第２のパルス発生器１０１２は、例えば図１１（ｂ）のパルス番号２の欄に示されるような予め定められた位置候補の一つに第２のパルスを立て、加算器１０１５に出力する。また同時に、第２のパルス発生器１０１２は、第２のパルスを立てた位置をパルス位置限定器１０１３に出力する。パルス位置限定器１０１３は、第２のパルス発生器１０１２から第２のパルスの位置を入力し、その位置を基準として第１のパルスの位置候補を決定する。第１のパルスの位置候補は例えば図１１（ｂ）のパルス番号１の欄に示されるように第２のパルスの位置（＝Ｐ２）からの相対表現で表される。
【００９４】
パルス位置限定器１０１３は、第１のパルスの位置候補を第１のパルス発生器１０１４へ出力する。第１のパルス発生器１０１４は、パルス位置限定器１０１３から入力された第１のパルスの位置候補の一つに第１のパルスを立て、加算器１０１５へ出力する。加算器１０１５は、１０１１、１０１２、１０１４の各パルス発生器から出力された合計３つのインパルスベクトルのベクトル加算を行い、３本のパルスから成る雑音符号ベクトルを切換えスイッチ１０３１に出力する。
【００９５】
第１のパルス発生器１０１６は、例えば図１１（ｇ）のパルス番号１の欄に示されるような予め定められた位置候補の一つに第１のパルスを立て、加算器１０２０に出力する。第２のパルス発生器１０１７は、例えば図１１（ｇ）のパルス番号２の欄に示されるような予め定められた位置候補の一つに第２のパルスを立て、加算器１０２０に出力する。また同時に、第２のパルス発生器１０１７は、第２のパルスを立てた位置をパルス位置限定器１０１８に出力する。パルス位置限定器１０１８は、第２のパルス発生器１０１７から第２のパルスの位置を入力し、その位置を基準として第３のパルスの位置候補を決定する。第３のパルスの位置候補は例えば図１１（ｇ）のパルス番号３の欄に示されるように第２のパルスの位置（＝Ｐ２）からの相対表現で表される。
【００９６】
パルス位置限定器１０１８は、第３のパルスの位置候補を第３のパルス発生器１０１９へ出力する。第３のパルス発生器１０１９は、パルス位置限定器１０１８から入力された第３のパルスの位置候補の一つに第３のパルスを立て、加算器１０２０へ出力する。加算器１０２０は、１０１６、１０１７、１０１９の各パルス発生器から出力された合計３つのインパルスベクトルのベクトル加算を行い、３本のパルスから成る雑音符号ベクトルを切換スイッチ１０３１に出力する。
【００９７】
第２のパルス発生器１０２１は、例えば図１１（ｅ）のパルス番号２の欄に示されるような予め定められた位置候補の一つに第２のパルスを立て、加算器１０２５に出力する。第３のパルス発生器１０２４は、例えば図１１（ｅ）のパルス番号３の欄に示されるような予め定められた位置候補の一つに第３のパルスを立て、加算器１０２５に出力する。また同時に、第３のパルス発生器１０２４は、第３のパルスを立てた位置をパルス位置限定器１０２３に出力する。パルス位置限定器１０２３は、第３のパルス発生器１０２４から第３のパルスの位置を入力し、その位置を基準として第１のパルスの位置候補を決定する。第１のパルスの位置候補は例えば図１１（ｅ）のパルス番号１の欄に示されるように第３のパルスの位置（＝Ｐ３）からの相対表現で表される。
【００９８】
パルス位置限定器１０２３は、第１のパルスの位置候補を第１のパルス発生器１０２２へ出力する。第１のパルス発生器１０２２は、パルス位置限定器１０２３から入力された第１のパルスの位置候補の一つに第１のパルスを立て、加算器１０２５へ出力する。加算器１０２５は、１０２１、１０２２、１０２４の各パルス発生器から出力された合計３つのインパルスベクトルのベクトル加算を行い、３本のパルスから成る雑音符号ベクトルを切換スイッチ１０３１に出力する。
【００９９】
第１のパルス発生器１０２６は、例えば図１１（ｈ）のパルス番号１の欄に示されるような予め定められた位置候補の一つに第１のパルスを立て、加算器１０３０に出力する。第３のパルス発生器１０２９は、例えば図１１（ｈ）のパルス番号３の欄に示されるような予め定められた位置候補の一つに第３のパルスを立て、加算器１０３０に出力する。また同時に、第３のパルス発生器１０２９は、第３のパルスを立てた位置をパルス位置限定器１０２８に出力する。パルス位置限定器１０２８は、第３のパルス発生器１０２９から第３のパルスの位置を入力し、その位置を基準として第２のパルスの位置候補を決定する。第２のパルスの位置候補は、例えば図１１（ｈ）のパルス番号２の欄に示されるように第３のパルスの位置（＝Ｐ３）からの相対表現で表される。
【０１００】
パルス位置限定器１０２８は、第２のパルスの位置候補を第２のパルス発生器１０２７へ出力する。第２のパルス発生器１０２７は、パルス位置限定器１０２８から入力された第２のパルスの位置候補の一つに第２のパルスを立て、加算器１０３０へ出力する。加算器１０３０は、１０２６、１０２７、１０２９の各パルス発生器から出力された合計３つのインパルスベクトルのベクトル加算を行い、３本のパルスから成る雑音符号ベクトルを切換スイッチ１０３１に出力する。
【０１０１】
切換スイッチ１０３１は、１００５、１０１０、１０１５、１０２０、１０２５、１０３０の各加算器から入力される、合計６種類の雑音符号ベクトルの中から１つを選び、雑音符号ベクトル１０３２を出力する。この選択は外部からの制御によって指定される。
【０１０２】
なお、図５及び図１１においては、相対位置で表現されるパルスがフレームからはみ出す場合を想定して、図５（ｃ）や図１１（ｃ）（ｆ）（ｉ）を設けているが、絶対位置で表現されるパルスの位置候補の範囲がフレームの前方に偏っているために相対位置で表現されるパルスがフレームからはみ出すことが有り得ない場合には、これらの部分（図５（ｃ）など）は省略可能である。
【０１０３】
（実施の形態２）
図１２は、実施の形態２に係る雑音符号ベクトル生成器を備えた音声符号化装置を示すブロック図である。同図に示す音声符号化装置は、前処理器１２０１、ＬＰＣ分析器１２０２、ＬＰＣ量子化器１２０３、適応符号帳１２０４、乗算器１２０５、部分的代数符号帳とランダム符号帳とから成る雑音符号帳１２０６、乗算器１２０７、加算器１２０８、ＬＰＣ合成フィルタ１２０９、加算器１２１０、聴覚重みづけ器１２１１、誤差最小化器１２１２を備える。
【０１０４】
この音声符号化装置において、入力音声データは、音声信号をＡ／Ｄ変換して得られるディジタル信号であり、処理単位時間（フレーム）毎に前処理器１２０１に入力される。前処理器１２０１は、入力音声データを主観的に高品質化したり符号化に適した状態の信号に変換するための処理を行うもので、例えば直流成分をカットするためのハイパスフィルタ処理や音声信号の特徴を強調するようなプリエンファシス処理などを行う。
【０１０５】
前処理後の信号は、ＬＰＣ分析器１２０２と加算器１２１０とに出力される。ＬＰＣ分析器１２０２は、前処理器１２０１から入力した信号を用いてＬＰＣ分析（線形予測分析）を行い、得られたＬＰＣ（線形予測係数）をＬＰＣ量子化器１２０３に出力する。ＬＰＣ量子化器１２０３は、ＬＰＣ分析器１２０２から入力したＬＰＣの量子化を行い、量子化ＬＰＣをＬＰＣ合成フィルタ１２０９へ出力し、量子化ＬＰＣの符号化データを伝送路を通じて復号器側へ出力する。
【０１０６】
適応符号帳１２０４は、過去に生成した励振ベクトル（加算器１２０８から出力されるベクトル）のバッファであり、誤差最小化器１２１２によって指定された位置から適応符号ベクトルを切り出して乗算器１２０５へ出力する。乗算器１２０５は、適応符号帳１２０４から出力された適応符号ベクトルに適応符号ベクトル利得を乗じて加算器１２０８へ出力する。適応符号ベクトル利得は、誤差最小化器によって指定される。
【０１０７】
部分的代数符号帳とランダム符号帳から成る雑音符号帳１２０６は、後述する図１４に示す構成を有した符号帳であり、少なくとも２本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトル又はスパース率（フレーム全体のサンプル数に対する振幅ゼロのサンプル数の割合）９０％程度以下の雑音符号ベクトルのいずれかを乗算器１２０７へ出力する。
【０１０８】
乗算器１２０７は、部分的代数符号帳とランダム符号帳とから成る雑音符号帳１２０６から出力された雑音符号ベクトルに雑音符号ベクトル利得を乗じて加算器１２０８へ出力する。加算器１２０８は、乗算器１２０５から出力された適応符号ベクトル利得乗算後の適応符号ベクトルと乗算器１２０７から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳１２０４とＬＰＣ合成フィルタ１２０９とに出力する。
【０１０９】
適応符号帳１２０４へ出力された励振ベクトルは、適応符号帳１２０４を更新するのに用いられ、ＬＰＣ合成フィルタ１２０９に出力された励振ベクトルは合成音声を生成するために用いられる。ＬＰＣ合成フィルタ１２０９は、ＬＰＣ量子化器１２０３から出力された量子化ＬＰＣを用いて構成される線形予測フィルタであって、加算器１２０８から出力された励振ベクトルを用いてＬＰＣ合成フィルタを駆動し、合成信号を加算器１２１０に出力する。加算器１２１０は、前処理器１２０１から出力された前処理後の入力音声信号とＬＰＣ合成フィルタ１２０９から出力された合成信号との差分（誤差）信号を計算し、聴覚重みづけ器１２１１に出力する。
【０１１０】
聴覚重みづけ器１２１１は、加算器１２１０から出力される差分信号を入力として、聴覚的な重みづけを行い、誤差最小化器１２１２へ出力する。誤差最小化器１２１２は、聴覚重みづけ器１２１１から出力された聴覚重みづけ後の差分信号を入力として、例えばその２乗和が最小となるように適応符号帳１２０４から適応符号ベクトルを切り出す位置と部分的代数符号帳とランダム符号帳とから成る雑音符号帳１２０６から生成する雑音符号ベクトルと乗算器１２０５で乗じる適応符号ベクトル利得と乗算器１２０７で乗じる雑音符号ベクトル利得との値を調整し、各々を符号化し音源パラメータ符号化データ１２１４として伝送路を通じて復号器側に出力する。
【０１１１】
図１３は、実施の形態２にかかる雑音符号ベクトル生成器を備えた音声復号化装置を示すブロック図である。同図に示す音声復号化装置は、ＬＰＣ復号器１３０１、音源パラメータ復号器１３０２、適応符号帳１３０３、乗算器１３０４、部分的代数符号帳とランダム符号帳とから成る雑音符号帳１３０５、乗算器１３０６、加算器１３０７、ＬＰＣ合成フィルタ１３０８、後処理器１３０９を備える。
【０１１２】
この音声復号化装置において、伝送路を通じてＬＰＣ符号化データと音源パラメータ符号化データがフレーム単位でＬＰＣ復号器１３０１と音源パラメータ復号器１３０２とにそれぞれ入力される。ＬＰＣ復号器１３０１は、量子化ＬＰＣを復号してＬＰＣ合成フィルタ１３０８に出力する。後処理器１３０９で量子化ＬＰＣを使用する場合は、後処理器１３０９にも同時に量子化ＬＰＣがＬＰＣ復号器１３０１から出力される。音源パラメータ復号器１３０２は、適応符号ベクトルを切り出す位置情報と、適応符号ベクトル利得と、雑音符号ベクトルを指定するインデックス情報と、雑音符号ベクトル利得とを、適応符号帳１３０３と、乗算器１３０４と、部分的代数符号帳とランダム符号帳とから成る雑音符号帳１３０５と、乗算器１３０６とにそれぞれ出力する。
【０１１３】
適応符号帳１３０３は、過去に生成した励振ベクトル（加算器１３０７から出力されるベクトル）のバッファであり、音源パラメータ復号器１３０２から入力した切り出し位置から適応符号ベクトルを切り出して乗算器１３０４に出力する。乗算器１３０４は、適応符号帳１３０３から出力された適応符号ベクトルに、音源パラメータ復号器１３０２から入力した適応符号ベクトル利得を乗じて加算器１３０７へ出力する。
【０１１４】
部分的代数符号帳とランダム符号帳とから成る雑音符号帳１３０５は、図１４に示す構成を有した雑音符号帳であり、図１２の１２０６に示したものと同一の雑音符号帳であり、音源パラメータ復号器１３０２から入力したインデックスで指定される少なくとも２本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトル又はスパース率９０％程度以下の雑音符号ベクトルのいずれかを乗算器１３０６へ出力する。
【０１１５】
乗算器１３０６は、部分的代数符号帳から出力された雑音符号ベクトルに、音源パラメータ復号器１３０２から入力される雑音符号ベクトル利得を乗じて、加算器１３０６へ出力する。加算器１３０７は、乗算器１３０４から出力される適応符号ベクトル利得乗算後の適応符号ベクトルと、乗算器１３０６から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳１３０３とＬＰＣ合成フィルタ１３０８とに出力する。
【０１１６】
適応符号帳１３０３へ出力された励振ベクトルは、適応符号帳１３０３を更新する場合に用いられ、ＬＰＣ合成フィルタ１３０８に出力された励振ベクトルは、合成音声を生成するために用いられる。ＬＰＣ合成フィルタ１３０８は、ＬＰＣ復号器１３０１から出力された量子化ＬＰＣを用いて構成される線形予測フィルタであって、加算器１３０７から出力された励振ベクトルを用いてＬＰＣ合成フィルタを駆動し、合成信号を後処理器１３０９に出力する。
【０１１７】
後処理器１３０９は、ＬＰＣ合成フィルタ１３０８から出力される合成音声に対して、ホルマント強調処理やピッチ強調処理やスペクトル傾斜補正処理などから成るポストフィルタ処理や定常的な背景雑音を聞きやすくするための処理など主観的品質を改善するための処理を行い、復号音声データとして出力する。
【０１１８】
図１４に本発明の実施の形態２にかかる雑音符号ベクトル生成装置の構成を示す。同図に示す雑音符号ベクトル生成装置は、実施の形態１に示した部分的代数符号帳１４０１とランダム符号帳１４０２を備える。
【０１１９】
部分的代数符号帳１４０１は、２本以上の単位パルスから構成される少なくとも２本のパルスが近接している雑音符号ベクトルを生成し、切換えスイッチ１４０３に出力する。部分的代数符号帳１４０１の雑音符号ベクトルの生成方法は実施の形態１に具体的に示されている。
【０１２０】
ランダム符号帳１４０２は、部分的代数符号帳１４０１から生成される雑音符号ベクトルよりも多いパルス本数から成る雑音符号ベクトルを格納しており、格納している雑音符号ベクトルの中から一つのベクトルを選んで切換スイッチ１４０３に出力する。
【０１２１】
ランダム符号帳１４０２は、複数のチャンネルから構成する方が単独の符号帳を用いるよりも演算量、メモリ量の面で有利である。また、２本のパルスが接近しているような雑音符号ベクトルは部分的代数符号帳１４０１によって生成できるため、全てのパルスが接近していないようなフレーム全体に均などにパルスが立っている雑音符号ベクトルをランダム符号帳１４０２に格納することによって、無声子音や定常雑音に対する性能を改善することができる。
【０１２２】
また、ランダム符号帳１４０１が格納する雑音符号ベクトルのパルス本数は、フレーム長が８０サンプルの場合で、演算量を少なくするためには、８〜１６本程度にすることが好ましい。この場合、ランダム符号帳１４０１を２チャンネル構成にすると、各チャンネル４〜８本程度のパルスから成るベクトルを格納すれば良い。また、この様なスパースベクトルにおいて各パルスの振幅を＋１か−１にすることにより、さらに演算量、メモリ量の節約を図ることも可能である。
【０１２３】
切換スイッチ１４０３は、外部からの制御によって（例えば本雑音符号ベクトルを符号化器に用いる場合はターゲットとの誤差最小化を行うブロックから制御を受け、復号化器に用いる場合は復号した雑音符号ベクトルのインデックスによって制御される）部分的代数符号帳１４０１から出力された雑音符号ベクトルとランダム符号帳１４０２から出力された雑音符号ベクトルとのどちらかを選択して、雑音符号ベクトル生成器の出力雑音符号ベクトル１４０４として出力する。
【０１２４】
ここで、ランダム符号帳１４０２から出力される雑音符号ベクトルと、部分的代数符号帳１４０１から出力される雑音符号ベクトルの割合（ランダム：代数）は、１：１〜２：１、すなわちランダム５０〜６６％、代数３４〜５０％であることが望ましい。
【０１２５】
以下に図１５を参照して上記実施の形態における雑音符号ベクトル生成方法（符号化方法、雑音符号帳探索方法）の処理の流れについて説明する。まず、ＳＴ１５０１において部分的代数符号帳の探索を行う。具体的な探索方法の詳細については実施の形態１に示されるように、式（１）の最大化を行うことによって実現される。部分的代数的符号帳のサイズはＩＤＸａであり、本ステップでは、部分的代数符号帳の中からの最適候補のインデックスｉｎｄｅｘ（０≦ｉｎｄｅｘ＜ＩＤＸａ）が決定される。
【０１２６】
次に、ＳＴ１５０２においてランダム符号帳の探索を行う。ランダム符号帳の探索はＣＥＬＰ符号化器で一般に行われてる方法を用いて行う。具体的には、式（１）に示される評価式をランダム符号帳に格納されている全ての雑音符号ベクトルに対して計算し、最大となるベクトルに対するインデックスｉｎｄｅｘを決定する。ただし、既にＳＴ１５０１において、式（１）の最大化が行われているので、ＳＴ１５０１で決定された式（１）の最大値を上回る雑音符号ベクトルが存在する場合のみ、ＳＴ１５０１で決定されたｉｎｄｅｘを新たなインデックスｉｎｄｅｘ（ＩＤＸａ≦ｉｎｄｅｘ＜（ＩＤＸａ＋ＩＤＸｒ））に更新する。ＳＴ１５０１で決定された式（１）の最大値を上回る雑音符号ベクトルがランダム符号帳に格納されていない場合は、ＳＴ１５０１で決定された符号化データ（インデックスｉｎｄｅｘ）を雑音符号ベクトルの符号化情報として出力する。
【０１２７】
以下に図１６を参照して上記実施の形態における雑音符号ベクトル生成方法（復号化方法）の処理の流れを説明する。
【０１２８】
まずＳＴ１６０１において、符号器から伝送され復号された雑音符号ベクトルの符号化情報ｉｎｄｅｘがＩＤＸａ未満かどうかを判定する。ＩＤＸａは部分的雑音符号帳のサイズである。本雑音符号ベクトル生成器は、サイズＩＤＸａの部分的代数符号帳とサイズＩＤＸｒのランダム符号帳とから成る雑音符号帳から雑音符号ベクトルを生成しており、本雑音符号帳はインデックスが０〜（ＩＤＸａ−１）に部分的代数符号帳を、ＩＤＸａ〜（ＩＤＸａ＋ＩＤＸｒ−１）にランダム符号帳を備えている。したがって、受け取ったｉｎｄｅｘがＩＤＸａ未満であれば部分的代数符号帳によって雑音符号ベクトルが生成され、ＩＤＸａ以上（（ＩＤＸａ＋ＩＤＸｒ）未満）であればランダム符号帳によって雑音符号ベクトルが生成されることになる。本ステップでｉｎｄｅｘがＩＤＸａ未満であれば、ＳＴ１６０２に進み、ＩＤＸａ以上であればＳＴ１６０４に進む。
【０１２９】
ＳＴ１６０２では、部分的代数符号帳パラメータの復号が行われる。具体的な復号方法は、実施の形態１に示されている。例えばパルスが２本の場合はインデックスｉｎｄｅｘから第１のパルスの位置ｐｏｓｉｔｉｏｎ１と第２のパルスの位置ｐｏｓｉｔｉｏｎ２とが復号される。また、パルスの極性情報もｉｎｄｅｘに含まれる場合は、第１のパルスの極性ｓｉｇｎ１と第２のパルスの極性ｓｉｇｎ２も併せて復号される。ここでｓｉｇｎ１及びｓｉｇｎ２は＋１か−1である。
【０１３０】
次にＳＴ１６０３において、復号した部分的代数符号帳パラメータから雑音符号ベクトルが生成される。具体的には、例えばパルスが２本の場合はｐｏｓｉｔｉｏｎ１の位置に極性がｓｉｇｎ１で振幅が１のパルスを立て、ｐｏｓｉｔｉｏｎ２の位置に極性がｓｉｇｎ２で振幅が１のパルスを立て、それ以外の点は全て０としたベクトルcode［０〜Ｎｕｍ−１］を雑音符号ベクトルとして出力する。ここで、Ｎｕｍはフレーム長又は雑音符号ベクトル長（サンプル）である。
【０１３１】
一方、ＳＴ１６０１において、ｉｎｄｅｘがＩＤＸａ以上であった場合は、ＳＴ１６０４に進む。ＳＴ１６０４において、ｉｎｄｅｘからＩＤＸａを減じる。これは単にｉｎｄｅｘを０〜ＩＤＸｒ−１の範囲に変換するためである。ここでＩＤＸｒはランダム符号帳のサイズである。
【０１３２】
次にＳＴ１６０５において、ランダム符号帳パラメータの復号が行われる。具体的には、例えば２チャンネル構成のランダム符号帳の場合第１チャンネルのランダム符号帳インデックスｉｎｄｅｘＲ１と第２チャンネルのランダム符号帳インデックスｉｎｄｅｘＲ２をｉｎｄｅｘから復号する。また、ｉｎｄｅｘに各チャンネルの極性情報が含まれる場合は第１チャンネルの極性ｓｉｇｎ１と第２チャンネルの極性ｓｉｇｎ２も併せて復号される。ｓｉｇｎ１及びｓｉｇｎ２は＋１又は１である。
【０１３３】
次にＳＴ１６０６において、復号したランダム符号帳パラメータから雑音符号ベクトルが生成される。具体的には、例えばランダム符号帳が２チャンネル構成の場合は第１チャンネルＲＣＢ１からＲＣＢ１［ｉｎｄｅｘＲ１］［０〜Ｎｕｍ−１］を、第２チャンネルＲＣＢ２からＲＣＢ２［ｉｎｄｅｘＲ２］［０〜Ｎｕｍ−１］をそれぞれ取り出し、２つのベクトルを加算したものを雑音符号ベクトルｃｏｄｅ［０〜Ｎｕｍ−１］として出力する。ここで、Ｎｕｍはフレーム長又は雑音符号ベクトル長（サンプル）である。
【０１３４】
（実施の形態３）
図１７は、実施の形態３に係る雑音符号ベクトル生成器を備えた音声符号化装置を示したブロック図である。同図に示す音声符号化装置は、前処理器１７０１、ＬＰＣ分析器１７０２、ＬＰＣ量子化器１７０３、適応符号帳１７０４、乗算器１７０５、部分的代数符号帳とランダム符号帳とから成る雑音符号帳１７０６、乗算器１７０７、加算器１７０８、ＬＰＣ合成フィルタ１７０９、加算器１７１０、聴覚重みづけ器１７１１、誤差最小化器１７１２、モード判定器１７１３を備える。
【０１３５】
この音声符号化装置においては、入力音声データは、音声信号をＡ／Ｄ変換して得られるディジタル信号であり、処理単位時間（フレーム）毎に前処理器１７０１に入力される。前処理器１７０１は、入力音声データを主観的に高品質化したり符号化に適した状態の信号に変換するための処理を行うもので、例えば直流成分をカットするためのハイパスフィルタ処理や音声信号の特徴を強調するようなプリエンファシス処理などを行う。
【０１３６】
前処理後の信号は、ＬＰＣ分析器１７０２と加算器１７１０とに出力される。ＬＰＣ分析器１７０２は、前処理器１７０１から入力した信号を用いてＬＰＣ分析（線形予測分析）を行い、得られたＬＰＣ（線形予測係数）をＬＰＣ量子化器１７０３に出力する。ＬＰＣ量子化器９０４は、ＬＰＣ分析器９０３から入力したＬＰＣの量子化を行い、量子化ＬＰＣをＬＰＣ合成フィルタ１７０９及びモード判定器１７１３へ出力し、量子化ＬＰＣの符号化データを伝送路を通じて復号器側へ出力する。
【０１３７】
モード判定器１７１３は、入力した量子化ＬＰＣの動的及び静的特徴を利用するなどして音声区間と非音声区間あるいは有声区間と無声区間の切り分け（モード判定）を行い、判定結果を部分的代数符号帳とランダム符号帳とから成る雑音符号帳１７１６に出力する。より具体的には、量子化ＬＰＣの動的特徴を用いることにより音声区間／非音声区間の切り分けを行い、量子化ＬＰＣの静的特徴を用いることにより有声／無声区間の切り分けを行う。量子化ＬＰＣの動的特徴としてはフレーム間の変動量や過去に非音声区間と判定された区間における平均的な量子化ＬＰＣと現フレームにおける量子化ＬＰＣとの距離（差）などを用いることができる。また、量子化ＬＰＣの静的特徴としては１次の反射係数などを用いることができる。
【０１３８】
なお、量子化ＬＰＣはＬＳＰや反射係数やＬＰＣ予測残差パワなど他の領域のパラメータに変換することによってより有効に利用できる。また、モード情報を伝送することが可能な場合は、量子化ＬＰＣのみからモード判定を行うのではなく、入力音声データを分析して得られる様々なパラメータを利用してより正確かつ細かいモード判定を行うこともできる。この場合、モード情報は符号化されてＬＰＣ符号化データ１７１４及び音源パラメータ符号化データ１７１５とともに伝送路を通じて復号器側に出力される。
【０１３９】
適応符号帳１７０４は、過去に生成した励振ベクトル（加算器１７０８から出力されるベクトル）のバッファであり、誤差最小化器１７１２によって指定された位置から適応符号ベクトルを切り出して乗算器１７０５へ出力する。乗算器１７０５は、適応符号帳１７０４から出力された適応符号ベクトルに適応符号ベクトル利得を乗じて加算器１７０８へ出力する。
【０１４０】
適応符号ベクトル利得は、誤差最小化器によって指定される。部分的代数符号帳とランダム符号帳から成る雑音符号帳１７０６は、モード判定器１７１３から入力したモード情報によって部分的代数符号帳とランダム符号帳の比率が切り替わる雑音符号帳であり、図９に示すように、モード情報によって部分的代数符号帳のエントリ数とランダム符号帳のエントリ数が適応的に制御される（切換えられる）構成を有しており、少なくとも２本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトル又はスパース率（フレーム全体のサンプル数に対する振幅ゼロのサンプル数の割合）９０％程度以下の雑音符号ベクトルのいずれかを乗算器１７０７へ出力する。
【０１４１】
乗算器１７０７は、部分的代数符号帳とランダム符号帳とから成る雑音符号帳１７０６から出力された雑音符号ベクトルに雑音符号ベクトル利得を乗じて加算器１７０８へ出力する。加算器１７０８は、乗算器１７０５から出力された適応符号ベクトル利得乗算後の適応符号ベクトルと乗算器１７０７から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳１７０４とＬＰＣ合成フィルタ１７０９とに出力する。
【０１４２】
適応符号帳１７０４へ出力された励振ベクトルは、適応符号帳１７０４を更新するのに用いられ、ＬＰＣ合成フィルタ１７０９に出力された励振ベクトルは合成音声を生成するために用いられる。ＬＰＣ合成フィルタ１７０９は、ＬＰＣ量子化器１７０３から出力された量子化ＬＰＣを用いて構成される線形予測フィルタであって、加算器１７０８から出力された励振ベクトルを用いてＬＰＣ合成フィルタを駆動し、合成信号を加算器１７１０に出力する。
【０１４３】
加算器１７１０は、前処理器１７０１から出力された前処理後の入力音声信号とＬＰＣ合成フィルタ１７０９から出力された合成信号との差分（誤差）信号を計算し、聴覚重みづけ器１７１１に出力する。聴覚重みづけ器１７１１は、加算器１７１０から出力される差分信号を入力として、聴覚的な重みづけを行い、誤差最小化器１７１２へ出力する。
【０１４４】
誤差最小化器１７１２は、聴覚重みづけ器１７１１から出力された聴覚重みづけ後の差分信号を入力として、例えばその２乗和が最小となるように適応符号帳１７０４から適応符号ベクトルを切り出す位置と部分的代数符号帳とランダム符号帳とから成る雑音符号帳１７０６から生成する雑音符号ベクトルと、乗算器１７０５で乗じる適応符号ベクトル利得と、乗算器１７０７で乗じる雑音符号ベクトル利得との値を調整し、各々を符号化し音源パラメータ符号化データとして伝送路を通じて復号器側に出力する。
【０１４５】
図１８は、実施の形態３にかかる雑音符号ベクトル生成器を備えた音声復号化装置を示す。同図に示す音声復号化装置は、ＬＰＣ復号器１８０１、音源パラメータ復号器１８０２、適応符号帳１８０３、乗算器１８０４、部分的代数符号帳とランダム符号帳とから成る雑音符号帳１８０５、乗算器１８０６、加算器１８０７、ＬＰＣ合成フィルタ１８０８、後処理器１８０９、モード判定器１８１０を備える。
【０１４６】
この音声復号化装置において、伝送路を通じてＬＰＣ符号化データと音源パラメータ符号化データがフレーム単位でＬＰＣ復号器１８０１と音源パラメータ復号器１８０２とにそれぞれ入力される。ＬＰＣ復号器１８０１は、量子化ＬＰＣを復号してＬＰＣ合成フィルタ１８０８及びモード判定器１８１０に出力する。後処理器１８０９で量子化ＬＰＣを使用する場合は、後処理器１８０９にも同時に量子化ＬＰＣがＬＰＣ復号器１８０１から出力される。モード判定器１８１０は、図１７のモード判定器１７１３と同一の構成であり、入力した量子化ＬＰＣの動的及び静的特徴を利用するなどして音声区間と非音声区間あるいは有声区間と無声区間の切り分け（モード判定）を行い、判定結果を部分的代数符号帳とランダム符号帳とから成る雑音符号帳１８０５及び後処理器１８０９に出力する。
【０１４７】
より具体的には、量子化ＬＰＣの動的特徴を用いることにより音声区間／非音声区間の切り分けを行い、量子化ＬＰＣの静的特徴を用いることにより有声／無声区間の切り分けを行う。量子化ＬＰＣの動的特徴としてはフレーム間の変動量や過去に非音声区間と判定された区間における平均的な量子化ＬＰＣと現フレームにおける量子化ＬＰＣとの距離（差）などを用いることができる。また、量子化ＬＰＣの静的特徴としては１次の反射係数などを用いることができる。
【０１４８】
なお、量子化ＬＰＣはＬＳＰや反射係数やＬＰＣ予測残差パワなど他の領域のパラメータに変換することによってより有効利用できる。また、モード情報を別情報として伝送することが可能な場合は、別途伝送されるモード情報を復号し、復号モード情報を雑音符号帳１８０５及び後処理器１８０９に出力する。
【０１４９】
音源パラメータ復号器１８０２は、適応符号ベクトルを切り出す位置情報と、適応符号ベクトル利得と、雑音符号ベクトルを指定するインデックス情報と、雑音符号ベクトル利得とを、適応符号帳１８０３と、乗算器１８０４と、部分的代数符号帳と、ランダム符号帳とから成る雑音符号帳１８０５と、乗算器１８０６とにそれぞれ出力する。
【０１５０】
適応符号帳１８０３は、過去に生成した励振ベクトル（加算器１８０７から出力されるベクトル）のバッファであり、音源パラメータ復号器１８０２から入力した切り出し位置から適応符号ベクトルを切り出して乗算器１８０４に出力する。乗算器１８０４は、適応符号帳１８０３から出力された適応符号ベクトルに、音源パラメータ復号器１８０２から入力した適応符号ベクトル利得を乗じて加算器１８０７へ出力する。
【０１５１】
部分的代数符号帳とランダム符号帳とから成る雑音符号帳１８０７は、図９に示す構成を有した雑音符号帳であり、図１７の１７０６に示したものと同一の雑音符号帳であり、音源パラメータ復号器１８０２から入力したインデックスで指定される少なくとも２本のパルスの位置が近接している数本のパルスから成る雑音符号ベクトル又はスパース率９０％程度以下の雑音符号ベクトルのいずれかを乗算器１８０６へ出力する。
【０１５２】
乗算器１８０６は、部分的代数符号帳から出力された雑音符号ベクトルに、音源パラメータ復号器１８０２から入力される雑音符号ベクトル利得を乗じて、加算器１８０６へ出力する。加算器１８０７は、乗算器１８０４から出力される適応符号ベクトル利得乗算後の適応符号ベクトルと乗算器１８０６から出力された雑音符号ベクトル利得乗算後の雑音符号ベクトルとのベクトル加算を行うことにより励振ベクトルを生成し、適応符号帳１８０３とＬＰＣ合成フィルタ１８０８とに出力する。
【０１５３】
適応符号帳１８０３へ出力された励振ベクトルは、適応符号帳１８０３を更新するのに用いられ、ＬＰＣ合成フィルタ１８０８に出力された励振ベクトルは合成音声を生成するために用いられる。ＬＰＣ合成フィルタ１８０８は、ＬＰＣ復号器１８０１から出力された量子化ＬＰＣを用いて構成される線形予測フィルタであって、加算器１８０７から出力された励振ベクトルを用いてＬＰＣ合成フィルタを駆動し、合成信号を後処理器１８０９に出力する。
【０１５４】
後処理器１８０９は、ＬＰＣ合成フィルタ１８０８から出力される合成音声に対して、ホルマント強調処理やピッチ強調処理やスペクトル傾斜補正処理などから成るポストフィルタ処理や定常的な背景雑音を聞きやすくするための処理など主観的品質を改善するための処理を行い、復号音声データ１８１０として出力する。これらの後処理は、モード判定器１８０８から入力するモード情報を用いて適応的に行われる。即ち、モード毎に適した後処理を切替えて適用したり、後処理の強弱を適応的に変化させる。
【０１５５】
図１９は、本発明の実施の形態３にかかる雑音符号ベクトル生成装置の構成を示すブロック図である。同図に示す雑音符号ベクトル生成器は、パルス位置限定器制御器１９０１、部分的代数符号帳１９０２、ランダム符号帳エントリ数制御器１９０３、ランダム符号帳１９０４を備える。
【０１５６】
パルス位置限定器制御器１９０１は、外部から入力されるモード情報に応じてパルス位置限定器の制御信号を部分的代数符号帳１９０２に出力する。この制御は部分的代数符号帳のサイズを（モードに応じて）増減させるために行うもので、例えばモードが無声／定常雑音モードのような場合は限定を強くする（パルス位置の候補数を少なくする）ことによって部分的代数符号帳のサイズを小さくする（その代わりにランダム符号帳１９０４のサイズが大きくなるようにランダム符号帳エントリ数制御器１９０３で制御を行う）。
【０１５７】
このようにすることによって、無声部や定常雑音部など数本のパルスから成る雑音符号ベクトルを用いると主観的品質が劣化するような信号に対して性能改善を図ることが可能となる。パルス位置限定器は部分的代数符号帳１９０２に組み込まれており、その具体的動作は実施の形態１に示されている。
【０１５８】
部分的代数符号帳１９０２は、パルス位置限定器制御器１９０１から入力した制御信号によって内部に組み込まれたパルス位置限定器の動作が制御される部分的代数符号帳であり、パルス位置限定器によるパルス位置候補の限定度合いにより符号帳サイズが増減する。部分的代数符号帳の具体的動作については実施の形態１に示されている。本符号帳から生成される雑音符号ベクトルは切換スイッチ１９０５に出力される。
【０１５９】
ランダム符号帳エントリ数制御器１９０３は、外部から入力されたモード情報に応じてランダム符号帳１９０４のサイズを増減する制御を行う。本制御は、パルス位置限定器制御器１９０１の制御と連動して行われる。即ち、パルス位置限定器制御器１９０１によって部分的代数符号帳１９０２のサイズを増加させた場合は、ランダム符号帳エントリ数制御器１９０３は、ランダム符号帳１９０４のサイズを減少させ、パルス位置限定器制御器１９０１によって部分的代数符号帳１９０２のサイズを減少させた場合は、ランダム符号帳エントリ数制御器１９０３は、ランダム符号帳１９０４のサイズを増加させるような制御を行う。そして、部分的代数符号帳１９０２とランダム符号帳１９０４を合わせた総エントリ数（本雑音符号ベクトル生成器における全符号帳サイズ）は常に一定の値に保たれる。
【０１６０】
ランダム符号帳１９０４は、ランダム符号帳エントリ数制御器１９０３からの制御信号を入力して指定されたサイズのランダム符号帳を用いて雑音符号ベクトルを生成し、切換スイッチ１９０５に出力する。ここで、ランダム符号帳１９０４は、複数の異なるサイズのランダム符号帳から構成されていても良いが、共用する１種類のある定められたサイズのランダム符号帳のみから構成されていてこれを部分的に使用することによって複数サイズのランダム符号帳として使用する方がメモリ量の面から有効である。
【０１６１】
また、ランダム符号帳１９０４は、１チャンネル単独の符号帳でも良いが、２チャンネル以上の複数チャンネルから構成される符号帳を用いた方が演算量やメモリ量の面から有利である。
【０１６２】
切換スイッチ１９０５は、外部からの制御（本雑音符号ベクトル生成器を符号化器に用いる場合はターゲットベクトルとの誤差を最小化するブロックからの制御信号、復号化器に用いる場合は復号した雑音符号帳のパラメータ情報など）により、部分的代数符号帳１９０２又はランダム符号帳１９０４から出力される雑音符号ベクトルのどちらか一方を選択して、本雑音符号ベクトル生成器の出力雑音符号ベクトル１９０６として出力する。
【０１６３】
ここで、ランダム符号帳１９０４から出力される雑音符号ベクトルと、部分的代数符号帳１９０２から出力される雑音符号ベクトルの割合（ランダム：代数）は、有声モードにおいては、０：１〜１：２、すなわちランダム０〜３４％、代数６６〜１００％であることが望ましい。また、上記割合（ランダム：代数）は、非有声モードにおいては、２：１〜４：１、すなわちランダム６６〜８０％、代数２０〜３４％であることが望ましい。
【０１６４】
以下に図２０を参照して上記実施の形態における雑音符号ベクトル生成方法（符号化方法）の処理の流れについて説明する。
【０１６５】
まず、ＳＴ２００１において、別途入力したモード情報に基づいて部分的代数符号帳とランダム符号帳のサイズの設定を行う。このとき、部分的代数符号帳のサイズの設定は実施の形態１に示される相対位置表現されるパルスの位置候補数を増減することによって行われる。
【０１６６】
この相対位置表現されるパルスの増減は機械的に行うことができ、相対位置が離れる部分から削減することによって減少させる。より具体的には、相対位置が｛１、３、５、７｝である場合｛１、３、５｝、｛１、３｝、｛１｝というように位置候補数を減らす。逆に増やす場合は｛１｝から｛１、３｝、｛１、３、５｝というように増やす。
【０１６７】
また、部分的代数符号帳とランダム符号帳のサイズの総和が一定値になるように部分的代数符号帳とランダム符号帳のサイズの設定が行われる。より具体的には、有声（定常）部に対応するようなモードにおいては部分的代数符号帳のサイズ（比率）が大きく、無声部や雑音部に対応するようなモードにおいてはランダム符号帳のサイズ（比率）が大きくなるように、両符号帳のサイズの設定を行う。
【０１６８】
本ブロックにおいて、ｍｏｄｅは入力したモード情報、ＩＤＸａは部分的代数符号帳のサイズ（雑音符号ベクトルエントリ数）、ＩＤＸｒはランダム符号帳サイズ（雑音符号ベクトルエントリ数）であり、ＩＤＸａ＋ＩＤＸｒ＝一定値、である。また、ランダム符号帳のエントリ数の設定は例えば参照するランダム符号帳の範囲を設定することで実現できる。例えば２チャンネルのランダム符号帳のサイズを１２８×１２８＝１６３８４と６４×６４＝４０９６とで切換えて使用するような制御においては、各チャンネル１２８種類のベクトルを格納する（インデックス０〜１２７）ランダム符号帳をそれぞれ備え、探索するインデックスの範囲を０〜１２７と０〜６３の２種類で切換えることにより簡単に実現できる。
【０１６９】
なお、この場合インデックス０〜１２７のベクトルが存在するベクトル空間とインデックス０〜６３のベクトルが存在するベクトル空間とはできるだけ一致していることが望ましく、インデックス０〜６３のベクトルでインデックス６４〜１２７のベクトルを全く表現できない、即ちインデックス０〜６３のベクトル空間とインデックス６４〜１２７のベクトル空間とが全く異なると、上記のようなランダム符号帳サイズの変更はランダム符号帳の符号化性能を大きく劣化させる場合があるので、そのようなことを考慮してランダム符号帳を作成する必要がある。
【０１７０】
なお、部分的代数符号帳とランダム符号帳のエントリ数の総和を一定に保つ場合は必然的に両符号帳のサイズ設定の仕方（組合わせ）は数種類に限定されるため、サイズ設定の制御とはこれら数種類の設定を切換えることとなど価となる。本ＳＴにおいて、入力されたモード情報ｍｏｄｅから部分的代数符号帳サイズＩＤＸａとランダム符号帳サイズＩＤＸｒとが設定される。
【０１７１】
次に、ＳＴ２００２において、部分的代数符号帳（サイズＩＤＸａ）とランダム符号帳（ＩＤＸｒ）の中からターゲットベクトルとの誤差を最も小さくする雑音符号ベクトルが選択され、そのインデックスを求める。インデックスｉｎｄｅｘは例えば部分的代数符号帳から雑音符号ベクトルが選択されれば０〜（ＩＤＸａ−１）、ランダム符号帳から選択されれば（ＩＤＸａ−１）〜（ＩＤＸａ＋ＩＤＸｒ−１）の範囲になるように定められる。
【０１７２】
次に、ＳＴ２００３において、求められたインデックスｉｎｄｅｘを符号化データとして出力する。ｉｎｄｅｘはさらに必要に応じて伝送路に出力される形に符号化される。
【０１７３】
以下に図２１を参照して上記実施の形態における雑音符号ベクトル生成方法（復号化方法）の処理の流れについて説明する。
【０１７４】
まず、ＳＴ２１０１において、別途復号されたモード情報ｍｏｄｅに基づいて部分的代数符号帳とランダム符号帳のサイズの設定を行う。具体的な設定の方法は、図２０を参照して説明した前述の通りである。モード情報ｍｏｄｅから部分的代数符号帳のサイズＩＤＸａ及びランダム符号帳のサイズＩＤＸｒが設定される。
【０１７５】
次に、ＳＴ２１０２において、部分的代数符号帳又はランダム符号帳を用いて雑音符号ベクトルが復号される。どちらの符号帳を用いて復号されるかは、別途復号された雑音符号ベクトルのインデックスｉｎｄｅｘの値によって決定され、０≦ｉｎｄｅｘ＜ＩＤＸａの場合は、部分的代数符号帳から、ＩＤＸａ≦ｉｎｄｅｘ＜（ＩＤＸａ＋ＩＤＸｒ）の場合は、ランダム符号帳から復号される。具体的には例えば実施の形態３にて図１６を参照して説明したようにして復号される。
【０１７６】
なお、上記のようなインデックスの付与を行うと、異なるモードで共有される雑音符号ベクトルのエントリに対して異なるインデックスが付与され（即ち、全く同じ形状を有する雑音符号ベクトルでもモードが異なると異なるインデックスになってしまう）、伝送路誤りが生じたときの影響を受けやすくなるので、これを回避するために異なるモードで共有される雑音符号ベクトルのエントリに対しては同じインデックスが付与されるようにすると誤り耐性のある前記雑音符号ベクトル生成装置を実現できる。一例を図２２及び図２３に示す。
【０１７７】
図２２は、雑音符号帳サイズ３２、（サブ）フレーム長１１サンプル以上、パルス数２の部分的代数符号帳と２チャンネルランダムＣＢを組合わせた例であり、（サブ）フレーム末尾においてパルスが近接するベクトルは考慮しないタイプである。
【０１７８】
一方、図２３は、雑音符号帳サイズ１６、（サブ）フレーム長８サンプル、パルス数２の部分的代数符号帳と２チャンネルランダムＣＢを組合わせた例であり、（サブ）フレーム末尾においてパルスが近接するベクトルも考慮されているタイプである。
【０１７９】
図２２及び図２３の両図において、１列目の欄は第１のパルス又はランダム符号帳の第１チャンネルを、２列目の欄は第２のパルス又はランダム符号帳の第２チャンネルを、３列目の欄はそれぞれの組合わせに対する雑音符号帳インデックスをそれぞれ示している。
【０１８０】
また、両図の（ａ）はランダム符号帳の比率が低く（エントリ数が多く）部分的代数符号帳の比率が高い（エントリ数が多い）場合を、（ｂ）はランダム符号帳の比率が高く（エントリ数が多く）部分的代数符号帳の比率が低い（エントリ数が少ない）場合をそれぞれ示しており、斜線の網掛けされたインデックスに対応する雑音符号ベクトルのみが（ａ）と（ｂ）で異なるようになっている。
【０１８１】
図２２及び図２３において、表中の数字（インデックスを除く）は部分的代数符号帳におけるパルス位置を、Ｐ１，Ｐ２は第１及び第２のパルス位置を、Ｒａ，Ｒｂはランダム符号帳の第１及び第２チャンネルを、Ｒａ，Ｒｂに付した数字は両チャンネルに格納されているランダム符号ベクトルの番号を、それぞれ示している。図５の部分的代数符号帳に対応させると、図２３のインデックス０〜５及び図２２のインデックス０〜７が図５（ａ）に、図２３のインデックス６〜９及び図２３のインデックス８〜１５が図５（ｂ）に、図２３のインデックス１０〜１１が図５（ｃ）に、それぞれ対応する（図２２において図５（ｃ）に対応する部分はない）。
【０１８２】
図２２及び図２３の両図において、斜線で網掛けされたインデックスは限定された範囲内で規則的に並んでいることから、例えば復号する場合、図２３（ａ）のインデックス１１以下では、図９を用いて説明したように、復号し（ＩＤＸ１＝６，ＩＤＸ２＝１０）、図２３（ｂ）ではインデックスが１１以下でかつ偶数である場合のみ図２３（ａ）の場合と同じ復号を行い、奇数である場合はインデックスを２で割った商をランダム符号帳に対応するインデックスと見立ててランダム符号帳の各チャンネルのベクトル番号を復号することが可能である。
【０１８３】
同様のことは図２２においても言え、定められたインデックスの範囲内において規則的にインデックスとランダム符号帳のベクトル番号を対応させることができる。また、符号化する場合も同様に考えてモードの変化によってランダム符号帳と部分的代数符号帳とが切り替わるインデックスの部分のみ別扱いして符号化することが可能である。
【０１８４】
このようにすることによって、一部のインデックスに対応する雑音符号ベクトルのみがモードの切替えの影響を受けるようにできるので、伝送路誤りによってモードが誤った場合の影響を最小限に抑えることも可能である。この様な場合は、上記フロー図（図６、９、１５、１６、２０、２１）を参照して説明した場合と比べるとインデックスｉｎｄｅｘの付け方が変わるが、基本的な符号帳探索方法は同じである。
【０１８５】
このように、モード判定により代数符号帳とランダム符号帳の利用割合を変化させることにより、モード判定誤り時の品質劣化を抑えつつ、無声音声や背景雑音に対する符号化性能を改善することができる。
【０１８６】
（実施の形態４）
本実施の形態では、音源信号のパワを算出し、音声モードがノイズモードである場合に音源信号のパワから平均パワを算出して、この平均パワに基づいて所定のパルス位置候補の数を増減させる場合について説明する。
【０１８７】
図２４は、本発明の実施の形態４に係る音声符号化装置の構成を示すブロック図である。図２４に示す音声符号化装置は、図１７に示す音声符号化装置とほぼ同じ構成を有する。図２４に示す構成においては、音源信号から現パワを算出する現パワ算出器２４０２と、モード判定器１７１３からのモード判定情報及び現パワ算出器２４０２からの現パワに基づいて、音声モードがノイズモードである場合に音源信号のパワから平均パワを算出するノイズ区間平均パワ算出器２４０１とを備える。
【０１８８】
モード判定器１７１３は、実施の形態３で説明したように、入力した量子化ＬＰＣの動的及び静的特徴を利用するなどして音声区間と非音声区間あるいは有声区間と無声区間の切り分け（モード判定）を行い、判定結果を部分的代数符号帳とランダム符号帳とから成る雑音符号帳１７１６に出力する。また、モード判定器１７１３からのモード情報は、ノイズ区間平均パワ算出器２４０１に送られる。
【０１８９】
一方、現パワ算出器２４０２では、音源信号のパワを算出する。このようにして音源信号のパワを監視する。この現パワ算出結果は、ノイズ区間平均パワ算出器２４０１に送られる。
【０１９０】
ノイズ区間平均パワ算出器２４０１では、現パワ算出器２４０２からの算出結果とモード判定結果に基づいてノイズ区間の平均パワを算出する。ノイズ区間平均パワ算出器２４０１には、現パワ算出器２４０２から逐次現パワの算出結果が入力される。そして、ノイズ区間平均パワ算出器２４０１では、モード判定器１７１３からノイズ区間であるとの情報が入力されたときに、入力された現パワの算出結果を用いてノイズ区間の平均パワを算出する。
【０１９１】
この平均パワの算出結果は、可変型部分代数符号帳／ランダム符号帳１７０６に送られる。可変型部分代数符号帳／ランダム符号帳１７０６では、平均パワの算出結果に基づいて代数符号帳とランダム符号帳の利用比率を制御する。この制御の方法については、実施の形態３と同じである。
【０１９２】
なお、ノイズ区間平均パワ算出器２４０１では、算出されたノイズ区間平均パワと逐次入力される現パワとの比較を行う。そして、ノイズ区間の平均パワが現パワよりも大きい場合には、平均パワ値に問題があると考えられるので、ノイズ区間の平均パワを現パワに更新する。これにより、より精度良く代数符号帳とランダム符号帳の利用比率を制御することができる。
【０１９３】
また、図２５は、本発明の実施の形態４に係る音声復号化装置の構成を示すブロック図である。図２５に示す音声復号化装置は、図１８に示す音声復号化装置とほぼ同じ構成を有する。図２５に示す構成においては、音源信号から現パワを算出する現パワ算出器２５０２と、モード判定器１８１０からのモード判定情報及び現パワ算出器２５０２からの現パワに基づいて、音声モードがノイズモードである場合に音源信号のパワから平均パワを算出するノイズ区間平均パワ算出器２５０１とを備える。
【０１９４】
モード判定器１８１０は、実施の形態３で説明したように、入力した量子化ＬＰＣの動的及び静的特徴を利用するなどして音声区間と非音声区間あるいは有声区間と無声区間の切り分け（モード判定）を行い、判定結果を部分的代数符号帳とランダム符号帳とから成る雑音符号帳１８０５及び後処理器１８０９に出力する。また、モード判定器１８１０からのモード情報は、ノイズ区間平均パワ算出器２５０１に送られる。
【０１９５】
一方、現パワ算出器２５０２では、音源信号のパワを算出する。このようにして音源信号のパワを監視する。この現パワ算出結果は、ノイズ区間平均パワ算出器２５０１に送られる。
【０１９６】
ノイズ区間平均パワ算出器２５０１では、現パワ算出器２５０２からの算出結果とモード判定結果に基づいてノイズ区間の平均パワを算出する。ノイズ区間平均パワ算出器２５０１には、現パワ算出器２５０２から逐次現パワの算出結果が入力される。そして、ノイズ区間平均パワ算出器２５０１では、モード判定器１８１０からノイズ区間であるとの情報が入力されたときに、入力された現パワの算出結果を用いてノイズ区間の平均パワを算出する。
【０１９７】
この平均パワの算出結果は、可変型部分代数符号帳／ランダム符号帳１８０５に送られる。可変型部分代数符号帳／ランダム符号帳１８０５では、平均パワの算出結果に基づいて代数符号帳とランダム符号帳の利用比率を制御する。この制御の方法については、実施の形態３と同じである。
【０１９８】
なお、ノイズ区間平均パワ算出器２５０１では、算出されたノイズ区間平均パワと逐次入力される現パワとの比較を行う。そして、ノイズ区間の平均パワが現パワよりも大きい場合には、平均パワ値に問題があると考えられるので、ノイズ区間の平均パワを現パワに更新する。これにより、より精度良く代数符号帳とランダム符号帳の利用比率を制御することができる。
【０１９９】
ここで、ランダム符号帳から出力される雑音符号ベクトルと、部分的代数符号帳から出力される雑音符号ベクトルの割合（ランダム：代数）は、ノイズ区間のレベルが大きい場合に、有声モードにおいては、２：１、すなわちランダム約６６％、代数約３４％であることが望ましい。また、上記割合（ランダム：代数）は、非有声モードにおいては、ランダム約９８％、代数約２％であることが望ましい。
【０２００】
このように、ノイズ区間を監視してモード判定により代数符号帳とランダム符号帳の利用割合を変化させることにより、モード判定誤り時の品質劣化を抑えつつ、無声音声や背景雑音に対する符号化性能を向上させることができる。
【０２０１】
なお、図２４及び図２５においては、音源信号から現パワを算出する場合について説明しているが、本発明においては、ＬＰＣ合成後の合成信号のパワを用いて現パワを算出するようにしても良い。
【０２０２】
上記音声符号化装置及び／又は音声復号化装置は、携帯電話などの移動通信機器の移動機などの通信端末装置又は基地局装置に利用することが可能である。なお、情報を伝送する媒体は本実施の形態に示したような電波に限らず、光信号などを利用することも可能であり、さらには有線の伝送路を使用することも可能である。
【０２０３】
なお、上記実施の形態に示した音声符号化／復号化装置は、磁気ディスク、光磁気ディスク、ＲＯＭカートリッジなどの記録媒体にソフトウェアとして記録して実現することも可能である。その記録媒体を使用することにより、このような記録媒体を使用するパーソナルコンピュータなどにより音声符号化装置／復号化装置及び送信装置／受信装置を実現するとができる。
【０２０４】
（実施の形態５）
本実施の形態では、音源パルスが３本である代数符号帳を雑音符号帳として用いる場合について説明する。ここでは、雑音符号帳には、サブフレーム当り１６ビットを割り当てた場合について説明する。なお、本実施の形態においては、代数符号帳と音源パルスをサブフレーム全体に均一に配置したランダム符号帳とを併用する。
【０２０５】
この場合、雑音符号帳全体のビット数を変えずにランダム符号帳を併用するため、代数符号帳のサイズの削減が必要となる。単純に代数符号帳サイズを削減すると、各パルスの探索位置候補を減らさなければならず、広範囲の探索が難しくなる。そこで、音源パルスの探索範囲を維持したまま、代数符号帳サイズを削減する。
【０２０６】
具体的には、代数符号帳から生成される音源ベクトルの形状に着目し、使用頻度の低い形状を有する音源ベクトルは代数符号帳から生成されないように制限を加えることにより、代数符号帳のサイズを削減する。音源ベクトルの形状を示す特徴量として、各音源パルスの相対的位置関係を用いる。すなわち、図２６に示すように、３本の音源パルス２６０１〜２６０３によって構成された音源ベクトルの先頭のパルス２６０１と２番目のパルス２６０２の間隔Ａと、２番目のパルス２６０２と３番目のパルス２６０３の間隔Ｂを用いる。このような特徴量に基づいて使用頻度の低いベクトルを決定し、代数符号帳のサイズを削減して、ランダム符号帳を併用する。このようにしてサイズを削減した代数符号帳は、代数符号帳を部分的に使用していることから、部分的代数符号帳と呼ぶこととする。
【０２０７】
部分的代数符号帳の構成法を検討するため、図２６に示す間隔Ａ及び間隔Ｂを用いて使用頻度の低いベクトル形状を調査した。間隔Ａと間隔Ｂを有する音源ベクトルは複数存在するため、部分的代数符号帳から生成され得る組合せの数で正規化した。また、有声部と非有声部とでは傾向が異なることが考えられるので、１次の反射係数などを利用して有声部と非声部とを分類し、それぞれについて使用頻度分布を調べた。
【０２０８】
調査の結果、音声部では間隔Ａ又は間隔Ｂの少なくとも一方が狭いベクトルの使用傾度が高いこと、及び非有声部では有声部に比べて全体的に均一な頻度分布となることが分かった。この調査結果より、少なくとも１組の音源パルス間隔が狭いベクトルのみを生成するように制限を加えることによって、部分的代数符号帳を構成した。
【０２０９】
少なくとも１組の音源パルス間隔が狭いベクトルのみを生成する方法としては、以下の２つの方法が挙げられる。
（方法１）
部分的代数符号帳において、全探索を行い、探索ループの中で現在探索中の音源パルス間隔が所定の距離より狭いかどうかを判定し、狭いもののみを探索対象とする。
（方法２）
部分的代数符号帳において、各音源パルスのインデックスの差が所定の範囲内（Ｋ）になるような組合せのみを探索する。具体的には、図２７（ａ）〜（ｃ）に示すような３種類のパターン（図２７（ａ）：３パルスとも近い場合、図２７（ｂ）：前の２パルスが近い場合、図２７（ｃ）：後の２パルスが近い場合）に分類して部分的代数符号帳の探索を行う。ただし、図２７（ａ）〜（ｃ）では、パルス２６０１〜２６０３の順に並ぶ場合のみを示しており、実際にはこれら３本のパルスが並ぶ順番として考え得る全て組合せが考慮される。
【０２１０】
方法１を用いた場合は、厳密にパルス間隔の距離による制限が可能であるが、探索ループ内で毎回、条件分岐が必要となる。一方、方法２では不均一な探索位置候補の場合には、厳密なパルス間隔距離による制限ではなくなるが、代数符号帳の必要な部分のみを規則的に探索することが可能となり、探索ループ内での条件分岐が不要となる。
【０２１１】
このようにして音源パルスを３パルスに設定して部分的代数符号帳を構成することにより、基本性能の高い部分的代数符号帳を実現することができる。
【０２１２】
次に、上記部分的代数符号帳と併用するランダム符号帳について説明する。このランダム符号帳は、サブフレーム全体にパワが分散しているようなベクトルの表現性を良くするため、なるべく音源パルスがサブフレーム全体に均などに配置されるように構成する。このランダム符号帳では、パルス振幅は±１とし、各チャネル（ｃｈ）間で音源パルスが重ならないようにパルス位置を制限している。また、音源パルスの位置と振幅（極性）は乱数によって生成する。図２８に、音源パルス数が合計で８本で２ｃｈ構成のランダム符号帳を示す。
【０２１３】
このランダム符号帳は、チャネル数及びパルス数の設定を行い、各パルスの配置範囲の設定を行い、各パルスの位置／極性の決定を行うことにより作成する。このランダム符号帳の作成方法において、まず、チャネル数及びパルス数の設定を行った後に各パルスの配置範囲の設定する。すなわち、各パルスが配置される範囲長（Ｎ＿Ｒａｎｇｅ［ｉ］［ｊ］）を設定する。この設定は図２９に示すようにして行う。
【０２１４】
まず、サブフレーム長をパルス数（１チャネル分）で分割してＮ＿Ｒａｎｇｅ０を求め、剰余はＮ＿Ｒｅｓｔとして保存する（ＳＴ２９０１）。次いで、Ｎ＿Ｒａｎｇｅ０をチャネル数で分割してＮ＿Ｒａｎｇｅ［ｉ］［ｊ］を設定する（ＳＴ２９０２）。ここで、ｉはチャネル番号を示し、ｊはパルス番号を示す。このとき、Ｎ＿Ｒａｎｇｅ０がチャネル数（Ｎ＿ｃｈ）で割り切れない場合には、その余りをチャネル番号の若い方から順番に割り当てる（ＳＴ２９０２）。
【０２１５】
次いで、Ｎ＿Ｒｅｓｔをサブフレーム最後尾に配置されるパルスのＮ＿Ｒａｎｇｅ［Ｎ＿ｃｈ−１］［Ｎ＿Ｐｕｌｓｅ−１］から順番に割り当てる（ＳＴ２９０３）。これにより、Ｎ＿Ｒａｎｇｅ［ｉ］［ｊ］の設定を完了する。
【０２１６】
各パルスの配置範囲の設定においては、Ｎ＿Ｒａｎｇｅ［ｉ］［ｊ］の開始点（Ｓ＿Ｒａｎｇｅ［ｉ］［ｊ］）の設定を行う。すなわち、Ｎ＿Ｒａｎｇｅ［ｉ］［ｊ］をサブフレーム先頭から順に配置した場合に、それぞれの先頭位置を求める。この開始点の設定は、図３０に示すようにして行う。まず、各チャネルの先頭パルスのＳ＿Ｒａｎｇｅ［ｉ］［０］を決定する。この場合、パルス番号の若い方から順番に行う（ＳＴ３００１）。次いで、残りのＳ＿Ｒａｎｇｅ［ｉ］［０］を同様に決定する（ＳＴ３００２）。このようにしてＳ＿Ｒａｎｇｅ［ｉ］［ｊ］の設定を完了する。
【０２１７】
上述したように各パルスの配置範囲の設定を行った後に、各パルスの位置／極性の決定を行う。この各パルスの位置／極性は、図３１に示すようにして行う。まず、チャネルのループカウンタをリセットする（ＳＴ３１０１）。次いで、ループカウンタｉがＮ＿ｃｈより小さいかどうかを判断する（ＳＴ３１０２）。ループカウンタｉがＮ＿ｃｈより小さければ、カウンタと閾値をリセットする（ＳＴ３１０３）。すなわち、決定したランダム符号ベクトルの数（ｃｏｕｎｔｅｒ）、ランダム符号ベクトルの生成を繰り返した数（ｃｏｕｎｔｅｒ＿ｒ）、及び位置が異なることを許すパルス数（ｔｈｒｅｓｈ）をリセットする。一方、ループカウンタｉがＮ＿ｃｈより小さくなければ、ランダム符号帳の作成を終了する。
【０２１８】
次いで、ランダム符号ベクトルの生成を繰り返した数（ｃｏｕｎｔｅｒ＿ｒ）が最大値ＭＡＸ＿ｒであるかどうかを判断する（ＳＴ３１０４）。ｃｏｕｎｔｅｒ＿ｒがＭＡＸ＿ｒでなければ、コードベクトルの生成や乱数によるパルス位置及び極性の生成を行い（ＳＴ３１０６）、ｃｏｕｎｔｅｒ＿ｒがＭＡＸ＿ｒであれば、閾値（ｔｈｒｅｓｈ）をインクリメントし、繰り返しカウンタ（ｃｏｕｎｔｅｒ＿ｒ）をリセットする（ＳＴ３１０５）。そして、コードベクトルの生成や乱数によるパルス位置及び極性の生成を行う（ＳＴ３１０６）。なお、乱数によるパルス位置及び極性の生成において、ｒａｎｄ（  ）は整数乱数生成関数を表す。
【０２１９】
次いで、パルス位置及び極性を生成した後に、コードベクトルをチェックする（ＳＴ３１０７）。ここでは、生成したコードベクトルと既にランダム符号帳に登録したすべてのコードベクトルとを比較し、パルス位置が重なるコードベクトルが存在しないかをチェックする。そして、コードベクトル毎に位置が重なっているパルス数をカウントする。
【０２２０】
次いで、ランダム符号帳内に、位置の重なるパルス数が閾値を越えたコードベクトルがあるかどうかを判断する（ＳＴ３１０８）。位置の重なるパルス数が閾値を越えたコードベクトルがあれば、繰り返すカウンタ（ｃｏｕｎｔｅｒ＿ｒ）をインクリメントし（ＳＴ３１０９）、その後、ＳＴ３１０４に進む。一方、位置の重なるパルス数が閾値を越えたコードベクトルがなければ、そのコードベクトルをランダム符号帳に登録する（ＳＴ３１１０）。すなわち、乱数により生成したコードベクトルをランダム符号帳に格納し、カウンタ（ｃｏｕｎｔｅｒ）をインクリメントする。
【０２２１】
次いで、カウンタ（ｃｏｕｎｔｅｒ）がランダム符号帳のサイズ以上かどうかを判断する（ＳＴ３１１１）。カウンタ（ｃｏｕｎｔｅｒ）が作成するランダム符号帳のサイズ以上であれば、チャネルのループカウンタをインクリメントし（ＳＴ３１１２）、ＳＴ３１０２に進む。カウンタ（ｃｏｕｎｔｅｒ）がランダム符号帳のサイズ以上でなければ、ＳＴ３１０４に進む。
【０２２２】
このランダム符号帳の作成においては、乱数により、コードベクトルのパルス位置及び極性を決定し、既に決定済みのパルスと位置が重ならないようにチェックする。このようにして、初めは全く位置が重ならないものを生成し、順次位置が重なるパルス数を増加させてゆく。
【０２２３】
また、ランダム符号帳の作成においては、サブフレーム全体を均などに分割し、完全に均など分割できない場合は、ｃｈ２からｃｈ１の範囲を広くし、またサブフレーム末尾の方から範囲を広くする。例えば、図３２を用いて説明する。図３２において、数字は各パルス（パルス番号ｊ）の配置範囲（Ｎ＿Ｒａｎｇｅ［ｉ］［ｊ］）と開始点（Ｓ＿Ｒａｎｇｅ［ｉ］［ｊ］）を示しており、上から下に向ってサブフレームの末尾に向うように記載している。図３２（ａ）では、４パルスであるので、サブフレーム全体の８０サンプルを均などに分割することができる。図３２（ｂ）では、６パルスであるので、サブフレーム全体の８０サンプルを均などに分割することができない。この場合には、ｃｈ１（７）をｃｈ２（６）より広くし、しかもサブフレーム末尾（ｃｈ１：８、ｃｈ２：７）を広くしている。ｃｈ１の範囲をｃｈ２より広くしているのは、ｃｈ１のコードベクトル数（符号帳サイズ）をｃｈ２のコードベクトル数より多くすることを想定しているためである。なお、ｃｈ１とｃｈ２のＮ＿Ｒａｎｇｅ［ｉ］［ｊ］の値はなどしくなるようにし、半端な部分はサブフレーム後半に各チャネル均などに割り当てることも考えられる。
【０２２４】
このようにしてランダム符号帳を作成することにより、サブフレーム全体に音源パルスが分布するランダム符号帳を効率的に作成することができる。また、符号帳の後半になるほど重なる音源パルスが多くなるので、符号帳サイズを小さくする場合は後半部から削減することにより、望ましい符号帳を作成することができる。
【０２２５】
次に、部分的代数符号帳とランダム符号帳の併用において、モード切換えを適用する場合について説明する。この場合、部分的代数符号帳を音源パルス形状にしたがってブロック分けして、そのブロックに対応して段階的に削減を行い、それにランダム符号帳を段階的に（適応的に）増加させる。
【０２２６】
図３３は、部分的代数符号帳をブロック分けした状態を示す図である。ブロック分けは、音源パルスの形状と対応して行われている。このブロックは、図３４（ａ）に示す音源パルスのパルス間の間隔（より正しくはインデックスの差）Ａ，Ｂにより決定される。すなわち、ブロックＸ〜Ｚは、図３４（ｂ）に示す領域に対応している。
【０２２７】
このようにしてブロック分けして部分的代数符号帳のサイズを削減することにより、サイズの制御を容易に行うことができる。具体的には、該当するブロックの探索ループをＯＦＦにするだけで良い。
【０２２８】
このように部分的代数符号帳をブロックに分割すると共に、ランダム符号帳を段階分けする。ここでは、図３５（ａ）に示すように、ｃｈ１，ｃｈ２で３段階に段階分けする。具体的には、第１段階はａ，ｂとし、第２段階はｃ，ｄとし、第３段階はｅ，ｆとする。これらを利用して部分的代数符号帳をブロック単位で削減し、その分だけランダム符号帳を段階的に増加してランダム符号帳の割合を大きくする。部分的代数符号帳の削減及びランダム符号帳の増加に対応してモードが決定される。具体的には、図３３（ａ）〜（ｃ）に示すモードが決定される。なお、このモード数については例示であり、図３３より粗くモード設定する場合には、２モードを用いても良く、図３３より細かくモード設定する場合には、４以上のモードを用いても良い。
【０２２９】
このモード毎に用いるランダム符号帳について、図３３及び図３５を用いて説明する。ランダム符号帳サイズが最も小さいモードを（ａ）、最も大きいモードを（ｃ）、中間のモードを（ｂ）とする。モード（ａ）→（ｂ）→（ｃ）と変化させる場合、図３５において、ｃｈ１のランダム符号帳はａ→（ａ＋ｃ）→（ａ＋ｃ＋ｅ）、ｃｈ２のランダム符号帳はｂ→（ｂ＋ｄ）→（ｂ＋ｄ＋ｆ）というようにサイズが増える。このとき、各モードで共通のコードベクトルに対してはどのモードでも同じインデックスが付与されるようにするため、以下のようなインデックスの割り当て方を用いる。
【０２３０】
まず、ａ×ｂにより生成されるベクトルのインデックスを割り当てる。続いてｃ×ｂ及び（ａ＋ｃ）×ｄにより生成されるベクトルのインデックスを割り当てる。最後に（ａ＋ｃ＋ｅ）×ｆ及びｅ×（ｂ＋ｄ）により生成されるベクトルのインデックスを割り当てる。この割当て法の一例を図３３に示す。
【０２３１】
したがって、部分的段数符号帳とランダム符号帳を併用する場合において、部分的代数符号帳がブロックＸ，Ｙ，Ｚからなるとき、ランダム符号帳は、図３３（ａ）に示すように、ランダム符号帳の図３５（ｂ）に示す部分となる。また、部分的代数符号帳がブロックＸ，Ｙから成る場合、ランダム符号帳は、図３３（ｂ）に示すように、ランダム符号帳の図３５（ｂ）〜（ｄ）に示す部分となる。また、部分的代数符号帳がブロックＸからなる場合、ランダム符号帳は、図３３（ｃ）に示すように、ランダム符号帳の図３５（ｂ）〜（ｆ）に示す部分となる。
【０２３２】
このモード切換えは、モード判定器からの制御信号であるモード情報にしたがって行われる。このモード情報は、符号器側から送信されてくる種々の情報（ＬＰＣパラメータ、ゲインパラメータなど）を復号し、その情報に応じて生成しても良く、符号器側から送信されたモード情報を用いても良い。
【０２３３】
このように、部分的代数符号帳をブロック単位で削減し、ランダム符号帳を段階的に増加することにより、部分的代数符号帳とランダム符号帳のサイズを容易に制御できる。さらに、異なるモードにおいても共有コードベクトルインデックスを同じにできるのでモード誤りの影響を抑えることができる。
【０２３４】
ここで、モードが有声／無声／定常雑音の３種類のモードから構成される場合を例として、それぞれのモードにおける部分的代数符号帳とランダム符号帳の構成比の具体例を示す。ビット配分によってこの最適比率は変わりうるが、１６ビットのランダム符号帳の例においては、有声モードで（部分的代数符号帳：ランダム符号帳＝約５０％：約５０％）、無声モードで（同＝約１０％：約９０％）、定常雑音モードで（同＝約１０％：約９０％、モード誤りが極めて少なければ同＝約０％：約１００％までランダム符号帳の比率を上げてもよい）といった比率であることが望ましい。なお、復号器側で定常雑音信号の主観品質を高めるような後処理が加えられる場合は、定常雑音モードにおけるランダム符号帳の比率を特に高くする必要がなくなる場合もある。
【０２３５】
（実施の形態６）
本実施の形態においては、ノイズパワ（過去のノイズモード区間における平均パワ）の高低によって、拡散パタンの雑音性を切換える、あるいはノイズパワの高低によって、拡散パタンの１サンプル目のサンプル値を操作する場合について説明する。
【０２３６】
図３６は、本発明の実施の形態６に係る音声符号化装置の構成を示すブロック図であり、図３７は、本発明の実施の形態６に係る音声復号化装置の構成を示すブロック図である。図３６において、図２４と同じ部分については、図２４と同じ符号を付して、詳細な説明は省略する。また、図３７において、図２５と同じ部分については、図２５と同じ符号を付して、詳細な説明は省略する。
【０２３７】
図３６に示す音声符号化装置においては、可変型部分的代数符号帳／ランダム符号帳３６０１を有しており、この可変型部分的代数符号帳／ランダム符号帳３６０１から出力された音源ベクトルのパルスを拡散するパルス拡散器３６０２を備えている。この音源ベクトルのパルスの拡散は、拡散パタン生成器３６０３において生成された拡散パタンにしたがって行われる。この拡散パタンは、ノイズ区間平均パワ算出器２４０１で求められたノイズ区間平均パワの高低や、モード判定器１７１３からのモード情報により決定する。
【０２３８】
図３７に示す音声復号化装置においては、図３６に示す音声符号化装置に対応して可変型部分的代数符号帳／ランダム符号帳３７０１を有しており、この可変型部分的代数符号帳／ランダム符号帳３７０１から出力された音源ベクトルのパルスを拡散するパルス拡散器３７０２を備えている。この音源ベクトルのパルスの拡散は、拡散パタン生成器３７０３において生成された拡散パタンにしたがって行われる。この拡散パタンは、ノイズ区間平均パワ算出器２５０１で求められたノイズ区間平均パワの高低や、モード判定器１８１０からのモード情報により決定する。
【０２３９】
図３６に示す音声符号化装置及び図３７に示す音声復号化装置における拡散パタン生成器３６０３，３７０３では、図３８及び図３９に示すようにして拡散パタンを生成する。
【０２４０】
まず、音声符号化装置においては、過去にノイズ区間と判定された（サブ）フレームのパワを用いてノイズ区間平均パワ算出器２４０１でノイズ区間平均パワを算出する。過去のノイズ区間パワは、現パワ算出器２４０２により出力されたパワを用いて逐次更新される。ここで算出されたノイズ区間の平均パワが拡散パタン生成器３６０３に出力される。拡散パタン生成器３６０３では、ノイズ区間の平均パワに基づいて拡散パタンの雑音性を切換える。すなわち、図３８に示すように、拡散パタン生成器３６０３では、ノイズ区間の平均パワの高低に対応して複数の雑音性が設定されており、平均パワの高低に応じて雑音性が選択される。具体的には、ノイズ区間の平均パワが大きい場合には、拡散パタンの雑音性が高い（強い）ものを選択し、ノイズ区間の平均パワが小さい場合には、拡散パタンの雑音性が低い（弱い）ものを選択する。
【０２４１】
また、ノイズ区間と音声区間とで拡散パタンの雑音性を切換えるようにしても良い。なお、音声区間は、さらに有声区間と無声区間に分けても良い。この場合、切換えは、ノイズ区間では拡散パタンの雑音性が高く、音声区間では拡散パタンの雑音性が低くなるように行われる。なお、音声区間を有声区間と無声区間に分けた場合は、有声区間では拡散パタンの雑音性が低く、無声区間では拡散パタンの雑音性が高くなるように行われる。ノイズ区間、音声区間（有声区間、無声区間）の分類は別途モード判定器１７１３などによって行われ、拡散パタンの選択はモード判定器１７１３から出力されたモード情報によって拡散パタン生成器３６０３で行う。
【０２４２】
すなわち、モード判定器１７１３で判定されたモードがモード情報として拡散パタン生成器３６０３に出力され、拡散パタン生成器３６０３では、モード情報に基づいて拡散パタンの雑音性を切換える。この場合、図３８に示すように、拡散パタン生成器３６０３では、モードに対応して複数の雑音性が設定されており、モードに応じて雑音性の強弱が選択される。具体的には、ノイズモードの場合には、拡散パタンの雑音性が強いものを選択し、音声（有声）モードの場合には、拡散パタンの雑音性が弱いものを選択する。
【０２４３】
また、別の構成の拡散パタン生成器３６０３では、拡散パタンは、ノイズ区間の平均パワの高低に対応して拡散パタンの１サンプル目の振幅値を変えることにより、前記の切換えに相当する操作を連続的に行う。具体的には、図３９に示すように、ノイズ区間の平均パワが大きい場合には、１サンプルめの振幅値を小さくする係数が乗ぜられ、ノイズ区間の平均パワが小さい場合には、１サンプルめの振幅値を大きくする係数が乗ぜられる。これらの係数については、ノイズ区間の平均パワの値を用いて決定できるように予め変換関数や変換ルールを定めておく。なお、振幅値を変えるサンプルについては、１サンプルに限定されない。また、係数を乗じた後の拡散パタンは、係数を乗じる前のパタンと同じベクトルパワとなるように正規化される。
【０２４４】
次に、音声復号化装置においては、過去にノイズ区間と判定された（サブ）フレームのパワを用いてノイズ区間平均パワ算出器２５０１でノイズ区間平均パワを算出する。過去のノイズ区間パワは、現パワ算出器２５０２から出力されたパワを用いて逐次更新される。ここで算出されたノイズ区間の平均パワが拡散パタン生成器３７０３に出力される。拡散パタン生成器３７０３では、ノイズ区間の平均パワに基づいて拡散パタンの雑音性を切換える。すなわち、図３８に示すように、拡散パタン生成器３７０３では、ノイズ区間の平均パワの高低に対応して複数の雑音レベルが設定されており、平均パワの高低に応じて雑音性が選択される。具体的には、ノイズ区間の平均パワが大きい場合には、拡散パタンの雑音性が高い（強い）ものを選択し、ノイズ区間の平均パワが小さい場合には、拡散パタンの雑音性が低い（弱い）ものを選択する。
【０２４５】
また、この場合にも、ノイズ区間と音声区間とで拡散パタンの雑音性を切換えるようにしても良い。なお、音声区間は、さらに有声区間と無声区間に分けても良い。この場合、切換えは、ノイズ区間では拡散パタンの雑音性が高く、音声区間では拡散パタンの雑音性が低くなるように行われる。なお、音声区間を有声区間と無声区間に分けた場合は、有声区間では拡散パタンの雑音性が低く、無声区間では拡散パタンの雑音性が高くなるように行われる。ノイズ区間、音声区間（有声区間、無声区間）の分類は、別途モード判定器１８１０などによって行われ、拡散パタンの選択はモード判定器１８１０から出力されたモード情報によって拡散パタン生成器３７０３で行う。
【０２４６】
すなわち、モード判定器１８１０で判定されたモードがモード情報として拡散パタン生成器３７０３に出力され、拡散パタン生成器３７０３では、モード情報に基づいて拡散パタンの雑音性を切換える。この場合、図３８に示すように、拡散パタン生成器３７０３では、モードに対応して複数の雑音性が設定されており、モードに応じて雑音性の強弱が選択される。具体的には、ノイズモードの場合には、拡散パタンの雑音性の強いものを選択し、音声（有声）モードの場合には、拡散パタンの雑音性の弱いものを選択する。
【０２４７】
また、別の構成の拡散パタン生成器３７０３では、拡散パタンは、ノイズ区間の平均パワの高低に対応して拡散パタンの１サンプル目の振幅値を変えることによって連続的に拡散パタンの雑音性を変化させる。具体的には、図３９に示すように、ノイズ区間の平均パワが大きい場合には、１サンプル目の振幅値が小さくする係数を乗じ、ノイズ区間の平均パワが小さい場合には、１サンプルめの振幅値が大きくなる係数を乗じる。この係数とノイズ区間の平均パワとの間には、予め定められた変換関数や変換ルールが介在し、平均パワの情報から振幅変換係数を求めることができるようになっている。なお、振幅値を変えるサンプルについては、１サンプルに限定されない。また、振幅値が変えられた拡散パタンは、振幅値を変える前の拡散パタンと同じベクトルパワとなるように正規化される。
【０２４８】
ノイズ区間の平均パワによる拡散パタンの雑音性の切換えについては、モード情報によって複数種類用意するなどして、モード情報と平均ノイズパワ情報との双方を組合わせて拡散パタンの切換えを行えば、ノイズパワが大きい場合でも、音声区間（有声区間）では拡散パタンの雑音性を中程度以下にすることなどが可能となり、ノイズ中の音声品質を改善することができる。
【０２４９】
本実施の形態においては、ノイズ区間のパワの高低に関係なく、ノイズ区間と音声区間とで拡散パタンの雑音性を切換えるようにしても良い。この場合、切換えは、上記と同様に、雑音区間では拡散パタンの雑音性が高く、音声区間では拡散パタンの雑音性が低くなるように行われる。なお、音声区間をさらに有声区間と無声区間に分けた場合は、切換えは、有声区間では拡散パタンの雑音性を低く、無声区間では拡散パタンの雑音性が高くなるように行われる。
【０２５０】
上記実施の形態６においては、可変型部分的代数符号帳／ランダム符号帳を用いた場合について説明しているが、本発明においては、一般的な代数符号帳を用いた場合にも適用することができる。
【産業上の利用可能性】
【０２５１】
本発明は、音声信号を符号化して伝送する音声符号化装置等に用いるに好適である。
【図面の簡単な説明】
【０２５２】
【図１】本発明の実施の形態に係る音声信号送信装置及び音声信号受信装置の構成を示すブロック図
【図２】本発明の実施の形態１に係る音声符号化装置の構成を示すブロック図
【図３】本発明の実施の形態１に係る音声復号化装置の構成を示すブロック図
【図４】本発明の実施の形態１に係る雑音符号ベクトル生成装置の構成を示すブロック図
【図５】本発明の実施の形態１に係る部分的代数符号帳の一例を示す図
【図６】本発明の実施の形態１に係る雑音符号ベクトル符号化処理の流れの前段半を示すフロー図
【図７】本発明の実施の形態１に係る雑音符号ベクトル符号化処理の流れの中段を示すフロー図
【図８】本発明の実施の形態１に係る雑音符号ベクトル符号化処理の流れの後段を示すフロー図
【図９】本発明の実施の形態１に係る雑音符号ベクトル復号化処理の流れを示すフロー図
【図１０】本発明の実施の形態１に係る雑音符号ベクトル生成装置の他の構成を示すブロック図
【図１１】本発明の実施の形態１に係る部分的代数符号帳の他の例を示す図
【図１２】本発明の実施の形態２に係る音声符号化装置の構成を示すブロック図
【図１３】本発明の実施の形態２に係る音声復号化装置の構成を示すブロック図
【図１４】本発明の実施の形態２に係る雑音符号ベクトル生成装置の構成を示すブロック図
【図１５】本発明の実施の形態２に係る雑音符号ベクトル符号化処理の流れを示すフロー図
【図１６】本発明の実施の形態２に係る雑音符号ベクトル復号化処理の流れを示すフロー図
【図１７】本発明の実施の形態３に係る音声符号化装置の構成を示すブロック図
【図１８】本発明の実施の形態３に係る音声復号化装置の構成を示すブロック図
【図１９】本発明の実施の形態３に係る雑音符号ベクトル生成装置の構成を示すブロック図
【図２０】本発明の実施の形態３に係る雑音符号ベクトル符号化処理の流れを示すフロー図
【図２１】本発明の実施の形態３に係る雑音符号ベクトル復号化処理の流れを示すフロー図
【図２２】本発明の実施の形態３に係る雑音符号ベクトルとインデックスの対応表の一例を示す図
【図２３】本発明の実施の形態３に係る雑音符号ベクトルとインデックスの対応表の他の例を示す図
【図２４】本発明の実施の形態４に係る音声符号化装置の構成を示すブロック図
【図２５】本発明の実施の形態４に係る音声復号化装置の構成を示すブロック図
【図２６】本発明の実施の形態５において使用する３パルス音源ベクトルを示す図
【図２７】図２６に示す３パルス音源ベクトルの態様を説明するための図
【図２８】実施の形態５における２ｃｈのランダム符号ベクトルを示す図
【図２９】ランダム符号帳の作成における各パルスの配置範囲を設定する処理を説明するためのフロー図
【図３０】ランダム符号帳の作成における各パルスの配置範囲を設定する処理を説明するためのフロー図
【図３１】ランダム符号帳の作成におけるパルス位置及び極性を決定する処理を説明するためのフロー図
【図３２】ランダム符号帳におけるサンプル間隔及びパルス位置を示す図
【図３３】部分的代数符号帳とランダム符号帳を併用した場合の態様を示す図
【図３４】部分的代数符号帳のブロック化を説明するための図
【図３５】ランダム符号帳の段階的増加を説明するための図
【図３６】本発明の実施の形態６に係る音声符号化装置の構成を示すブロック図
【図３７】本発明の実施の形態６に係る音声復号化装置の構成を示すブロック図
【図３８】実施の形態６に係る音声符号化装置及び音声復号化装置に使用される拡散パルス生成器を説明するための図
【図３９】実施の形態６に係る音声符号化装置及び音声復号化装置に使用される拡散パルス生成器を説明するための図
【図４０】従来の音声符号化装置の構成を示すブロック図
【図４１】従来の２チャンネル代数符号帳の一例を示す図
【図４２】従来の３チャンネル代数符号帳の一例を示す図
【符号の説明】
【０２５３】
２０１  前処理器
２０２  ＬＰＣ分析器
２０３  ＬＰＣ量子化器
２０４，３０３  適応符号帳
２０６，３０５  部分的代数符号帳
２０９，３０８  ＬＰＣ合成フィルタ
２１１  聴覚重みづけ器
２１２  誤差最小化器
３０１  ＬＰＣ復号器
３０２  音源パラメータ復号器
３０９  後処理器
４０１，４０５  第１のパルス発生器
４０２，４０６  パルス位置限定器
４０３，４０７  第２のパルス発生器
【図１】
2008165259.tif 000004
【図２】
2008165259.tif 000005
【図３】
2008165259.tif 000006
【図４】
2008165259.tif 000007
【図５】
2008165259.tif 000008
【図６】
2008165259.tif 000009
【図７】
2008165259.tif 000010
【図８】
2008165259.tif 000011
【図９】
2008165259.tif 000012
【図１０】
2008165259.tif 000013
【図１１】
2008165259.tif 000014
【図１２】
2008165259.tif 000015
【図１３】
2008165259.tif 000016
【図１４】
2008165259.tif 000017
【図１５】
2008165259.tif 000018
【図１６】
2008165259.tif 000019
【図１７】
2008165259.tif 000020
【図１８】
2008165259.tif 000021
【図１９】
2008165259.tif 000022
【図２０】
2008165259.tif 000023
【図２１】
2008165259.tif 000024
【図２２】
2008165259.tif 000025
【図２３】
2008165259.tif 000026
【図２４】
2008165259.tif 000027
【図２５】
2008165259.tif 000028
【図２６】
2008165259.tif 000029
【図２７】
2008165259.tif 000030
【図２８】
2008165259.tif 000031
【図２９】
2008165259.tif 000032
【図３０】
2008165259.tif 000033
【図３１】
2008165259.tif 000034
【図３２】
2008165259.tif 000035
【図３３】
2008165259.tif 000036
【図３４】
2008165259.tif 000037
【図３５】
2008165259.tif 000038
【図３６】
2008165259.tif 000039
【図３７】
2008165259.tif 000040
【図３８】
2008165259.tif 000041
【図３９】
2008165259.tif 000042
【図４０】
2008165259.tif 000043
【図４１】
2008165259.tif 000044
【図４２】
2008165259.tif 000045