(57)【要約】【課題】語学学習用会話等の録音に適切なサンプリング周波数で、符号化レートを低減させる音声圧縮を可能にする。【解決手段】音声処理装置１００は、ＱＭＦ（Quadrature Mirror Filter）３により入力された音声信号を高域と低域に分割し、その分割された音声信号の振幅を正規化し、その正規化された音声信号に対し、ＦＦＴ等の周波数変換を施す。そして、周波数変換により得られた変換係数の絶対値を減少させる処理を行い、その変換係数が処理された音声信号に対し、ベクトル量子化を施し、ベクトル量子化により得られた信号に対し、エントロピー符号化を施して出力する。【選択図】図１
2005128401.tif 000002
【特許請求の範囲】
【請求項１】
入力された音声信号を直交ミラーフィルタにより高域と低域に分割するフィルタ部と、
前記フィルタ部により分割された音声信号の振幅を正規化する正規化部と、
前記正規化部により正規化された音声信号に対し、周波数変換を施す周波数変換部と、
前記周波数変換により得られた音声信号に対し、ベクトル量子化を施すベクトル量子化部と、
前記ベクトル量子化により得られた音声信号に対し、エントロピー符号化を施すエントロピー符号化部と、
を備えることを特徴とする音声処理装置。
【請求項２】
前記周波数変換部は、周波数変換として離散フーリエ変換を用いることを特徴とする請求項１に記載の音声処理装置。
【請求項３】
前記周波数変換部は、周波数変換として変形離散コサイン変換を用いることを特徴とする請求項１に記載の音声処理装置。
【請求項４】
前記周波数変換により得られた変換係数の絶対値を減少させる処理を行う変換係数処理部を備え、
前記ベクトル量子化部は、前記変換係数処理部により処理された音声信号に対し、ベクトル量子化を施すことを特徴とする請求項１〜３の何れか一項に記載の音声処理装置。
【請求項５】
前記変換係数処理部は、前記周波数変換により得られた変換係数にスカラー量子化を施すことを特徴とする請求項４に記載の音声処理装置。
【請求項６】
前記変換係数処理部は、前記周波数変換により得られた変換係数のうち、絶対値が予め設定された閾値以下である変換係数の絶対値を減少させる処理を行うことを特徴とする請求項４に記載の音声処理装置。
【請求項７】
前記エントロピー符号化部は、エントロピー符号化としてハフマン符号化を用いることを特徴とする請求項１〜６の何れか一項に記載の音声処理装置。
【請求項８】
前記エントロピー符号化部は、エントロピー符号化としてレンジコーダによる符号化を用いることを特徴とする請求項１〜６の何れか一項に記載の音声処理装置。
【請求項９】
前記エントロピー符号化部は、入力信号を示す各記号の出現確率を格納した生起確率テーブルを有し、記号の入力に伴って前記生起確率テーブルを更新することを特徴とする請求項８に記載の音声処理装置。
【請求項１０】
入力された音声信号を直交ミラーフィルタにより高域と低域に分割し、
前記分割された音声信号の振幅を正規化し、
前記正規化された音声信号に対し、周波数変換を施し、
前記周波数変換により得られた音声信号に対し、ベクトル量子化を施し、
前記ベクトル量子化により得られた音声信号に対し、エントロピー符号化を施すことを特徴とする音声符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声処理装置及び音声符号化方法に関する。
【背景技術】
【０００２】
従来より、音声信号の圧縮方式として、μ−ｌａｗ、ＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）、音楽で利用されるＭＰ３（MPEG Audio Layer-3）、携帯電話等で利用されるＶＳＥＬＰ(Vector Sum Excited Linear Prediction)、Ｇ．７２９等のＣＥＬＰ（Code-Excited Linear Prediction）系の圧縮方式が実用化されている。特許文献１には、音声圧縮技術として、ベクトル量子化を用いた技術が開示されている。
【特許文献１】特開平１０−６３２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
語学学習において会話等の録音を行う場合、１６ｋＨｚ程度のサンプリング周波数が、各言語の特徴を保ちつつ、多くのデータ量を必要としない適度な周波数であると考えられている。しかしながら、ＣＥＬＰ系の圧縮方式に現れる圧縮ノイズは、語学学習用には適切ではないという問題があった。また、μ−ｌａｗ、ＡＤＰＣＭは、十分な音質であるが、符号化レートが高いため、携帯機器でこれらの圧縮方式を利用する場合、録音時間が短くなってしまうという問題があった。また、ＭＰ３は、主に高品質の音声の圧縮を対象としており、１６ｋＨｚ程度のサンプリング周波数では、効果的に圧縮を行うことができないという問題があった。
【０００４】
本発明の課題は、語学学習用会話等の録音に適切なサンプリング周波数で、符号化レートを低減させる音声圧縮を可能にすることである。
【課題を解決するための手段】
【０００５】
本発明に係る音声処理装置は、入力された音声信号を直交ミラーフィルタにより高域と低域に分割するフィルタ部と、前記フィルタ部により分割された音声信号の振幅を正規化する正規化部と、前記正規化部により正規化された音声信号に対し、周波数変換を施す周波数変換部と、前記周波数変換により得られた音声信号に対し、ベクトル量子化を施すベクトル量子化部と、前記ベクトル量子化により得られた音声信号に対し、エントロピー符号化を施すエントロピー符号化部と、を備えることを特徴としている。
【０００６】
また、前記周波数変換部は、周波数変換として離散フーリエ変換を用いるのが好ましい。
【０００７】
また、前記周波数変換部は、周波数変換として変形離散コサイン変換を用いるのが好ましい。
【０００８】
前記周波数変換により得られた変換係数の絶対値を減少させる処理を行う変換係数処理部を備え、前記ベクトル量子化部は、前記変換係数処理部により処理された音声信号に対し、ベクトル量子化を施すようにしてもよい。
【０００９】
また、前記変換係数処理部は、前記周波数変換により得られた変換係数にスカラー量子化を施すのが好ましい。
【００１０】
また、前記変換係数処理部は、前記周波数変換により得られた変換係数のうち、絶対値が予め設定された閾値以下である変換係数の絶対値を減少させる処理を行うのが好ましい。
【００１１】
また、前記エントロピー符号化部は、エントロピー符号化としてハフマン符号化を用いるのが好ましい。
【００１２】
また、前記エントロピー符号化部は、エントロピー符号化としてレンジコーダによる符号化を用いるのが好ましい。
【００１３】
また、レンジコーダによる符号化を用いるエントロピー符号化部は、入力信号を示す各記号の出現確率を格納した生起確率テーブルを有し、記号の入力に伴って前記生起確率テーブルを更新するのが好ましい。
【００１４】
本発明に係る音声符号化方法は、入力された音声信号を直交ミラーフィルタにより高域と低域に分割し、前記分割された音声信号の振幅を正規化し、前記正規化された音声信号に対し、周波数変換を施し、前記周波数変換により得られた音声信号に対し、ベクトル量子化を施し、前記ベクトル量子化により得られた音声信号に対し、エントロピー符号化を施すことを特徴としている。
【発明の効果】
【００１５】
本発明によれば、語学学習用会話等の録音に適切なサンプリング周波数で、符号化レートを低減させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の実施形態について詳細に説明する。
まず、本実施形態における構成について説明する。
【００１７】
図１は、本発明の実施形態の音声処理装置１００の構成を示すブロック図である。音声処理装置１００は、図１に示すように、Ａ／Ｄ変換部１、ＤＣ（Direct Current）除去部２、ＱＭＦ（Quadrature Mirror Filter：直交ミラーフィルタ）３、フレーム化部４、正規化部５、周波数変換部６、変換係数処理部７、周波数並べ替え部８、ベクトル量子化部９、エントロピー符号化部１０、レートコントローラ１１により構成される。
【００１８】
Ａ／Ｄ変換部１は、入力された音声アナログ信号をデジタル信号に変換し、ＤＣ除去部２に出力する。サンプリング周波数は、16kHz程度が望ましいが、11.025kHz、22.05kHz等でもかまわない。
【００１９】
ＤＣ除去部２は、Ａ／Ｄ変換部１から入力された音声信号の直流成分を除去し、ＱＭＦ３に出力する。音声信号の直流成分を除去するのは、直流成分が音質にほとんど無関係であることによる。ｉ番目の入力信号をｘiとすると、直流成分を除去した信号ｘ'iは、例えば、式（１）で表される。
【数１】
2005128401.tif 000003
【００２０】
ＱＭＦ３は、ＤＣ除去部２から入力された音声信号を高域と低域に分割する。ＱＭＦとは、帯域分割時と合成時でフィルタリング時の歪みがなくなるように設計されたフィルタである。ＱＭＦにおける具体的な計算方法を以下に示す。タップ数がｍのＱＭＦの係数をｆ（０）、ｆ（１）、…、ｆ（ｍ−１）とすると、ＱＭＦの性質から、ｍ/２≦ｊ＜ｍを満たすｊに対し、ｆ（ｊ）＝ｆ（ｍ−ｊ−１）が成り立つ。
【００２１】
ｉ番目の入力信号をｘiとし、ｊ番目の信号ｘjが入力されたときの低域側の出力Ｌと高域側の出力Ｈとすると、Ｌ、Ｈは、それぞれ、式（２）、式（３）で表される。
Ｌ＝ＸＡ＋ＸＢ    （２）
Ｈ＝ＸＡ−ＸＢ    （３）
ここで、ＸＡ、ＸＢは、式（４）、式（５）のように定義される。
【数２】
2005128401.tif 000004
【数３】
2005128401.tif 000005
【００２２】
表１に、タップ数が２４のＱＭＦ係数の例を示す。
【表１】
2005128401.tif 000006
【００２３】
フレーム化部４は、ＱＭＦ３から入力された信号を、圧縮の処理単位であるフレームに分割し、正規化部５に出力する。
【００２４】
正規化部５は、フレーム毎に、入力音声信号の振幅をそれぞれ正規化し、周波数変換部６に出力する。正規化の方法としては、フレーム毎にサンプル値（入力音声信号）の最大振幅をgainとし、各サンプル値をgainで除算する。１フレームにＮ個のサンプル｛ｘi｜i=1,…,N｝があるとすると、gainを分離したサンプル｛ｘ'i｜i=1,…,N｝は、式（６）のようになる。
ｘ'i＝ｘi/gain    （６）
ここで、gain=MAX｛ｘi｜i=1,…,N｝（MAXは、最大値を得る関数）である。
【００２５】
周波数変換部６は、正規化部５から入力された信号に対し、帯域毎に周波数変換を施し、変換係数処理部７に出力する。入力信号をＱＭＦ３により予め帯域分割することにより、周波数変換時の次元数を減らし、計算量を削減することができる。周波数変換としては、例えば、ＦＦＴ（Fast Fourier Transform：高速フーリエ変換）を用いることができる。ＦＦＴにおける窓の大きさ（変換長）をＭ、入力信号を｛ｘn｜n=0,1,…,M-1｝とすると、ＦＦＴ係数｛Ｘk｜k=0,1,…,M-1｝は式（７）で表される。
【数４】
2005128401.tif 000007
【００２６】
ＦＦＴでは、変換前の元信号が周期関数でない場合、変換によって不要な高周波が現れるため、一般に、入力信号ｘnに窓関数をかけてＦＦＴを行う。窓関数としては、ハミング窓（Hamming Window）等がある。ハミング窓の係数ｗnは、式（８）で表される。
【数５】
2005128401.tif 000008
ここで、式（８）において、Ｍは窓のタップ数であり、ＦＦＴの窓の大きさと同一である。入力信号に窓関数をかけた場合のＦＦＴ係数をＸ'kとすると、Ｘ'kは式（９）で表される。
【数６】
2005128401.tif 000009
【００２７】
式（９）のように、入力信号に窓関数をかけると、窓の両端（ｎ＝０、Ｍ−１）の信号が減衰してしまい、そのままでは再生時に途切れた信号になってしまう。そこで、例えば、図２に示すように、ＦＦＴの窓のシフト量を窓幅の半分にして、隣り合う窓が窓幅の半分だけ重なるようにすればよい。
【００２８】
変換係数処理部７は、周波数変換部６でのＦＦＴによって窓毎に得られたＦＦＴ係数｛Ｘk｜k=0,1,…,M-1｝に対し、絶対値｜Ｘk｜を減少させる処理を施し、処理後のＦＦＴ係数を周波数並べ替え部８に出力する。絶対値｜Ｘk｜を減少させる処理としては、スカラー量子化を利用することができる。スカラー量子化は、式（１０）に示すように、量子化係数ｒで各変換係数を除算することで実現できる。
量子化されたＸk＝Ｘk/ｒ      （１０）
【００２９】
量子化係数ｒは、符号化の目標データ量にあわせて決定される。目標データ量が少なくなるほど量子化係数ｒは大きくなる。量子化係数ｒの決定方法には、目標データ量から一意的に決定する方法と、エントロピー符号化部１０によるエントロピー符号化後の符号量が目標データ量より大きい場合に、目標データ量内に収まるように量子化係数ｒを大きくしている方法がある。
【００３０】
周波数並べ替え部８は、変換係数処理部７から入力されたＦＦＴ係数を周波数毎に並べ替え、同一周波数帯域の係数をまとめてベクトル化し、ベクトル量子化部９に出力する。このように、同一周波数帯域の信号をまとめてベクトル化すると、例えば、定常信号を多く含む場合、後のベクトル量子化の精度が向上する。１フレーム中のＦＦＴの窓の数をｍ、各窓毎に算出されたＦＦＴ係数Ｘkの数をＭ、ｉ番目の窓のｊ番目のＦＦＴ係数をＸijとすると、ｊ番目の周波数帯域をまとめたベクトルＦjは、Ｆj＝｛Ｘij｜i=0,…,m-1], j=0,…,M-1となる。
【００３１】
ベクトル量子化部９は、複数の音声パターンを示す代表ベクトルを格納したＶＱ（Vector Quantization）テーブル８ａを有し、周波数並べ替え部８で作成されたベクトルＦjと、ＶＱテーブル９ａに格納された各代表ベクトルを比較し、最も類似した代表ベクトルが示すインデックスを符号としてエントロピー符号化部１０に出力する。
【００３２】
例えば、ベクトル長Ｎの符号化対象のベクトルを｛ｓj｜j=1,…,N｝、ＶＱテーブル９ａに格納されたｋ個の代表ベクトルを｛Ｖi｜i=1,…,k｝、Ｖi＝｛ｖij｜j=1,…,N｝とすると、符号化対象のベクトルと、ＶＱテーブル９ａに格納されたｉ番目の代表ベクトルの各要素ｖijの誤差ｅiが最小となるようなｉを、出力する符号とする。誤差ｅiの算出式を式（１１）に示す。
【数７】
2005128401.tif 000010
代表ベクトルの数ｋとベクトル長Ｎは、ベクトル量子化に要する処理時間やＶＱテーブル９ａの容量等を勘案して決定される。例えば、ベクトル長を２にして代表ベクトル数を２５６にしたり、ベクトル長を４にして代表ベクトル数を８１９２（＝２13）にしたりするなど、自由な組み合わせが考えられる。
【００３３】
エントロピー符号化部１０は、ベクトル量子化部９から入力された信号に対し、フレーム毎にエントロピー符号化を施し、エントロピー符号化により得られた符号を音声圧縮信号として出力する。エントロピー符号化とは、信号の統計的性質を利用して、符号をより短い符号へと変換する符号化方式であり、ハフマン（Huffman）符号化、算術符号化、レンジコーダ（Range Coder）による符号化等がある。エントロピー符号化の詳細については、後に図３〜図７を参照して説明する。
【００３４】
レートコントローラ１１は、エントロピー符号化で得られた符号のデータ量と目標データ量を比較し、エントロピー符号化で得られた符号のデータ量が目標データ量より大きい場合、変換係数処理部７に対し、ＦＦＴ係数の絶対値｜Ｘk｜を減少させる処理（スカラー量子化）を要求する。エントロピー符号化で得られた符号のデータ量が目標データ量以下である場合、レートコントローラ１１は、変換係数処理部７に対し、次のフレームに対するスカラー量子化を要求する。
【００３５】
〈エントロピー符号化〉
以下では、本実施形態で適用されるエントロピー符号化の例として、ハフマン符号化、レンジコーダによる符号化について説明する。
【００３６】
（ハフマン符号化）
ハフマン符号化とは、出現頻度の高い記号には短い符号を割り当て、出現頻度の低い記号には長い符号を割り当てることで、全体のデータ量を圧縮する方式である。例えば、４つの記号｛ａ、ｂ、ｃ、ｄ｝からなる１００文字のデータがあったとする。全ての記号に同じ長さの２進数の符号（固定長符号）を割り当てる場合、４つの記号を表すには２ビットが必要であるため、１００文字のデータ量は、２[bit]×１００＝２００[bit]となる。
【００３７】
ハフマン符号化では、各記号の出現頻度に応じて２進数の符号が割り当てられる。図３に、１００文字のデータ中の各記号ａ、ｂ、ｃ、ｄの出現頻度が、それぞれ、１０、７０、１、１９である場合に各記号に割り当てられた２進数の符号の例を示す。図３に示すように、記号ａ、ｂ、ｃ、ｄに、それぞれ、符号１００、０、１０１、１１が割り当てられた場合、１００文字のデータ量は、３[bit]×１０＋１[bit]×７０＋３[bit]×１＋２[bit]×１９＝１４１[bit]となり、データ量は、固定長符号のデータ量の７０％に圧縮される。
【００３８】
（レンジコーダによる符号化）
符号化前の元信号に含まれる記号の集合をＳ＝｛si|i=1,…,n｝とし、各記号siの出現確率をｐiとする。また、元信号に含まれる各記号siを予め決められた順番に並べ替えた記号列｛s1、s2、…、sn｝において、記号sk（ｋ≧２）より前に並んでいる各記号の出現確率の合計をＦkとする。即ち、Ｆkは、式（１２）のように表される。
【数８】
2005128401.tif 000011
【００３９】
レンジコーダによる符号化では、記号毎に出現確率ｐiとＦiを対応付けて格納したテーブル（以下、生起確率テーブルという。）に基づいて、入力済みの信号が示す記号列に、数値で示す範囲（下限、幅）を設定する処理を行う。入力済みの信号に設定される範囲（下限、幅）は、直前に入力された信号に設定された範囲と生起確率テーブルに基づいて決定される。
【００４０】
符号化対象の信号skが入力されたときに設定される幅をrange'、下限をlow'とし、その信号skの１つ前の信号が入力されたときに設定された幅をrange、下限をlowとすると、幅range'、下限low'は、それぞれ、式（１３）、式（１４）のように表される。
range'＝range×ｐk       （１３）
low'＝low＋range×Ｆk    （１４）
式（１３）及び式（１４）で算出されたrange'、low'が、次の信号が入力されたときのrange、lowとなる。
【００４１】
式（１３）及び式（１４）で示す算出処理は、入力信号がなくなるまで行われ、最後の信号が入力されたときに算出されたrange、lowに基づいて決定される範囲low〜low＋rangeの間の値が符号値として出力される。
【００４２】
図４に、レンジコーダ符号化の例を示す。図４（ａ）に、元信号に含まれる記号の集合がＳ＝｛s1=ａ、s2=ｂ、s3=ｃ、s4=ｄ｝であるときの生起確率テーブルの一例を示す。また、図４（ｂ）に、記号列｛ｂａｃａ｝に対する符号化の一例を示す。図４（ｂ）では、記号列を示す符号を１０進数とし、lowの初期値を０、rangeの初期値を１０6とした場合を示している。図４（ｂ）において、「入力信号」項目は、入力された記号を示し、「記号列」項目は、これまでに入力された記号列を示し、「low」項目は、式（１４）により算出されるlow'を示し、「range」項目は、式（１３）により算出されるrange'を示す。また、「範囲」項目は、low及びrangeから決定される符号値の範囲を示す。図４（ｂ）において、［ｘ、ｙ）という表記は、符号値Ｚがｘ≦Ｚ＜ｙを満たすことを意味する。図４（ｂ）によると、５９３７５０≦Ｚ＜６０３１２５を満たす符号値Ｚのうちの１つ（例えば、６０００００）が、記号列｛ｂａｃａ｝を符号化した結果として出力されることになる。
【００４３】
このように、レンジコーダによる符号化では、予め決められた出現確率を利用して入力される各記号を符号化しているため、元信号に含まれる各記号の出現確率が固定された情報源からの発生であれば非常に有効である。しかしながら、符号化対象となる信号が、出現確率が一定の情報源から発生されていることは極めてまれである。よって、上述のレンジコーダによる符号化では、各記号の出現確率が符号化対象となる信号に適応していない。そこで、本実施形態では、レンジコーダ符号化において、信号が入力される度に出現確率を更新させるようにすることによって、実際の信号に適応可能にした。以下、本実施形態のレンジコーダによる符号化について説明する。
【００４４】
上述と同様に、符号化前の元信号に含まれる記号の集合をＳ＝｛si|i=1,…,n｝とする。元信号に含まれる記号siの出現頻度をｆi、出現頻度ｆiの合計をｃｕｍ、各記号siの出現確率をｐiとすると、ｃｕｍ、ｐiは、それぞれ、式（１５）、式（１６）のように表される。
【数９】
2005128401.tif 000012
【数１０】
2005128401.tif 000013
【００４５】
エントロピー符号化部１０は、入力された信号に幅range及び下限lowを設定するためのテーブルとして、図５に示すような生起確率テーブル８１を有する。生起確率テーブル８１は、図５に示すように、各記号毎に、出現頻度ｆi、出現確率ｐi、Ｆiの各項目を対応付けて格納している。Ｆiの定義は、式（１２）で示したとおりである。
【００４６】
エントロピー符号化部１０に符号化対象の信号skが入力されたときに設定される幅をrange'、下限をlow'とし、その信号skの１つ前の信号が入力されたときに設定された幅をrange、下限をlowとすると、幅range'、下限low'は、それぞれ、式（１７）、式（１８）のように表される。
【数１１】
2005128401.tif 000014
【数１２】
2005128401.tif 000015
式（１７）及び式（１８）で算出されたrange'、low'が、次の信号が入力されたときのrange、lowとなる。
【００４７】
信号skの入力によりrange、lowが算出されると、エントロピー符号化部１０は、式（１９）に示すように、出現確率ｆkに１を加算し、算出された出現確率ｆk'を新たなｆkとする。
ｆk'＝ｆk＋１      （１９）
エントロピー符号化部１０は、出現確率ｆkの加算に伴い、ｃｕｍ、出現確率ｐi、Ｆiを再計算し、生起確率テーブル８１を更新する。エントロピー符号化部１０は、これらの処理を、入力信号がなくなるまで行い、最後の信号が入力されたときに算出されたrange、lowに基づいて決定される範囲low〜low＋rangeの間の値を符号値として出力する。
【００４８】
図６及び図７に、本実施形態のレンジコーダ符号化の例を示す。図６（ａ）に、元信号に含まれる記号の集合がＳ＝｛s1=ａ、s2=ｂ、s3=ｃ、s4=ｄ｝であるときのデフォルトの生起確率テーブル８１の一例を示す。図６（ａ）に示すデフォルトの生起確率テーブル８１のpi及びＦiは、図４（ａ）に示す生起確率テーブルと同一であるものとする。また、図６（ｂ）には、図４（ｂ）に示した記号列と同一の記号列｛ｂａｃａ｝に対する符号化の一例を示す。図６（ｂ）においても、記号列を示す符号を１０進数とし、lowの初期値を０、rangeの初期値を１０6とする。図６（ｂ）において、「入力信号」項目は、入力された記号を示し、「記号列」項目は、これまでに入力された記号列を示し、「low」項目は、式（１８）により算出されるlow'を示し、「range」項目は、式（１７）により算出されるrange'を示す。また、「範囲」項目は、low及びrangeから決定される符号値の範囲を示す。また、「生起確率テーブル」項目は、記号の入力毎に更新された生起確率テーブルを示す。図７に、記号の入力毎に更新された生起確率テーブルを示す。図６（ｂ）によると、記号の入力毎に生起確率テーブルを更新することで、記号列｛ｂａｃａ｝が示す「範囲」は、図４（ｂ）に示した生起確率テーブルが固定された場合と異なり、５９１９９２≦Ｚ＜５９９７５７を満たす符号値Ｚのうちの１つが、記号列｛ｂａｃａ｝を符号化した結果として出力されることになる。
【００４９】
図８に、音声処理装置１００により圧縮された音声信号を復号する復号装置２００の構成を示す。復号装置２００は、図８に示すように、エントロピー復号部２１、逆ベクトル量子化部２２、時間順並べ替え部２３、周波数逆変換部２４、ゲイン合成部２５、フレーム合成部２６、ＱＭＦ合成部２７、Ｄ／Ａ変換部２８により構成される。なお、音声処理装置１００と復号装置２００を、一つの筐体に一体的に備えるような構造としてもよいし、各々を別体として設けるようにしてもよい。
【００５０】
エントロピー復号部２１は、エントロピー符号化により符号化された信号を復号し、逆ベクトル量子化部２２に出力する。逆ベクトル量子化部２２は、複数の音声パターンを示す代表ベクトルを格納したＶＱテーブル２２ａを有し、エントロピー復号部２１から入力された信号（インデックス）に対応する代表ベクトルを抽出し、時間順並べ替え部２３に出力する。
【００５１】
時間順並べ替え部２３は、逆ベクトル量子化部２２から入力されたベクトルを時間順に並べ替え、周波数逆変換部２４に出力する。周波数逆変換部２４は、時間順並べ替え部２３から入力された信号（ベクトル）に対し、逆ＦＦＴを施し、ゲイン合成部２５に出力する。ゲイン合成部２５は、周波数逆変換部２４から入力された信号のゲインを合成し、Ｑフレーム合成部２６に出力する。フレーム合成部２６は、符号化及び復号化の処理単位であったフレームを合成し、合成後の信号をＱＭＦ合成部２７に出力する。ＱＭＦ合成部２７は、分割された帯域（高域、低域）を合成し、合成後の信号をＤ／Ａ変換部２８に出力する。Ｄ／Ａ変換部２８は、ＱＭＦ合成部２７から入力されたデジタル信号をアナログ信号に変換し、音声再生信号として出力する。
【００５２】
次に、本実施形態における動作について説明する。
まず、図９のフローチャートを参照して、音声処理装置１００において実行される音声圧縮処理について説明する。以下のフローチャートでは、エントロピー符号化として、レンジコーダによる符号化が用いられる場合を示す。
【００５３】
まず、生起確率テーブル８１が初期化される（ステップＳ１）。そして、音声アナログ信号が入力されると、Ａ／Ｄ変換部１において、入力された音声アナログ信号が音声デジタル信号に変換される（ステップＳ２）。以下、符号化対象の音声デジタル信号を単に音声信号を呼ぶことにする。次いで、ＤＣ除去部２において、音声信号の直流成分が削除され（ステップＳ３）、ＱＭＦ３において、直流成分削除後の音声信号が高域と低域に分割される（ステップＳ４）。
【００５４】
次いで、フレーム化部４において、ＱＭＦ分割された音声信号がフレーム化され、正規化部５において、フレーム毎に、入力された音声信号の振幅が正規化される（ステップＳ５）。次いで、周波数変換部６において、正規化後の音声信号に対し、ＦＦＴが施される（ステップＳ６）。
【００５５】
次いで、変換係数処理部７において、ＦＦＴ係数に対して、式（１０）に示すスカラー量子化が施される（ステップＳ７）。なお、ここで、式（１０）の量子化係数ｒは、（スカラー）量子化ステップの増加とともに増加していくものとし、レンジコーダ符号化により得られた音声圧縮信号のデータ量が目標データ量より大きい場合に、次の量子化ステップに移行するものとする。
【００５６】
次いで、周波数並べ替え部８において、ＦＦＴ係数が周波数毎に並べ替えられ（ステップＳ８）、同一周波数帯域の係数がまとめてベクトル化される。次いで、ベクトル量子化部９において、周波数帯域毎にまとめられたＦＦＴ係数のベクトルと、ＶＱテーブル９ａに格納された代表ベクトルが比較され、最も類似した代表ベクトルが示すインデックスが符号として出力される（ステップＳ９）。
【００５７】
次いで、レンジコーダの現在の生起確率テーブル８１が保存され（ステップＳ１０）、エントロピー符号化部１０において、ベクトル量子化後の音声信号に対し、フレーム毎にレンジコーダ符号化が施され（ステップＳ１１）、レンジコーダ符号化後の音声圧縮信号がレートコントローラ１１に出力される。レンジコーダ符号化については、後に図１０を参照して詳細に説明する。
【００５８】
次いで、レートコントローラ１１において、エントロピー符号化部１０から入力された１フレーム分の音声圧縮信号が予め決められた目標データ量以下であるか否かが判定される（ステップＳ１２）。ステップＳ１２において、入力された音声圧縮信号が目標データ量より大きいと判定された場合（ステップＳ１２；ＮＯ）、生起確率テーブル８１が、ステップＳ１０で保存された値に戻される（ステップＳ１４）。そして、量子化ステップが一つ増え（ステップＳ１５）、目標データ量より大きいと判定されたフレームに対して、現在の量子化ステップに対応する量子化係数ｒを用いてスカラー量子化が施される。以下、該当するフレームに対して、ステップＳ８〜Ｓ１１の処理が繰り返される。
【００５９】
ステップＳ１２において、入力された音声圧縮信号が目標データ量以下であると判定された場合（ステップＳ１２；ＹＥＳ）、処理対象（スカラー量子化からレンジコーダ符号化までの処理対象）の次のフレームがあるか否かが判定される（ステップＳ１３）。
【００６０】
ステップＳ１３において、処理対象の次のフレームがあると判定された場合（ステップＳ１３；ＹＥＳ）、ステップＳ７に戻り、該当するフレームに対してスカラー量子化が施される。ステップＳ１３において、処理対象の次のフレームがないと判定された場合（ステップＳ１３；ＮＯ）、本音声圧縮処理が終了する。
【００６１】
次に、図１０のフローチャートを参照して、エントロピー符号化部１０において実行されるレンジコーダ符号化（図９のステップＳ１１）の詳細について説明する。
【００６２】
まず、low及びrangeが初期化され（ステップＳ２０）、式（１５）により、各記号の出現確率の合計ｃｕｍが算出される（ステップＳ２１）。音声信号を示す記号ｓkが入力されると（ステップＳ２２）、式（１７）によりrange'が算出され、式（１８）によりlow'が算出され、算出されたrange'及びlow'が、それぞれ、次の記号が入力されたときrange、lowのとなる（ステップＳ２３）。
【００６３】
次いで、記号ｓkの出現頻度ｆkがインクリメントされる（ステップＳ２４）。出現頻度ｆkがインクリメントされたことにより、各記号の出現確率ｐiとＦiが再計算され、生起確率テーブル８１が更新される。次いで、１フレーム分の記号列に対して、ステップＳ２１〜Ｓ２４までの処理が終了したか否かが判定される（ステップＳ２５）。
【００６４】
ステップＳ２５において、１フレーム分の記号列に対する処理が終了していないと判定された場合（ステップＳ２５；ＮＯ）、ステップＳ２１に戻り、次に入力される記号に関して、ステップＳ２１〜Ｓ２４までの処理が繰り返される。ステップＳ２５において、１フレーム分の記号列に対する処理が終了したと判定された場合（ステップＳ２５；ＹＥＳ）、low〜low+rangeの範囲の一つの数値が出力され（ステップＳ２６）、本レンジコーダ符号化処理が終了する。
【００６５】
図１０に示すレンジコーダ符号化では、生起確率テーブルの初期化後に入力された全ての記号に基づいて生起確率テーブルが更新される例を示したが、出現確率の変動が局所的に大きい場合や、出現確率が過去の入力にほとんど依存しない場合（例えば、２つの異なる内容の音声ファイルが連結されて一つのファイルになっている場合）は、過去の入力に影響されない。従って、このような場合、一定期間以上過去に処理した記号の出現頻度の影響を生起確率テーブルから取り除くようにすれば、符号化効率のよい生起確率テーブルを生成することが可能になる。
【００６６】
以下、図１１のフローチャートを参照して、図１０のレンジコーダ符号化の変形例として、一定期間以上過去に処理した記号の出現頻度の影響を生起確率テーブルから取り除く場合のレンジコーダ符号化処理（レンジコーダ符号化処理２と呼ぶ。）について説明する。以下では、エントロピー符号化部１０に、入力信号を記録するためのＦＩＦＯ（First-In First-Out）が備えられているものとする。
【００６７】
まず、low及びrangeが初期化され（ステップＳ３０）、式（１５）により、各記号の出現確率の合計ｃｕｍが算出される（ステップＳ３１）。音声信号を示す記号ｓkが入力されると（ステップＳ３２）、式（１７）によりrange'が算出され、式（１８）によりlow'が算出され、算出されたrange'及びlow'が、それぞれ、次の記号が入力されたときrange、lowのとなる（ステップＳ３３）。
【００６８】
次いで、記号ｓkの出現頻度ｆkがインクリメントされ（ステップＳ３４）、ＦＩＦＯに記号ｓkが入力され、ｘ個前にＦＩＦＯに入力された記号ｓyがＦＩＦＯから取り出される（ステップＳ３５）。ここで、ｘは、２以上の整数である。記号ｓyがＦＩＦＯから取り出されると、記号ｓyの出現頻度ｆyがデクリメントされる（ステップＳ３６）。
【００６９】
出現頻度ｆkがインクリメントされ、出現頻度ｆyがデクリメントされたことにより、各記号の出現確率ｐiとＦiが再計算され、生起確率テーブル８１が更新される。次いで、１フレーム分の記号列に対して、ステップＳ３１〜Ｓ３６までの処理が終了したか否かが判定される（ステップＳ３７）。
【００７０】
ステップＳ３７において、１フレーム分の記号列に対する処理が終了していないと判定された場合（ステップＳ３７；ＮＯ）、ステップＳ３１に戻り、次に入力される記号に関して、ステップＳ３１〜Ｓ３６までの処理が繰り返される。ステップＳ３７において、１フレーム分の記号列に対する処理が終了したと判定された場合（ステップＳ３７；ＹＥＳ）、low〜low+rangeの範囲の一つの数値が出力され（ステップＳ３８）、本レンジコーダ符号化処理２が終了する。
【００７１】
以上のように、本実施形態の音声処理装置１００によれば、入力された音声信号をＱＭＦにより帯域分割し、分割された信号の振幅を正規化し、正規化された音声信号にＦＦＴを施し、ＦＦＴ係数をスカラー量子化し、その後、ＦＦＴ係数を周波数毎に並べ替えたベクトルにベクトル量子化を施し、ベクトル量子化により得られた音声信号にエントロピー符号化を施すことにより、語学学習用会話等の録音に適切なサンプリング周波数で、符号化レートを低減させることができる。例えば、本実施形態の音声処理装置１００により、１６ｋＨｚ程度のサンプリング周波数の音声信号を１６ｋｂｐｓ程度のレートに圧縮することが可能になる。
【００７２】
また、周波数変換を行う前に、符号化対象の音声信号をＱＭＦにより高域と低域に分割しておくことにより、周波数変換時の次元数を減らし、計算量を削減することが可能になる。また、エントロピー符号化としてレンジコーダ符号化を用いることにより、ビット操作が不要になり、処理負荷を軽減させることができる。特に、１記号が入力される度に生起確率テーブルを更新するようにしたことにより、話者の変更等による音声信号の変化に適応することができる。
【００７３】
なお、本実施形態における記述内容は、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【００７４】
例えば、上述の本実施形態では、周波数変換にＦＦＴを用いたが、ＤＣＴ（Discrete Cosine Transform）、ＭＤＣＴ（Modified Discrete Cosine Transform；変形離散コサイン変換）等を用いてもよい。特に、ＭＤＣＴは、ＤＣＴにおける隣接するブロックの継ぎ目部分の雑音を軽減し、音声信号を効率的に変換できることから有効な手段である。ここで、ブロックとは、ＤＣＴを行う単位である。ＭＤＣＴの各ブロックの長さ（窓の大きさ）をＭとすると、ＭＤＣＴ係数｛Ｘk｜k=0,1,…,M-1｝は式（２０）で表される。
【数１３】
2005128401.tif 000016
ここで、ｈnは窓関数であり、式（２１）で表される。
【数１４】
2005128401.tif 000017
なお、ブロック長Ｍは、１６ｋＨｚ程度のサンプリング周波数の音声では、２５６程度の値が考えられる。
【００７５】
また、上述の本実施形態では、絶対値｜Ｘk｜を減少させる処理として、スカラー量子化を用いる場合を示したが、予め決められた閾値ｔと｜Ｘk｜の大小関係により、Ｘkを処理するようにしてもよい。具体的には、下記の式（２２）に示すように、ＦＦＴ係数（又はＭＤＣＴ係数）の絶対値｜Ｘk｜が閾値ｔ以下の係数を０にし、｜Ｘk｜が閾値ｔより大きい場合は、｜Ｘk｜が閾値ｔの分だけ小さくなるようにする。
【数１５】
2005128401.tif 000018
式（２２）に示すように、絶対値｜Ｘk｜が閾値ｔ以下の係数を０にすることにより、エネルギー｜Ｘk｜2が小さい係数を削除することができ、符号化すべきデータを減らすことができる。
【００７６】
また、上述の実施形態では、ベクトル量子化の際、音声の全ての帯域で同一のＶＱテーブル９ａを用いたが、音声は、高域周波数部分と低域周波数部分で異なる特性がある場合が多いため、高域と低域で異なるＶＱテーブルを用意するようにしてもよい。また、周波数帯域を更に細かく分け、周波数帯域毎に異なるＶＱテーブルを用意するようにしてもよい。
【００７７】
更に、上述の実施形態では、レンジコーダ符号化の際、記号が入力される度に生起確率テーブル８１を更新するようにしたが、１フレーム分の記号列に応じて生起確率テーブル８１を更新するようにしてもよい。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施形態の音声処理装置１００の構成を示すブロック図。
【図２】入力信号と、ＦＴＴ処理の窓との関係を示す図。
【図３】ハフマン符号の一例を示す図。
【図４】従来のレンジコーダによる符号化の一例を示す図。
【図５】本実施形態のレンジコーダ符号化に必要な生起確率テーブル８１のデータ構成を示す図。
【図６】デフォルトの生起確率テーブル８１の一例（同図（ａ））と、符号化の一例（同図（ｂ））を示す図。
【図７】生起確率テーブル８１の更新例を示す図。
【図８】圧縮された音声信号を復号する復号装置２００の構成を示すブロック図。
【図９】音声処理装置１００において実行される音声圧縮処理を示すフローチャート。
【図１０】図９のレンジコーダ符号化処理の詳細を示すフローチャート。
【図１１】図１０のレンジコーダ符号化処理の変形例を示すフローチャート。
【符号の説明】
【００７９】
１  Ａ／Ｄ変換部
２  ＤＣ除去部
３  ＱＭＦ
４  フレーム化部
５  正規化部
６  周波数変化部
７  変換係数処理部
８  周波数並べ替え部
９  ベクトル量子化部
９ａ  ＶＱテーブル
１０  エントロピー符号化部
８１  生起確率テーブル
１１  レートコントローラ
１００  音声処理装置
【図１】
2005128401.tif 000019
【図２】
2005128401.tif 000020
【図３】
2005128401.tif 000021
【図４】
2005128401.tif 000022
【図５】
2005128401.tif 000023
【図６】
2005128401.tif 000024
【図７】
2005128401.tif 000025
【図８】
2005128401.tif 000026
【図９】
2005128401.tif 000027
【図１０】
2005128401.tif 000028
【図１１】
2005128401.tif 000029