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