(57)【特許請求の範囲】
【請求項１】
デジタル音声信号を、所定の時間区間であるフレーム毎のデジタル音声信号であるフレーム化デジタル音声信号に分割するフレーム化部と、
前記フレーム化デジタル音声信号を周波数変換して、前記フレーム毎にデジタルスペクトルを生成する周波数変換部と、
エネルギーの大きさの順に代表ベクトルにインデックスが付され、かつ、エネルギーが等しい代表ベクトルについては、ベクトルの成分を番号で示す場合に、絶対値が最大の成分を示す番号が番号の大きさ順に並ぶようにソートされてインデックスが付されたベクトル量子化テーブルと、
前記ベクトル量子化テーブルを用いて前記デジタルスペクトルをベクトル量子化することにより、該デジタルスペクトルに対応する前記インデックスを求めるベクトル量子化部と、
前記ベクトル量子化部により求められたインデックスを、該インデックスに対応する前記フレームに関連付けて記憶するインデックス記憶部と、
前記ベクトル量子化部により求められたインデックスを前記ベクトル量子化部から取得するとともに、該インデックスに対応する前記フレームよりも時間的に過去の前記フレームに関連付けられて前記インデックス記憶部に記憶されているインデックスを前記インデックス記憶部から取得し、取得した両インデックスの差分を算出するインデックス差分算出部と、
前記インデックス差分算出部により算出された差分をエントロピ符号化することにより符号を生成する符号化部と、
を備える音声符号化装置。
【請求項２】
前記インデックス差分算出部は、
前記ベクトル量子化部により求められたインデックスを前記ベクトル量子化部から取得するとともに、該インデックスに対応する前記フレームの時間的に直前の前記フレームに関連付けられて前記インデックス記憶部に記憶されているインデックスを前記インデックス記憶部から取得し、取得した両インデックスの差分を算出する、
ことを特徴とする請求項１に記載の音声符号化装置。
【請求項３】
前記ベクトル量子化テーブルは、
複数の帯域別テーブルを備え、
前記帯域別テーブルは、
それぞれが特定の帯域であるテーブル用帯域に関連付けられるとともに該テーブル用帯域における典型的な音声スペクトルパターンと整合する代表ベクトルから構成される、
ことを特徴とし、
前記ベクトル量子化部は、
前記デジタルスペクトルを前記テーブル用帯域と同じ又はより細分された帯域である量子化用帯域毎にベクトル量子化するとともに、前記量子化用帯域毎にベクトル量子化するに際して該量子化帯域が含まれる前記テーブル用帯域に対応する前記帯域別テーブルを用いる、
ことを特徴とする請求項１又は２に記載の音声符号化装置。
【請求項４】
前記符号化部が生成した符号の符号長を求め、該符号長が予め設定された目標符号長以下であるか否かを判別する符号長監視部をさらに備え、
前記符号化部は、
前記符号長監視部により前記符号長が前記目標符号長より長いと判別された場合には、所定の削除用帯域に区分された前記デジタルスペクトルのうち相対的にエネルギーの低い削除用帯域に対応する部分をエントロピ符号化の対象から除外した後に再びエントロピ符号化する、
ことを特徴とする請求項１乃至３の何れか１項に記載の音声符号化装置。
【請求項５】
前記周波数変換部は、
前記フレーム化デジタル音声信号を変形離散コサイン変換して、前記フレーム毎に前記デジタルスペクトルを生成する、
ことを特徴とする請求項１乃至４の何れか１項に記載の音声符号化装置。
【請求項６】
デジタル音声信号を、所定の時間区間であるフレーム毎のデジタル音声信号であるフレーム化デジタル音声信号に分割するフレーム化ステップと、
前記フレーム化デジタル音声信号を周波数変換して、前記フレーム毎にデジタルスペクトルを生成する周波数変換ステップと、
エネルギーの大きさの順に代表ベクトルにインデックスが付され、かつ、エネルギーが等しい代表ベクトルについては、ベクトルの成分を番号で示す場合に、絶対値が最大の成分を示す番号が番号の大きさ順に並ぶようにソートされてインデックスが付されたベクトル量子化テーブルを用いて前記デジタルスペクトルをベクトル量子化することにより、該デジタルスペクトルに対応する前記インデックスを求めるベクトル量子化ステップと、
前記ベクトル量子化ステップにより求められたインデックスを、該インデックスに対応する前記フレームに関連付けて記憶するインデックス記憶ステップと、
前記ベクトル量子化ステップにより求められたインデックスを前記ベクトル量子化ステップから取得するとともに、該インデックスに対応する前記フレームよりも時間的に過去の前記フレームに関連付けられて過去の前記インデックス記憶ステップで記憶したインデックスを取得し、取得した両インデックスの差分を算出するインデックス差分算出ステップと、
前記インデックス差分算出ステップにより算出された差分をエントロピ符号化することにより符号を生成する符号化ステップと、
から構成される音声符号化方法。
【請求項７】
前記インデックス差分算出ステップは、
前記ベクトル量子化ステップにより求められたインデックスを取得するとともに、該インデックスに対応する前記フレームの時間的に直前の前記フレームに関連付けられて前記インデックス記憶ステップで記憶されたインデックスを取得し、取得した両インデックスの差分を算出する、
ことを特徴とする請求項６に記載の音声符号化方法。
【請求項８】
前記符号化ステップが生成した符号の符号長を求め、該符号長が予め設定された目標符号長以下であるか否かを判別する符号長監視ステップをさらに備え、
前記符号化ステップは、
前記符号長監視ステップにより前記符号長が前記目標符号長より長いと判別された場合には、所定の削除用帯域に区分された前記デジタルスペクトルのうち相対的にエネルギーの低い削除用帯域に対応する部分をエントロピ符号化の対象から除外した後に再びエントロピ符号化する、
ことを特徴とする請求項６又は７に記載の音声符号化方法。
【請求項９】
コンピュータに、
デジタル音声信号を、所定の時間区間であるフレーム毎のデジタル音声信号であるフレーム化デジタル音声信号に分割するフレーム化ステップと、
前記フレーム化デジタル音声信号を周波数変換して、前記フレーム毎にデジタルスペクトルを生成する周波数変換ステップと、
エネルギーの大きさの順に代表ベクトルにインデックスが付され、かつ、エネルギーが等しい代表ベクトルについては、ベクトルの成分を番号で示す場合に、絶対値が最大の成分を示す番号が番号の大きさ順に並ぶようにソートされてインデックスが付されたベクトル量子化テーブルを用いて前記デジタルスペクトルをベクトル量子化することにより、該デジタルスペクトルに対応する前記インデックスを求めるベクトル量子化ステップと、
前記ベクトル量子化ステップにより求められたインデックスを、該インデックスに対応する前記フレームに関連付けて記憶するインデックス記憶ステップと、
前記ベクトル量子化ステップにより求められたインデックスを前記ベクトル量子化ステップから取得するとともに、該インデックスに対応する前記フレームよりも時間的に過去の前記フレームに関連付けられて過去の前記インデックス記憶ステップで記憶したインデックスを取得し、取得した両インデックスの差分を算出するインデックス差分算出ステップと、
前記インデックス差分算出ステップにより算出された差分をエントロピ符号化することにより符号を生成する符号化ステップと、
を実行させるプログラム。
【請求項１０】
前記インデックス差分算出ステップは、
前記ベクトル量子化ステップにより求められたインデックスを取得するとともに、該インデックスに対応する前記フレームの時間的に直前の前記フレームに関連付けられて前記インデックス記憶ステップで記憶されたインデックスを取得し、取得した両インデックスの差分を算出する、
ことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記符号化ステップが生成した符号の符号長を求め、該符号長が予め設定された目標符号長以下であるか否かを判別する符号長監視ステップをさらに備え、
前記符号化ステップは、
前記符号長監視ステップにより前記符号長が前記目標符号長より長いと判別された場合には、所定の削除用帯域に区分された前記デジタルスペクトルのうち相対的にエネルギーの低い削除用帯域に対応する部分をエントロピ符号化の対象から除外した後に再びエントロピ符号化する、
ことを特徴とする請求項９又は１０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声信号圧縮を実行する際に必要となる、音声符号化装置、音声符号化方法、及び、プログラムに関する。
【背景技術】
【０００２】
携帯電話機やデジタルオーディオプレイヤー等に利用される音声信号圧縮のための符号化方式として、これまでに、μ−ｌａｗ、ＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）、ＭＰ３（MPEG Audio Layer - 3）、ＶＳＥＬＰ（Vector Sum Excited Linear Prediction）、ＩＴＵ−Ｔ勧告Ｇ．７２９に代表されるＣＥＬＰ（Code-Excited Linear Prediction）系の圧縮方式等が実用化されている。特許文献１には、音声信号圧縮技術として、ベクトル量子化を用いた技術が開示されている。
【特許文献１】特開平１０−６３２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
外国語の学習に用いるための音声をデジタル化する場合は、該音声を、16kHz程度のサンプリング周波数でサンプリングすることが妥当であると考えられている。この程度のサンプリング周波数であれば諸言語の特徴を保つことが可能であるためであり、かつ、学習に必要な音質を確保するという観点からは、これ以上サンプリング周波数を高くしてもデータ量を増加させる割には効果が薄いためである。
【０００４】
しかしながら、ＣＥＬＰ系の圧縮方式に現れる圧縮ノイズは、同じ母語を話す者同士が会話により意思疎通を図るに際しては差し支えないものの、語学学習には適切ではないという問題があった。また、μ−ｌａｗやＡＤＰＣＭは、語学学習に十分な音質での音声再生を可能とするものの、符号化レートが高いために、記憶装置の記憶容量に制約がある携帯機器でこれらの圧縮方式を利用する場合、記憶容量が圧迫されて録音時間が短くなってしまうという問題があった。また、ＭＰ３は、音楽鑑賞目的等の、語学学習目的以上に高品質の音声再生が要求される場合における音声信号の圧縮を対象としており、上述の16kHz程度のサンプリング周波数では、効果的に圧縮を行うことができないという問題があった。
【０００５】
本発明は上記実情に鑑みてなされたものであり、語学学習用会話等の録音に適切なサンプリング周波数でデジタル化された音声信号の低ビットレート符号化に適した符号化を可能とする音声符号化装置、音声符号化方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、この発明の第１の観点に係る音声符号化装置は、
デジタル音声信号を、所定の時間区間であるフレーム毎のデジタル音声信号であるフレーム化デジタル音声信号に分割するフレーム化部と、
前記フレーム化デジタル音声信号を周波数変換して、前記フレーム毎にデジタルスペクトルを生成する周波数変換部と、
エネルギーの大きさの順に代表ベクトルにインデックスが付され、かつ、エネルギーが等しい代表ベクトルについては、ベクトルの成分を番号で示す場合に、絶対値が最大の成分を示す番号が番号の大きさ順に並ぶようにソートされてインデックスが付されたベクトル量子化テーブルと、
前記ベクトル量子化テーブルを用いて前記デジタルスペクトルをベクトル量子化することにより、該デジタルスペクトルに対応する前記インデックスを求めるベクトル量子化部と、
前記ベクトル量子化部により求められたインデックスを、該インデックスに対応する前記フレームに関連付けて記憶するインデックス記憶部と、
前記ベクトル量子化部により求められたインデックスを前記ベクトル量子化部から取得するとともに、該インデックスに対応する前記フレームよりも時間的に過去の前記フレームに関連付けられて前記インデックス記憶部に記憶されているインデックスを前記インデックス記憶部から取得し、取得した両インデックスの差分を算出するインデックス差分算出部と、
前記インデックス差分算出部により算出された差分をエントロピ符号化することにより符号を生成する符号化部と、
を備える。
【０００７】
音声信号の連続性及び定常性ゆえに、かかる差分の値には偏りが生じるため、エントロピ符号化により効率良く符号化することができる。
【０００８】
前記インデックス差分算出部は、例えば、前記ベクトル量子化部により求められたインデックスを前記ベクトル量子化部から取得するとともに、該インデックスに対応する前記フレームの時間的に直前の前記フレームに関連付けられて前記インデックス記憶部に記憶されているインデックスを前記インデックス記憶部から取得し、取得した両インデックスの差分を算出する。
【００１１】
前記ベクトル量子化テーブルは、複数の帯域別テーブルを備え、前記帯域別テーブルは、それぞれが特定の帯域であるテーブル用帯域に関連付けられるとともに該テーブル用帯域における典型的な音声スペクトルパターンと整合する代表ベクトルから構成される、ことを特徴とし、前記ベクトル量子化部は、前記デジタルスペクトルを前記テーブル用帯域と同じ又はより細分された帯域である量子化用帯域毎にベクトル量子化するとともに、前記量子化用帯域毎にベクトル量子化するに際して該量子化帯域が含まれる前記テーブル用帯域に対応する前記帯域別テーブルを用いてもよい。
【００１２】
音声信号は帯域毎に特性が異なるため、帯域毎に異なるベクトル量子化テーブルを参照するようにすれば、ベクトル量子化を効率的に行うことができる場合がある。
【００１３】
前記符号化部が生成した符号の符号長を求め、該符号長が予め設定された目標符号長以下であるか否かを判別する符号長監視部をさらに備え、前記符号化部は、前記符号長監視部により前記符号長が前記目標符号長より長いと判別された場合には、所定の削除用帯域に区分された前記デジタルスペクトルのうち相対的にエネルギーの低い削除用帯域に対応する部分をエントロピ符号化の対象から除外した後に再びエントロピ符号化する、ことが望ましい。
【００１４】
記憶情報量や伝達情報量に制約がある場合、音声復号に重要と考えられる帯域についてだけでも符号化すれば、再生音声の劣化を最小限に抑えることができる。
【００１５】
前記周波数変換部は、例えば、前記フレーム化デジタル音声信号を変形離散コサイン変換して、前記フレーム毎に前記デジタルスペクトルを生成する。
【発明の効果】
【００２１】
本発明によれば、語学学習用会話等の録音に適切なサンプリング周波数でデジタル化された音声信号の圧縮及び復元に際して扱われる符号を、符号化レートの低いものにすることができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して、本発明の実施形態について詳細に説明する。
【００２３】
（実施形態１）
まず、時間領域の信号としての音声信号と、周波数領域の信号としての音声信号すなわちスペクトルと、の対応関係について説明する。なお、以下では原則として、単に音声信号というときは実時間領域の信号としての音声信号を指すものとする。
【００２４】
時間の関数である音声信号は、基本的には、各時間帯の周波数特性を表現するスペクトルの時系列と等価である。時間軸をどのような時間帯に区切るか、さらには、ある時間帯を代表するスペクトルを音声信号からどのように求めるか、については、様々な方針があり、本発明はかかる様々な方針に適用することができる。一例として、本実施形態では、時間軸を区切るための概念としてフレーム及びブロックという概念を導入するとともに、スペクトルを音声信号から求めるにあたっては前記ブロック単位でのＭＤＣＴ（Modified Discrete Cosine Transform：変形離散コサイン変換）と前記フレーム単位でのＭＤＣＴ係数の集積処理とを組み合わせた手法を採用する。
【００２５】
図１に、フレーム同士の関係、ブロック同士の関係、及び、フレームとブロックとの関係を示す。紙面の横方向が時間軸であるとする。図示するように、時間軸は、まずフレームという所定の時間長を有する単位に区切られ、各フレームがさらに、ブロックというより短い時間長を有する単位に区切られる。ただし、フレーム同士は、ブロックの半分の長さに相当する重複部分を有するとともに、ブロック同士も、ブロックの半分の長さに相当する重複部分を有する。1個のフレームにはブロック0からブロックL-1までのL個のブロックが含まれる。Lは後述のようにベクトル量子化に要する処理時間やＶＱテーブルの容量等を勘案した上で、例えばL=4と決定される。2個の隣接フレームの開始時刻間又は終了時刻間に相当する時間をΔtとすると、図示するように、各フレームは時刻t-2Δt、時刻t-Δt、時刻t、時刻t+Δtといった時間間隔Δt毎の各時刻に対応する。本実施形態においてはフレーム1個にスペクトル1個を割り当てることにするので、スペクトルは、時刻t-2Δtにおけるスペクトル、時刻t-Δtにおけるスペクトル、時刻tにおけるスペクトル、時刻t+Δtにおけるスペクトル、というように、時間間隔がΔtであるような時系列をなす。
【００２６】
図２に、時刻tに対応するフレームにおけるスペクトルの求め方を模式的に示す。1ブロックは、1回のＭＤＣＴを行う単位であり、1ブロックに含まれる音声信号サンプル数をMとすると、ＭＤＣＴの結果、0次から(M/2-1)次までの合計M/2個のＭＤＣＴ係数が求まる。なお、16kHz程度のサンプリング周波数でデジタル化した音声信号の場合、Mは例えば256であることが好適である。ＭＤＣＴ係数の次数は周波数に対応する。つまり、高次のＭＤＣＴ係数は、音声信号の高周波成分に対応する。よって、縦軸をＭＤＣＴ係数として横軸を次数としたグラフは、図示するように、いわばブロック毎のスペクトルに相当するといえる。
【００２７】
時刻tに対応するフレームに含まれるブロックk（0≦k≦L-1）で行われたＭＤＣＴの結果求まったj（0≦j≦M/2-1）次のＭＤＣＴ係数をXt、j、kと記すことにする。すると、jは周波数に相当する量であることになる。すなわち、jの大小は、周波数の高低に対応する。そこで、以下では、「周波数j」と表記することがある。
【００２８】
また、時刻tに対応するフレームにおいては、ブロック毎のスペクトルが、L個求まる。すなわち、ブロック0について、Xt、0、0、Xt、1、0、・・・、Xt、M/2-1、0により表されるスペクトルが求まり、ブロック1について、Xt、0、1、Xt、1、1、・・・、Xt、M/2-1、1により表されるスペクトルが求まり、・・・、ブロックL-1について、Xt、0、L-1、Xt、1、L-1、・・・、Xt、M/2-1、L-1により表されるスペクトルが求まる。
【００２９】
これらL個の、ブロック毎のスペクトルに対して、図２の点線矢印で示されるような集積処理を施すことにより、最終的に、時刻tに対応する1個のスペクトルを完成させる。すなわち、ＭＤＣＴ係数を、Xt、0、0、Xt、0、1、・・・、Xt、0、L-1、Xt、1、0、Xt、1、1、・・・、Xt、1、L-1、Xt、2、0、・・・、Xt、M/2-2、L-1、Xt、M/2-1、0、Xt、M/2-1、1、・・・、Xt、M/2-1、L-1のように並べることにより、時刻tに対応するスペクトルを完成させる。
【００３０】
時刻tに対応するスペクトルのうちj次のＭＤＣＴ係数に対応する成分をブロックの時系列順に並べてベクトルとして表現したものをFt、jとする。すなわち、Ft、j ={Xt、j、0、Xt、j、1、・・・、Xt、j、L-1}である。また、時刻tに対応するスペクトルは、図２に示すとおり、ベクトルFt、jをFt、0、Ft、1、・・・、Ft、M/2-1の順に並べたものであるともいえる。
【００３１】
このようにベクトルFt、jは、時刻tに対応するスペクトルの一部である周波数jに対応している。以下では、スペクトルのうち、このように周波数jに対応する部分を、部分スペクトルと呼ぶ。
【００３２】
以上で、音声信号とスペクトルとの対応関係について明らかにした。続いて、本実施形態に係る音声符号化装置及び音声復号装置の構成について説明する。なお、ユーザにとっての利便性を確保する観点から、本実施形態においては、音声符号化装置と音声復号装置とは、音声符号化兼復号装置として、単一の装置に統合されているものとする。
【００３３】
図３に、本実施形態に係る音声符号化兼復号装置３の物理的な構成を示す。音声符号化兼復号装置３は、例えば、携帯電話機である。
【００３４】
音声符号化兼復号装置３は、ＣＰＵ１２１と、ＲＯＭ（Read Only Memory）１２３と、記憶部１２５と、音声処理部１４１と、無線通信部１６１と、操作キー入力内容処理部１７１と、を備え、これらは、システムバス１８１で相互に接続されている。システムバス１８１は、命令やデータを転送するための伝送経路である。
【００３５】
ＲＯＭ１２３には、音声符号化及び復号のための動作プログラム、ベクトル量子化に必要な代表ベクトル、等が格納されている。
【００３６】
記憶部１２５は、ＲＡＭ（Random Access Memory）１３１と、ハードディスク１３３と、から構成されて、デジタル音声信号、ＭＤＣＴ係数、等を記憶する。特に本実施形態においては、音声符号化兼復号装置１１１は、音声符号化と音声復号のいずれの場合にも、ある時刻における処理のために直前の時刻の音声信号に基づく情報を必要とするので、記憶部１２５は、かかる情報を少なくとも一時的に格納しておく遅延処理用バッファメモリとして、重要な役割を果たす。
【００３７】
音声符号化兼復号装置３は、マイクロフォン１５１と、スピーカ１５３と、アンテナ１６３と、操作キー１７３と、をさらに備える。
【００３８】
マイクロフォン１５１は、送信側すなわち符号化側のユーザの音声を収集し、音声処理部１４１に引き渡す。スピーカ１５３は、音声処理部１４１から引き渡された復元音声を、受信側すなわち復号側のユーザに対して、発する。アンテナ１６３は、無線通信部１６１から引き渡された符号を受信側すなわち復号側の音声符号化兼復号装置３に無線信号として送信したり、送信側すなわち符号化側の装置３から送信された無線信号を受信して無線通信部１６１に引き渡したりする。操作キー１７３は、あらかじめ与えられている各種初期設定値をユーザが自らの判断により変更するときや、送信側すなわち符号化側のユーザが、通話の相手方である受信側すなわち復号側の装置３を特定したりするときに、ユーザの意図を装置３に伝達するために用いられる。かかる特定は、例えば携帯電話機であれば、各携帯電話機に割り当てられた電話番号を利用して行われる。
【００３９】
音声処理部１４１、無線通信部１６１、操作キー入力内容処理部１７１は、システムバス１８１を介してＣＰＵ１２１の制御下にある。
【００４０】
図４は、本実施形態に係る音声符号化兼復号装置３が音声符号化装置として機能する場合の機能構成を示すブロック図である。音声符号化兼復号装置３は、音声符号化装置としては、図示するように、Ａ／Ｄ変換部４、ＤＣ（Direct Current）除去部２３、フレーム化部２５ 、レベル調整部２７、周波数変換部２９、スペクトル完成部３１、ベクトル量子化関連処理部３３、エントロピ符号化部３５、符号長監視部３７、帯域データ削除部３９、低域用ソート済ＶＱテーブル４１、及び、高域用ソート済ＶＱテーブル４３を備える。
【００４１】
図３のＣＰＵ１２１は、ＲＯＭ１２３に書き込まれた動作プログラムに従い音声処理部１４１及び記憶部１２５と協同して動作することにより、図４のＡ／Ｄ変換部４として機能する。ＣＰＵ１２１はまた、ＲＯＭ１２３に書き込まれた動作プログラムに従い記憶部１２５と協同して動作することにより、ＤＣ除去部２３、フレーム化部２５、レベル調整部２７、周波数変換部２９、スペクトル完成部３１、ベクトル量子化関連処理部３３、エントロピ符号化部３５、符号長監視部３７、及び、帯域データ削除部３９として機能する。ＲＯＭ１２３は、ベクトル量子化に必要な代表ベクトルをデータベースとして格納しており、低域用ソート済ＶＱテーブル４１及び高域用ソート済ＶＱテーブル４３として機能する。
【００４２】
図４のＡ／Ｄ変換部４は、入力されたアナログ音声信号をデジタル音声信号に変換し、ＤＣ除去部２３に出力する。サンプリング周波数は、16kHz程度であることが望ましいが、11.025kHz、22.05kHz等であってもかまわない。
【００４３】
ＤＣ除去部２３は、Ａ／Ｄ変換部４から入力されたデジタル音声信号の直流成分を除去し、フレーム化部２５に出力する。音声信号の直流成分を除去するのは、直流成分が音質にほとんど無関係であることによる。直流成分は、例えば、既知の高域通過フィルタにより除去することができる。
【００４４】
フレーム化部２５は、ＤＣ除去部２３から入力された信号を、図１及び図２を参照して説明したフレームに分割し、レベル調整部２７に出力する。基本的にはフレーム1個が音声信号圧縮の処理単位である。ただし、本実施形態においては、後述のように、あるフレームにおける処理には、時間的に直前のフレームにおける処理の結果が必要となるので、この意味では、フレーム2個が音声信号圧縮の処理単位となる。
【００４５】
レベル調整部２７は、フレーム毎に、入力された音声信号のレベル調整を行い、レベル調整された信号を周波数変換部２９に出力する。レベル調整とは、１フレーム中に含まれる信号の振幅の最大値を、指定されたビット（ 以下、制圧目標ビット）数に収まるようにすることである。レベル調整は、例えば、１フレーム中の信号の最大振幅をnビット、制圧目標ビットをNビットとすると、フレーム中の信号を全て、次式を満たすshift_bit数分ＬＳＢ（Least Significant Bit：最下位ビット）側にシフトすることによって実現できる。
shift_bit=0（n≦Nの場合）、shift_bit=n-N（n＞Nの場合）
【００４６】
音声再生時には、振幅が制圧目標ビット以下に制圧された信号を元に戻す必要があるため、shift_bitを表す信号を、音声圧縮信号の一部として出力する必要がある。よって、レベル調整部２７は、レベル調整済の信号を周波数変換部２９に引き渡すとともに、shift_bitを、符号化の対象に含めるためにエントロピ符号化部３５に引き渡す。
【００４７】
周波数変換部２９は、レベル調整部２７から入力された信号に対し周波数変換を施し、スペクトル完成部３１に出力する。本実施形態では、上述のように、周波数変換としてＭＤＣＴを用いる。周波数変換部２９は、上述のブロック毎にＭＤＣＴを実行し図２に示したブロック毎のスペクトルを生成して、スペクトル完成部３１に引き渡す。
【００４８】
図４のスペクトル完成部３１は、まず、周波数変換部２９から入力されたＭＤＣＴ係数を周波数毎に並べ替える。これは、図２の点線矢印で示した、ブロック毎のスペクトルを集積してフレームに対応するスペクトルを完成させる操作である。スペクトル完成部３１は続いて、同一周波数帯域の係数をまとめてベクトル化し、ベクトル量子化関連処理部３３に出力する。ここで、ベクトル化の結果生成されるベクトルは、既に図２を参照して説明したベクトルFt、j={Xt、j、k|k=0、1、・・・、L-1}である。
【００４９】
このように、同一周波数帯域の信号をまとめてベクトル化すると、例えば、定常信号を多く含む場合、後のベクトル量子化の精度が向上する。
【００５０】
ベクトル量子化関連処理部３３は、スペクトル完成部３１で作成されたベクトルFt、jを受け取り、低域用ソート済ＶＱテーブル４１及び高域用ソート済ＶＱテーブル４３を参照して後述の処理によりインデックス差分を算出し、算出したインデックス差分をエントロピ符号化部３５に引き渡す。
【００５１】
ベクトル量子化関連処理部３３は、図５に示すように、ベクトル量子化部５と、代表ベクトルインデックス記憶部４７と、インデックス差分算出部４５と、を備える。
【００５２】
ベクトル量子化部５は、複数の音声パターンを示す代表ベクトルを格納したＶＱ（Vector Quantization）テーブルを参照し、スペクトル完成部３１で作成されたベクトルFt、jと、ＶＱテーブルに格納された各代表ベクトルを比較し、最も類似した代表ベクトルを選択し、該代表ベクトルに付されたインデックスiを、インデックス差分算出部４５及び代表ベクトルインデックス記憶部４７に出力する。
【００５３】
ベクトル符号化の対象であるベクトルと類似した代表ベクトルを選択するにあたっての基準には、様々なものが考えられる。本実施形態においては、次のように代表ベクトルを選択する。すなわち、ＶＱテーブルに格納されたiMAX個の代表ベクトルを{Vi|i=1、・・・、iMAX}、Vi={vi、k|k=0、・・・、L-1}とすると、符号化対象のベクトルFt、jの各要素Xt、j、kと、ＶＱテーブルに格納されたi番目の代表ベクトルViの各要素vi、kと、を比較し、ベクトルFt、jとベクトルViとの差eiが最小となるようなViを、代表ベクトルとして選択する。差eiの算出は次式により行う。
ei=(Xt、j、0- vi、0)^2+(Xt、j、1- vi、1)^2+・・・+(Xt、j、k- vi、k)^2
ただし、記号「^」は、累乗を表す。
【００５４】
代表ベクトルの数imaxと、１フレームあたりのブロック数すなわちベクトル長Lは、ベクトル量子化に要する処理時間やＶＱテーブルの容量等を勘案して決定される。例えば、ベクトル長Lを2にして代表ベクトル数を256にしたり、ベクトル長Lを4にして代表ベクトル数を8192（=213）にしたりする等、自由な組み合わせが考えられる。
【００５５】
本実施形態においては、ＶＱテーブルに格納されている代表ベクトルには、エネルギーの昇順にインデックスが付されている。つまり、代表ベクトルはエネルギー順にソートされているのであり、代表ベクトルViのエネルギーをE(Vi)とすると、
E(V1)≦E(V2)≦・・・≦E(ViMAX)
である。ここで、エネルギーE(Vi)は、
E(Vi)=|Vi|^2=vi、0^2+vi、1^2+・・・+vi、L-1^2
のように定義する。本実施形態においては、このようにソート済の代表ベクトルを格納したＶＱテーブルを用いることにする。
【００５６】
また、音声は、高域周波数部分と低域周波数部分とで特性が異なる場合が多いため、本実施形態においては、高域と低域で異なるＶＱテーブルを用いることにする。
【００５７】
そこで、本実施形態においては、ＶＱテーブルとして、低域のベクトル量子化に用いるための、ソート済の代表ベクトルが格納されたＶＱテーブルである低域用ソート済ＶＱテーブル４１と、高域のベクトル量子化に用いるための、ソート済の代表ベクトルが格納されたＶＱテーブルである高域用ソート済ＶＱテーブル４３と、を用いる。
【００５８】
スペクトル完成部３１で作成されたベクトルFt、j={Xt、j、k|k=0、1、・・・、L-1}(j=0、1、・・・、M/2-1)において、高域と低域の境界は、例えば、周波数帯域を示すjを単純に半分に分けたところにすればよい。すなわち、Ft、0、Ft、1、・・・、Ft、M/4-1を低域、Ft、M/4、Ft、M/4+1、・・・、Ft、M/2-1を高域とすればよい。したがって、ベクトル量子化部５において、低域のベクトルFt、0、Ft、1、・・・、Ft、M/4-1は、低域用ソート済ＶＱテーブル４１に格納された各代表ベクトルと比較され、最も類似した代表ベクトルに付されたインデックスiが出力される。同様に、高域のベクトルFt、M/4、Ft、M/4+1、・・・、Ft、M/2-1は、高域用ソート済ＶＱテーブル４３に格納された各代表ベクトルと比較され、最も類似した代表ベクトルに付されたインデックスiが出力される。
【００５９】
これ以降のベクトル量子化関連処理部３３が行う処理は、時間的に直前のフレームにおけるベクトル量子化の結果を利用する等、ある種の遅延処理を含む。そこで、理解を容易にするために、図６を参照してかかる処理を一段階ずつ説明する。
【００６０】
代表ベクトルインデックス記憶部４７は、ベクトル量子化部５からインデックスiを受け取り、記憶する。代表ベクトルインデックス記憶部４７は、遅延処理を行うためのバッファメモリとして機能する。ベクトル量子化関連処理部３３が時刻tにおける処理を開始する時点で、図６（ａ）に示すように、代表ベクトルインデックス記憶部４７は、直前のフレームに対応する時刻t-Δtにおける処理の結果として、時刻t-Δtにおける周波数jに対応したベクトルFt-Δt、jに最も類似した代表ベクトルのインデックスであるi(t-Δt、j)を記憶している。また、時刻tにおける処理は、ベクトル量子化部５に、ベクトルFt、jが入力されることにより開始される。
【００６１】
図６（ｂ）に示すように、ベクトル量子化部５は、入力されたベクトルFt、jに最も類似した代表ベクトルのインデックスであるi(t、j)を求める。
【００６２】
次に、図６（ｃ）に示すように、ベクトル量子化部５は、求めたi(t、j)を、インデックス差分算出部４５及び代表ベクトルインデックス記憶部４７に引き渡す。代表ベクトルインデックス記憶部４７は、ベクトル量子化部５からi(t、j)を受け取って記憶するとともに、それまで記憶していたi(t-Δt、j)をインデックス差分算出部４５に引き渡す。
【００６３】
続いて、図６（ｄ）に示すように、ベクトル量子化部５からi(t、j)を受け取るとともに代表ベクトルインデックス記憶部４７からi(t-Δt、j)を受け取ったインデックス差分算出部４５は、インデックス差分Δi(t、j)を、
Δi(t、j)=i(t、j)-i(t-Δt、j)
により求める。そして、インデックス差分算出部４５は、図６（ｅ）に示すように、求めたインデックス差分Δi(t、j)を出力する。出力先は、図４及び図５に示すとおり、エントロピ符号化部３５である。
【００６４】
時刻tにおける処理が終わった段階で、図６（ｅ）に示すように、代表ベクトルインデックス記憶部４７には、時刻tにおける周波数jに対応するインデックスi(t、j)が格納されている。つまり、時刻を表す変数がt-Δtからtに変化したことを除けば、図６（ａ）に示す状態に戻っている。したがって、時間的に後の、時刻t+Δt以降に対応する各フレームについては、図６（ａ）から図６（ｅ）までの処理と同様の処理を繰り返せばよい。
【００６５】
図４及び図５に示すように、エントロピ符号化部３５は、レベル調整部２７からshift_bitを受け取るとともに、ベクトル量子化関連処理部３３の中のインデックス差分算出部４５からインデックス差分Δi(t、j)を受け取り、受け取ったこれらの量をエントロピ符号化して符号を生成し、生成した符号を音声圧縮信号として出力する。かかる出力は、図３のＣＰＵ１２１がＲＯＭ１２３に格納された動作プログラムに基づいて無線通信部１６１に送信命令を発し、それに応じて無線通信部１６１がアンテナ１６３を介して前記符号を無線通信により受信側すなわち音声復号側の音声符号化兼復号装置３に向けて送信することにより、行われる。また、エントロピ符号化部３５は、生成した符号を、符号長監視部３７に対しても出力する。これは後述のように、生成された符号の符号長が所定の制限を満たしているか否かが判別される必要があるためである。
【００６６】
エントロピ符号化とは、信号の統計的性質を利用して、符号をより短い符号へと変換する符号化方式であり、ハフマン（Huffman）符号化、算術符号化、レンジコーダ（Range Coder）による符号化等が知られている。エントロピ符号化方法の特徴として、情報圧縮精度が一定であっても、圧縮率が一定ではない点が挙げられる。すなわち、同一長であるが内容の異なる複数のデータに対して、エントロピ符号化を施した場合、一般に、元のデータ中のデータ要素の出現頻度の偏り具合の違いのために、符号化後の符号長はまちまちになる。一般に、符号化する前に圧縮率を予測することは困難であり、高い圧縮率が得られるか否かは、実際にエントロピ符号化を行ってみるまで分からない。一方で、本発明は低いビットレートでの符号化を目的とするものであり、音声符号化兼復号装置３が例えば携帯電話機であれば、符号長には、通信インフラ等に起因する制限がある。エントロピ符号化部３５は、原則としては、音声品質の劣化を最小限に抑制するために、レベル調整部２７とベクトル量子化関連処理部３３から受け取った情報を全てエントロピ符号化するのであるが、エントロピ符号化部３５が実際にエントロピ符号化を行ってみたところ、圧縮率が結果的にたまたま符号長に係る上述の制限を満たさない程度に低かった場合には、符号化対象とする情報を適宜間引いて、符号化し直す必要がある。
【００６７】
そこで、本実施形態においては、符号長監視部３７及び帯域データ削除部３９が設けられている。符号長監視部３７は、エントロピ符号化部３５が生成した符号を受け取りその符号長を測定するとともに、該符号長が所定の目標符号長以下に収まっているか否かを監視する。符号長監視部３７は、かかる監視の結果、目標符号長を超えてしまっていると判別した場合には、その旨を帯域データ削除部３９に伝える。帯域データ削除部３９は、符号長が長すぎるとの連絡を受け取った場合、符号化対象から除外する周波数帯域、具体的には周波数jのうちからjにおけるＭＤＣＴ係数を削除しても音質維持の点で比較的影響が少ないと考えられるようなjを決定し、決定結果をエントロピ符号化部３５に通知する。かかる通知を受けたエントロピ符号化部３５は、帯域データ削除部３９が決定した削除すべき帯域を符号化対象から除外してエントロピ符号化をやり直す。再度生成された符号は再び符号長監視部３７による監視を受け、なおも符号長が長すぎる場合には、符号化対象から除外されるべきさらに多くの帯域が帯域データ削除部３９により決定され、エントロピ符号化部３５にフィードバックされる。かかるループ処理は、エントロピ符号化部３５が生成した符号の符号長が前記目標符号長以下になるまで繰り返される。
【００６８】
帯域データ削除部３９は、上述のように、各周波数jに対応する各帯域のうちから音声品質劣化防止の点で削除しても影響の少ない帯域を選択する。削除しても影響の少ない帯域を決定するための基準には様々なものが考えられるが、本実施形態においては、エネルギーの小さい帯域を削除することにする。このようにすれば、比較的簡易に、削除すべき帯域を決定することができる。すなわち、周波数jにおけるエネルギーとして、エネルギーE(Ft、j)を、
E(Ft、j)=|Ft、j|^2=Xt、j、0^2+Xt、j、1^2+・・・+Xt、j、L-1^2
のように定義し、エネルギーE(Ft、j)が小さい周波数jに対応する帯域を優先して削除することにする。なお、周波数jに対応する帯域の削除は、具体的には、例えば、ベクトルFt、jの全ての成分を0に置換することによって行う。
【００６９】
情報量監視部３７及び帯域データ削除部３９が行う以上の動作の手順は、図７に示すフローチャートにまとめられている。物理的には、上述のように、ＣＰＵ１２１が、ＲＯＭ１２３に書き込まれた動作プログラムに従い記憶部１２５と協同して動作することによって、情報量監視部３７及び帯域データ削除部３９として機能する。
【００７０】
時刻tに対応するフレームにおけるＭＤＣＴが終了し、記憶部１２５には、既にベクトルFt、j(0≦j≦M/2-1)が格納されているとする。
【００７１】
ＣＰＵ１２１は、記憶部１２５からベクトルFt、j(0≦j≦M/2-1)をＣＰＵの内部レジスタ（図示せず）にロードし、周波数jにおけるエネルギーE(Ft、j)を計算し、計算したE(Ft、j)に基づいてソートを行って、エネルギーの低い帯域が優先的に削除対象となるように、各周波数jに優先順位を割り当てる（ステップＳ７）。もっとも、最初は、スペクトルの全帯域が符号化の対象になる（ステップＳ１１）。ＣＰＵ１２１は続いて、符号化の対象となっているデータをエントロピ符号化することにより、符号を生成してから（ステップＳ１３）、符号長を求める（ステップＳ１５）。ＣＰＵ１２１はさらに、求めた符号長が所定の目標符号長以下であるか否かを判別し（ステップＳ１７）、目標符号長以下であると判別された場合（ステップＳ１７；Ｙｅｓ）は処理を終了し、目標符号長を超えていると判別された場合（ステップＳ１７；Ｎｏ）はステップＳ１９に進む。ステップＳ１９では、ＣＰＵ１２１は、直前のエントロピ符号化（ステップＳ１３）の際に符号化対象となっていた帯域のうち、削除の優先順位が最上位のものを除いた残りを、新たな符号化対象として設定した上で（ステップＳ１９）、ステップＳ１３に戻ってエントロピ符号化をやり直す。
【００７２】
このようにすれば、やむを得ず一部の帯域を符号化の対象から除外せざるを得ない場合でも、相対的にエネルギーが高いゆえに再生音声品質への影響が大きいと思われる帯域は符号化対象として残ることが期待される。よって、帯域削除による再生音声品質の低下を最小限度に抑制することができる。
【００７３】
時刻tを固定した上で様々な周波数jに渡るE(Ft、j)の値を考慮するにせよ、周波数jを固定した上で十分に長い時間に渡るE(Ft、j)の値を考慮するにせよ、E(Ft、j)自体の値としては、大小様々な値が出現する。しかし、隣接時刻間のエネルギー差分であるE(Ft、j)-E(Ft-Δt、j)の値としては、様々な周波数jに渡って考慮するにせよ、十分に長い時間に渡って考慮するにせよ、比較的小さい値が高い頻度で出現する。これは、音声信号には連続性があることと、さらに、音声信号にはしばしば定常状態が出現することと、による。
【００７４】
図６等に示したように、ベクトル量子化部５により、ベクトルFt、jは代表ベクトルVi(t、j)に、ベクトルFt-Δt、jは代表ベクトルVi(t-Δt、j)に、それぞれ近似される。上述のように、代表ベクトルはエネルギー順にソートされているために、代表ベクトルに付されたインデックスはそれ自体が既に該代表ベクトルのエネルギーの指標としての意味を有していることと、E(Ft、j)-E(Ft-Δt、j)の値としては、比較的小さい値が高い頻度で出現することと、を考え合わせると、時系列上で隣接する2個の代表ベクトルに付されたインデックスの差分つまりインデックス差分算出部４５から出力されるインデックス差分Δi(t,j)（=i(t、j)-i(t-Δt、j)）の値としては、比較的小さい値が高い頻度で出現すると結論される。
【００７５】
一般に、符号化の対象となる値に偏りが生じると、エントロピ符号化の圧縮効率が向上する。したがって、本実施形態によれば、高い頻度で比較的小さい値となるような量であるインデックス差分Δi(t,j)がエントロピ符号化されるので、符号化の効率が高く、符号長の短い符号で高品質の音声信号を伝達することができる。
【００７６】
よって、本実施形態によれば、語学学習用会話等の録音に適切なサンプリング周波数を採用しつつ、符号化レートを低減させることができる。例えば、本実施形態に係る音声符号化兼復号装置１１１により、16kHz程度のサンプリング周波数の音声信号を16kbps程度のレートに圧縮することが可能になる。
【００７７】
なお、以上では、時刻tと時刻t-Δtとの間での代表ベクトルに付されたインデックスの差分の値が音声符号化装置から音声復号装置に送られる処理を記述した。かかる処理により音声再生が可能になるためには、当然のことながら、少なくとも、符号化対象となる最初のフレームについては、インデックス自体の値が初期値として前者の装置から後者の装置に送られる必要がある。そこで本実施形態においては、音声符号化装置のユーザが発話を開始した時刻に対応するフレームについては、かかる初期値が音声復号装置に送られることとする。さらに、差分のみを送られ続けると音声復号側において受信時の電気的エラー等に起因する誤差が蓄積して音声が正しく再生されなくなる可能性があることに鑑み、所定のリフレッシュレートでインデックス自体の値が送られることとする。
【００７８】
図８は、本実施形態に係る音声符号化兼復号装置３が音声復号装置として機能する場合の機能構成を示すブロック図である。音声符号化兼復号装置３は、音声復号装置としては、図示するように、エントロピ復号部８、ベクトル逆量子化関連処理部４９、時間順並べ替え部５１、周波数逆変換部５３、レベル再現部５５、フレーム合成部５７ 、及び、Ｄ／Ａ変換部５９を備え、さらに、音声符号化装置として機能する場合と同じ低域用ソート済ＶＱテーブル４１及び高域用ソート済ＶＱテーブル４３を備える。
【００７９】
図３のＣＰＵ１２１は、ＲＯＭ１２３に書き込まれた動作プログラムに従い記憶部１２５と協同して動作することにより、図８のエントロピ復号部８、ベクトル逆量子化関連処理部４９、時間順並べ替え部５１、周波数逆変換部５３、レベル再現部５５、及び、フレーム合成部５７として機能する。ＣＰＵ１２１はまた、ＲＯＭ１２３に書き込まれた動作プログラムに従い音声処理部１４１及び記憶部１２５と協同して動作することにより、図８のＤ／Ａ変換部５９として機能する。
【００８０】
本実施形態に係る音声符号化兼復号装置３は、音声復号装置として動作する場合は、別の音声符号化兼復号装置３が音声符号化装置として動作した結果無線通信等の手段により送信した情報である音声圧縮信号を、アンテナ１６３により収集する。無線通信部１６１は、ＣＰＵ１２１がＲＯＭ１２３に格納された動作プログラムに基づいて発する命令に従い、アンテナ１６３が収集した情報を、記憶部１２５に格納する。
【００８１】
エントロピ復号部８は、エントロピ符号化により符号化された信号である音声圧縮信号を復号する。エントロピ復号部８は続いて、復号した結果得られた情報のうち、インデックス差分Δi(t、j)をベクトル逆量子化関連処理部４９に出力するとともに、該情報のうち、shift_bitをレベル再現部５５に出力する。ベクトル逆量子化関連処理部４９は、エントロピ復号部８からインデックス差分Δi(t、j)を受け取り、低域用ソート済ＶＱテーブル４１及び高域用ソート済ＶＱテーブル４３を参照して後述の処理により適切な代表ベクトルを選択し、選択した代表ベクトルを、スペクトルの近似的な復元に用いる量として時間順並べ替え部５１に引き渡す。
【００８２】
ベクトル逆量子化関連処理部４９は、図９に示すように、インデックス算出部９と、代表ベクトルインデックス記憶部６１と、ベクトル逆量子化部６３と、を備える。
【００８３】
インデックス算出部９は、後述のように代表ベクトルインデックス記憶部６１との間で情報の授受を行うことにより、音声符号化装置としての音声符号化兼復号装置３が周波数jにおけるベクトル量子化により求めた代表ベクトルに付されたインデックスを算出し、ベクトル逆量子化部６３に引き渡す。
【００８４】
ベクトル逆量子化部６３は、インデックス算出部から引き渡されたインデックスが付された代表ベクトルを、低域用ソート済ＶＱテーブル４１又は高域用ソート済ＶＱテーブル４３の中から検索することにより取得する。この処理の対象となっている周波数jが先に定義した低域に対応している場合には低域用ソート済ＶＱテーブル４１の中が、また、周波数jが高域に対応している場合には高域用ソート済ＶＱテーブル４３の中が、それぞれ検索される。ベクトル逆量子化部６３は、検索した代表ベクトルを、フレーム毎のスペクトルのうち周波数jに対応する帯域の部分を近似した結果として、時間順並べ替え部５１に出力する。
【００８５】
音声符号化装置としての音声符号化兼復号装置３がある時刻tの周波数jにおけるベクトル量子化により求めた代表ベクトルに付されたインデックスを、インデックス算出部９が代表ベクトルインデックス記憶部６１との間で情報の授受を行うことにより算出するに際しては、時間的に直前のフレームにおけるベクトル量子化の結果を利用する等、ある種の遅延処理がなされる。そこで、理解を容易にするために、図１０及び図１１を参照しつつ、かかる処理を一段階ずつ説明する。
【００８６】
代表ベクトルインデックス記憶部６１は、インデックス算出部９からインデックスiを受け取り、記憶する。代表ベクトルインデックス記憶部６１は、遅延処理を行うためのバッファメモリとして機能する。ベクトル逆量子化関連処理部４９が時刻tにおける処理を開始する時点で、図１０（ａ）に示すように、代表ベクトルインデックス記憶部６１は、直前のフレームに対応する時刻t-Δtにおける処理の結果として、時刻t-Δtにおける周波数jに対応したベクトルFt-Δt、jに最も類似した代表ベクトルのインデックスであるi(t-Δt、j)を記憶している。また、時刻tにおける処理は、インデックス算出部９に、インデックス差分Δi(t、j)が入力されることにより開始される。
【００８７】
図１０（ｂ）に示すように、代表ベクトルインデックス記憶部６１は、記憶していたインデックスi(t-Δt、j)をインデックス算出部９に引き渡す。次に、インデックス算出部９は、図１０（ｃ）に示すように、エントロピ復号部８から入力されたインデックス差分Δi(t、j)を、代表ベクトルインデックス記憶部６１から引き渡されたインデックスi(t-Δt、j)に加えることにより、時刻tにおけるインデックスi(t、j)を求める。つまり、インデックス算出部９は、i(t、j)=i(t-Δt、j)+Δi(t、j)という演算を行う。インデックス算出部９は続いて、図１１（ａ）に示すように、求めたインデックスi(t、j)を、ベクトル逆量子化部６３と代表ベクトルインデックス記憶部６１とに引き渡す。この後、図１１（ｂ）に示すように、ベクトル逆量子化部６３は、受け取ったインデックスi(t、j)が付された代表ベクトルをＶＱテーブルの中から検索し、一方、代表ベクトルインデックス記憶部６１は、受け取ったインデックスi(t、j)自体を記憶する。最終的に、図１１（ｃ）に示すように、ベクトル逆量子化部６３は、検索した代表ベクトルVi(t、j)を時間順並べ替え部５１に向けて出力する。この段階で、代表ベクトルインデックス記憶部６１には、時刻tにおける周波数jに対応するインデックスi(t、j)が格納されている。つまり、時刻を表す変数がt-Δtからtに変化したことを除けば、図１０（ａ）に示す状態に戻っている。したがって、時間的に後の、時刻t+Δt以降に対応する各フレームについては、図１０（ａ）から図１１（ｃ）までの処理と同様の処理を繰り返せばよい。
【００８８】
図８及び図９の時間順並べ替え部５１は、ベクトル逆量子化関連処理部４９の中のベクトル逆量子化部６３から各周波数jに対応する代表ベクトルを集めることによりスペクトルを近似的に再現し、その成分に対して図２の点線矢印を逆向きにたどるような並べ替えを行うことによりブロック毎のスペクトルを近似的に再現する。続いて、時間順並べ替え部５１は、かかるブロック毎のスペクトルを図８の周波数逆変換部５３に引き渡す。周波数逆変換部５３は、時間順並べ替え部５１から入力されたブロック毎のスペクトルに対し、逆ＭＤＣＴを施し、レベル再現部５５に出力する。レベル再現部５５は、周波数逆変換部５３から入力された信号に対して、エントロピ復号部８から入力されたshift_bitを参照することによりレベル調節を施して元のレベルに戻し、フレーム合成部５７に出力する。フレーム合成部５７は、符号化及び復号の処理単位であったフレームを合成し、合成後の信号をＤ／Ａ変換部５９に出力する。Ｄ／Ａ変換部５９は、フレーム合成部５７から入力されたデジタル信号をアナログ信号に変換し、音声再生信号として出力する。
【００８９】
（実施形態２）
以下では、本発明の実施形態２に係る音声符号化兼復号装置について述べる。本実施形態は、実施形態１に係る音声符号化兼復号装置３のＲＯＭ１２３にデータベースとして格納されている低域用ソート済ＶＱテーブル４１及び高域用ソート済ＶＱテーブル４３を、符号化の効率がさらに向上するよう改良した他は、実施形態１と同じである。
【００９０】
実施形態１においては、低域用ソート済ＶＱテーブル４１及び高域用ソート済ＶＱテーブル４３に格納された代表ベクトルに付されたインデックスi（1≦i≦iMAX）について、代表ベクトルViのエネルギーE(Vi)に
E(V1)≦E(V2)≦・・・≦E(ViMAX)
という関係が成立することが課されていた。しかし、複数の代表ベクトルがたまたま同じエネルギーを有している場合に、かかる複数の代表ベクトルにそれぞれどのようにインデックスを付すかについては、特に制限は存在しなかった。
【００９１】
それに対して本実施形態では、符号化の効率がさらに向上するよう、複数の代表ベクトルがたまたま同じエネルギーを有している場合についても、音声信号の連続性を考慮した所定の方針に従って、かかる複数の代表ベクトルにインデックスが付されている。
【００９２】
すなわち、エネルギーの等しいp個の代表ベクトル
Vi1={vi1、0、vi1、1、・・・、vi1、k[i1、MAX]、・・・、vi1、L-1}、
Vi2={vi2、0、vi2、1、・・・、vi2、k[i2、MAX]、・・・、vi2、L-1}、
・・・、
Vip={vip、0、vip、1、・・・、vip、k[ip、MAX]、・・・、vip、L-1}
（ただし、vi、k[i、MAX]は、Viの成分のうちの、絶対値が最大の成分を表す。）
に、i1＜i2＜・・・＜ipとなるようなインデックスを付す場合は、
k[i1、MAX]≦k[i2、MAX]≦・・・≦k[ip、MAX]
が成立するようにする。
【００９３】
以下では理解を容易にするために、前記所定の方針がいかなるものであるかを、例を挙げて説明する。
【００９４】
例えば、前記制約E(V1)≦E(V2)≦・・・≦E(ViMAX)に基づいて、代表ベクトルのうち最小のエネルギーを有するものからエネルギーの昇順に14番目までのものについては、付すべきインデックスが確定したとする。すなわち、
E(V1)＜E(V2)＜・・・＜E(V14)
かつ、E(V14)がV1、V2、・・・、V14以外のどの代表ベクトルのエネルギーよりも小さい、とする。さらに、同じくエネルギーの昇順に19番目の代表ベクトルから最大のエネルギーを有する代表ベクトルまでについても、前記制約に基づき、付すべきインデックスが確定したとする。すなわち、
E(V19)＜E(V20)＜・・・＜E(ViMAX)
かつ、E(V19)がV19、V20、・・・、ViMAX以外のどの代表ベクトルのエネルギーよりも大きい、とする。さらに、全ての代表ベクトルからV1、V2、・・・、V14、V19、V20、・・・、ViMAXを除いた場合に残る4個の代表ベクトルが、等しいエネルギーを有するものとする。すると、該4個の代表ベクトルには、15から18までの4個のインデックスを付すべきことは確定するものの、どの代表ベクトルにインデックスとして15を付し、どの代表ベクトルに16を付し、・・・、どの代表ベクトルに18を付すかについては、実施形態１においては、任意であった。前記制約が不等号による制約であるために、該4個の代表ベクトルにどのようにインデックスを付しても、E(V15)=E(V16)=E(V17)=E(V18)となって前記制約を満たすからである。
【００９５】
これに対して本実施形態においては、このように等しいエネルギーを有する複数の代表ベクトルに対しても、上述の方針にしたがってインデックスが付される。
【００９６】
以下では、例として、1フレームあたりのブロック数LがL=5であるとする。すると、各代表ベクトルはL個すなわち5個の成分を有する。
【００９７】
よって、図１２に示すように、|V15|2=|V16|2=|V17|2=|V18|2のように等しいエネルギーを有する4個の代表ベクトルV15、V16、V17、V18は、第0軸から第4軸までの5個の座標軸が設けられた5次元空間内に表現することができる。第0軸はブロック0に、第1軸はブロック1に、第2軸はブロック2に、第3軸はブロック3に、第4軸はブロック4に、それぞれ対応している。Rを上述の4個の代表ベクトルの絶対値に等しい値、すなわち、R=|V15|=|V16|=|V17|=|V18|とすると、該代表ベクトルの先端は、5次元空間において原点を中心とした半径Rの球面上に存在する。
【００９８】
以下では、例として、代表ベクトルV15の成分v15、0、v15、1、v15、2、v15、3、v15、4のうちで絶対値が最大の成分がv15、0であり、代表ベクトルV16の成分v16、0、v16、1、v16、2、v16、3、v16、4のうちで絶対値が最大の成分がv16、1であり、代表ベクトルV17の成分v17、0、v17、1、v17、2、v17、3、v17、4のうちで絶対値が最大の成分がv17、2であり、代表ベクトルV18の成分v18、0、v18、1、v18、2、v18、3、v18、4のうちで絶対値が最大の成分がv18、3であるとする。
【００９９】
各代表ベクトルにこのようにインデックスを付すことは、本実施形態において導入された上述の所定の方針に合致している。また、ＭＤＣＴ係数で表されるスペクトルとの関係という観点からは、座標軸に付された番号の大小が、周波数の高低に対応しているといえる。さらに、図１２に即すと、定性的には、V15は第0軸と小さな角度をなし、V16は第1軸と小さな角度をなし、V17は第2軸と小さな角度をなし、V18は第3軸と小さな角度をなす、といえる。
【０１００】
以下では、例として、各代表ベクトルを部分スペクトルとして表示した場合に、それぞれのベクトルが、具体的には、図１３に示す形状になるとする。すなわち、図１３（ａ）、（ｃ）、（ｄ）、（ｅ）の実線で描かれた棒グラフが、それぞれ、代表ベクトルV16、V15、V17、V18に対応する部分スペクトルである。上述のとおりV16の成分v16、0、v16、1、v16、2、v16、3、v16、4のうちで絶対値が最大の成分はv16、1であるので、図１３（ａ）に示すように、V16に対応する部分スペクトルにおいては、ブロック1に相当する周波数がピーク周波数となる。
【０１０１】
なお、図１３（ｂ）〜（ｅ）においては、参考のため、代表ベクトルV16に対応する部分スペクトルが、点線で示されている。
【０１０２】
ここで、理解に際しての混乱を防ぐために、用語について整理する。前述のとおり、部分スペクトルとは、スペクトル全体のうちの周波数jに対応する部分のことである。そして、ここでいうピーク周波数とは、周波数jの帯域をさらに細分した周波数のうちの、部分スペクトルにピークをもたらす周波数を指す。
【０１０３】
なお、図２を参照すれば明らかなように、本実施形態においては、厳密には、部分スペクトルにおけるＭＤＣＴ係数の並び方は、ブロック順つまり時間順になっているのであって、周波数順ではない。しかし、図２に点線矢印で示したとおり、時間順を周波数順に見立てて部分スペクトルを構成し、そのような部分スペクトルを周波数jの順に並べることによりフレーム1個に対応するスペクトルを完成させているから、代表ベクトルによる近似を論じる際には、部分スペクトル内のＭＤＣＴ係数の並び方は周波数順であるとみなすことにする。このようにみなすのは、単に、本実施形態においては、フレームとブロックという複数の時間区分が導入された上で周波数変換としてブロック単位でのＭＤＣＴが採用されたからである。例えば、フレーム1個にブロック1個が対応すなわちフレーム全体の音声信号に一括してＭＤＣＴを施したり、または、フレームやブロックとは異なる時間区分の概念を導入したり別の周波数変換を採用したりすれば、周波数変換係数の並び方から経時的要素が排除されることもある。ベクトル量子化を行うための単位である部分スペクトル内でのＭＤＣＴ係数の並び方は、本実施形態の場合のように時間順であってもさしつかえない。本実施形態は音声信号の時間軸上及び周波数軸上の連続性を有効に利用するものであるため、スペクトルの生成過程の一部において時系列が扱われていたとしても、一貫した方針に基づいて生成されたスペクトルを扱う限りは、本発明の効果が生じるからである。
【０１０４】
前述のように代表ベクトルV16に対応する部分スペクトルは図１３（ａ）である。他の代表ベクトルについては、V15のピーク周波数はブロック0に相当する周波数がピーク周波数となり、V17のピーク周波数はブロック2に相当する周波数がピーク周波数となり、V18のピーク周波数はブロック3に相当する周波数がピーク周波数となる。このようにインデックスの昇順にピーク周波数が高くなるから、以下では理解を容易にするために、図１３（ｃ）、（ｄ）、（ｅ）に示すように、代表ベクトルV15、V17、V18は、たまたま、代表ベクトルV16に対応する部分スペクトルをインデックスの差分のぶんだけ周波数軸方向にずらしたものに対応しているとする。例えば、V17に対応する部分スペクトルは、V16に対応する部分スペクトルを、高周波方向に1ブロックぶんずらしたものであるとする。このとき元々V16の最高周波数すなわちブロック4に対応していたＭＤＣＴ係数は、V17においては、最低周波数すなわちブロック0に対応させるようにする。このような場合だけを考えても、ピーク周波数とインデックスの差分とは整合するので、本実施形態の特徴を記述するにあたりなんら問題ない。また、本実施形態においては複数の代表ベクトルが等しいエネルギーを有する場合を問題としており、この点に鑑みれば、上述のように各代表ベクトルが相互に周波数軸方向についての平行移動により得られる場合、全ての代表ベクトルのエネルギーが等しいことは自明なので、理解の上で好都合である。
【０１０５】
以下では、ある周波数jについて、時刻tと時刻t+Δtとで行われるベクトル量子化について述べる。時刻tにおいて、部分スペクトルを表すベクトルFt、jに最も類似した代表ベクトルとして、代表ベクトルV16が選択されたとする。つまり、Ft、jをV16で近似したとする。次の時刻の部分スペクトルを表すベクトルFt+Δt、jがいかなる代表ベクトルで近似されるかについては、様々な場合が考えられる。例えば、代表ベクトルV15、V16、V17、V18より高いエネルギーを有する代表ベクトルで近似されるかもしれないし、より低いエネルギーを有する代表ベクトルで近似されるかもしれない。このように直前の時刻で近似に用いられた代表ベクトルとはエネルギーの異なる代表ベクトルで近似される場合には、本実施形態に特有の効果は生じず、実施形態１と同じ効果が生じるにとどまる。
【０１０６】
一方、次の時刻の部分スペクトルを表すベクトルFt+Δt、jが、代表ベクトルV15、V16、V17、V18のいずれかで近似される場合も考えられる。このような事態は、音声信号の連続性と、定常性、すなわち音声信号にはしばしば定常状態の時間帯があるという性質と、のために、決してまれな事態ではなく、むしろ頻繁に生じる事態である。そして、そのうちでも、直前の時刻である時刻tにおいて選択された代表ベクトルと同じ代表ベクトルであるV16が再び選択される可能性が高い。つまり、Ft+Δt、jがFt、jと同じ又はほとんど同じとなり、近似のための代表ベクトルとして同じものが選択される可能性が高い。これは、上述の連続性及び定常性のためである。かかる場合、インデックスの差分は、16-16により、0となる。
【０１０７】
次に可能性が高いのは、Ft+Δt、jが、V15又はV17により近似されることである。上述の連続性及び定常性ゆえに、Ft+Δt、jに対応する部分スペクトルは、Ft、jに対応する部分スペクトルがわずかに変化したものである場合の方が、大きく変化したものである場合よりも多いためである。図１３を参照して説明すると、V15又はV17に対応する部分スペクトルは、V16に対応する部分スペクトルと比べてブロック1個に相当する周波数ぶんだけピークが移動したものであるから、V16がわずかに変化したものであるといえる。一方、V18に対応する部分スペクトルは、V16に対応する部分スペクトルと比べてブロック2個に相当する周波数ぶんだけピークが移動したものであるから、相対的には、V16が大きく変化したものであるといえる。したがって、Ft+Δt、jがV15又はV17で近似される可能性は、V18で近似される可能性よりも高い。Ft+Δt、jがV15で近似される場合、インデックスの差分は、15-16により、-1となる。Ft+Δt、jがV17で近似される場合、インデックスの差分は、17-16により、1となる。Ft+Δt、jがV18で近似される場合、インデックスの差分は、18-16により、2となる。
【０１０８】
以上から明らかなように、時刻t+Δtにおいて近似に用いられる代表ベクトルのエネルギーが、時刻tにおいて近似に用いられた代表ベクトルのエネルギーと等しい場合、両代表ベクトルのインデックスの差分は、本実施形態において新たに導入された上述の制約に従ってインデックスが代表ベクトルに付されている限り、0になる確率が最も高く、続いて+1になる確率と-1になる確率とが高く、続いて+2になる確率と-2になる確率とが高くなり、以下同様である。つまり、インデックス差分には、絶対値が小さい値ほど出現頻度が高い、という偏りが生じている。かかる偏りの存在ゆえに、エントロピ符号化による符号化の効率が高くなる。
【０１０９】
このように、本実施形態によれば、実施形態１の場合と同様の理由から符号化の効率が高くなるのに加えて、複数の連続するフレームにわたってスペクトルのエネルギーがほぼ一定である場合には符号化の効率がいっそう高くなることが期待できる。そして、音声信号の連続性及び定常性ゆえに、そのように複数の連続するフレームにわたってスペクトルのエネルギーがほぼ一定である場合は頻繁に生じるので、本実施形態に特有の効果が生じる場合は多い。
【０１１０】
なお、この発明は、上記実施形態に限定されず、種々の変形及び応用が可能である。上述のハードウェア構成やブロック構成、フローチャートは例示であって、限定されるものではない。
【０１１１】
例えば、図１に示される音声符号化兼復号装置３として携帯電話機を想定して説明したが、ＰＨＳ（Personal Handyphone System）や、ＰＤＡ（Personal Digital Assistants）、あるいは一般的なパーソナルコンピュータには、本発明を容易に適用することができる。すなわち、上記実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【０１１２】
また、上述の実施形態では、ベクトル量子化の際、高域周波数と低域周波数で異なるＶＱテーブルを用いるようにしたが、音声の全ての周波数帯域で同一のＶ Ｑテーブルを用いるようにしてもよい。また、周波数帯域を更に細かく分け、周波数帯域毎に異なるＶＱテーブルを用いるようにしてもよい。
【０１１３】
また、しばしばエネルギーの昇順、降順に言及したが、どちらか一方しか言及していない場合であっても、全体として一貫した方針が採用される限りは、昇順であっても降順であってもよい。
【図面の簡単な説明】
【０１１４】
【図１】入力音声信号のフレーム分割と、1フレームと各ブロックとの関係と、を示す図である。
【図２】本発明の実施形態１における、ブロック毎のＭＤＣＴとフレーム単位でのスペクトルとの関係を模式的に示す図である。
【図３】本発明の実施形態１に係る音声符号化兼復号装置の物理的な構成を示す図である。
【図４】本発明の実施形態１に係る音声符号化兼復号装置が音声符号化装置として機能する際の信号処理の流れを示す図である。
【図５】本発明の実施形態１に係るベクトル量子化関連処理部の詳細を示す図である。
【図６】本発明の実施形態１において符号化側でインデックス差分を求める流れを示す図である。
【図７】本発明の実施形態１における、符号長監視の流れを示す図である。
【図８】本発明の実施形態１に係る音声符号化兼復号装置が音声復号装置として機能する際の信号処理の流れを示す図である。
【図９】本発明の実施形態１に係るベクトル逆量子化関連処理部の詳細を示す図である。
【図１０】本発明の実施形態１において復号側で代表ベクトルを求める流れの前半を示す図である。
【図１１】本発明の実施形態１において復号側で代表ベクトルを求める流れの後半を示す図である。
【図１２】本発明の実施形態２における、等エネルギーの複数の代表ベクトルを、模式的に多次元空間に表した図である。
【図１３】本発明の実施形態２における、所定の時間間隔の前後でのベクトル量子化の様子を模式的に表した図である。
【符号の説明】
【０１１５】
３・・・音声符号化兼復号装置、４・・・Ａ／Ｄ変換部、５・・・ベクトル量子化部、８・・・エントロピ復号部、９・・・インデックス算出部、２３・・・ＤＣ除去部、２５・・・フレーム化部、２７・・・レベル調整部、２９・・・周波数変換部、３１・・・スペクトル完成部、３３・・・ベクトル量子化関連処理部、３５・・・エントロピ符号化部、３７・・・符号長監視部、３９・・・帯域データ削除部、４１・・・低域用ソート済ＶＱテーブル、４３・・・高域用ソート済ＶＱテーブル、４５・・・インデックス差分算出部、４７・・・ベクトル量子化関連処理部の代表ベクトルインデックス記憶部、４９・・・ベクトル逆量子化関連処理部、５１・・・時間順並べ替え部、５３・・・周波数逆変換部、５５・・・レベル再現部、５７・・・フレーム合成部、５９・・・Ｄ／Ａ変換部、６１・・・ベクトル逆量子化関連処理部の代表ベクトルインデックス記憶部、６３・・・ベクトル逆量子化部、１２１・・・ＣＰＵ、１２３・・・ＲＯＭ、１２５・・・記憶部、１３１・・・ＲＡＭ、１３３・・・ハードディスク、１４１・・・音声処理部、１５１・・・マイクロフォン、１５３・・・スピーカ、１６１・・・無線通信部、１６３・・・アンテナ、１７１・・・操作キー入力内容処理部、１７３・・・操作キー、１８１・・・システムバス
【図１】
0005098458.tif 000002
【図２】
0005098458.tif 000003
【図３】
0005098458.tif 000004
【図４】
0005098458.tif 000005
【図５】
0005098458.tif 000006
【図６】
0005098458.tif 000007
【図７】
0005098458.tif 000008
【図８】
0005098458.tif 000009
【図９】
0005098458.tif 000010
【図１０】
0005098458.tif 000011
【図１１】
0005098458.tif 000012
【図１２】
0005098458.tif 000013
【図１３】
0005098458.tif 000014