(57)【特許請求の範囲】
【請求項１】
音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するデータ処理装置であって、
前記符号化データを前記CELP方式で復号した合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、学習によって求められたクラスごとのタップ係数との線形１次予測演算を行う予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成手段と、
前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類手段と、
前記注目データのクラスのタップ係数と、前記予測タップとを用いて、前記線形１次予測演算を行うことにより、前記学習において教師として用いられた教師データに対応する予測値を求める予測手段と
を備えるデータ処理装置。
【請求項２】
前記クラス分類手段は、前記クラスタップを構成するコードデータに対して、前記サブフレームごとに重みを付して、クラス分類を行う
請求項１に記載のデータ処理装置。
【請求項３】
前記クラス分類手段は、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータに対して重みを付して、クラス分類を行う
請求項２に記載のデータ処理装置。
【請求項４】
前記クラス分類手段は、前記サブフレームごとのコードデータに対して、前記クラス分類により得られる全クラス数が一定になるような重みを付して、クラス分類を行う
請求項２に記載のデータ処理装置。
【請求項５】
前記タップ生成手段は、前記注目データに近い位置にある前記合成音データと前記サブフレームのコードデータとを抽出する
請求項１に記載のデータ処理装置。
【請求項６】
音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するデータ処理方法であって、
前記符号化データを前記CELP方式で復号した合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、学習によって求められたクラスごとのタップ係数との線形１次予測演算を行う予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成ステップと、
前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類ステップと、
前記注目データのクラスのタップ係数と、前記予測タップとを用いて、前記線形１次予測演算を行うことにより、前記学習において教師として用いられた教師データに対応する予測値を求める予測ステップと
を備えるデータ処理方法。
【請求項７】
音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するデータ処理装置として、コンピュータを機能させるためのプログラムであって、
前記符号化データを前記CELP方式で復号した合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、学習によって求められたクラスごとのタップ係数との線形１次予測演算を行う予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成手段と、
前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類手段と、
前記注目データのクラスのタップ係数と、前記予測タップとを用いて、前記線形１次予測演算を行うことにより、前記学習において教師として用いられた教師データに対応する予測値を求める予測手段と
して、コンピュータを機能させるためのプログラム。
【請求項８】
音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するデータ処理装置として、コンピュータを機能させるためのプログラムが記録されている記録媒体であって、
前記符号化データを前記CELP方式で復号した合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、学習によって求められたクラスごとのタップ係数との線形１次予測演算を行う予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成手段と、
前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類手段と、
前記注目データのクラスのタップ係数と、前記予測タップとを用いて、前記線形１次予測演算を行うことにより、前記学習において教師として用いられた教師データに対応する予測値を求める予測手段と
して、コンピュータを機能させるためのプログラムが記録されている記録媒体。
【請求項９】
音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するのに用いる所定のタップ係数を学習するデータ処理装置であって、
教師となる音声の教師データを、前記サブフレームごとのコードデータである符号化データに符号化し、その符号化データを復号することにより、生徒となる音声の生徒データとしての合成音データを生成する生徒データ生成手段と、
前記生徒データとしての合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、教師データを予測するのに用いる予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成手段と、
前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類手段と、
前記予測タップとタップ係数とを用いて、線形１次予測演算を行うことにより得られる前記教師データの予測値の予測誤差が、統計的に最小になるように学習を行い、前記クラスごとのタップ係数を求める学習手段と
を備えるデータ処理装置。
【請求項１０】
前記クラス分類手段は、前記クラスタップを構成するコードデータに対して、前記サブフレームごとに重みを付して、クラス分類を行う
請求項９に記載のデータ処理装置。
【請求項１１】
前記クラス分類手段は、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータに対して重みを付して、クラス分類を行う
請求項１０に記載のデータ処理装置。
【請求項１２】
前記クラス分類手段は、前記サブフレームごとのコードデータに対して、前記クラス分類により得られる全クラス数が一定になるような重みを付して、クラス分類を行う
請求項１０に記載のデータ処理装置。
【請求項１３】
前記タップ生成手段は、前記注目データに近い位置にある前記合成音データと前記サブフレームごとのコードデータとを抽出する
請求項９に記載のデータ処理装置。
【請求項１４】
音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するのに用いる所定のタップ係数を学習するデータ処理方法であって、
教師となる音声の教師データを、前記サブフレームごとのコードデータである符号化データに符号化し、その符号化データを復号することにより、生徒となる音声の生徒データとしての合成音データを生成する生徒データ生成ステップと、
前記生徒データとしての合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、教師データを予測するのに用いる予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成ステップと、
前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類ステップと、
前記予測タップとタップ係数とを用いて、線形１次予測演算を行うことにより得られる前記教師データの予測値の予測誤差が、統計的に最小になるように学習を行い、前記クラスごとのタップ係数を求める学習ステップと
を備えるデータ処理方法。
【請求項１５】
音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するのに用いる所定のタップ係数を学習するデータ処理装置として、コンピュータを機能させるためのプログラムであって、
教師となる音声の教師データを、前記サブフレームごとのコードデータである符号化データに符号化し、その符号化データを復号することにより、生徒となる音声の生徒データとしての合成音データを生成する生徒データ生成手段と、
前記生徒データとしての合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、教師データを予測するのに用いる予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成手段と、
前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類手段と、
前記予測タップとタップ係数とを用いて、線形１次予測演算を行うことにより得られる前記教師データの予測値の予測誤差が、統計的に最小になるように学習を行い、前記クラスごとのタップ係数を求める学習手段と
として、コンピュータを機能させるためのプログラム。
【請求項１６】
音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するのに用いる所定のタップ係数を学習するデータ処理装置として、コンピュータを機能させるためのプログラムが記録されている記録媒体であって、
教師となる音声の教師データを、前記サブフレームごとのコードデータである符号化データに符号化し、その符号化データを復号することにより、生徒となる音声の生徒データとしての合成音データを生成する生徒データ生成手段と、
前記生徒データとしての合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、教師データを予測するのに用いる予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成手段と、
前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類手段と、
前記予測タップとタップ係数とを用いて、線形１次予測演算を行うことにより得られる前記教師データの予測値の予測誤差が、統計的に最小になるように学習を行い、前記クラスごとのタップ係数を求める学習手段と
として、コンピュータを機能させるためのプログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体に関し、特に、特に、例えば、ＣＥＬＰ(Code Excited Liner Prediction coding)方式で符号化された音声を、高音質の音声に復号することができるようにするデータ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体に関する。
【０００２】
【従来の技術】
図１および図２は、従来の携帯電話機の一例の構成を示している。
【０００３】
この携帯電話機では、音声を、ＣＥＬＰ方式により所定のコードに符号化して送信する送信処理と、他の携帯電話機から送信されてくるコードを受信して、音声に復号する受信処理とが行われるようになっており、図１は、送信処理を行う送信部を、図２は、受信処理を行う受信部を、それぞれ示している。
【０００４】
図１に示した送信部では、ユーザが発話した音声が、マイク（マイクロフォン）１に入力され、そこで、電気信号としての音声信号に変換され、Ａ／Ｄ(Analog/Digital)変換部２に供給される。Ａ／Ｄ変換部２は、マイク１からのアナログの音声信号を、例えば、８ｋＨｚ等のサンプリング周波数でサンプリングすることにより、ディジタルの音声信号にＡ／Ｄ変換し、さらに、所定のビット数で量子化を行って、演算器３とＬＰＣ(Liner Prediction Coefficient)分析部４に供給する。
【０００５】
ＬＰＣ分析部４は、Ａ／Ｄ変換部２からの音声信号を、例えば、１６０サンプル分の長さを１フレームとして、その１フレームを４０サンプルごとのサブフレームに分割し、サブフレームごとにＬＰＣ分析し、Ｐ次の線形予測係数α1，α2，・・・，αPを求める。そして、ＬＰＣ分析部４は、このＰ次の線形予測係数αp（ｐ＝１，２，・・・，Ｐ）を要素とするベクトルを、音声の特徴ベクトルとして、ベクトル量子化部５に供給する。
【０００６】
ベクトル量子化部５は、線形予測係数を要素とするコードベクトルとコードとを対応付けたコードブックを記憶しており、そのコードブックに基づいて、ＬＰＣ分析部４からの特徴ベクトルαをベクトル量子化し、そのベクトル量子化の結果得られるコード（以下、適宜、Ａコード(A_code)という）を、コード決定部１５に供給する。
【０００７】
さらに、ベクトル量子化部５は、Ａコードに対応するコードベクトルα’を構成する要素となっている線形予測係数α1’，α2’，・・・，αP’を、音声合成フィルタ６に供給する。
【０００８】
音声合成フィルタ６は、例えば、ＩＩＲ(Infinite Impulse Response)型のディジタルフィルタで、ベクトル量子化部５からの線形予測係数αp’（ｐ＝１，２，・・・，Ｐ）をＩＩＲフィルタのタップ係数とするとともに、演算器１４から供給される残差信号ｅを入力信号として、音声合成を行う。
【０００９】
即ち、ＬＰＣ分析部４で行われるＬＰＣ分析は、現在時刻ｎの音声信号（のサンプル値）ｓn、およびこれに隣接する過去のＰ個のサンプル値ｓn-1，ｓn-2，・・・，ｓn-Pに、式
ｓn＋α1ｓn-1＋α2ｓn-2＋・・・＋αPｓn-P＝en
・・・（１）
で示す線形１次結合が成立すると仮定し、現在時刻ｎのサンプル値ｓnの予測値（線形予測値）ｓn’を、過去のＰ個の標本値ｓn-1，ｓn-2，・・・，ｓn-Pを用いて、式
ｓn’＝−（α1ｓn-1＋α2ｓn-2＋・・・＋αPｓn-P）
・・・（２）
によって線形予測したときに、実際のサンプル値ｓnと線形予測値ｓn’との間の自乗誤差を最小にする線形予測係数αpを求めるものである。
【００１０】
ここで、式（１）において、｛en｝（・・・，en-1，en，en+1，・・・）は、平均値が０で、分散が所定値σ2の互いに無相関な確率変数である。
【００１１】
式（１）から、サンプル値ｓnは、式
ｓn＝en−（α1ｓn-1＋α2ｓn-2＋・・・＋αPｓn-P）
・・・（３）
で表すことができ、これを、Ｚ変換すると、次式が成立する。
【００１２】
Ｓ＝Ｅ／（１＋α1ｚ-1＋α2ｚ-2＋・・・＋αPｚ-P）
・・・（４）
但し、式（４）において、ＳとＥは、式（３）におけるｓnとｅnのＺ変換を、それぞれ表す。
【００１３】
ここで、式（１）および（２）から、ｅnは、式
ｅn＝ｓn−ｓn’
・・・（５）
で表すことができ、実際のサンプル値ｓnと線形予測値ｓn’との間の残差信号と呼ばれる。
【００１４】
従って、式（４）から、線形予測係数αpをＩＩＲフィルタのタップ係数とするとともに、残差信号ｅnをＩＩＲフィルタの入力信号とすることにより、音声信号ｓnを求めることができる。
【００１５】
そこで、音声合成フィルタ６は、上述したように、ベクトル量子化部５からの線形予測係数αp’をタップ係数とするとともに、演算器１４から供給される残差信号ｅを入力信号として、式（４）を演算し、音声信号（合成音信号）ｓｓを求める。
【００１６】
なお、音声合成フィルタ６では、ＬＰＣ分析部４によるＬＰＣ分析の結果得られる線形予測係数αpではなく、そのベクトル量子化の結果得られるコードに対応するコードベクトルとしての線形予測係数αp’が用いられるため、即ち、量子化誤差を含む線形予測係数αp’が用いられるため、音声合成フィルタ６が出力する合成音信号は、Ａ／Ｄ変換部２が出力する音声信号とは、基本的に同一にはならない。
【００１７】
音声合成フィルタ６が出力する合成音信号ｓｓは、演算器３に供給される。演算器３は、音声合成フィルタ６からの合成音信号ｓｓから、Ａ／Ｄ変換部２が出力する音声信号ｓを減算し、その減算値を、自乗誤差演算部７に供給する。自乗誤差演算部７は、演算器３からの減算値の自乗和（第ｋサブフレームのサンプル値についての自乗和）を演算し、その結果得られる自乗誤差を、自乗誤差最小判定部８に供給する。
【００１８】
自乗誤差最小判定部８は、自乗誤差演算部７が出力する自乗誤差に対応付けて、ラグを表すコードとしてのＬコード(L_code)、ゲインを表すコードとしてのＧコード(G_code)、および符号語（励起コードブック）を表すコードとしてのＩコード(I_code)を記憶しており、自乗誤差演算部７が出力する自乗誤差に対応するＬコード、Ｇコード、およびＬコードを出力する。Ｌコードは、適応コードブック記憶部９に、Ｇコードは、ゲイン復号器１０に、Ｉコードは、励起コードブック記憶部１１に、それぞれ供給される。さらに、Ｌコード、Ｇコード、およびＩコードは、コード決定部１５にも供給される。
【００１９】
適応コードブック記憶部９は、例えば７ビットのＬコードと、所定の遅延時間（長期予測ラグ）とを対応付けた適応コードブックを記憶しており、演算器１４から供給される残差信号ｅを、自乗誤差最小判定部８から供給されるＬコードに対応付けられた遅延時間だけ遅延して、演算器１２に出力する。即ち、適応コードブック記憶部９は、例えば、メモリで構成され、演算器１４からの残差信号ｅを、７ビットのレコードが表す値に対応するサンプル分だけ遅延して、演算器１２に出力する。
【００２０】
ここで、適応コードブック記憶部９は、残差信号ｅを、Ｌコードに対応する時間だけ遅延して出力することから、その出力信号は、その遅延時間を周期とする周期信号に近い信号となる。この信号は、線形予測係数を用いた音声合成において、主として、有声音の合成音を生成するための駆動信号となる。
【００２１】
ゲイン復号器１０は、Ｇコードと、所定のゲインβおよびγとを対応付けたテーブルを記憶しており、自乗誤差最小判定部８から供給されるＧコードに対応付けられたゲインβおよびγを出力する。ゲインβとγは、演算器１２と１３に、それぞれ供給される。ここで、ゲインβは、長期フィルタ状態出力ゲインと呼ばれるものであり、また、ゲインγは、励起コードブックゲインと呼ばれるものである。
【００２２】
励起コードブック記憶部１１は、例えば９ビットのＩコードと、所定の励起信号とを対応付けた励起コードブックを記憶しており、自乗誤差最小判定部８から供給されるＩコードに対応付けられた励起信号を、演算器１３に出力する。
【００２３】
ここで、励起コードブックに記憶されている励起信号は、例えば、ホワイトノイズ等に近い信号であり、線形予測係数を用いた音声合成において、主として、無声音の合成音を生成するための駆動信号となる。
【００２４】
演算器１２は、適応コードブック記憶部９の出力信号と、ゲイン復号器１０が出力するゲインβとを乗算し、その乗算値ｌを、演算器１４に供給する。演算器１３は、励起コードブック記憶部１１の出力信号と、ゲイン復号器１０が出力するゲインγとを乗算し、その乗算値ｎを、演算器１４に供給する。演算器１４は、演算器１２からの乗算値ｌと、演算器１３からの乗算値ｎとを加算し、その加算値を、残差信号ｅとして、音声合成フィルタ６と適応コードブック記憶部９に供給する。
【００２５】
音声合成フィルタ６では、以上のようにして、演算器１４から供給される残差信号ｅを入力信号が、ベクトル量子化部５から供給される線形予測係数αp’をタップ係数とするＩＩＲフィルタでフィルタリングされ、その結果得られる合成音信号が、演算器３に供給される。そして、演算器３および自乗誤差演算部７において、上述の場合と同様の処理が行われ、その結果得られる自乗誤差が、自乗誤差最小判定部８に供給される。
【００２６】
自乗誤差最小判定部８は、自乗誤差演算部７からの自乗誤差が最小（極小）になったかどうかを判定する。そして、自乗誤差最小判定部８は、自乗誤差が最小になっていないと判定した場合、上述のように、その自乗誤差に対応するＬコード、Ｇコード、およびＬコードを出力し、以下、同様の処理が繰り返される。
【００２７】
一方、自乗誤差最小判定部８は、自乗誤差が最小になったと判定した場合、確定信号を、コード決定部１５に出力する。コード決定部１５は、ベクトル量子化部５から供給されるＡコードを順次ラッチするとともに、自乗誤差最小判定部８から供給されるＬコード、Ｇコード、およびＩコードを順次ラッチするようになっており、自乗誤差最小判定部８から確定信号を受信すると、そのときラッチしているＡコード、Ｌコード、Ｇコード、およびＩコードを、チャネルエンコーダ１６に供給する。チャネルエンコーダ１６は、コード決定部１５からのＡコード、Ｌコード、Ｇコード、およびＩコードを多重化し、コードデータとして出力する。このコードデータは、伝送路を介して送信される。
【００２８】
以上から、コードデータは、復号に用いられる情報であるＡコード、Ｌコード、Ｇコード、およびＩコードを、サブフレーム単位ごとに有する符号化データとなっている。
【００２９】
なお、ここでは、Ａコード、Ｌコード、Ｇコード、およびＩコードは、サブフレームごとに求められるものとしているが、例えば、Ａコードについては、フレームごとに求められる場合があり、この場合、そのフレームを構成する４つのサブフレームの復号には、同一のＡコードが用いられる。但し、この場合でも、その１フレームを構成する４つのサブフレームそれぞれが、同一のＡコードを有していると見ることができ、そのように考えることによって、コードデータは、復号に用いられる情報であるＡコード、Ｌコード、Ｇコード、およびＩコードを、サブフレーム単位ごとに有する符号化データとなっているとみなすことができる。
【００３０】
ここで、図１（後述する図２、図５、および図１３においても同様）では、各変数に、[k]が付され、配列変数とされている。このkは、サブフレーム数を表すが、明細書中では、その記述は、適宜省略する。
【００３１】
次に、以上のようにして、他の携帯電話機の送信部から送信されてくるコードデータは、図２に示した受信部のチャネルデコーダ２１で受信される。チャネルデコーダ２１は、コードデータから、Ｌコード、Ｇコード、Ｉコード、Ａコードを分離し、それぞれを、適応コードブック記憶部２２、ゲイン復号器２３、励起コードブック記憶部２４、フィルタ係数復号器２５に供給する。
【００３２】
適応コードブック記憶部２２、ゲイン復号器２３、励起コードブック記憶部２４、演算器２６乃至２８は、図１の適応コードブック記憶部９、ゲイン復号器１０、励起コードブック記憶部１１、演算器１２乃至１４とそれぞれ同様に構成されるもので、図１で説明した場合と同様の処理が行われることにより、Ｌコード、Ｇコード、およびＩコードが、残差信号ｅに復号される。この残差信号ｅは、音声合成フィルタ２９に対して、入力信号として与えられる。
【００３３】
フィルタ係数復号器２５は、図１のベクトル量子化部５が記憶しているのと同一のコードブックを記憶しており、Ａコードを、線形予測係数αp’に復号し、音声合成フィルタ２９に供給する。
【００３４】
音声合成フィルタ２９は、図１の音声合成フィルタ６と同様に構成されており、フィルタ係数復号器２５からの線形予測係数αp’をタップ係数とするとともに、演算器２８から供給される残差信号ｅを入力信号として、式（４）を演算し、これにより、図１の自乗誤差最小判定部８において自乗誤差が最小と判定されたときの合成音信号を生成する。この合成音信号は、Ｄ／Ａ(Digital/Analog)変換部３０に供給される。Ｄ／Ａ変換部３０は、音声合成フィルタ２９からの合成音信号を、ディジタル信号からアナログ信号にＤ／Ａ変換し、スピーカ３１に供給して出力させる。
【００３５】
なお、コードデータにおいて、Ａコードが、サブフレーム単位でなく、フレーム単位で配置されている場合、図２の受信部では、フレームを構成する４つのサブフレームすべての復号に、そのフレームに配置されたＡコードに対応する線形予測係数を用いることができる他、各サブフレームについて、隣接するフレームのＡコードに対応する線形予測係数を用いて補間を行い、その補間の結果得られる線形予測係数を、各サブフレームの復号に用いることが可能である。
【００３６】
【発明が解決しようとする課題】
以上のように、携帯電話機の送信部では、受信部の音声合成フィルタ２９に与えられるフィルタデータとしての残差信号と線形予測係数がコード化されて送信されてくるため、受信部では、そのコードが、残差信号と線形予測係数に復号される。しかしながら、この復号された残差信号や線形予測係数（以下、適宜、それぞれを、復号残差信号または復号線形予測係数という）には、量子化誤差等の誤差が含まれるため、音声をＬＰＣ分析して得られる残差信号と線形予測係数には一致しない。
【００３７】
このため、受信部の音声合成フィルタ２９が出力する合成音信号は、歪みを有する、音質の劣化したものとなる。
【００３８】
本発明は、このような状況に鑑みてなされたものであり、高音質の合成音等を得ることができるようにするものである。
【００３９】
【課題を解決するための手段】
本発明の第１の側面のデータ処理装置、プログラム、又は、記録媒体は、音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するデータ処理装置であって、前記符号化データを前記CELP方式で復号した合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、学習によって求められたクラスごとのタップ係数との線形１次予測演算を行う予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成手段と、前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類手段と、前記注目データのクラスのタップ係数と、前記予測タップとを用いて、前記線形１次予測演算を行うことにより、前記学習において教師として用いられた教師データに対応する予測値を求める予測手段とを備えるデータ処理装置、そのようなデータ処理装置として、コンピュータを機能させるためのプログラム、又は、そのようなプログラムが記録されている記録媒体である。
【００４０】
本発明の第１の側面のデータ処理方法は、音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するデータ処理方法であって、前記符号化データを前記CELP方式で復号した合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、学習によって求められたクラスごとのタップ係数との線形１次予測演算を行う予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成ステップと、前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類ステップと、前記注目データのクラスのタップ係数と、前記予測タップとを用いて、前記線形１次予測演算を行うことにより、前記学習において教師として用いられた教師データに対応する予測値を求める予測ステップとを備えるデータ処理方法である。
【００４３】
本発明の第２の側面のデータ処理装置、プログラム、又は、記録媒体は、音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するのに用いる所定のタップ係数を学習するデータ処理装置であって、
教師となる音声の教師データを、前記サブフレームごとのコードデータである符号化データに符号化し、その符号化データを復号することにより、生徒となる音声の生徒データとしての合成音データを生成する生徒データ生成手段と、前記生徒データとしての合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、教師データを予測するのに用いる予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成手段と、前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類手段と、前記予測タップとタップ係数とを用いて、線形１次予測演算を行うことにより得られる前記教師データの予測値の予測誤差が、統計的に最小になるように学習を行い、前記クラスごとのタップ係数を求める学習手段とを備えるデータ処理装置、そのようなデータ処理装置として、コンピュータを機能させるためのプログラム、又は、そのようなプログラムが記録されている記録媒体である。
【００４４】
本発明の第２の側面のデータ処理方法は、音声を、所定の単位であるサブフレーム単位で、CELP(Code Excited Liner Prediction coding)方式によって符号化することにより得られる、前記サブフレーム単位のコードデータである符号化データを処理するのに用いる所定のタップ係数を学習するデータ処理方法であって、教師となる音声の教師データを、前記サブフレームごとのコードデータである符号化データに符号化し、その符号化データを復号することにより、生徒となる音声の生徒データとしての合成音データを生成する生徒データ生成ステップと、前記生徒データとしての合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、教師データを予測するのに用いる予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとを生成するタップ生成ステップと、前記クラスタップに基づき、前記注目データについて、クラス分類を行うクラス分類ステップと、前記予測タップとタップ係数とを用いて、線形１次予測演算を行うことにより得られる前記教師データの予測値の予測誤差が、統計的に最小になるように学習を行い、前記クラスごとのタップ係数を求める学習ステップとを備えるデータ処理方法である。
【００４７】
本発明の第１の側面においては、前記符号化データを前記CELP方式で復号した合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、学習によって求められたクラスごとのタップ係数との線形１次予測演算を行う予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとが生成される。そして、前記クラスタップに基づき、前記注目データについて、クラス分類が行われ、前記注目データのクラスのタップ係数と、前記予測タップとを用いて、前記線形１次予測演算を行うことにより、前記学習において教師として用いられた教師データに対応する予測値が求められる。
【００４８】
本発明の第２の側面においては、教師となる音声の教師データを、前記サブフレームごとのコードデータである符号化データに符号化し、その符号化データを復号することにより、生徒となる音声の生徒データとしての合成音データが生成される。さらに、前記生徒データとしての合成音データのうちの注目している注目データと所定の位置関係にある前記合成音データを抽出するとともに、前記注目データの、前記サブフレームにおける位置に応じて、前記サブフレームごとのコードデータを抽出することにより、教師データを予測するのに用いる予測タップと、前記注目データをクラス分けするクラス分類を行うのに用いられるクラスタップとが生成される。そして、前記クラスタップに基づき、前記注目データについて、クラス分類が行われ、前記予測タップとタップ係数とを用いて、線形１次予測演算を行うことにより得られる前記教師データの予測値の予測誤差が、統計的に最小になるように学習が行われて、前記クラスごとのタップ係数が求められる。
【００４９】
【発明の実施の形態】
図３は、本発明を適用した伝送システム（システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない）の一実施の形態の構成を示している。
【００５０】
この伝送システムでは、携帯電話機１０１1と１０１2が、基地局１０２1と１０２2それぞれとの間で、無線による送受信を行うとともに、基地局１０２1と１０２2それぞれが、交換局１０３との間で送受信を行うことにより、最終的には、携帯電話機１０１1と１０１2との間において、基地局１０２1および１０２2、並びに交換局１０３を介して、音声の送受信を行うことができるようになっている。なお、基地局１０２1と１０２2は、同一の基地局であっても良いし、異なる基地局であっても良い。
【００５１】
ここで、以下、特に区別する必要がない限り、携帯電話機１０１1と１０１2を、携帯電話機１０１と記述する。
【００５２】
次に、図４は、図３の携帯電話機１０１の構成例を示している。
【００５３】
この携帯電話機１０１では、CELP方式によって、音声の送受信が行われるようになっている。
【００５４】
即ち、アンテナ１１１は、基地局１０２1または１０２2からの電波を受信し、その受信信号を、変復調部１１２に供給するとともに、変復調部１１２からの信号を、電波で、基地局１０２1または１０２2に送信する。変復調部１１２は、アンテナ１１１からの信号を復調し、その結果得られる、図１で説明したようなコードデータを、受信部１１４に供給する。また、変復調部１１２は、送信部１１３から供給される、図１で説明したようなコードデータを変調し、その結果得られる変調信号を、アンテナ１１１に供給する。送信部１１３は、図１に示した送信部と同様に構成され、そこに入力されるユーザの音声を、CELP方式によって、コードデータに符号化して、変復調部１１２に供給する。受信部１１４は、変復調部１１２からのコードデータを受信してCELP方式により復号し、さらに、高音質の音声を復号して出力する。
【００５５】
即ち、受信部１１４では、例えば、クラス分類適応処理を利用して、CELP方式で復号された合成音が、さらに、真の高音質の音声（の予測値）に復号される。
【００５６】
ここで、クラス分類適応処理は、クラス分類処理と適応処理とからなり、クラス分類処理によって、データを、その性質に基づいてクラス分けし、各クラスごとに適応処理を施すものであり、適応処理は、以下のような手法のものである。
【００５７】
即ち、適応処理では、例えば、CELP方式により復号された合成音と、所定のタップ係数との線形結合により、真の高音質の音声の予測値が求められる。
【００５８】
具体的には、例えば、いま、真の高音質の音声（のサンプル値）を教師データとするとともに、その真の高音質の音声を、ＣＥＬＰ方式によって、Ｌコード、Ｇコード、Ｉコード、およびＡコードに符号化し、それらのコードを、図２に示した受信部でCELP方式により復号することによって得られる合成音を生徒データとして、教師データである高音質の音声ｙの予測値Ｅ［ｙ］を、幾つかの合成音（のサンプル値）ｘ1，ｘ2，・・・の集合と、所定のタップ係数ｗ1，ｗ2，・・・の線形結合により規定される線形１次結合モデルにより求めることを考える。
この場合、予測値Ｅ［ｙ］は、次式で表すことができる。
【００５９】
Ｅ［ｙ］＝ｗ1ｘ1＋ｗ2ｘ2＋・・・
・・・（６）
【００６０】
式（６）を一般化するために、タップ係数ｗjの集合でなる行列Ｗ、生徒データｘijの集合でなる行列Ｘ、および予測値Ｅ［ｙj］の集合でなる行列Ｙ’を、
【数１】
0004857467.tif 000002
で定義すると、次のような観測方程式が成立する。
【００６１】
ＸＷ＝Ｙ’
・・・（７）
ここで、行列Ｘの成分ｘijは、ｉ件目の生徒データの集合（ｉ件目の教師データｙiの予測に用いる生徒データの集合）の中のｊ番目の生徒データを意味し、行列Ｗの成分ｗjは、生徒データの集合の中のｊ番目の生徒データとの積が演算されるタップ係数を表す。また、ｙiは、ｉ件目の教師データを表し、従って、Ｅ［ｙi］は、ｉ件目の教師データの予測値を表す。なお、式（６）の左辺におけるｙは、行列Ｙの成分ｙiのサフィックスｉを省略したものであり、また、式（６）の右辺におけるｘ1，ｘ2，・・・も、行列Ｘの成分ｘijのサフィックスｉを省略したものである。
【００６２】
そして、この観測方程式に最小自乗法を適用して、真の高音質の音声ｙに近い予測値Ｅ［ｙ］を求めることを考える。この場合、教師データとなる真の高音質の音声ｙの集合でなる行列Ｙ、および高音質の音声ｙに対する予測値Ｅ［ｙ］の残差ｅの集合でなる行列Ｅを、
【数２】
0004857467.tif 000003
で定義すると、式（７）から、次のような残差方程式が成立する。
【００６３】
ＸＷ＝Ｙ＋Ｅ
・・・（８）
【００６４】
この場合、真の高音質の音声ｙに近い予測値Ｅ［ｙ］を求めるためのタップ係数ｗjは、自乗誤差
【数３】
0004857467.tif 000004
を最小にすることで求めることができる。
【００６５】
従って、上述の自乗誤差をタップ係数ｗjで微分したものが０になる場合、即ち、次式を満たすタップ係数ｗjが、真の高音質の音声ｙに近い予測値Ｅ［ｙ］を求めるため最適値ということになる。
【００６６】
【数４】
0004857467.tif 000005
・・・（９）
【００６７】
そこで、まず、式（８）を、タップ係数ｗjで微分することにより、次式が成立する。
【００６８】
【数５】
0004857467.tif 000006
・・・（１０）
【００６９】
式（９）および（１０）より、式（１１）が得られる。
【００７０】
【数６】
0004857467.tif 000007
・・・（１１）
【００７１】
さらに、式（８）の残差方程式における生徒データｘij、タップ係数ｗj、教師データｙi、および誤差ｅiの関係を考慮すると、式（１１）から、次のような正規方程式を得ることができる。
【００７２】
【数７】
0004857467.tif 000008
・・・（１２）
【００７３】
なお、式（１２）に示した正規方程式は、行列（共分散行列）Ａおよびベクトルｖを、
【数８】
0004857467.tif 000009
で定義するとともに、ベクトルＷを、数１で示したように定義すると、式
ＡＷ＝ｖ
・・・（１３）
で表すことができる。
【００７４】
式（１２）における各正規方程式は、生徒データｘijおよび教師データｙiのセットを、ある程度の数だけ用意することで、求めるべきタップ係数ｗjの数Ｊと同じ数だけたてることができ、従って、式（１３）を、ベクトルＷについて解くことで（但し、式（１３）を解くには、式（１３）における行列Ａが正則である必要がある）、最適なタップ係数（ここでは、自乗誤差を最小にするタップ係数）ｗjを求めることができる。なお、式（１３）を解くにあたっては、例えば、掃き出し法（Gauss-Jordanの消去法）などを用いることが可能である。
【００７５】
以上のようにして、最適なタップ係数ｗjを求めておき、さらに、そのタップ係数ｗjを用い、式（６）により、真の高音質の音声ｙに近い予測値Ｅ［ｙ］を求めるのが適応処理である。
【００７６】
なお、例えば、教師データとして、高いサンプリング周波数でサンプリングした音声信号、または多ビットを割り当てた音声信号を用いるとともに、生徒データとして、その教師データとしての音声信号を間引いたり、低ビットで再量子化した音声信号をＣＥＬＰ方式により符号化し、その符号化結果を復号して得られる合成音を用いた場合、タップ係数としては、高いサンプリング周波数でサンプリングした音声信号、または多ビットを割り当てた音声信号を生成するのに、予測誤差が、統計的に最小となる高音質の音声が得られることになる。従って、この場合、より高音質の合成音を得ることが可能となる。
【００７７】
図４の受信部１１４では、以上のようなクラス分類適応処理により、コードデータをCELP方式により復号して得られる合成音を、さらに、高音質の音声に復号するようになっている。
【００７８】
即ち、図５は、図４の受信部１１４の構成例を示している。なお、図中、図２における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【００７９】
タップ生成部１２１と１２２には、音声合成フィルタ２９が出力する、サブフレームごとの合成音データと、チャネルデコーダ２１が出力する、サブフレームごとのＬコード、Ｇコード、Ｉコード、ＡコードのうちのＩコードとが供給されるようになっている。タップ生成部１２１と１２２は、そこに供給される合成音データとＩコードから、高音質の音声の予測値を予測するのに用いる予測タップとするものと、クラス分類に用いるクラスタップとするものを、それぞれ抽出する。予測タップは、予測部１２５に供給され、クラスタップは、クラス分類部１２３に供給される。
【００８０】
クラス分類部１２３は、タップ生成部１２２から供給されるクラスタップに基づいて、クラス分類を行い、そのクラス分類結果としてのクラスコードを、係数メモリ１２４に供給する。
【００８１】
ここで、クラス分類部１２３におけるクラス分類の方法としては、例えば、KビットADRC(Adaptive Dynamic Range Coding)処理を利用した方法等がある。
【００８２】
KビットADRC処理においては、例えば、クラスタップを構成するデータの最大値MAXと最小値MINが検出され、DR=MAX-MINを、集合の局所的なダイナミックレンジとし、このダイナミックレンジDRに基づいて、クラスタップを構成する各データがKビットに再量子化される。即ち、クラスタップを構成する各データから、最小値MINが減算され、その減算値がDR/2Kで除算（量子化）される。そして、以上のようにして得られる、クラスタップを構成する各データのKビットの値を、所定の順番で並べたビット列が、ADRCコードとして出力される。
【００８３】
このようなKビットADRC処理を、クラス分類に利用する場合には、例えば、そのKビットADRC処理の結果得られる、クラスタップを構成する各データのKビットの値を所定の順番で並べたビット列が、クラスコードとされる。
【００８４】
なお、その他、クラス分類は、例えば、クラスタップを、それを構成する各データを要素とするベクトルと見なして、そのベクトルとしてのクラスタップをベクトル量子化すること等によって行うことも可能である。
【００８５】
係数メモリ１２４は、後述する図１３の学習装置において学習処理が行われることにより得られる、クラスごとのタップ係数を記憶しており、クラス分類部１２３が出力するクラスコードに対応するアドレスに記憶されているタップ係数を、予測部１２５に供給する。
【００８６】
予測部１２５は、タップ生成部１２１が出力する予測タップと、係数メモリ１２４が出力するタップ係数とを取得し、その予測タップとタップ係数とを用いて、式（６）に示した線形予測演算を行う。これにより、予測部１２５は、注目している注目サブフレームについて、高音質の音声（の予測値）を求めて、Ｄ／Ａ変換部３０に供給する。
【００８７】
次に、図６のフローチャートを参照して、図５の受信部１１４の処理について説明する。
【００８８】
即ち、チャネルデコーダ２１は、そこに供給されるコードデータから、Ｌコード、Ｇコード、Ｉコード、Ａコードを分離し、それぞれを、適応コードブック記憶部２２、ゲイン復号器２３、励起コードブック記憶部２４、フィルタ係数復号器２５に供給する。さらに、Ｉコードは、タップ生成部１２１および１２２にも供給される。
【００８９】
そして、適応コードブック記憶部２２、ゲイン復号器２３、励起コードブック記憶部２４、演算器２６乃至２８は、図２における場合と同様の処理を行い、これにより、Ｌコード、Ｇコード、およびＩコードが、残差信号ｅに復号される。この残差信号は、音声合成フィルタ２９に供給される。
【００９０】
さらに、フィルタ係数復号器２５は、図２で説明したように、そこに供給されるＡコードを、線形予測係数に復号し、音声合成フィルタ２９に供給する。音声合成フィルタ２９は、演算器２８からの残差信号と、フィルタ係数復号器２５からの線形予測係数を用いて音声合成を行い、その結果得られる合成音を、タップ生成部１２１と１２２に供給する。
【００９１】
タップ生成部１２１は、音声合成フィルタ２９が順次出力する合成音のサブフレームを、順次、注目サブフレームとし、ステップＳ１において、その注目サブフレームの合成音と、後述するサブフレームのＩコードとから、予測タップを生成し、予測部１２５に供給する。さらに、ステップＳ１では、タップ生成部１２２は、やはり、注目サブフレームの合成音と、後述するサブフレームのＩコードとから、クラスタップを生成し、クラス分類部１２３に供給する。
【００９２】
そして、ステップＳ２に進み、クラス分類部１２３は、タップ生成部１２２から供給されるクラスタップに基づいて、クラス分類を行い、その結果得られるクラスコードを、係数メモリ１２４に供給して、ステップＳ３に進む。
【００９３】
ステップＳ３では、係数メモリ１２４は、クラス分類部１２３から供給されるクラスコードに対応するアドレスから、タップ係数を読み出し、予測部１２５に供給する。
【００９４】
そして、ステップＳ４に進み、予測部１２５は、係数メモリ１２４が出力するタップ係数を取得し、そのタップ係数と、タップ生成部１２１からの予測タップとを用いて、式（６）に示した積和演算を行い、注目サブフレームの高音質の音声（の予測値）を得る。
【００９５】
なお、ステップＳ１乃至Ｓ４の処理は、注目サブフレームの合成音データのサンプル値それぞれを、順次、注目データとして行われる。即ち、サブフレームの合成音データは、前述したことから、４０サンプルで構成されるから、その４０サンプルの合成音データそれぞれについて、ステップＳ１乃至Ｓ４の処理が行われる。
【００９６】
以上のようにして得られた高音質の音声は、予測部１２５から、Ｄ／Ａ変換部３０を介して、スピーカ３１に供給され、これにより、スピーカ３１からは、高音質の音声が出力される。
【００９７】
ステップＳ４の処理後は、ステップＳ５に進み、まだ、注目サブフレームとして処理すべき次のサブフレームがあるかどうかが判定され、あると判定された場合、ステップＳ１に戻り、次に注目サブフレームとすべきサブフレームを、新たに注目サブフレームとして、以下、同様の処理を繰り返す。また、ステップＳ５において、注目サブフレームとして処理すべきサブフレームがないと判定された場合、処理を終了する。
【００９８】
次に、図７を参照して、図５のタップ生成部１２１での予測タップの生成方法について説明する。
【００９９】
タップ生成部１２１は、例えば、図７に示すように、サブフレームの各合成音データ（音声合成フィルタ２９が出力する合成音データ）を注目データとして、その注目データから過去のＮサンプルの合成音データ（図７において、Ａで示す範囲の合成音データ）や、注目データを中心とする過去と未来の合計Ｎサンプルの合成音データ（図７において、Ｂで示す範囲の合成音データ）を、予測タップとして抽出する。
【０１００】
さらに、タップ生成部１２１は、例えば、注目データが位置するサブフレーム（図７の実施の形態においては、サブフレーム＃３）、即ち、注目サブフレームに配置されたＩコードをも、予測タップとして抽出する。
【０１０１】
従って、この場合、予測タップは、注目データを含むＮサンプルの合成音データと、注目サブフレームのＩコードとから構成される。
【０１０２】
なお、タップ生成部１２２においても、例えば、タップ生成部１２１における場合と同様にして、合成音データとＩコードからなるクラスタップが抽出される。
【０１０３】
但し、予測タップやクラスタップの構成パターンは、上述したパターンのものに限定されるものではない。即ち、予測タップやクラスタップとしては、注目データについて、上述のようなＮサンプルすべての合成音データを抽出する他、１サンプルおき等の合成音データを抽出するようにすることが可能である。
【０１０４】
また、上述の場合には、同一のクラスタップおよび予測タップを構成するようにしたが、クラスタップと予測タップとは、異なる構成とすることができる。
【０１０５】
ところで、予測タップやクラスタップは、合成音データだけから構成することが可能であるが、上述のように、予測タップやクラスタップを、合成音データの他、その合成音データに関係する情報としてのＩコードをも用いて構成することによって、より高音質の音声を復号することが可能となる。
【０１０６】
しかしながら、上述の場合のように、注目データが位置するサブフレーム（注目サブフレーム）に配置されたＩコードだけを、予測タップやクラスタップに含めるようにした場合には、その予測タップやクラスタップを構成する合成音データと、Ｉコードとの、いわば釣り合いがとれず、そのため、クラス分類適応処理による音質の改善効果を、十分に得られなくなるおそれがある。
【０１０７】
即ち、例えば、図７において、注目データから過去のＮサンプルの合成音データ（図７において、Ａで示す範囲の合成音データ）を、予測タップに含める場合、その予測タップとなる合成音データには、注目サブフレームの合成音データだけでなく、その直前のサブフレームの合成音データも含まれる。従って、この場合、注目サブフレームに配置されたＩコードを予測タップに含めるのならば、その直前のサブフレームに配置されたＩコードも、予測タップに含めなければ、予測タップ構成する合成音データと、Ｉコードとの関係が釣り合いのとれたものとならないおそれがある。
【０１０８】
そこで、予測タップやクラスタップを構成させるＩコードのサブフレームは、注目データの、注目サブフレームの位置に応じて可変にするようにすることが可能である。
【０１０９】
即ち、例えば、注目データについて構成される予測タップに含まれる合成音データが、注目サブフレームの直前または直後に隣接するサブフレーム（以下、隣接サブフレームという）にまで亘る場合や、注目サブフレームの、隣接サブフレームに近い位置にまで亘る場合には、注目サブフレームのＩコードだけでなく、隣接サブフレームのＩコードも含めて、予測タップを構成するようにすることが可能である。クラスタップも同様にして構成することが可能である。
【０１１０】
このように、予測タップやクラスタップを、それを構成する合成音データとＩコードとの釣り合いがとれるように構成することで、クラス分類適応処理による音質の改善効果を、十分に得ることが可能となる。
【０１１１】
図８は、上述のように、予測タップを構成させるＩコードのサブフレームを、注目データの、注目サブフレームの位置に応じて可変にすることによって、予測タップを、それを構成する合成音データとＩコードとの釣り合いがとれるように構成するタップ生成部１２１の構成例を示している。なお、クラスタップを構成するタップ生成部１２２も、図８と同様に構成することができる。
【０１１２】
メモリ４１Ａには、図５の音声合成フィルタ２９が出力する合成音データが供給されるようになっており、メモリ４１Ａは、そこに供給される合成音データを一時記憶する。なお、メモリ４１Ａは、少なくとも、１つの予測タップを構成するＮサンプルの合成音データを記憶することのできる記憶容量を有している。また、メモリ４１Ａは、そこに供給される合成音データの最新のサンプルを、最も古い記憶値に上書きする形で順次記憶するようになっている。
【０１１３】
そして、データ抽出回路４２Ａは、注目データについて、予測タップを構成する合成音データを、メモリ４１Ａから読み出すことで抽出し、合成回路４３に出力する。
【０１１４】
即ち、データ抽出回路４２Ａは、例えば、メモリ４１Ａに記憶された最新の合成音データを注目データとする場合、その最新の合成音データから過去のＮサンプルの合成音データを、メモリ４１Ａから読み出すことで抽出し、合成回路４３に出力する。
【０１１５】
なお、図７においてＢで示したように、注目データを中心とする過去と未来のＮサンプルの合成音データを、予測タップとする場合には、メモリ４１Ａに記憶された合成音データのうちの、最新の合成音データから、Ｎ／２（小数点以下繰り上げ）サンプルだけ過去のものを、注目データとして、その注目データを中心とする過去と未来の合計Ｎサンプルの合成音データを、メモリ４１Ａから読み出すようにすれば良い。
【０１１６】
一方、メモリ４１Ｂには、図５のチャネルデコーダ２１が出力するサブフレーム単位のＩコードが供給されるようになっており、メモリ４１Ｂは、そこに供給されるＩコードを一時記憶する。なお、メモリ４１Ｂは、少なくとも、１つの予測タップを構成しうる分のＩコードを記憶することのできる記憶容量を有している。また、メモリ４１Ｂは、メモリ４１Ａと同様に、そこに供給される最新のＩコードを、最も古い記憶値に上書きする形で順次記憶するようになっている。
【０１１７】
そして、データ抽出回路４２Ｂは、データ抽出回路４２Ａが注目データとする合成音データの、注目サブフレームにおける位置に応じて、注目サブフレームのＩコードだけ、または注目サブフレームのＩコードと、それに隣接するサブフレーム（隣接サブフレーム）のＩコードとを、メモリ４１Ｂから読み出すことで抽出し、合成回路４３に出力する。
【０１１８】
合成回路４３は、データ抽出回路４２Ａからの合成音データと、データ抽出回路４２ＢからのＩコードとを、１セットのデータに合成（結合）し、予測タップとして出力する。
【０１１９】
ところで、タップ生成部１２１において、以上のように予測タップを生成する場合には、その予測タップを構成する合成音データは、Ｎサンプルで一定であるが、Ｉコードについては、注目サブフレームのＩコードだけの場合と、注目サブフレームのＩコード、およびそれに隣接するサブフレーム（隣接サブフレーム）のＩコードの場合とがあるため、その数が変化する。このことは、タップ生成部１２２において生成されるクラスタップについても同様である。
【０１２０】
予測タップについては、それを構成するデータの数（タップ数）が変化しても、その予測タップと同一の数のタップ係数を、後述する図１３の学習装置において学習し、係数メモリ１２４に記憶させておけば良いから問題はない。
【０１２１】
一方、クラスタップについては、それを構成するタップ数が変化すると、そのクラスタップによって得られる全クラス数が変化することから、処理が複雑になるおそれがある。そこで、クラスタップのタップ数が変化しても、そのクラスタップにより得られるクラス数が変化しないようなクラス分類を行うのが望ましい。
【０１２２】
このように、クラスタップのタップ数が変化しても、そのクラスタップにより得られるクラス数が変化しないようなクラス分類を行う方法としては、クラスを表すクラスコードに、例えば、注目データの、注目サブフレームにおける位置を考慮する方法がある。
【０１２３】
即ち、本実施の形態では、注目データの、注目サブフレームにおける位置によって、クラスタップのタップ数が増減する。例えば、いま、クラスタップのタップ数がＳ個の場合と、それより多いＬ（＞Ｓ）個の場合とが存在し、タップ数がＳ個の場合に、ｎビットのクラスコードが得られ、タップ数がＬ個の場合に、ｎ＋ｍビットのクラスコードが得られるとする。
【０１２４】
この場合、クラスコードとして、ｎ＋ｍ＋１ビットを用いるとともに、そのｎ＋ｍ＋１ビットのうちの、例えば、最上位ビットなどの１ビットを、クラスタップのタップ数がＳ個の場合とＬ個の場合とで、それぞれ、例えば、０と１に設定することにより、タップ数がＳ個とＬ個のいずれであっても、全クラス数が２n+m+1クラスのクラス分類が可能となる。
【０１２５】
即ち、クラスタップのタップ数がＬ個の場合には、ｎ＋ｍビットのクラスコードが得られるクラス分類を行い、そのｎ＋ｍビットのクラスコードに、その最上位ビットとして、タップ数がＬ個であることを表す”１”を付加したｎ＋ｍ＋１ビットを最終的なクラスコードとすれば良い。
【０１２６】
また、クラスタップのタップ数がＳ個の場合には、ｎビットのクラスコードが得られるクラス分類を行い、そのｎビットのクラスコードに、その上位ビットとして、ｍビットの”０”を付加してｎ＋ｍビットとし、さらに、そのｎ＋ｍビットに、その最上位ビットとして、タップ数がＳ個であることを表す”０”を付加したｎ＋ｍ＋１ビットを最終的なクラスコードとすれば良い。
【０１２７】
ところで、上述のようにすることで、クラスタップのタップ数がＳ個とＬ個のいずれの場合であっても、全クラス数が２n+m+1クラスとなるクラス分類が可能となるが、タップ数がＳ個の場合においては、最上位ビットから数えて２ビット目から、ｍ＋１ビット目までのビットは、常に”０”になる。
【０１２８】
従って、上述のように、ｎ＋ｍ＋１ビットのクラスコードを出力するクラス分類を行った場合には、使用されないクラス（を表すクラスコード）が生じること、即ち、いわば無駄なクラスが生じることになる。
【０１２９】
そこで、そのような無駄なクラスが生じることを防止して、全クラス数を一定にするために、クラス分類は、クラスタップを構成するデータに重みを付して行うことが可能である。
【０１３０】
即ち、例えば、図７においてＡで示した、注目データから過去Ｎサンプルの合成音データをクラスタップに含めるとともに、注目データの、注目サブフレームにおける位置に応じて、注目サブフレーム（以下、適宜、注目サブフレーム＃ｎと記載する）のＩコード、または直前のサブフレーム＃ｎ−１のＩコードのいずれか一方または両方を、クラスタップに含める場合においては、そのクラスタップを構成する注目サブフレーム＃ｎのＩコードに対応するクラス数と、直前のサブフレーム＃ｎ−１のＩコードに対応するクラス数に対して、それぞれ、例えば、図９（Ａ）と図９（Ｂ）に示すような重み付けを行うことにより、全クラス数を一定にすることができる。
【０１３１】
即ち、図９（Ａ）は、注目データが、注目サブフレーム＃ｎの右方向（未来方向）に位置するほど、注目サブフレーム＃ｎのＩコードに対応するクラス数が増大するような、クラス分類が行われることを表している。また、図９（Ｂ）は、注目データが、注目サブフレーム＃ｎの右方向に位置するほど、注目サブフレーム＃ｎの直前のサブフレーム＃ｎ−１のＩコードに対応するクラス数が減少するような、クラス分類が行われることを表している。そして、図９（Ａ）と図９（Ｂ）のような重み付けが行われることにより、全体としては、クラス数が一定になるクラス分類が行われる。
【０１３２】
また、例えば、図７においてＢで示した、注目データを中心とする過去と未来の合計Ｎサンプルの合成音データを、クラスタップに含めるとともに、注目データの、注目サブフレームにおける位置に応じて、注目サブフレーム＃ｎのＩコードと、その直前のサブフレーム＃ｎ−１若しくは直後のサブフレーム＃ｎ＋１のＩコードのいずれか一方または両方とを、クラスタップに含める場合においては、そのクラスタップを構成する注目サブフレーム＃ｎのＩコードに対応するクラス数、直前のサブフレーム＃ｎ−１のＩコードに対応するクラス数、直後のサブフレーム＃ｎ＋１のＩコードに対応するクラス数に対して、それぞれ、例えば、図９（Ｃ）、図９（Ｄ）、図９（Ｅ）に示すような重み付けを行うことにより、全クラス数を一定にすることができる。
【０１３３】
即ち、図９（Ｃ）は、注目データが、注目サブフレーム＃ｎの中心位置に近いほど、注目サブフレーム＃ｎのＩコードに対応するクラス数が増大するような、クラス分類が行われることを表している。また、図９（Ｄ）は、注目データが、注目サブフレーム＃ｎの左方向（過去方向）に位置するほど、注目サブフレーム＃ｎの直前のサブフレーム＃ｎ−１のＩコードに対応するクラス数が増大するような、クラス分類が行われることを表している。さらに、図９（Ｅ）は、注目データが、注目サブフレーム＃ｎの右方向（未来方向）に位置するほど、注目サブフレーム＃ｎの直後のサブフレーム＃ｎ＋１のＩコードに対応するクラス数が増大するような、クラス分類が行われることを表している。そして、図９（Ｃ）乃至図９（Ｅ）のような重み付けが行われることにより、全体としては、クラス数が一定になるクラス分類が行われる。
【０１３４】
次に、図１０は、Ｉコードに対応するクラス数が、例えば、５１２クラスで一定となるように、クラス分類を行う場合の重み付けの例を示している。
【０１３５】
即ち、図１０（Ａ）は、注目データの、注目サブフレームにおける位置に応じて、注目サブフレーム＃ｎのＩコード、または直前のサブフレーム＃ｎ−１のＩコードのいずれか一方または両方を、クラスタップに含める場合の、図９（Ａ）および図９（Ｂ）に示した重み付けの具体例を示している。
【０１３６】
また、図１０（Ｂ）は、注目データの、注目サブフレームにおける位置に応じて、注目サブフレーム＃ｎのＩコードと、その直前のサブフレーム＃ｎ−１若しくは直後のサブフレーム＃ｎ＋１のＩコードのいずれか一方または両方とを、クラスタップに含める場合の、図９（Ｃ）乃至図９（Ｄ）に示した重み付けの具体例を示している。
【０１３７】
図１０（Ａ）において、その最左欄は、注目サブフレームにおける注目データの左端からの位置を、左から２番目の欄は、注目サブフレームの直前のサブフレームのＩコードによるクラス数を、左から３番目の欄は、注目サブフレームのＩコードによるクラス数を、最右欄は、クラスタップを構成するＩコードによるクラス数（注目サブフレームのＩコードと、その直前のサブフレームのＩコードとによるクラス数）を、それぞれ示している。
【０１３８】
ここで、サブフレームは、例えば、前述したように、４０サンプルで構成されるため、注目サブフレームにおける注目データの左端からの位置（最左欄）は、１乃至４０の範囲の値をとる。また、Ｉコードは、例えば、前述したように、９ビットであるため、その９ビットを、そのままクラスコードとした場合が、クラス数が最大となる場合となる。従って、Ｉコードによるクラス数（左から２番目と３番目の欄）は、２9（＝５１２）以下の値となる。
【０１３９】
さらに、上述のように、１つのＩコードを、そのままクラスコードとして用いた場合には、そのクラス数は、５１２（＝２9）となることから、図１０（Ａ）では（後述する図１０（Ｂ）においても同様）、クラスタップを構成するすべてのＩコードによるクラス数（注目サブフレームのＩコードと、その直前のサブフレームのＩコードとによるクラス数）が、５１２クラスとなるように、即ち、注目サブフレームのＩコードによるクラス数と、その直前のサブフレームのＩコードによるクラス数との積が、５１２クラスとなるように、注目サブフレームのＩコードによるクラス数と、その直前のサブフレームのＩコードによるクラス数とに、重み付けが行われている。
【０１４０】
図１０（Ａ）においては、図９（Ａ）で説明したように、注目データが、注目サブフレーム＃ｎの右方向に位置するほど（注目データの位置を表す値が大きくなるほど）、注目サブフレーム＃ｎのＩコードに対応するクラス数が増大するとともに、図９（Ｂ）で説明したように、注目サブフレーム＃ｎの直前のサブフレーム＃ｎ−１のＩコードに対応するクラス数が減少している。
【０１４１】
また、図１０（Ｂ）において、その最左欄、左から２番目の欄、３番目の欄、および最右欄は、図１０（Ａ）における場合と同様の内容を示している。そして、左から４番目の欄は、注目サブフレームの直後のサブフレームのＩコードによるクラス数を示している。
【０１４２】
図１０（Ｂ）においては、図９（Ｃ）で説明したように、注目データが、注目サブフレーム＃ｎの中心位置からずれるほど（注目データの位置を表す値が大きくまたは小さくなるほど）、注目サブフレーム＃ｎのＩコードに対応するクラス数が減少している。また、図９（Ｄ）で説明したように、注目データが、注目サブフレーム＃ｎの左方向に位置するほど、注目サブフレーム＃ｎの直前のサブフレーム＃ｎ−１のＩコードに対応するクラス数が増大している。さらに、図９（Ｅ）で説明したように、注目データが、注目サブフレーム＃ｎの右方向に位置するほど、注目サブフレーム＃ｎの直後のサブフレーム＃ｎ＋１のＩコードに対応するクラス数が増大している。
【０１４３】
次に、図１１は、上述のような重み付けを伴うクラス分類を行う、図５のクラス分類部１２３の構成例を示している。
【０１４４】
なお、ここでは、クラスタップは、例えば、図７においてＡで示した、注目データから過去Ｎサンプルの合成音データと、注目サブフレームおよびその直前のサブフレームのＩコードとから構成されるものとする。
【０１４５】
タップ生成部１２２（図５）が出力するクラスタップは、合成音データ切り出し部５１とコード切り出し部５３に供給される。
【０１４６】
合成音データ切り出し部５１は、そこに供給されるクラスタップから、そのクラスタップを構成する複数サンプルの合成音データを切り出し（抽出し）、ADRC回路５２に供給する。ADRC回路５２は、合成音データ切り出し部５１から供給される複数の合成音データ（ここでは、Ｎサンプルの合成音データ）に対して、例えば、１ビットADRC処理を施し、その結果得られる複数の合成音データについての１ビットを所定の順番で並べたビット列を、合成回路５６に供給する。
【０１４７】
一方、コード切り出し部５３は、そこに供給されるクラスタップから、そのクラスタップを構成するＩコードを切り出す（抽出する）。さらに、コード切り出し部５３は、その切り出したＩコードのうち、注目サブフレームのＩコードと、直前のサブフレームのＩコードを、縮退部５４Ａと５４Ｂに、それぞれ供給する。
【０１４８】
縮退部５４Ａは、後述するテーブル作成処理によって作成された縮退テーブルを記憶しており、その縮退テーブルを用い、図９および図１０で説明したようにして、注目データの注目サブフレームにおける位置にしたがって、注目サブフレームのＩコードによって表されるクラス数を縮退（減少）させ、合成回路５５に出力する。
【０１４９】
即ち、縮退部５４Ａは、注目データの注目サブフレームにおける位置が、左から１乃至４番目のいずれかである場合には、例えば、図１０（Ａ）に示したように、注目サブフレームのＩコードによって表される５１２のクラス数を、５１２クラスにするように縮退処理して、即ち、注目サブフレームの９ビットのＩコードを、特に処理せずに、そのまま出力する。
【０１５０】
また、縮退部５４Ａは、注目データの注目サブフレームにおける位置が、左から５乃至８番目のいずれかである場合には、例えば、図１０（Ａ）に示したように、注目サブフレームのＩコードによって表される５１２のクラス数を、２５６クラスにするように縮退処理して、即ち、注目サブフレームの９ビットのＩコードを、縮退テーブルを用いて、８ビットで表されるコードに変換して出力する。
【０１５１】
さらに、縮退部５４Ａは、注目データの注目サブフレームにおける位置が、左から９乃至１２番目のいずれかである場合には、例えば、図１０（Ａ）に示したように、注目サブフレームのＩコードによって表される５１２のクラス数を、１２８クラスにするように縮退処理して、即ち、注目サブフレームの９ビットのＩコードを、縮退テーブルを用いて、７ビットで表されるコードに変換して出力する。
【０１５２】
縮退部５４Ａは、以下、同様に、注目データの注目サブフレームにおける位置にしたがって、注目サブフレームのＩコードによって表されるクラス数を、例えば、図１０（Ａ）の左から２番目の欄に示したように縮退させて、合成回路５５に出力する。
【０１５３】
縮退部５４Ｂも、縮退部５４Ａと同様に、縮退テーブルを記憶しており、その縮退テーブルを用い、注目データの注目サブフレームにおける位置にしたがって、注目サブフレームの直前のサブフレームのＩコードによって表されるクラス数を、例えば、図１０（Ａ）の左から３番目の欄に示したように縮退させて、合成回路５５に出力する。
【０１５４】
合成回路５５は、縮退部５４Ａからの、クラス数が適宜縮退された注目サブフレームのＩコードと、縮退部５４Ｂからの、クラス数が適宜縮退された注目サブフレームの直前のサブフレームのＩコードとを、１つのビット列に合成し、合成回路５６に出力する。
【０１５５】
合成回路５６は、ADRC回路５２が出力するビット列と、合成回路５５が出力するビット列とを結合して、１つのビット列とし、クラスコードとして出力する。
【０１５６】
次に、図１２のフローチャートを参照して、図１１の縮退部５４Ａおよび５４Ｂで用いられる縮退テーブルを作成するテーブル作成処理について説明する。
【０１５７】
縮退テーブル作成処理では、まず最初に、ステップＳ１１において、縮退後のクラス数Ｍが設定される。なお、ここでは、Ｍは、説明を簡単にするために、例えば、２累乗の値とする。さらに、ここでは、９ビットのＩコードによって表されるクラス数を縮退するための縮退テーブルを作成するので、Ｍは、９ビットのＩコードによって表される最大のクラス数である５１２以下の値とする。
【０１５８】
その後、ステップＳ１２に進み、縮退後のクラスコードを表す変数ｃに０をセットし、ステップＳ１３に進む。ステップＳ１３では、Ｉコードすべて（最初は、９ビットのＩコードによって表される数すべて）を、処理の対象とする対象Ｉコードに設定し、ステップＳ１４に進む。ステップＳ１４では、対象Ｉコードのうちの１つを、注目Ｉコードとして選択し、ステップＳ１５に進む。
【０１５９】
ステップＳ１５では、注目Ｉコードによって表される波形（励起信号の波形）と、注目Ｉコードを除く、すべての対象コードによって表される波形それぞれとの自乗誤差が計算される。
【０１６０】
即ち、前述したように、Ｉコードは、所定の励起信号と対応付けられており、ステップＳ１５では、注目Ｉコードによって表される励起信号の波形の各サンプル値と、対象Ｉコードによって表される励起信号の波形の、対応するサンプル値との自乗誤差の総和が求められる。ステップＳ１５では、このような注目Ｉコードについての自乗誤差の総和が、対象Ｉコードすべてを対象として求められる。
【０１６１】
その後、ステップＳ１６に進み、注目Ｉコードについての自乗誤差の総和を最小にする対象Ｉコード（以下、適宜、自乗誤差最小Ｉコードという）が検出され、注目Ｉコードと、自乗誤差最小Ｉコードとが、変数ｃによって表されるコードに対応付けられる。即ち、これにより、注目Ｉコードと、対象Ｉコードのうち、注目Ｉコードによって表される波形と最も近似する波形を表すもの（自乗誤差最小Ｉコード）とが、同一のクラスｃに縮退される。
【０１６２】
ステップＳ１６の処理後は、ステップＳ１７に進み、注目Ｉコードによって表される波形の各サンプル値と、自乗誤差最小Ｉコードによって表される波形の、対応するサンプル値との、例えば平均値が求められ、その平均値による波形が、変数ｃが表す励起信号の波形として、変数ｃに対応付けられる。
【０１６３】
そして、ステップＳ１８に進み、注目Ｉコードと、自乗誤差最小Ｉコードとが、対象Ｉコードが除外され、ステップＳ１９に進み、変数ｃが１だけインクリメントされて、ステップＳ２０に進む。
【０１６４】
ステップＳ２０では、対象ＩコードとなっているＩコードが、まだ存在するかどうかが判定され、存在すると判定された場合、ステップＳ１４に戻り、対象ＩコードとなっているＩコードから、注目Ｉコードが選択され、以下、同様の処理が繰り返される。
【０１６５】
また、ステップＳ２０において、対象ＩコードとなっているＩコードが存在しないと判定された場合、即ち、直前のステップＳ１３において、対象ＩコードとされたＩコードが、その総数の１／２の数の変数ｃに対応付けられた場合、ステップＳ２１に進み、変数ｃが、縮退後のクラス数Ｍに等しいかどうかが判定される。
【０１６６】
ステップＳ２１において、変数ｃが、縮退後のクラス数Ｍに等しくないと判定された場合、即ち、９ビットのＩコードによって表されるクラス数が、まだＭクラスに縮退されていない場合、ステップＳ２２に進み、変数ｃによって表される各値が、新たに、Ｉコードとみなされ、ステップＳ１２に戻り、その新たなＩコードを対象として、以下、同様の処理が繰り返される。
【０１６７】
なお、この新たなＩコードについては、ステップＳ１７で求められた波形が、その新たなＩコードが表す励起信号の波形として、ステップＳ１５における自乗誤差の計算が行われる。
【０１６８】
一方、ステップＳ２１において、変数ｃが、縮退後のクラス数Ｍに等しいと判定された場合、即ち、９ビットのＩコードによって表されるクラス数が、Ｍクラスに縮退された場合、ステップＳ２３に進み、変数ｃの各値と、その値に対応付けられている９ビットのＩコードとの対応表が作成され、この対応表が、縮退テーブルとして出力されて、処理を終了する。
【０１６９】
図１１の縮退部５４Ａおよび５４Ｂでは、そこに供給される９ビットのＩコードが、上述のようにして作成された縮退テーブルにおいて、その９ビットのＩコードと対応付けられている変数ｃに変換されることで縮退される。
【０１７０】
なお、９ビットのＩコードによるクラス数の縮退は、その他、例えば、単に、Ｉコードの下位ビットを削除することによって行うことも可能である。但し、クラス数の縮退は、類似するクラスどうしをまとめるように行うのが望ましく、従って、Ｉコードの下位ビットを単に削除するよりは、図１２で説明したように、波形が似ている励起信号の信号を表すＩコードどうしを、同一のクラスに割り当てるようにする方が望ましい。
【０１７１】
次に、図１３は、図５の係数メモリ１２４に記憶させるタップ係数の学習処理を行う学習装置の一実施の形態の構成例を示している。
【０１７２】
マイク２０１乃至コード決定部２１５は、図１のマイク１乃至コード決定部１５とそれぞれ同様に構成される。マイク１には、学習用の高音質の音声信号が入力されるようになっており、従って、マイク２０１乃至コード決定部２１５では、その学習用の音声信号に対して、図１における場合と同様の処理が施される。
【０１７３】
但し、コード決定部２１５は、Ｌコード、Ｇコード、Ｉコード、およびＡコードのうち、本実施の形態において予測タップやクラスタップを構成するＩコードだけを出力するようになっている。
【０１７４】
そして、タップ生成部１３１と１３２には、自乗誤差最小判定部２０８において自乗誤差が最小になったと判定されたときの音声合成フィルタ２０６が出力する合成音が供給される。さらに、タップ生成部１３１と１３２には、コード決定部２１５が、自乗誤差最小判定部２０８から確定信号を受信したときに出力するＩコードも供給される。また、正規方程式加算回路１３４には、Ａ／Ｄ変換部２０２が出力する音声が、教師データとして供給される。
【０１７５】
タップ生成部１３１は、音声合成フィルタ２０６が出力する合成音データと、コード決定部２１５が出力するＩコードとから、図５のタップ生成部１２１における場合と同一の予測タップを生成し、生徒データとして、正規方程式加算回路１３４に供給する。
【０１７６】
タップ生成部１３２も、音声合成フィルタ２０６が出力する合成音と、コード決定部２１５が出力するＩコードとから、図５のタップ生成部１２２における場合と同一のクラスタップを生成し、クラス分類部１３３に供給する。
【０１７７】
クラス分類部１３３は、タップ生成部１３２からのクラスタップに基づいて、図５のクラス分類部１２３における場合と同様のクラス分類を行い、その結果得られるクラスコードを、正規方程式加算回路１３４に供給する。
【０１７８】
正規方程式加算回路１３４は、Ａ／Ｄ変換部２０２からの音声を、教師データとして受信するとともに、タップ生成部１３１からの予測タップを、生徒データとして受信し、その教師データおよび生徒データを対象として、クラス分類部１３３からのクラスコードごとに足し込みを行う。
【０１７９】
即ち、正規方程式加算回路１３４は、クラス分類部１３３から供給されるクラスコードに対応するクラスごとに、予測タップ（生徒データ）を用い、式（１３）の行列Ａにおける各コンポーネントとなっている、生徒データどうしの乗算（ｘinｘim）と、サメーション（Σ）に相当する演算を行う。
【０１８０】
さらに、正規方程式加算回路１３４は、やはり、クラス分類部１３３から供給されるクラスコードに対応するクラスごとに、生徒データおよび教師データを用い、式（１３）のベクトルｖにおける各コンポーネントとなっている、生徒データと教師データの乗算（ｘinｙi）と、サメーション（Σ）に相当する演算を行う。
【０１８１】
正規方程式加算回路１３４は、以上の足し込みを、そこに供給される学習用の音声のサブフレームすべてを注目サブフレームとして行い、これにより、各クラスについて、式（１３）に示した正規方程式をたてる。
【０１８２】
タップ係数決定回路１３５は、正規方程式加算回路１３４においてクラスごとに生成された正規方程式を解くことにより、クラスごとに、タップ係数を求め、係数メモリ１３６の、各クラスに対応するアドレスに供給する。
【０１８３】
なお、学習用の音声信号として用意した音声信号によっては、正規方程式加算回路１３４において、タップ係数を求めるのに必要な数の正規方程式が得られないクラスが生じる場合があり得るが、タップ係数決定回路１３５は、そのようなクラスについては、例えば、デフォルトのタップ係数を出力する。
【０１８４】
係数メモリ１３６は、タップ係数決定回路１３５から供給されるクラスごとのタップ係数を、そのクラスに対応するアドレスに記憶する。
【０１８５】
次に、図１４のフローチャートを参照して、図１３の構成される学習装置で行われる、高音質の音声を復号するためのタップ係数を求める学習処理について説明する。
【０１８６】
即ち、学習装置には、学習用の音声信号が供給され、ステップＳ３１では、その学習用の音声信号から、教師データと生徒データが生成される。
【０１８７】
即ち、学習用の音声信号は、マイク２０１に入力され、マイク２０１乃至コード決定部２１５は、図１のマイク１乃至コード決定部１５における場合とそれぞれ同様の処理を行う。
【０１８８】
その結果、Ａ／Ｄ変換部２０２で得られるディジタル信号の音声は、教師データとして、正規方程式加算回路１３４に供給される。また、自乗誤差最小判定部２０８において自乗誤差が最小になったと判定されたときに、音声合成フィルタ２０６が出力する合成音データが、生徒データとして、タップ生成部１３１と１３２に供給される。さらに、自乗誤差最小判定部２０８において自乗誤差が最小になったと判定されたときに、コード決定部２１５が出力するＩコードも、生徒データとして、タップ生成部１３１と１３２に供給される。
【０１８９】
その後、ステップＳ３２に進み、タップ生成部１３１は、音声合成フィルタ２０６から生徒データとして供給される合成音のサブフレームを注目サブフレームとし、さらに、その注目サブフレームの合成音データを、順次、注目データとして、各注目データについて、音声合成フィルタ２０６からの合成音データと、コード決定部２１５からのＩコードとから、図５のタップ生成部１２１における場合と同様にして、予測タップを生成し、正規方程式加算回路１３４に供給する。さらに、ステップＳ３２では、タップ生成部１３２が、やはり、合成音データと、Ｉコードとから、図５のタップ生成部１２２における場合と同様にして、クラスタップを生成し、クラス分類部１３３に供給する。
【０１９０】
ステップＳ３２の処理後は、ステップＳ３３に進み、クラス分類部１３３が、タップ生成部１３２からのクラスタップに基づいて、クラス分類を行い、その結果得られるクラスコードを、正規方程式加算回路１３４に供給する。
【０１９１】
そして、ステップＳ３４に進み、正規方程式加算回路１３４は、Ａ／Ｄ変換器２０２からの教師データとしての学習用の音声のうちの注目データに対応するもの、およびタップ生成部１３２からの生徒データとしての予測タップ（注目データについて生成された予測タップ）を対象として、式（１３）の行列Ａとベクトルｖの、上述したような足し込みを、クラス分類部１３３からの注目データについてのクラスコードごとに行い、ステップＳ３５に進む。
【０１９２】
ステップＳ３５では、まだ、注目サブフレームとして処理すべき次のサブフレームがあるかどうかが判定される。ステップＳ３５において、まだ、注目サブフレームとして処理すべき次のサブフレームがあると判定された場合、ステップＳ３１に戻り、次のサブフレームを新たに注目サブフレームとして、以下、同様の処理が繰り返される。
【０１９３】
また、ステップＳ３５において、注目サブフレームとして処理すべきサブフレームがないと判定された場合、ステップＳ３６に進み、タップ係数決定回路１３５は、正規方程式加算回路１３４で各クラスごとに生成された正規方程式を解くことにより、各クラスごとに、タップ係数を求め、係数メモリ１３６の、各クラスに対応するアドレスに供給して記憶させ、処理を終了する。
【０１９４】
以上のようにして、係数メモリ１３６に記憶された各クラスごとのタップ係数が、図５の係数メモリ１２４に記憶されている。
【０１９５】
以上のように、図５の係数メモリ１２４に記憶されたタップ係数は、線形予測演算を行うことにより得られる高音質の音声の予測値の予測誤差（自乗誤差）が、統計的に最小になるように学習を行うことにより求められたものであるから、図５の予測部１２５が出力する音声は、高音質のものとなる。
【０１９６】
なお、例えば、図５および図１３の実施の形態では、予測タップやクラスタップに、音声合成フィルタ２０６が出力する合成音データの他、符号化データに含まれる（符号化データとなる）Ｉコードを含めるようにしたが、予測タップやクラスタップには、図５および図１３において点線で示すように、Ｉコードに替えて、あるいはＩコードの他に、Ｌコードや、Ｇコード、Ａコード、Ａコードから得られる線形予測係数αp、Ｇコードから得られるゲインβ，γ、その他の、Ｌコード、Ｇコード、Ｉコード、またはＡコードから得られる情報（例えば、残差信号ｅや、残差信号ｅを得るためのｌ，ｎ、さらには、ｌ／β，ｎ／γなど）のうちの１以上を含めるようにすることが可能である。また、ＣＥＬＰ方式では、符号化データとしてのコードデータに、リスト補間ビットやフレームエネルギが含められる場合があるが、この場合、予測タップやクラスタップは、ソフト補間ビットやフレームエネルギを用いて構成することが可能である。
【０１９７】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０１９８】
そこで、図１５は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０１９９】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク３０５やＲＯＭ３０３に予め記録しておくことができる。
【０２００】
あるいはまた、プログラムは、フロッピーディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体３１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体３１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０２０１】
なお、プログラムは、上述したようなリムーバブル記録媒体３１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部３０８で受信し、内蔵するハードディスク３０５にインストールすることができる。
【０２０２】
コンピュータは、CPU(Central Processing Unit)３０２を内蔵している。CPU３０２には、バス３０１を介して、入出力インタフェース３１０が接続されており、CPU３０２は、入出力インタフェース３１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部３０７が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)３０３に格納されているプログラムを実行する。あるいは、また、CPU３０２は、ハードディスク３０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部３０８で受信されてハードディスク３０５にインストールされたプログラム、またはドライブ３０９に装着されたリムーバブル記録媒体３１１から読み出されてハードディスク３０５にインストールされたプログラムを、RAM(Random Access Memory)３０４にロードして実行する。これにより、CPU３０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU３０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース３１０を介して、LCD(Liquid CryStal Display)やスピーカ等で構成される出力部３０６から出力、あるいは、通信部３０８から送信、さらには、ハードディスク３０５に記録等させる。
【０２０３】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０２０４】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０２０５】
なお、本実施の形態においては、学習用の音声信号として、どのようなものを用いるかについては、特に言及しなかったが、学習用の音声信号としては、人が発話した音声の他、例えば、曲（音楽）等を採用することが可能である。そして、上述したような学習処理によれば、学習用の音声信号として、人の発話を用いた場合には、そのような人の発話の音声の音質を向上させるようなタップ係数が得られ、曲を用いた場合には、曲の音質を向上させるようなタップ係数が得られることになる。
【０２０６】
また、図５の実施の形態では、係数メモリ１２４には、タップ係数をあらかじめ記憶させておくようにしたが、係数メモリ１２４に記憶させるタップ係数は、携帯電話機１０１において、図３の基地局１０２（あるいは交換局１０３）や、図示しないＷＷＷ(World Wide Web)サーバ等からダウンロードするようにすることができる。即ち、上述したように、タップ係数は、人の発話用や曲用等のように、ある種類の音声信号に適したものを、学習によって得ることができる。さらに、学習に用いる教師データおよび生徒データによっては、合成音の音質に差が生じるタップ係数を得ることができる。従って、そのような各種のタップ係数を、基地局１０２等に記憶させておき、ユーザには、自身の所望するタップ係数をダウンロードさせるようにすることができる。そして、このようなタップ係数のダウンロードサービスは、無料で行うこともできるし、有料で行うこともできる。さらに、タップ係数のダウンロードサービスを有料で行う場合には、タップ係数のダウンロードに対する対価としての代金は、例えば、携帯電話機１０１の通話料等とともに請求するようにすることが可能である。
【０２０７】
また、係数メモリ１２４は、携帯電話機１０１に対して着脱可能なメモリカード等で構成することができる。この場合、上述したような各種のタップ係数それぞれを記憶させた、異なるメモリカードを提供するようにすれば、ユーザは、場合に応じて、所望のタップ係数が記憶されたメモリカードを、携帯電話機１０１に装着して使用することが可能となる。
【０２０８】
さらに、本発明は、例えば、ＶＳＥＬＰ(Vector Sum Excited Liner Prediction)，ＰＳＩ−ＣＥＬＰ(Pitch Synchronous Innovation CELP)，ＣＳ−ＡＣＥＬＰ(Conjugate Structure Algebraic CELP)等のＣＥＬＰ方式による符号化の結果得られるコードから合成音を生成する場合に、広く適用可能である。
【０２０９】
また、本発明は、ＣＥＬＰ方式による符号化の結果得られるコードから合成音を復号する場合に限らず、復号に用いられる情報（復号情報）を、所定の単位ごとに有する符号化データから、元のデータを復号する場合に広く適用可能である。即ち、本発明は、例えば、画像を、所定のブロック単位でDCT(Discrete Cosine Transform)係数とするJPEG(Joint Photographic Experts Group)方式により符号された符号化データ等にも適用可能である。
【０２１０】
さらに、本実施の形態では、タップ係数を用いた線形１次予測演算によって、残差信号や線形予測係数の予測値を求めるようにしたが、この予測値は、その他、２次以上の高次の予測演算によって求めることも可能である。
【０２１１】
なお、例えば、特開平８−２０２３９９号公報には、合成音を、高域強調フィルタに通すことによって、その音質を改善する方法が開示されているが、本発明は、タップ係数が学習により得られる点や、予測計算に用いられるタップ係数が、クラス分類結果によって適応的に決まる点、さらには、予測タップ等が、合成音だけでなく、符号化データに含まれるＩコード等から生成される点等において、特開平８−２０２３３９号公報に記載の発明とは異なる。
【０２１２】
【発明の効果】
本発明の第１の側面によれば、例えば、品質の良い音声を得ることが可能となる。
【０２１３】
本発明の第２の側面によれば、符号化データから、品質の良い音声を復号するためのタップ係数を得ることが可能となる。
【図面の簡単な説明】
【図１】従来の携帯電話機の送信部の一例の構成を示すブロック図である。
【図２】従来の携帯電話機の受信部の一例の構成を示すブロック図である。
【図３】本発明を適用した伝送システムの一実施の形態の構成例を示すブロック図である。
【図４】携帯電話機１０１1，１０１2の構成例を示すブロック図である。
【図５】受信部１１４の構成例を示すブロック図である。
【図６】受信部１１４の処理を説明するフローチャートである。
【図７】予測タップおよびクラスタップの生成方法を説明するための図である。
【図８】タップ生成部１２１，１２２の構成例を示すブロック図である。
【図９】Ｉコードによるクラスに対する重み付けの方法を説明する図である。
【図１０】Ｉコードによるクラスに対する重み付けの例を示す図である。
【図１１】クラス分類部１２３の構成例を示すブロック図である。
【図１２】テーブル作成処理を説明するフローチャートである。
【図１３】本発明を適用した学習装置の一実施の形態の構成例を示すブロック図である。
【図１４】学習処理を説明するフローチャートである。
【図１５】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
２１  チャンネルデコーダ，  ２２  適応コードブック記憶部，  ２３  ゲイン復号器，  ２４  励起コードブック記憶部，  ２５  フィルタ係数復号器，  ２６乃至２８  演算器，  ２９  音声合成フィルタ，  ３０  Ｄ／Ａ変換部，  ３１  スピーカ，  ４１Ａ，４１Ｂ  メモリ，  ４２Ａ，４２Ｂ  データ抽出回路，  ４３  合成回路，  ５１  合成音データ切り出し部，  ５２  ADRC回路，５３  コード切り出し部，  ５４Ａ，５４Ｂ  縮退部，  ５５，５６  合成回路，  １０１1，１０１2  携帯電話機，  １０２1，１０２2  基地局，  １０３交換局，  １１１  アンテナ，  １１２  変復調部，  １１３  送信部，  １１４  受信部，  １２１，１２２  タップ生成部，  １２３  クラス分類部，  １２４  係数メモリ，  １２５  予測部，  １３１，１３２  タップ生成部，  １３３  クラス分類部，  １３４  正規方程式加算回路，  １３５  タップ係数決定回路，  １３６  係数メモリ，  ２０１  マイク，  ２０２  Ａ／Ｄ変換部，  ２０３  演算器，  ２０４  ＬＰＣ分析部，  ２０５  ベクトル量子化部，２０６  音声合成フィルタ，  ２０７  自乗誤差演算部，  ２０８  自乗誤差最小判定部，  ２０９  適応コードブック記憶部，  ２１０  ゲイン復号器，  ２１１  励起コードブック記憶部，  ２１２  乃至２１４  演算器，  ２１５  コード決定部，  ３０１  バス，  ３０２  CPU，  ３０３  ROM，  ３０４  RAM，  ３０５  ハードディスク，  ３０６  出力部，  ３０７  入力部，  ３０８  通信部，  ３０９  ドライブ，  ３１０  入出力インタフェース，  ３１１リムーバブル記録媒体
【図１】
0004857467.tif 000010
【図２】
0004857467.tif 000011
【図３】
0004857467.tif 000012
【図４】
0004857467.tif 000013
【図５】
0004857467.tif 000014
【図６】
0004857467.tif 000015
【図７】
0004857467.tif 000016
【図８】
0004857467.tif 000017
【図９】
0004857467.tif 000018
【図１０】
0004857467.tif 000019
【図１１】
0004857467.tif 000020
【図１２】
0004857467.tif 000021
【図１３】
0004857467.tif 000022
【図１４】
0004857467.tif 000023
【図１５】
0004857467.tif 000024