以下では、本発明の実施の形態について説明する。ただし、はじめに、理解を容易にするために、本発明の特徴のひとつである、音声復号装置の機能の多くを音声符号化装置に取り込むことによる、残差信号復元方針決定のためのフィードバックループの概要を説明する。その後で、本発明の実施の形態に係る音声符号化装置及び音声復号装置について詳細に説明する。なお、実施形態を順次記述するにあたっては、原則として、同一の部材については同一の符号を付すこととし、また、その説明は省略することがある。
(残差信号復元方針決定のためのフィードバックループについて)
予測分析の概要を、図1を参照しつつ、説明する。入力音声信号は、予測分析部15により、予測係数と残差信号とに分解される。
実際には、まず、予測分析部15は、入力音声信号を予測分析することにより予測係数を求める。次に、予測分析部15は、求めた予測係数から、内蔵の予測分析用逆フィルタ算出器17により、任意の既知の手法を用いて、予測分析用逆フィルタ(図示せず。)の仕様を決定する。続いて、このように仕様が決定された予測分析用逆フィルタに入力音声信号が通されることにより、残差信号が生成される。
予測係数は、合成フィルタ部1の仕様を定める。このことを、予測係数が合成フィルタ部1を定義するともいう。この合成フィルタ部1に、予測分析部15から出力された残差信号が、励起用残差信号として通されることにより、再生音声信号が生成される。
こうして生成された再生音声信号は、解析的には、元の音声信号である入力音声信号と等価である。よって、原理的には、再生音声信号を入力音声信号として予測分析部15に入力すると、先と同じ予測係数と残差信号とが得られ、合成フィルタ部1の仕様は先のものと同じになり、さらには、残差信号が励起用残差信号として合成フィルタ部1に通されると、再び、先と同じ再生音声信号が得られる。
したがって、合成フィルタ部1と予測分析部15とを、前者の出力が後者の入力となるように仮想的に接続すると、入力音声信号、予測係数と残差信号との組、再生音声信号、入力音声信号、予測係数と残差信号との組、再生音声信号、入力音声信号、・・・のように無限に続く仮想的な信号変換ループが構築される。上述のとおり再生音声信号は入力音声信号と等価であるから、かかるループは、定常的な信号変換ループであるといえる。
なお、移動体通信における分析合成型の典型的な音声圧縮合成方式は、最も単純に説明すれば、予測分析部15を備える送信機たる音声符号化装置と、合成フィルタ部1を備える受信機たる音声復号装置と、から構成されるといえる。予測係数と残差信号とは、送信機たる音声符号化装置により、典型的には電波信号に重畳されて、受信機たる音声復号装置に届けられる。
送信機たる音声符号化装置が、予測係数と残差信号とを、それらに何らの加工も施さずに受信器たる音声復号装置に送れば、上述のとおり、原理的には、受信機たる音声復号装置は、音声符号化装置に入力された音声と等価な音声を再生することができる。これは、再生音声の品質が上限値に達した、理想的な状態であるといえる。
しかし、予測係数と残差信号とをそのまま送るとすると、伝達されるべき情報量が大きすぎるため、低ビットレート通信においてはオーバーフローが生じてしまう。
そこで、例えば、残差信号をそのまま送る代わりに、いくつかの典型的な残差信号と符号とを対応させたテーブルを、送信機たる音声符号化装置と受信機たる音声復号装置とで共有して、前者から後者には該符号だけを送ることにしたり、送信機たる音声符号化装置が残差信号に何らかの情報圧縮加工を施してから受信機たる音声復号装置に引き渡したり、といった工夫が必要となる。
かかる工夫は、結局のところ、何らかの近似手法を用いることに他ならない。かかる工夫により、低ビットレート通信が可能にはなる。しかし、当然のことながら、上述の理想的な状態に比較すると、少なくとも、再生音声信号が入力音声信号とは異なるものになるという意味では、受信機たる音声復号装置が発する再生音声は必ず音質が低下する。
これは、上述の仮想的な信号変換ループが、理想的な状態の場合と異なり、定常的なものとならないことを意味する。
本発明の後述の実施形態1に係る音声符号化装置は、予測係数と残差信号の両方に加工を施す。上述のとおり、かかる加工は近似手法に他ならない。よって、本発明の実施形態1に係る音声符号化装置においても、少なくとも、再生音声信号が入力音声信号とは異なるものになるという意味では、受信機たる音声復号装置が発する再生音声には必ず音質低下が生じる。
かかる音質低下を最小限に抑えるためには、上述の仮想的な信号変換ループを、少しでも定常的なものに近づけることが必要である。そのためには、かかるループにおいて、例えば、図1の合成フィルタ部1から出力された出力音声信号に対して、何らかの修正を施してから、入力音声信号として予測分析部15に戻すようにすればよい。
本発明の実施形態1に係る音声符号化装置は、後に詳細に説明するように、音声復号装置の機能の多くを取り込んだ装置となっている。これは、基本的には、上述の仮想的な信号変換ループを、少しでも定常的なものに近づけようとの思想に基づいて、残差信号復元方針決定のためのフィードバックループを、少なくとも一回り、実行するためである。
かかるフィードバックループを、図2を参照しつつ、説明する。図2は、本発明の実施形態1に係る音声符号化装置の機能の骨格を、模式的に示したものである。図示された各種機能ブロックの詳細な説明は後に譲ることとし、ここでは、説明の焦点を、上述のフィードバックループに絞ることとする。
図2を図1と比較することにより、本発明の実施形態1に係る音声符号化装置が、低ビットレート通信のための近似を信号変換過程のどの箇所で用いているかが明らかとなる。まず、図2において、予測分析部15が入力音声信号を予測分析して予測係数と残差信号とに分解するところまでは、図1の場合と全く同じである。
ところが、この後、図1においては、予測係数を直接用いて合成フィルタ部1を定義しているのに対し、図2においては、予測係数を量子化及び逆量子化部2に入力することにより生成される疑似予測係数により合成フィルタ部を定義している。定義に用いられる係数が異なるために、図2の合成フィルタ部は、図1の合成フィルタ部1と区別して、疑似合成フィルタ27と呼ぶことにする。
さらに、図1においては、残差信号を直接に合成フィルタ1に励起用残差信号として入力しているのに対し、図2においては、残差信号を特徴量抽出及び復元部51に入力することにより生成される試行用励起信号を疑似合成フィルタ部27に入力している。
図2の量子化及び逆量子化部2の内部と、特徴量抽出及び復元部51の内部と、には、それぞれいくつかの機能ブロックが含まれているが、これらの詳細については後述する。簡単にいえば、量子化及び逆量子化部2は、予測係数をいったん量子化してそれを逆量子化する機能を有するものであり、特徴量抽出及び復元部51は、残差信号からそれを特徴付ける量である特徴量を抽出してから残差信号復元を試行する機能、すなわち該特徴量を手がかりにして残差信号になるべく近い信号を生成する機能を有するものである。
図2の量子化及び逆量子化部2の内部で行われる量子化と、特徴量抽出及び復元部51の内部で行われる特徴量抽出と、が、まさに、本発明の実施形態1に係る音声符号化装置が低ビットレート通信を可能とするために行う近似である。
上述の量子化と特徴量抽出とは、いずれも、情報量を減少させるために情報の一部を切り捨てる処理である。このようにいったん情報の一部を切り捨てた以上、上述の逆量子化と残差信号復元試行とによって得られた疑似予測係数と試行用励起信号とは、それぞれ、元の予測係数と元の残差信号とは異なるものとなっている。この様子を、図1を参照しつつ説明した仮想的な信号変換ループと比較して考察すると、再生音声信号を入力音声信号と等価にすることこそが究極の音質低下防止策であるとの観点からすれば、図2の量子化及び逆量子化部2と特徴量抽出及び復元部51とは、信号品質を劣化させるだけのものということになる。
かかる信号品質劣化は、低ビットレート通信を可能にするために必要な近似の結果であるから、やむを得ない。もっとも、本発明の実施形態1に係る音声符号化装置の内部の疑似合成フィルタ27が生成した再生音声信号を、そのまま音声復号装置が生成する必要はない。音声符号化装置は、元の入力音声信号を得ているのであるから、疑似合成フィルタ部27が生成した再生音声信号を、試行用再生音声信号として、元の入力音声信号と比較することができる。この比較を行うために、音声符号化装置は、修正因子決定部33を備える。修正因子決定部33は、かかる比較の結果を踏まえて、試行用再生音声信号よりも元の入力音声信号に近い信号を疑似合成フィルタ部27に生成させるためには、特徴量抽出及び復元部51の内部で残差信号復元試行を行う際の試行方針をどのように修正するのが適切か、を決定する。これは、図2の点線矢印で示されるように、フィードバックループが形成されることを意味する。
もっとも、音声符号化装置は、音声再生を目的とする装置ではないから、音声符号化装置においては、修正因子決定部33が決定した修正された試行方針に従って、実際にもう一度残差信号を特徴量抽出及び復元部51に通して励起用の信号を得て疑似合成フィルタ部27を通して新たな再生音声信号を作り直す動作は、必須ではない。音声符号化装置は、修正因子決定部33が決定した修正の仕方を音声復号装置に伝達すれば、十分である。そして、音声復号装置が残差信号復元を行うときに、かかる修正の仕方に従うようにすればよい。これにより、音声復号装置が再生する音声は、それを表す信号が、音声符号化装置内で生成される試行用再生音声信号よりは、元の入力音声信号に近いという意味で、高品質化が達成された音声であるといえる。
修正因子決定部が決定する修正指示内容としては、様々なものであってよいが、本発明の実施形態1に係る音声符号化装置の場合は、修正因子決定部33は、信号の強度をどのように修正すべきかを決定する。そので、ここでは、その概略を、先に図1を参照しつつ説明した仮想的な信号変換ループと対応させつつ説明する。
上述の仮想的な信号変換ループは、信号強度の点でも、定常的なループである。すなわち、仮に信号強度を電圧(V)で表すとして、入力音声信号の信号強度が最初に例えばIS(0)=300Vであり、残差信号の信号強度が最初に例えばIR(0)=200Vであるとする。すると、再生音声信号の信号強度は最初、IW(0)=IS(0)=300Vであり、再生音声信号が入力音声信号として戻ってきたときの入力音声信号の信号強度はIS(1)= IW(0)=300Vである。300Vの入力音声信号の残差信号の信号強度は上述のとおり200Vであったから、2回目の残差信号の信号強度もIR(1)=200Vとなる。何回ループしても、以下同様である。よって、IS(0)=IS(1)=IS(2)=・・・=300V、IR(0)=IR(1)=IR(2)=・・・=200V、IW(0)=IW(1)=IW(2)=・・・=300V、となる。
一方、図2において、疑似合成フィルタ27の出力である試行用再生音声信号を、予測分析部15に入力音声信号として入力することにより想定される仮想的な信号変換ループは、上述のように、量子化及び逆量子化部2と、特徴量抽出及び復元部51と、による近似過程が挿入されているために、定常的なループとはならない。例えば、ループを回るたびに、信号強度が変化してしまうことが考えられる。
上述の図1の説明に準じれば、IS(0)=300Vに対して、IR(0)=200Vとなるところまでは、図1の場合と同じである。しかし、図2の試行用励起信号の信号強度IE(0)は、IR(0)とは異なる値、例えば、IE(0)=180V、つまりIR(0)の90%となってしまう場合が考えられる。
すると、図2の疑似合成フィルタには、理想的には信号強度IR(0)=200Vの信号が入力されるべきところが、その90%の信号強度IE(0)=180Vしかない信号が入力されるので、疑似合成フィルタ部27が理想的な信号強度である300Vを有する再生音声信号を出力することは期待できない。さらに、そもそも、合成フィルタ部自体が、図1に示す理想的な合成フィルタ部1ではなく、疑似予測係数により定義された疑似合成フィルタ部27であるので、たとえ理想的な信号強度である200Vの残差信号が入力されたとしても、理想的な信号強度である300Vを有する再生音声信号を出力することは期待できない。
かかる複合的な要因のために、図2の合成フィルタ部27が出力する試行用再生音声信号の信号強度IW(0)は、理想的な値であるIS(0)の80%にすぎない240Vになってしまうとする。
音声復号装置が音声を再生するときには、その信号強度ができるだけ理想的な値である300Vに近いことが、音質劣化防止の上では重要である。一方、音声復号装置が疑似合成フィルタ部27により生成した音声信号の信号強度は上述のとおり240Vにとどまり、理想的な値の80%にすぎない。
そこで、図2の修正因子決定部33は、疑似合成フィルタ部27から出力された試行用再生音声信号の信号強度IW(0)=240Vと、元の入力音声信号の信号強度IS(0)=300Vとを比較する。この比較により、修正因子決定部33は、信号強度がIW(0)/ IS(0)=0.8のように低下していることを認識する。信号強度が低下しているのであるから、特徴量抽出及び復元部51における残差信号復元試行の際に、信号強度を前記0.8の逆数である1.25倍に割り増しして扱うようにすれば、再生音声は、より元の入力音声信号に近づくという意味で、高音質を有するものになると期待される。そこで、修正因子決定部は、かかる1.25倍の割り増し修正指示を、修正内容として決定する。
かかる修正内容は音声復号装置に伝達される。そして、音声復号装置は、残差信号復元試行動作の際に、修正内容である、信号強度の1.25倍の割り増しを行う。これは、図2に対応させれば、IR(0)=200Vであった残差信号を、特徴量抽出及び復元部51の内部では1.25倍して扱い、その結果、特徴量抽出及び復元部51の出力である試行用励起信号も、元のIE(0)=180Vの1.25倍である180×1.25=225Vの信号強度を有する信号として出力される。この信号は、音声復号装置の内部の疑似合成フィルタ部27に入力される。
上述のとおり、疑似合成フィルタ部27は、180Vの信号強度を有する励起信号に対して、240Vの信号強度を有する試行用再生音声信号を生成したので、線型性を仮定すれば、修正因子決定部33の指示内容を反映した再生音声信号の信号強度は、225V×240/180=300Vとなる。つまり、音声復号装置が再生する音声の信号強度が300Vである。この値は、元の入力音声信号を忠実に再現するという意味で理想的な値であるIS(0)=300Vと一致する。もちろん、ここでは簡略化した具体例を挙げているにすぎず、かかる一致そのものには特に意義はない。しかし重要なのは、修正因子決定部33の指示内容が反映されていない時点での再生音声信号の信号強度、すなわち、音声符号化装置の内部の疑似合成フィルタ部27が生成した試行用再生音声信号強度であるIW(0)=240Vよりは、該指示内容が反映されつつ生成された再生音声信号の信号強度は、元の入力音声信号の強度IS(0)=300Vに近くなることである。このように、音声符号化装置の中で試行用再生音声信号を生成して、それを修正因子決定部33が元の入力音声信号と比較し、できるだけ定常的な信号変換ループを形成するためのフィードバックを図2の点線矢印のように行うとすればいかなるフィードバックをかけるべきか、を修正因子決定部33が決定し、決定されたフィードバックのかけかたを音声符号化装置が音声復号装置に伝達し、音声復号装置がそれに沿って音声を再生するようにすれば、音声復号装置が生成する再生音声の品質は向上する。
フィードバックの内容が、上に例示した信号強度修正である場合には、修正因子決定部33は、入力音声信号の信号強度の、試行用再生音声信号の信号強度に対する比率、例えば上述の例ではIS(0)/IW(0)=300V÷240V=1.25という割増率、を求めることが重要である。このIS(0)/IW(0)という計算の具体例は、後に、より詳細に説明する。
なお、音声符号化装置と音声復号装置とにおいて行われる全ての信号処理が線型的であれば、信号強度の修正は、例えば、音声復号装置にボリューム調整器を取り付けて、それによりゲイン制御を行えばよいともいえる。しかし、本発明の特徴のひとつは、残差信号を帯域分割する等、各種信号が複数の段階にわたり処理されることにあるため、原理的には線型的な処理過程においても実際には非線形効果が入り込んでしまう場合も多いため、上述のような信号強度の修正は、音質向上に資する。
(実施形態1)
図3は、本発明の実施形態1に係る音声符号化装置3の機能構成図である。
音声符号化装置3は、図示するように、マイクロフォン11と、A/D変換部13と、予測分析部15と、ベクトル正規化部19と、スカラー量子化部21と、ベクトル量子化部23と、合成フィルタ算出部25と、疑似合成フィルタ部27と、残差信号特徴量抽出部29と、残差信号復元試行部31と、修正因子決定部33と、符号化部35と、送信部37と、を備える。
予測分析部15は、予測分析用逆フィルタ算出器17を内蔵している。
マイクロフォン11に入力されたアナログ入力音声信号は、A/D変換部13により、例えば16kHzサンプリングにより、デジタル入力音声信号に変換されてから、予測分析部15に引き渡される。該デジタル入力信号は、以後、後述の同一メインフレームの中において添字jで識別されるサブフレームという時間長12〜20ms程度の時間区間と、連続したZ個のサブフレームから構成され添字iで識別されるメインフレームという時間区間と、に分けて扱われる。後にその根拠を述べるとおり、例えばZ=4とするのが好適である。そして、ひとかたまりのデジタル入力信号は、M個のメインフレームから構成されているものとする。
ここで、ひとかたまりのデジタル入力信号とは、以下の説明において、一括的に処理されることが想定される時間長に対応した信号を指す。該時間長は固定長であっても可変長であってもかまわない。換言するとMは固定値でも可変値でもかまわない。該時間長は、後述の音声復号装置4が備える後述の記憶部315の記憶容量が許すならば、例えば、音声符号化装置のユーザが一息で話す時間に合わせてもよい。
しかし、該時間長に基づき一括的な信号処理がなされることから、該時間長は、音声符号化装置3から後述の音声復号装置4への通信に際しての最小時間単位に相当する。すなわち、該時間長は、理想的なリアルタイム通話からの遅延時間の下限を決定する。音声符号化装置3のユーザと後述の音声復号装置4のユーザとにとっては、できるだけリアルタイム通話に近い通話が可能となるような通信が可能となる方が、使い勝手の観点からは望ましいと考えられるので、その点では、後述のCPU311や無線通信部317等が動作するに際して過剰な負荷がかかることによりかえって処理速度を低下させてしまわない限度で、該時間長を短くしてもよい。
このように、メインフレームは、理解の便宜上の一括処理の単位という意義を有する。ただし、メインフレームは、他に、より本質的な意義として、後述するように、ベクトル量子化を行うための単位であるという意義を有する。
以下で扱われるデジタル入力信号は、サブフレーム単位では、時間順に、S0、0、・・・、S0、j、・・・、S0、Z-1、S1、0、・・・、Si-1、Z-1、Si、0、・・・、Si、j、・・・Si、Z-1、Si+1、0、・・・、SM-2、Z-1、SM-1、0、・・・、SM-1、Z-1のように、0≦i≦M-1、0≦j≦Z-1、の添字i、jによって表すことにする。
各サブフレームには、サンプルがL個ずつ含まれているとし、iとjとで識別されるサブフレームにおけるサンプルを、時間順に、Si、j={si、j、0、・・・、si、j、t、・・・、si、j、L-1}(0≦t≦L-1)のように表すことにする。
本実施形態においては、発明の理解を容易にするために、通信処理を含めた各種処理の方式として上述のようなひとかたまりの信号に対する一括処理という態様を想定するが、当然のことながら、任意の既知の信号処理方式や通信方式、例えばある処理は一括処理とし別の処理はより細切れの情報単位での処理とする等の方式を採用してもよい。
予測分析部15は、引き渡されたデジタル音声信号に、N次の予測分析、好ましくはやMLSA(Mel Log Spectrum Approximation)分析、を施す。そしてその結果、予測分析部15は、該デジタル音声信号を、サブフレーム毎に、予測係数と残差信号とに分解する。該分解は、実際には、まず予測分析部15が各サブフレームについてMLSA係数等の予測係数を算出し、次に、該予測係数から、予測分析用逆フィルタ算出器17が、予測分析用逆フィルタ(図示せず。)を求め、デジタル音声信号が該予測分析用逆フィルタに入力された結果として、残差信号が求まる。
iとjとで識別されるサブフレームにおける予測係数は、次数の昇順に、Ci、j={ci、j、0、・・・、ci、j、k、・・・、ci、j、N-1}(0≦k≦N-1)のように表すことにする。
Nは予測分析の次数であり、上述のようにサンプリングレートとして16kHzサンプリングを採用した場合には、15乃至20とすることが好適である。
iとjとで識別されるサブフレームにおける残差信号は、時間順に、Di、j={di、j、0、・・・、di、j、t、・・・、di、j、L-1}(0≦t≦L-1)のように表すことにする。
なお、このように、予測係数も残差信号も、特定のサブフレームに属するものとして表記するが、実際に予測分析部15が行う予測分析の計算のための時間区間は、サブフレームよりも長くてもさしつかえない。あるサブフレームに属するものとして表記される予測係数及び残差信号は、あくまでも、該サブフレームを代表する予測係数及び残差信号であればよい。
例えば、あるサブフレームにおける予測分析のために、該サブフレームに対応する時間帯に実際に含まれる信号サンプルデータに加えて、計算上、時系列においてひとつ前のサブフレームの後半に対応する時間帯に実際に含まれる信号サンプルデータと、ひとつ後のサブフレームの前半に対応する時間帯に実際に含まれる信号サンプルデータと、をも用いてもよい。
予測分析部15により算出された予測係数は、そのままベクトル正規化部19に引き渡される。
ベクトル正規化部19は、後にフローチャートを参照して詳しく説明するように、予測係数をメインフレーム毎かつ次数毎にまとめることにより、係数ベクトルを生成する。続いて、該係数ベクトルを、正規化する。ベクトル正規化部19は、続いて、正規化のために用いたスカラーである係数ベクトル最大絶対値をスカラー量子化部21に、正規化の結果得られたベクトルである正規化ベクトルをベクトル量子化部23に、それぞれ引き渡す。
スカラー量子化部21は、引き渡された係数ベクトル最大絶対値をスカラー量子化することによりスカラー量子化係数ベクトル最大絶対値を求め、合成フィルタ算出部25と、符号化部35と、に引き渡す。
ベクトル量子化部23は、引き渡された正規化係数ベクトルをベクトル量子化することによりベクトル量子化正規化係数ベクトルを求め、合成フィルタ算出部25と、符号化部35と、に引き渡す。
合成フィルタ算出部25は、スカラー量子化部21から引き渡されたスカラー量子化係数ベクトル最大絶対値を逆スカラー量子化した値を、ベクトル量子化部23から引き渡されたベクトル量子化正規化係数ベクトルを逆ベクトル量子化したベクトルに乗じることにより、逆量子化係数ベクトルを生成する。合成フィルタ算出部25は、続いて、逆量子化係数ベクトルの成分を取り出して疑似予測係数を生成し、該疑似予測係数により、疑似合成フィルタ部27の合成フィルタとしての仕様を定義する。
予測分析部15により求められた残差信号は、残差信号特徴量抽出部29に引き渡される。
残差信号特徴量抽出部29は、引き渡された残差信号から、該残差信号を特徴付ける量である特徴量を抽出し、符号化部35と残差信号復元試行部31とに引き渡す。なお、残差信号特徴量抽出部29の詳細については、後に図面を改めて説明する。
残差信号復元試行部31は、特徴量を残差信号特徴量抽出部29から取得するとともに、予測分析部15が算出した予測係数の一部をも取得した上で、特徴量を手がかりに、予測分析部15が求めた残差信号にできる限り近い信号を、試行用励起信号として生成する。生成された試行用励起信号は、疑似合成フィルタ部27への入力信号となる。なお、残差信号復元試行部31の詳細については、後に図面を改めて説明する。
疑似合成フィルタ部27は、合成フィルタ算出部25が生成した疑似予測係数により定義された後、残差信号復元試行部31が生成した試行用励起信号が入力されることにより、試行用再生音声信号を生成する。該試行用再生音声信号を生成する目的は、先にフィードバックループについて説明したとおり、音声の再生そのものではなく、後述の音声復号装置4が高品質の音声を再生することができるよう修正因子決定部33が修正方針を決定するための基礎データを提供することである。
つまり、符号を受け取った後述の音声復号装置4が行うことになる、残差信号及び音声信号を復元する動作を、音声符号化装置3が、あらかじめなぞって、音声信号がどの程度忠実に再現されるかを調査しておく。そして、音声符号化装置3は、かかる調査の結果に基づいて決定した、残差信号及び音声信号の適切な復元の方針を、音声復号装置4に伝達する。すると、音声復号装置4が該方針に従って生成した音声は、元の音声に近いという点で、高品質なものとなる。
修正因子決定部33には、修正方針を決定するための基礎データとして、疑似合成フィルタ部27が生成した試行用再生音声信号と、A/D変換部13が求めたデジタル入力音声信号と、が提供される。修正因子決定部33は、該試行用再生音声信号と該デジタル入力音声信号とを比較して、修正方針を決定する。該修正方針は、本実施形態の場合は、信号強度に関する修正方針であるので、以下では、かかる修正方針全般又は具体的な信号強度値を指して、単に修正強度と呼ぶことにする。修正因子決定部33は、決定した修正強度を、符号化部35に引き渡す。
符号化部35は、スカラー量子化部21からスカラー量子化係数ベクトル最大絶対値を、ベクトル量子化部23からベクトル量子化正規化係数ベクトルを、残差信号特徴量抽出部29から特徴量を、修正因子決定部33から修正強度を、それぞれ受け取り、これらをまとめて、任意の既知の手法により符号化し、かかる符号化により得られた符号を、送信部37に引き渡す。
送信部37は、符号化部35から引き渡された符号を、後述の音声復号装置4に向けて、送信する。送信方法は、本実施形態においては、無線通信によるものとするが、他の、有線や、有線と無線の併用など、様々な通信方法によるものであってもよい。
図4は、本実施形態に係る音声復号装置4の機能構成図である。
音声復号装置4は、図示するように、受信部61と、復号部63と、残差信号復元部65と、D/A変換部67と、スピーカ69と、を備える。
音声復号装置4は、図中で太枠で示されているとおり、合成フィルタ算出部25と、疑似合成フィルタ部27と、をさらに備える。これら、合成フィルタ算出部25及び疑似合成フィルタ部27は、それぞれ、音声符号化装置3における、図3の中で太線で示されている合成フィルタ算出部25及び疑似合成フィルタ部27と同じものである。
音声復号装置4における合成フィルタ算出部25及び疑似合成フィルタ27は、音声復号装置には必須のものである。それに対し、音声符号化装置3における両者は、音声復号装置4における音声復号動作の一部をあらかじめなぞってみて修正因子33により修正強度を求めるための基礎データを得るために備えられているものであって、音声復号装置4が高品質の音声を再生することができるようにするために必要なものであるが、音声を単に符号化するという観点からは必須のものではない。
図4に示す音声復号装置4の受信部61は、図3に示す音声符号化装置3の送信部37から送信される、スカラー量子化係数ベクトル最大絶対値とベクトル量子化正規化係数ベクトルと特徴量と修正強度とが符号化されたものである符号を受け取り、図4に示す復号部63に引き渡す。
復号部63は、受信部から引き渡された符号を、音声符号化装置3の符号化部35で用いられた符号化方法に対応する復号方法により復号することにより、スカラー量子化係数ベクトル最大絶対値とベクトル量子化正規化係数ベクトルと特徴量と修正強度とを生成する。復号部63は、これらのうち、スカラー量子化係数ベクトル最大絶対値とベクトル量子化正規化係数ベクトルとを合成フィルタ算出部25に引き渡し、特徴量と修正強度とを残差信号復元部65に引き渡す。
合成フィルタ算出部25は、復号部63から引き渡されたスカラー量子化係数ベクトル最大絶対値を逆スカラー量子化した値を、同じく復号部63から引き渡されたベクトル量子化正規化係数ベクトルを逆ベクトル量子化したベクトルに乗じることにより、逆量子化係数ベクトルを生成する。合成フィルタ算出部25は、続いて、逆量子化係数ベクトルの成分を取り出して疑似予測係数を生成し、該疑似予測係数により、疑似合成フィルタ部27の合成フィルタとしての仕様を定義する。
残差信号復元部65は、特徴量と修正強度とを復号部63から取得するとともに、特徴量を手がかりに、該修正強度を加味しつつ、音声符号化装置3の予測分析部15が求めた残差信号に近い信号であることが期待される信号を、復号用励起信号として生成する。生成された復号用励起信号は、疑似合成フィルタ部27への入力信号となる。なお、残差信号復元部65は、音声符号化装置3の残差信号復元試行部31に似た動作を行う。この点については、後に、残差信号復元試行部31の詳細とともに説明する。
疑似合成フィルタ部27は、合成フィルタ算出部25が生成した疑似予測係数により定義された後、残差信号復元部65が生成した復号用励起信号が入力されることにより、デジタル再生音声信号を生成する。
デジタル再生音声信号はD/A変換部67によりアナログ再生音声信号に変換された後、スピーカ69に送られる。こうして、スピーカ69からは、復元された音声信号が、人間の耳に聞こえる態様にて発せられる。
図5は、図3の音声符号化装置3の残差信号特徴量抽出部29の詳細な機能構成を示す図である。
残差信号特徴量抽出部29は、引き渡された各サブフレームの残差信号Di、j={di、j、0、・・・、di、j、L-1}を、内蔵の総合ピッチ判別部5と、帯域フィルタ部115と、原則的にはピッチ抽出部113と、に引き渡す。ただし、ピッチ抽出部113にはピッチ抽出用スイッチ部111が前置されているため、ピッチ抽出部113に対しては、残差信号Di、jが引き渡されるとは限らない。
総合ピッチ判別部5は、残差信号Di、jからピッチを抽出することができるか否かを判別する。該判別には任意の既知の手法を用いてよい。例えば、残差信号Di、jについて、規格化された自己相関関数
CREG(τ)=C(τ)/REG(τ)
(ただし、
C(τ)=di、j、0×di、j、τ+・・・
+di、j、L-1-τ×di、j、L-1
であり、
REG(τ)={(di、j、0 2+・・・+di、j、L-1-τ 2)
×(di、j、τ 2+・・・+di、j、L-1 2)}0.5
である。)
を計算し、CREG(τ)が例えば0.5よりも大きい極大値を有する場合はピッチを抽出することができると判別し、CREG(τ)が0.5よりも大きい極大値を有しない場合はピッチを抽出することができないと判別する。
総合ピッチ判別部5は、残差信号Di、jからピッチを抽出することができると判別した場合は、ピッチ抽出用スイッチ部111に対して、スイッチを閉じるよう、指令を送る。該指令を受けたピッチ抽出用スイッチ部111はスイッチを閉じて、残差信号Di、jがピッチ抽出部113に送られるようにする。
一方、総合ピッチ判別部5は、残差信号Di、jからピッチを抽出することができないと判別した場合は、ピッチ抽出用スイッチ部111に対して、スイッチを開くよう、指令を送る。該指令を受けたピッチ抽出用スイッチ部111はスイッチを開いて、残差信号Di、jがピッチ抽出部113に送られないようにする。
ピッチ抽出部113は、残差信号Di、jが送られてきた場合には、該残差信号Di、jのピッチ長Pi、jを求める。ピッチ抽出部113に残差信号が送られてきたということは、ピッチ抽出用スイッチ部111のスイッチの開閉を指示する総合ピッチ判別部5が、該残差信号からピッチを抽出することができると判別したということである。したがって、ピッチ抽出部113は、送られてきた残差信号のピッチ長を求めることができるはずである。一方、ピッチ抽出部113は、残差信号Di、jが送られてこなかった場合には、何もしない。
ピッチ抽出部113が残差信号Di、jのピッチ長Pi、jを求めるためには、任意の既知の手法を用いてよい。もっとも、総合ピッチ判別部5が上述の規格化された自己相関関数CREG(τ)を用いてピッチを抽出することができるか否かを判別した場合には、該判別の過程でCREG(τ)の所定の極大値を与えるτの値が副産物として容易に求まる。かつ、かかるτの値は、CREG(τ)の定義に鑑みれば、ピッチ長の値に相当すると考えられる。よって、ピッチ抽出部113は、総合ピッチ判別部5からかかるτの値を取得し、それをそのままピッチ長Pi、jとするのが簡易である。
ピッチ抽出部113は、ピッチ長を求めた場合には、該ピッチ長を帯域別強度決定部131に引き渡す。
帯域フィルタ部115は、内蔵の第1帯域フィルタ117、第2帯域フィルタ119、第3帯域フィルタ121、・・・を用いて、各サブフレームの残差信号Di、jを、帯域毎の残差信号に分割する。帯域フィルタ部115は、例えば、残差信号を帯域1乃至8に分割し、帯域1を0〜1kHz、帯域2を1〜2kHz、帯域3を2〜3kHz、帯域4を3〜4kHz、帯域5を4〜5kHz、帯域6を5kHz〜6kHz、帯域7を6kHz〜7kHz、帯域8を7kHz〜8kHz、とするのが好適である。
残差信号Di、jが第1帯域フィルタ117に通されることにより帯域1の帯域別残差信号Di、j、1={di、j、1、0、・・・、di、j、1、L-1}が生成され、残差信号Di、jが第2帯域フィルタ119に通されることにより帯域2の帯域別残差信号Di、j、2={di、j、2、0、・・・、di、j、2、L-1}が生成され、残差信号Di、jが第3帯域フィルタ121に通されることにより帯域3の帯域別残差信号Di、j、3={di、j、3、0、・・・、di、j、3、L-1}が生成され、以下、同様である。
このように、帯域フィルタ部115は、ここでは、帯域別残差信号生成部として機能する。
帯域識別のための変数をωと表記することにする。例えば、第1帯域フィルタ117により生成される信号はω=1の帯域の信号であるとし、第2帯域フィルタ119により生成される信号はω=2の帯域の信号であるとする。また、ωの最大値をωMaxとする。1≦ω≦ωMaxとなる。
生成された帯域1の帯域別残差信号Di、j、1は、帯域別雑音判別部123の中の第1帯域雑音判別器125と、帯域別強度決定部131の中の第1帯域強度算出器133と、に引き渡され、生成された帯域2の帯域別残差信号Di、j、2は、帯域別雑音判別部123の中の第2帯域雑音判別器127と、帯域別強度決定部131の中の第2帯域強度算出器135と、に引き渡され、以下、同様である。
第1帯域雑音判別器125は、帯域1の帯域別残差信号Di、j、1が雑音であるか否かを判別し、該判別結果をフラグ生成部129に伝える。第2帯域雑音判別器127は、帯域2の帯域別残差信号Di、j、2が雑音であるか否かを判別し、該判別結果をフラグ生成部129に伝える。以下、同様である。
第ω帯域雑音判別器は、任意の既知の手法により、帯域ωの帯域別残差信号Di、j、ω={di、j、ω、0、・・・、di、j、ω、L-1}が雑音であるか否かを判別する。例えば、上で、総合ピッチ判別部5が残差信号Di、jからピッチを抽出することができるか否かを判別するために用いる手法の例として挙げた、規格化された自己相関関数を計算することによる手法を用いるのが好適である。
すなわち、残差信号Di、j、ωについて、規格化された自己相関関数
CREG、ω(τ)=Cω(τ)/REGω(τ)
(ただし、
Cω(τ)=di、j、ω、0×di、j、ω、τ+・・・
+di、j、ω、L-1-τ×di、j、ω、L-1
であり、
REGω(τ)={(di、j、ω、0 2+・・・+di、j、ω、L-1-τ 2)
×(di、j、ω、τ 2+・・・+di、j、ω、L-1 2)}0.5
である。)
を計算し、CREG、ω(τ)が例えば0.5よりも大きい極大値を有する場合はピッチを抽出することができるとして雑音ではないと判別し、CREG、ω(τ)が0.5よりも大きい極大値を有しない場合はピッチを抽出することができないとして雑音であると判別する。
フラグ生成部129は、帯域別雑音判別部123から、帯域1についての雑音か否かの判別結果と、帯域2についての雑音か否かの判別結果と、・・・、帯域ωについての雑音か否かの判別結果と、・・・、帯域ωMaxについての雑音か否かの判別結果と、を伝えられる。フラグ生成部129は、これら各帯域についての判別結果を反映した各帯域についてのフラグを生成する。換言すれば、フラグをみれば該フラグが対応する帯域の帯域別残差信号が雑音であると判別されたか否かが分かるようなフラグを生成する。
帯域別強度決定部131には、各帯域の帯域別残差信号Di、j、ωが帯域フィルタ部115から引き渡され、さらに、総合ピッチ判別部5が残差信号からピッチを抽出することができると判別した場合にはピッチ抽出部113からピッチ長Pi、jが引き渡される。
帯域別強度決定部131の中の第1帯域強度算出器133は、帯域1の帯域別残差信号Di、j、1の強度を算出する。第2帯域強度算出器135は、帯域2の帯域別残差信号Di、j、2の強度を算出する。以下、同様である。第ω帯域強度算出器が帯域ωの帯域別残差信号Di、j、ωの強度を算出するには、任意の既知の手法を用いてよいが、例えば、次のような手法が好適である。
まず、所定の時間にわたり帯域別残差信号の2乗を時間積分した後、その平方根を、帯域別絶対強度Hi、j、ωとする。帯域別残差信号Di、j、ωはDi、j、ω={di、j、ω、0、・・・、di、j、ω、L-1}なるデジタル信号であるので、具体的には、積分は和で代用されて、
Hi、j、ω=sqrt(di、j、ω、0 2+・・・+di、j、ω、Y-1 2)
のように計算される。ただし、記号sqrtは平方根を意味する。
また、Yは、帯域別強度決定部131にピッチ抽出部113からピッチ長Pi、jが送られていない場合には、できるだけ長い範囲で積分したほうが正確な強度が得られると期待されるため、Y=Lとするのが好適である。
それに対して、ピッチ長Pi、jが送られている場合には、総合ピッチ判別部5が、残差信号Di、jが全体としてピッチ的な性質を有すると判別したということであるから、位相のずれに起因する誤差を生じさせずに正確な強度を得るには、時間積分を行う時間長をピッチ長Pi、jの整数倍にするのが適切である。そしてさらに、この場合にも、できるだけ長い範囲で積分したほうが正確な強度が得られると期待されるため、
m×Pi、j≦L-1<(m+1)×Pi、j
なる整数mを求め、Y= m×Pi、j+1とするのが好適である。
帯域別絶対強度H i、j、ωは、後にフローチャートを用いて説明するように、サブフレーム毎に相対強度に変換される。以下では、この相対強度を、単に帯域別強度h i、j、ωと呼ぶ。
結局、残差信号特徴量抽出部29は、内蔵のフラグ生成部129が生成した各帯域についてのフラグと、同じく内蔵の帯域別強度決定部131が求めた各帯域の帯域別強度h i、j、ωと、を、残差信号特徴量として出力する。残差信号特徴量抽出部29は、ピッチ抽出部113がピッチ長Pi、jを求めた場合には、該ピッチ長も含めて、特徴量として出力する。
このように、残差信号を帯域別に扱うことにより、各帯域における帯域別残差信号の特徴の違いに応じた符号化がなされるため、復号して再生した音声の品質が向上する。また、かかる特徴は、おおまかには、雑音的であるか否かという単純な判別結果を示すフラグにより表されるので、音声符号化及び音声復号方式の簡素さは維持される。
換言すれば、残差信号の帯域別の特徴をおおまかに雑音的であるか否かという点から捉えるために、音声符号化装置3は簡素なもので済む。一方、音声復号に際しては、雑音パルス列及びピッチパルス列の生成手段と帯域分割手段があれば、全ての帯域の帯域別残差信号の復元が可能になり、簡素でありながらも、残差信号を帯域別に扱ったことによる音声品質の向上が期待される。
図6は、図3の音声符号化装置3の残差信号復元試行部31の詳細な機能構成を示す図である。
残差信号復元試行部31は、各帯域についてのフラグと、各帯域の帯域別強度h i、j、ωと、を、特徴量として、残差信号特徴量抽出部29(図3、図5)から受け取る。残差信号復元試行部31は、残差信号特徴量にピッチ長Pi、jが含まれていた場合には、該ピッチ長も受け取る。
残差信号復元試行部31の中のピッチパルス列生成部6は、特徴量にピッチ長Pi、jが含まれていた場合には、該ピッチ長に基づいてピッチパルス列を生成し、帯域フィルタ部115に引き渡す。一方、特徴量にピッチ長Pi、jが含まれていなかった場合には、何もしない。
図6においてピッチパルス列生成部6の下に描かれた帯域フィルタ部115は、上述の、図5に示された帯域フィルタ部115と同じ機能を有する。ただし、ピッチパルス列生成部6の下に描かれた帯域フィルタ部115は、ピッチパルス列生成部6から引き渡されたピッチパルス列を帯域分割して帯域別ピッチパルス列を生成することを目的とする。つまり、ピッチパルス列生成部6の下に描かれた帯域フィルタ部115は、帯域別ピッチパルス列生成部として機能する。
生成された各帯域の帯域別ピッチパルス列は、帯域別試行用励起信号生成部221に引き渡される。帯域別試行用励起信号生成部221は第1帯域別試行用励起信号生成器223と、第2帯域別試行用励起信号生成器225と、・・・、第ω帯域別試行用励起信号生成器(図示せず。)と、・・・、第ωMax帯域別試行用励起信号生成器(図示せず。)と、を内蔵している。第1帯域別試行用励起信号生成器223は、帯域1の帯域別ピッチパルス列を受け取る。第2帯域別試行用励起信号生成器225は、帯域2の帯域別ピッチパルス列を受け取る。以下、同様である。
残差信号復元試行部31の中の雑音パルス列生成部211は、雑音パルス列を生成し、帯域フィルタ部115に引き渡す。
図6において雑音パルス列生成部211の下に描かれた帯域フィルタ部115は、上述の、図5に示された帯域フィルタ部115及び図6においてピッチパルス列生成部6の下に描かれた帯域フィルタ部115と同じ機能を有する。ただし、雑音パルス列生成部211の下に描かれた帯域フィルタ部115は、雑音パルス列生成部211から引き渡された雑音パルス列を帯域分割して帯域別雑音パルス列を生成することを目的とする。つまり、雑音パルス列生成部211の下に描かれた帯域フィルタ部115は、帯域別雑音パルス列生成部として機能する。
生成された各帯域の帯域別雑音パルス列は、帯域別試行用励起信号生成部221に引き渡される。帯域別試行用励起信号生成部221の中の第1帯域別試行用励起信号生成器223は、帯域1の帯域別雑音パルス列を受け取る。帯域別試行用励起信号生成部221の中の第2帯域別試行用励起信号生成器225は、帯域2の帯域別雑音パルス列を受け取る。以下、同様である。
特徴量として残差信号復元試行部31に引き渡された各帯域の帯域別残差信号の強度と、各帯域についてのフラグと、は、帯域別試行用励起信号生成部221に送られる。その際、帯域1における帯域別残差信号の強度及び帯域1についてのフラグは、帯域別試行用励起信号生成部221の中の第1帯域別試行用励起信号生成器223に送られる。帯域2における帯域別残差信号の強度及び帯域2についてのフラグは、帯域別試行用励起信号生成部221の中の第2帯域別試行用励起信号生成器225に送られる。以下、同様である。
結局、帯域別試行用励起信号生成部223の中の第ω帯域別試行用励起信号生成器には、帯域ωについてのフラグと、帯域ωにおける帯域別残差信号の強度と、帯域ωの帯域別雑音パルス列と、が引き渡され、さらに、特徴量にピッチ長が含まれていた場合には、帯域ωの帯域別ピッチパルス列も引き渡される。第ω帯域別試行用励起信号生成器は、これら3乃至4種類の情報から、試行用励起信号の帯域ωの成分としてふさわしいことが期待される信号である、帯域ωの帯域別試行用励起信号を生成する。
かかる生成過程の詳細については、後にフローチャートを参照しつつ述べる。概略としては、第ω帯域別試行用励起信号生成器は、帯域ωについてのフラグが、帯域ωの帯域別残差信号が雑音的性質を有することを示している場合には、生成される信号も雑音的性質を有することが適切であるから、帯域ωの帯域別雑音パルス列に帯域ωにおける残差信号の強度を乗じることにより、目的の信号を生成する。一方、帯域ωについてのフラグが、帯域ωの帯域別残差信号が雑音的性質を有していないことを示している場合には、生成される信号も雑音的性質を有さないことが適切であるから、第ω帯域別試行用励起信号生成器は、帯域ωの帯域別ピッチパルス列に帯域ωにおける残差信号を乗じることにより、目的の信号を生成する。
ただし、たとえフラグがその対応する帯域に雑音的性質のないことを示唆している場合でも、残差信号特徴量にピッチ長が含まれていなかったときには、残差信号復元試行部31においてはピッチパルス列はもちろんのこと帯域別ピッチパルス列も生成されないので、雑音的性質を有さない目的信号を作りようがない点には、注意が必要である。もっとも、これは、全体としての残差信号には周期性がないにもかかわらず、帯域別残差信号のうちには周期性があるものが存在するという、原理的には生じにくい事態であって、単に計算上の例外処理を適切に整えておく必要があるということにすぎないともいえる。
なお、後に詳しく述べる信号生成過程から明らかなように、帯域別雑音パルス列、帯域別ピッチパルス列、及び、帯域毎の残差信号の強度は、いずれもある種の規格化を施されており、これらに対して相互に乗算等の操作を行っても、ある種の相対値を求めることしかできない。
ところが、先にフィードバックループについて説明したように、本実施形態においては、信号の絶対的な値を扱うことが重要である。そのため、帯域別試行用励起信号生成部221は、基準となる特定の値を上述の相対値に乗じて、各帯域の帯域別試行用励起信号を生成する必要がある。
もっとも、後に修正因子決定部33によるフィードバックがかかるので、この基準となる特定の値は、厳密に決定する必要はない。よって、経験則に基づいてあらかじめ所定の固定値を決めておいてもよいが、帯域別試行用励起信号生成部221は、かかる基準となる特定の値を、図3の点線矢印及び図6の点線矢印で表されるように、予測分析部15が求めた予測係数の一部を手がかりにして、決定することが、より好適である。この具体的な方法については、後に説明する。
帯域別試行用励起信号生成部221が生成した各帯域の帯域別試行用励起信号は、試行用励起信号生成部227に引き渡される。試行用励起信号生成部227は、引き渡された帯域別試行用励起信号を重ね合わせることにより、試行用励起信号を生成し、該信号を出力する。
音声復号装置4が備える残差信号復元部65(図4)は、以上のように図6を参照して説明した残差信号復元試行部31に酷似している。いずれも特徴量から励起用信号を生成するという共通した目的を有するからである。ただし、残差信号復元試行部65は、修正因子決定部33(図3)が決定した修正強度を受け取り、それを反映しつつ励起用の信号を生成する。よって、予測分析部15(図3)が求めた残差信号に対して、残差信号復元部65が出力する信号は、残差信号復元試行部31が出力する信号に比べてよりよく近似した信号となる。また、残差信号復元部65においては、サブフレーム間で信号強度にスムージング処理が施される。残差信号復元試行部65の動作の詳細については後述する。
ここまで機能構成図である図3乃至図6を参照して説明してきた本実施形態に係る音声符号化装置3及び音声復号装置4は、物理的には、ユーザにとっての使い勝手の良さを考慮して、両装置の機能を統合した、本実施形態に係る音声符号化兼復号装置7により実現される。
図7は、本実施形態に係る音声符号化兼復号装置7を示したものである。音声符号化兼復号装置7としては、例えば、携帯電話機が想定される。
音声符号化兼復号装置7は、図3で既に示してあるマイクロフォン11と、図4で既に示してあるスピーカ69と、を備える。該装置は、アンテナ325と、操作キー327と、をさらに備える。該装置は、システムバス323により相互に接続された、CPU(Central Processing Unit)311と、ROM(Read Only Memory)313と、記憶部315と、音声処理部319と、無線通信部317と、操作キー入力処理部321と、をさらに備える。記憶部315は、例えば、RAM(Random Access Memory)329と、ハードディスク331と、を備える。
ROM313には、音声符号化及び復号のための動作プログラムが格納されている。また、ベクトル量子化に必要な代表ベクトルの初期セット等、前記動作プログラムの中で参照されることになっている各種データも格納されている。
CPU311は、該動作プログラムに従って動作する。そして、CPU311は、内蔵のレジスタ(図示せず。)と記憶部315との間で適宜データのやりとりを行いながら、数値演算により、音声符号化兼復号装置7に、図3に示す音声符号化装置3及び図4に示す音声復号装置4としての機能を発揮させる。CPU311は、その際、必要に応じて音声処理部319、無線通信部317、操作キー入力処理部321とデータのやりとりを行う。
図7の音声処理部319は、図3のA/D変換部13及び図4のD/A変換部67として動作することができる。無線通信部317は、図3の送信部37及び図4の受信部61として動作することができる。符号の送受信は、基本的には、図7のアンテナ325を用いた無線通信により行われるが、別の方法、例えば有線通信により行われてもよい。操作キー入力処理部321は、操作キー327からの操作信号を受け付けて、操作信号に対応するキーコード信号をCPU311に伝達する。操作キー327は、通信の相手方となる音声符号化兼復号装置7を特定する、つまり例えば携帯電話の場合であればいわゆる電話番号を入力するのに使われる他、基本的には設定済みの各種事項をユーザの好みに応じて変化させるために用いられてもよい。
(量子化について)
本実施形態に係る音声符号化装置3(図3)は、予測係数を量子化することにより、音声復号装置4(図4)に伝達すべき情報量を減少させ低ビットレート通信を実現する一助とすることに特徴がある。本実施形態においては、量子化には図3のスカラー量子化部21によるスカラー量子化とベクトル量子化部23によるベクトル量子化とが併用される。以下では、かかる量子化が、本実施形態ではどのように行われるかを説明する。
本実施形態においては、本来スカラーである予測係数をいくつか集めて、各予測係数を成分とするベクトルを構成した後に、ベクトル量子化を行う。ただし、そのように構成されたベクトルを直接にベクトル量子化するのではなく、ベクトル正規化過程を挿入して、スカラー量子化に供される値を抜き取る。このように両種の量子化を組み合わせることにより、量子化の効率が向上する。
図8(a)は、予測係数の時系列を表にまとめたものである。既に述べたように、メインフレームは添字iで識別され、同一メインフレーム内のサブフレームは添字jで識別される。各メインフレームには0、・・・j、・・・、Z-1という番号が付けられたZ個のサブフレームが含まれる。i番のメインフレームの中のj番のサブフレームの残差信号についての予測係数Ci、jは、既に述べたように、また、図8(a)では各列として示されているとおり、Ci、j={ci、j、0、・・・、ci、j、k、・・・、ci、j、N-1}(0≦k≦N-1)という0乃至N-1次の予測係数の集まりである。
ここで、同一のメインフレームに含まれ、かつ、次数が共通する、合計Z個の予測係数を成分として、係数ベクトルを構成する。すなわち、図8(a)に点線の枠で囲んで示すように、係数ベクトルはメインフレームを表す添字iと次数を表す添字kとで特定されるのでVi、kと表記することにすれば、その成分は、
Vi、k ={ ci、0、k、・・・、ci、j、k、・・・、ci、Z-1、k}となる。
つまり、サブフレームが予測分析に対応した時間区間を意味するのに対して、メインフレームは係数ベクトルを構成する時間区間を意味する。
このように構成された係数ベクトルVi、kは、Z次元空間において、模式的には図8(b)のように表される。具体的なベクトル量子化の手法は様々であり、本実施形態においては任意の既知の手法を用いてよい。どの手法においても、原理的には、それぞれに番号が割り当てられた、有限個の代表ベクトルのセットを用意しておき、与えられたベクトルを、それに最も近い代表ベクトル又はそれらの線形結合で近似することとし、該与えられたベクトルを、該代表ベクトルに割り当てられた番号に変換する等する。取り扱いの便宜上、番号はテーブルとしてまとめられることが多い。
例えば図8(b)では、図示された係数ベクトルVi、kは、代表ベクトルのうち、点線で表されたベクトルに近いとする。このとき、この点線で表されたベクトルが、量子化係数ベクトルq[V]i、kである。また、Vi、kとq[V]i、kとの差分は、ベクトル量子化によって省略された情報であるといえる。
なお、上述のとおり、係数ベクトルは、ベクトル量子化を施されるとテーブルにまとめられる。よって、量子化係数ベクトルは、少なくとも見かけ上は、ベクトルではないともいえる。もっとも、該テーブルに記載された数値に対して、ベクトルとしての意味を与える、すなわち逆量子化を施すと、量子化係数ベクトルq[V]i、kが得られる。よって、無用の混乱を避けるために、以下では、係数ベクトルに量子化を施すことによりテーブルとして得られた結果と、該テーブルに逆量子化を施すことによって得られたベクトルと、を、ともに、量子化係数ベクトルq[V]i、kと呼ぶこととする。
このように同一次元のフィルタ係数をメインフレームすなわち連続するZ個のサブフレームにわたりまとめて係数ベクトルを構成することが、本実施形態においては、情報圧縮の点で効率が高い。以下では、この理由について説明する。
なお、本実施形態におけるベクトル量子化の導入は、信号のうちでも特に音声信号に特徴的な性質についての以下のような考察に基づいてなされたものであり、一般的な信号を処理するために単にたまたまベクトル量子化を導入することとは全く異なる技術的思想を背景としたものである。
本実施形態において同一次元のフィルタ係数をZ個まとめてベクトル量子化を行うことがなぜ効率的であるかという問題は、次の2つの問題に分解することができる。ひとつは、同一次元のフィルタ係数をまとめることがなぜ効率的であるかという問題である。もうひとつは、まとめる個数をZ個とすることがなぜ効率的であるかという問題、換言すれば、Zの値をいくつにすることが効率的であるかという問題である。
まず、ひとつめの問題について説明する。人間の音声が持続している時間は、定性的には、音声が定常状態にある時間と、非定常状態にある時間と、に分けられる。定常状態とは、具体的には例えば、「あー」、「うー」、といった、発声が伸びている場合の音声信号の状態を示す。定常状態は、話者が言葉に詰まっている場合だけでなく、言い淀むことなく滑らかに発声している場合にも、多く出現する。非定常状態とは、定常状態以外の状態を指す。
ひとつめの問題に対する答えは、本発明者が見いだした経験的事実と、ベクトル量子化の特性と、を前提にすることにより、導くことができる。
音声が非定常状態にある時間帯では、音声の信号としての変動が激しいゆえに、予測係数は、同一サブフレームで次元毎にばらばらな値をとるのはもちろんのこと、同一次元同士でも隣接サブフレーム間での違いが大きい。一方、音声が定常状態にある時間帯では、同一サブフレーム内での異次元予測係数間での違いは相変わらず大きいのに対して、同一次元の予測係数の時間変動は小さいので、次数を固定すれば、連続するいくつかのサブフレームにわたり、予測係数は比較的安定して相互に近い値をとる。これが、前提となる経験的事実である。
一般に、情報圧縮技術においては、情報に偏りがあるほど、圧縮効率が高い。これをベクトル量子化にあてはめると、多数のベクトルの集団において、ベクトルの分布に偏りがあるほど、ベクトル量子化の効率が高いということである。具体的には、上述のテーブルが、小さいサイズで済むということである。これが、前提となるベクトル量子化の特性である。
これらふたつの前提から、音声が非定常状態にある時間帯についての情報圧縮を直接に目標とすることは断念するにしても、音声が定常状態にある時間帯については、同一次元の予測係数を集めてそれらを成分とするベクトルを係数ベクトルとして構成することにすると、全成分の値が相互に近いような係数ベクトルが出現しやすい。全成分の値が相互に近いベクトルは、向きがベクトル{1、1、・・・、1}又はベクトル{-1、-1、・・・、-1}のいずれかに近い。よって、係数ベクトルの向きは、ベクトル{1、1、・・・、1}とベクトル{-1、-1、・・・、-1}というわずか2つのベクトルの付近に集中して分布する。これは、ベクトルの分布に偏りが生じたことに他ならない。
したがって、音声が非定常状態にある時間帯を合わせても、上述の方法により構成された係数ベクトルの集団は、ベクトルの向きの分布に偏りがあるといえる。そして、かかる偏りの存在ゆえに、ベクトル量子化の効率が高い。
換言すると、定常状態において予測係数が同一次元同士では連続したサブフレーム間で近い値をとるということは、この点に情報としての冗長さが存在するといえるのであり、ここに情報圧縮の余地があるので、ベクトル量子化を導入して情報処理の効率化を図ることができる。
次に、ふたつめの問題である、Zの値をいくつにすることが効率的であるかという問題について、説明する。以下のように、ふたつの観点から、妥当と考えられるZの値が定まる。
なお、以下では、本実施形態に係る音声復号装置3のA/D変換部13(図3)が、16kHzサンプリングを行っているものとする。かかるサンプリングレートは、従来から広く採用されているレートであり、特に、低ビットレート通信の技術分野においては、一般的なレートである。
ひとつめの観点は、音声において、上述の定常状態がどの程度の時間にわたり継続するか、という観点である。該時間の長さは、経験則によれば、あくまでも目安ではあるが、60ms程度であるといえる。つまり、定常状態継続時間の最短値が、典型的にはおよそ60msということである。
上述の、係数ベクトルにおいて全成分の値をできるだけ相互に近い値としたいという要請と、前記経験則と、を考え合わせると、この60msという時間にいくつのサブフレームが入るか計算して、そのサブフレームの個数を、ベクトル量子化のためのベクトルの次元の数とすることが妥当である。ここで、ベクトルの次元の数とは、係数ベクトルの成分の数のことであり、それはすなわち、1個のメインフレームの中に含まれるサブフレームの数であるZのことである。予測係数の次元とは全く異なることに注意する。
予測分析部15(図3)の説明中に触れたように、サブフレームの時間長は12〜20ms程度である。よって、Zは、60msを12〜20msで除した値である、4程度とするのが妥当である。
なお、ここでは上述のとおり16kHzサンプリングを前提としたので、Z=4とするのが妥当であるとの結論が導かれた。もしも、例えば2倍のサンプリングレートである32kHzサンプリングを採用した場合、予測係数算出精度、残差信号算出精度、及び、予測分析部15の説明中で触れた予測分析の分析次数である12〜15次、を維持するとすれば、例えば、サブフレーム長を半減させて6〜10ms程度とすることが考えられる。よって、係数ベクトルの次元Zは、16kHzサンプリングの場合の2倍である8程度にすることが妥当である。つまり、Z=(定常状態持続時間60ms程度)÷(サブフレーム長6〜10ms)=約8、のように計算される。
次に、Zの値をいくつにすることが効率的であるかという問題についてのふたつのめの観点について述べる。
ふたつめの観点は、ベクトル量子化処理に特徴的な、より一般的な性質を考慮する観点である。
ベクトル量子化は、その性質上、成分の数が少なすぎると、すなわち次元が低すぎると、ベクトル量子化を採用したことによる情報の圧縮効率の向上の程度が小さい。例えば極端な場合として、1成分だけ有するベクトルのベクトル量子化を想定することができるが、これはスカラー量子化そのものであるから、ベクトル量子化にはスカラー量子化に対する何らの優位性もないことになる。
このように、ベクトル量子化を効率的に行うためには、少なくともある程度は次元が高いことが必要である。
一方で、次元を高くするにつれ、ベクトル量子化の結果を表すテーブルが大規模になる。テーブルが大きすぎると、図7の記憶部315の記憶容量を圧迫するという問題が生じる。さらに、そのように大きくなったテーブルから所望の値を検索するために、CPU311に過剰な負荷がかかって、それが例えば処理時間の遅延という形で現れれば、音声符号化兼復号装置7を携帯電話等のリアルタイム通信を必要とする用途に使えなくなってしまうという問題も生じる。
このように、ベクトル量子化の次元をむやみに高くすることは、結果的には、かえって処理効率を低下させることにつながるため、避けなければならない。
以上のように、ふたつめの観点からは、ベクトル量子化処理に特徴的な性質と、音声符号化兼復号装置7におけるハードウェアの性能と、の兼ね合いから、Zの妥当な値が決定される。現時点での通常のハードウェアの性能を考慮した場合、ひとつめの観点から導かれたZ=4という結論は、ほぼ妥当である。
以上のように、ベクトル量子化に際してまとめるべきサブフレームの最適な数であるZを決定するにあたっては、定常状態継続時間に関する経験則や、サンプリングレートや、予測分析の次数や、ベクトル量子化の一般的な性質や、CPU311の処理能力や、記憶部315の記憶容量などを、総合的に考察する。
かかる考察の結論として、本実施形態においては、上述のとおり、好ましい値としてZ=4を挙げた。この値はあくまでも例示であり、特に例えば、今後のハードウェアの性能の向上しだいでは、上述の考察に基づいて、異なる結論が導き出されることもあり得る。本発明の本質は、音声信号の特性を利用しつつ、上述のような総合的考察に基づいて、最も効率的な情報圧縮をもたらすようなZの値を決定することにある。
(予測分析の手順)
以下では、図3の予測分析部15が行う予測分析について、図9に示すフローチャートを参照しつつ説明する。予測分析としては、例えば、線型予測分析やMLSA(Mel Log Spectrum Approximation)分析が知られている。
記憶部315(図7)には、既に、デジタル入力音声信号Si、j={si、j、0、・・・、si、j、L-1}(0≦i≦M-1)が格納されているとする。CPU311(図7)は、内蔵のカウンタレジスタ(図示せず)をメインフレームカウンタiの格納に用いることとし、初期値として、i=0とする(図9のステップS9)。
CPU311は、内蔵の別のカウンタレジスタ(図示せず)をサブフレームカウンタjの格納に用いることとし、初期値として、j=0とする(ステップS111)。
CPU311は、内蔵の汎用レジスタ(図示せず)に、記憶部315から、入力音声信号Si、j={si、j、0、・・・、si、j、L-1}をロードする(ステップS113)。
CPU311は、入力音声信号Si、jに予測分析を施ることにより、予測係数Ci、j={ ci、j、0、・・・、ci、j、N-1}を計算する(ステップS115)。Nは予測分析の次数である。予測分析としては、例えば、MLSA分析を採用するのが好適である。
CPU311は、計算した予測係数Ci、jを記憶部315に格納する(ステップS117)。
CPU311は、任意の既知の手法により、予測係数Ci、jから、予測分析用逆フィルタ係数Inv[Ci、j]を計算する。この逆フィルタ係数Inv[Ci、j]により、予測分析用逆フィルタ17(図3)が定義される。換言すれば、予測分析用逆フィルタ17の仕様が定まる、あるいは、該フィルタが生成される(ステップS119)。
CPU311は、入力音声信号Si、jを、定義された前記予測分析用逆フィルタ17に通すことに相当する計算を行うことにより、残差信号Di、j={di、j、0、・・・、di、j、L-1}を求める(ステップS121)。
CPU311は、求めた残差信号Di、jを記憶部315に格納する(ステップS123)。
CPU311は、サブフレームカウンタjがZ-1に達しているか否かを判別する(ステップS125)。達していると判別された場合は(ステップS125;Yes)、ステップS129に進む。一方、達していないと判別された場合は(ステップS125;No)、同じメインフレームの中の次のサブフレームの入力音声信号についての処理を行うために、jを1増加してから(ステップS127)、ステップS113以降の処理を繰り返す。
ステップS129では、CPU311は、メインフレームカウンタiがM-1に達しているか否かを判別する。達していると判別された場合は(ステップS129;Yes)、処理を終了する。達していないと判別された場合は(ステップS129;No)、次のメインフレームの入力音声信号についての処理を行うために、iを1増加してから(ステップS131)、ステップS111以降の処理を繰り返す。
(ベクトル量子化の手順)
以下では、図3のベクトル正規化部19、スカラー量子化部21、及び、ベクトル量子化部23が行う、ベクトル正規化とスカラー量子化とベクトル量子化の手順を、図10に示すフローチャートを参照しつつ説明する。
予測係数Ci、j(0≦i≦M-1、0≦j≦Z-1)は、既に、図8に示されるように係数ベクトルVi、k(0≦i≦M-1、0≦k≦N-1)としてまとめられ、記憶部315に格納されているものとする。
CPU311は、メインフレームカウンタiを、i=0に設定する(ステップS10)。
CPU311は、次数カウンタkを、k=0に設定する(ステップS161)。
CPU311は、係数ベクトルVi、k={ci、0、k、・・・、ci、Z-1、k}を記憶部315からレジスタにロードし(ステップS163)、ci、0、k、・・・、ci、Z-1、kのうちから、絶対値が最大のものを特定し、該絶対値を係数ベクトル最大絶対値Max[c]i、kとする(ステップS165)。
CPU311は、係数ベクトル最大絶対値Max[c]i、kを任意の既知の手法によりスカラー量子化し(ステップS167)、その結果得られたスカラー量子化係数ベクトル最大絶対値q[Max[c]]i、kを記憶部315に格納する(ステップS169)。
CPU311は、係数ベクトルVi、kと係数ベクトル最大絶対値Max[c]i、kとから、正規化係数ベクトルn[c]i、k={n[c]i、0、k、・・・、n[c]i、Z-1、k}を、n[c]i、k={ ci、0、k/Max[c]i、k、・・・、ci、Z-1、k/Max[c]i、k}のように計算して求める(ステップS171)。
CPU311は、任意の既知の手法により、正規化係数ベクトルn[c]i、kをベクトル量子化し(ステップS173)、その結果得られたベクトル量子化係数ベクトルq[n[c]]i、k={q[n[c]]i、0、k、・・・、q[n[c]]i、Z-1、k}を記憶部315に格納する(ステップS175)。
CPU311は、kがN-1に達したか否かを判別する(ステップS177)。達したと判別された場合は(ステップS177;Yes)、ステップS181に進む。達していないと判別された場合は(ステップS177;No)、kを1増加してから(ステップS179)、ステップS163に戻る。
ステップS181では、CPU311は、iがM-1に達したか否かを判別する。達したと判別された場合は(ステップS181;Yes)、処理を終了する。達していないと判別された場合は(ステップS181;No)、iを1増加してから(ステップS183)、ステップS161に戻る。
先にベクトル量子化について述べたとおり、係数ベクトルVi、kの向きは、ベクトル{1、1、・・・、1}又はベクトル{-1、-1、・・・、-1}のいずれかの向きに近くなることが多い。そして、正規化係数ベクトルn[c]i、kは、係数ベクトルVi、kをその成分の最大値で除したものであるから、多くが、向きのみならず大きさも含めて、ベクトル{1、1、・・・、1}又はベクトル{-1、-1、・・・、-1}に近いベクトルとなる。
図11は、この様子を模式的に示したものである。原点を頂点とし、軸がベクトル{1、1、・・・、1}又はベクトル{-1、-1、・・・、-1}に並行となるような、頂角が小さい円錐が点線で描かれている。そして、該円錐のうち、ベクトル{1、1、・・・、1}又はベクトル{-1、-1、・・・、-1}の終点付近に相当する円柱状の領域が、実線で描かれている。
正規化係数ベクトルn[c]i、kの多くは、始点を原点とすれば、その終点が、かかる円柱状の領域に入る。先にベクトル量子化について述べたとおり、ベクトル量子化の効率が高いのは、ベクトル量子化の対象となるベクトルの分布に大きな偏りがある場合である。正規化係数ベクトルn[c]i、kの多くが、かかる円柱状の領域に含まれるということは、まさに、ベクトルの分布に大きな偏りがあるということである。このように、図10に示すフローチャートに従って生成された正規化係数ベクトルn[c]i、kは、ベクトル量子化による高効率の情報圧縮に適したベクトルである。
本実施形態に係る音声符号化兼復号装置7は、メインフレームの時間長として、人間の発話における典型的な定常的音声信号持続時間長に基づいて決定された時間長を採用している。これにより、まず係数ベクトルを、全成分が等しいベクトルの付近に集中的に分布させることが可能となる。つまり、係数ベクトルの向きの分布には偏りが生じている。さらに、係数ベクトルから、その大きさである係数ベクトル最大絶対値を分離して正規化することにより正規化ベクトルを得る。すると、かかる正規化ベクトルは、大きさがベクトル{1、1、・・・、1}の大きさと同程度になる。つまり、正規化ベクトルには、その向きのみならず大きさにも偏りが生じている。
本実施形態に係る音声符号化兼復号装置7は、分布にかかる偏りが生じているベクトルの集団に対してベクトル量子化を施すので、高い効率で情報を圧縮することができる。
(残差信号から特徴量を生成する手順)
以下では、本実施形態に係る音声符号化装置3において、図3及び図5に示す残差信号特徴量抽出部29が行う、残差信号からピッチ長とフラグと帯域別強度とを生成する手順を、図12に示すフローチャートを参照しつつ説明する。
なお、前提として、既に残差信号Di、j={di、j、0、・・・、di、j、L-1}(0≦i≦M-1、0≦j≦Z-1)が求められていて、記憶部315に格納されているものとする。
CPU311は、メインフレームカウンタiを、i=0に設定する(ステップS12)。
CPU311は、サブフレームカウンタjを、j=0に設定する(ステップS211)。
CPU311は、記憶部315からレジスタに、残差信号Di、j={di、j、0、・・・、di、j、L-1}をロードする(ステップS213)。
CPU311は、残差信号Di、jからピッチ長を抽出することができるか否かを判別する(ステップS215)。該判別には、既に図5を用いて、残差信号特徴量抽出部29の中の総合ピッチ判別部5について説明したように、例えば、規格化された自己相関関数を用いる。
ピッチ長を抽出することができると判別された場合は(ステップS215;Yes)、CPU311は、ピッチ長Pi、jを求める(ステップS217)。ピッチ長Pi、jは、既に図5を用いて、残差信号特徴量抽出部29の中のピッチ抽出部113について説明したように、例えば、総合ピッチ判別部5が規格化された自己相関関数を用いてピッチを抽出することができるか否かを判別した際の副産物として求まる。CPU311はその後、求めたピッチ長Pi、jを記憶部315に格納してから(ステップS219)、ステップS221に進む。
一方、ピッチ長を抽出することができないと判別された場合は(ステップS215;No)、すぐにステップS221に進む。
ステップS221では、CPU321は、帯域識別変数ωを、ω=1に設定する。
CPU311は、帯域別残差信号生成部としての帯域フィルタ部115(図5)として機能することにより、帯域ωの帯域別残差信号Di、j、ω={di、j、ω、0、・・・、di、j、ω、L-1}を生成する(図12のステップS223)。
CPU311は、帯域別雑音判別部123(図5)及びフラグ生成部129として機能することにより、帯域別残差信号Di、j、ωが雑音であるか否かを判別し、その結果を反映した帯域ωについてのフラグFlagi、j、ωを生成し(図12のステップS225)、記憶部315に格納する(ステップS227)。フラグが変数としてとり得る値は、後に図を改めて説明する。
CPU311は、帯域別強度決定部131(図5)として機能することにより、帯域別残差信号Di、j、ωの帯域別絶対強度Hi、j、ωを求める(図12のステップS229)。この求め方については、後に図を改めて説明する。
CPU311は、ωがωMaxに達したか否かを判別する(ステップS231)。
ωがωMaxに達したと判別された場合には(ステップS231;Yes)、ステップS235に進む。ωがωMaxに達していないと判別された場合には(ステップS231;No)、ωを1増加してから(ステップS233)、ステップS223に戻る。
ステップS235に達した時点では、サブフレーム内でのωについてのループ処理(ステップS231、ステップS233等)が終了しているので、CPU311は、相対値である帯域別強度hi、j、ωを求めることができる。CPU311は帯域別強度hi、j、ωを求め(ステップS235)、記憶部315に格納する(ステップS237)。帯域別強度hi、j、ωの具体的な求め方については、後に図を改めて説明する。
CPU311は、jがZ-1に達したか否かを判別する(ステップS239)。達したと判別された場合には(ステップS239;Yes)、ステップS243に進む。達していないと判別された場合には(ステップS239;No)、jを1増加してから(ステップS241)、ステップS213に戻る。
ステップS243では、CPU311は、iがM-1に達したか否かを判別する。達したと判別された場合は(ステップS243;Yes)、処理を終了する。達していないと判別された場合は(ステップS243;No)iを1増加してから(ステップS245)、ステップS211に戻る。
図13は、図12のステップS225で行われる、帯域ωについてのフラグFlagi、j,ωを生成する処理を示すフローチャートである。
CPU311は、図5の帯域別雑音判別部123として機能することにより、帯域ωの帯域別残差信号Di、j、ω={di、j、ω、0、・・・、di、j、ω、L-1}が雑音であるか否かを判別する(ステップS13)。判別のための手法としては、例えば、既に図5の第ω帯域雑音判別器の動作として説明したように、規格化された自己相関関数を計算することによる手法を用いるのが好適である。
雑音であると判別された場合は(ステップS13;Yes)、CPU311は、変数Flagi、j、ωを"UV"に設定してから(ステップS261)、処理を終了する。雑音ではないと判別された場合は(ステップS13;No)、CPU311は、、変数Flagi、j、ωを"V"に設定してから(ステップS263)、処理を終了する。
図14は、図12のステップS229で行われる、帯域別残差信号Di、j、ωの帯域別絶対強度Hi、j、ωを求める処理を示すフローチャートである。
CPU311は、記憶部315の中を検索し、記憶部315にピッチ長Pi、jが格納されているか否かを判別する(ステップS14)。記憶部315にピッチ長Pi、jが格納されているとすれば、それは図12のステップS219によるものであり、ステップS219を経ているということは、ステップS215で残差信号Di、jには全体としてピッチ的な性質が存在すると判別されたことを意味する。記憶部315にピッチ長Pi、jが格納されていないとすれば、ステップS215で残差信号Di、jには全体としてピッチ的な性質が存在しないと判別されたことを意味する。
記憶部315にピッチ長Pi、jが格納されていると判別された場合は(ステップS14;Yes)、既に図5の帯域別強度決定部131について説明したように、例えば、所定の時間にわたり帯域別残差信号の2乗を時間積分した後、その平方根を、帯域別絶対強度Hi、j、ωとする(ステップS271)。さらに、上述のように、本ステップに進んだということは、残差信号Di、jが全体としてピッチ的な性質を帯びていることであるから、これも既に図5の帯域別強度決定部131についての説明で触れたように、前記所定の時間は、Pi、jの整数倍でありかつできるだけ長い時間であることが好ましい。この後、処理は終了する。
記憶部315にピッチ長Pi、jが格納されていないと判別された場合は(ステップS14;No)、これも既に図5の帯域別強度決定部131の説明で触れたように、例えば、帯域別残差信号Di、j、ωの全継続時間にわたる積分に基づいて、帯域別絶対強度Hi、j、ωを求める(ステップS273)。この後、処理は終了する。
図14が、強度の絶対的な大きさを示す帯域別絶対強度Hi、j、ωを求める処理を示すフローチャートであったのに対して、図15は、図12のステップS235で行われる、相対的な強度である帯域別強度hi、j、ωを生成する処理を示すフローチャートである。
帯域別強度hi、j、ωは、iとjとで特定されるサブフレームにおいて、最大の帯域別絶対強度Hi、j、ωを1としたときの、強度の相対値である。
CPU311は、帯域別残差信号Di、j、ωの帯域別絶対強度Hi、j、1、・・・、Hi、j、ωMaxのうちから値が最大のものを特定し、該値を帯域別絶対強度最大値Hi、j、Maxとする(ステップS15)。
CPU311は、帯域識別変数ωを、ω=1に設定する(ステップS281)。
CPU311は、帯域別強度hi、j、ωを、hi、j、ω=Hi、j、ω/Hi、j、Maxにより求める(ステップS283)。
CPU311は、ωがωMaxに達したか否かを判別する(ステップS285)。達したと判別された場合は(ステップS285;Yes)、処理を終了する。達していないと判別された場合は(ステップS285;No)、ωを1増加してから(ステップS287)、ステップS283を繰り返す。
(特徴量から試行用励起信号を生成する手順)
以下では、本実施形態に係る音声符号化装置3において、図3及び図6に示す残差信号復元試行部31が行う、ピッチ長とフラグと帯域別強度とから試行用励起信号を生成する手順を、図16に示すフローチャートを参照しつつ説明する。
なお、前提として、既にフラグFlagi、j、ωと帯域別強度hi、j、ωとが求められていて、記憶部315に格納されているものとする(0≦i≦M-1、0≦j≦Z-1、1≦ω≦ωMax)。また、Di、jからピッチ長Pi、jを抽出することができきた場合には(図12のステップS215;Yes)、ピッチ長Pi、jも求められていて記憶部315に格納されているものとする。
CPU311は、メインフレームカウンタiを、i=0に設定する(ステップS16)。
CPU311は、サブフレームカウンタjを、j=0に設定する(ステップS311)。
CPU311は、記憶部315の中を検索して、ピッチ長Pi、jが記憶部315に格納されているか否かを判別する(ステップS313)。
ピッチ長Pi、jが記憶部315に格納されていると判別された場合は(ステップS313;Yes)、CPU311は、ピッチ長Pi、jを記憶部315からレジスタにロードする(ステップS315)。続いて、CPU311は、図6のピッチパルス列生成部6及び帯域フィルタ部115として機能することにより、該ピッチ長Pi、jに基づいて、帯域別ピッチパルス列Ppti、j、ω={ppti、j、ω、0、・・・、ppti、j、ω、L-1}を生成してから(図16のステップS317)、ステップS319に進む。帯域別ピッチパルス列Ppti、j、ωの具体的な求め方の一例については、後に図を改めて説明する。
ピッチ長Pi、jが記憶部315に格納されていないと判別された場合は(ステップS313;No)、すぐにステップS319に進む。
ステップS319では、CPU311は、図6の雑音パルス列生成部211及び帯域フィルタ部115として機能することにより、帯域別雑音パルス列Rpti、j、ω={rpti、j、ω、0、・・・、rpti、j、ω、L-1}を生成する。帯域別雑音パルス列Rpti、j、ωの具体的な求め方の一例については、後に図を改めて説明する。
CPU311は、試行用励起信号Exi、j={exi、j、0、・・・、exi、j、L-1}を、Exi、j={0、・・・、0}に初期化する(ステップS321)。
CPU311は、帯域識別変数ωを、ω=1に設定する(ステップS323)。
CPU311は、フラグFlag i、j、ωと帯域別強度hi、j、ωとを記憶部315からレジスタにロードする(ステップS325)。
CPU311は、図6の帯域別試行用励起信号生成部221として機能することにより、帯域別試行用励起信号Exi、j、ω={exi、j、ω、0、・・・、exi、j、ω、L-1}を生成する(図16のステップS327)。帯域別試行用励起信号Exi、j、ωの具体的な求め方の一例については、後に図を改めて説明する。
CPU311は、試行用励起信号Exi、jを、Exi、j+Exi、j、ωに更新する(ステップS329)。
CPU311は、ωがωMaxに達したか否かを判別する(ステップS331)。達していると判別された場合は(ステップS331;Yes)、ステップS335に進む。達していないと判別された場合は(ステップS331;No)、ωを1増加してから(ステップS333)、ステップS325に戻る。
ステップS335では、CPU311は、この時点で全帯域の帯域別試行用励起信号の和となっている、試行用励起信号Exi、jを、記憶部315に格納する。
CPU311は、jがZ-1に達したか否かを判別する(ステップS337)。達していると判別された場合は(ステップS337;Yes)、ステップS341に進む。達していないと判別された場合は(ステップS337;No)、jを1増加してから(ステップS339)、ステップS313に戻る。
ステップS341では、CPU311は、iがM-1に達したか否かを判別する。達していると判別された場合は(ステップS341;Yes)、処理を終了する。達していないと判別された場合は(ステップS341;No)、iを1増加してから(ステップS343)、ステップS311に戻る。
図17(a)は、図16のステップS317で行われる、帯域別ピッチパルス列Ppti、j、ωを生成する処理を示すフローチャートである。
CPU311は、図6のピッチパルス列生成部6として機能することにより、図17(b)に模式的に示すような、大きさsqrt(Pi、j)のパルスがPi、jに相当する時間間隔で並んだピッチパルス列Ppti、j={ppti、j、0、・・・、ppti、j、L-1}を生成する(ステップS17)。
CPU311は、帯域識別変数ωを、ω=1に設定する(ステップS351)。
CPU311は、図6の帯域別ピッチパルス列生成部としての帯域フィルタ部115として機能することにより、ピッチパルス列Ppti、jの帯域ωの成分である帯域別ピッチパルス列Ppti、j、ω={ppti、j、ω、0、・・・、ppti、j、ω、L-1}を生成する(図17のステップS353)。
CPU311は、ωがωMaxに達したか否かを判別する(ステップS355)。達していると判別された場合は(ステップS355;Yes)、処理を終了する。達していないと判別された場合は、(ステップS355;No)、ωを1増加してから(ステップS357)、ステップS353を繰り返す。
図18(a)は、図16のステップS319で行われる、帯域別雑音パルス列Rpti、j、ωを生成する処理を示すフローチャートである。
CPU311は、図6の雑音パルス列生成部221として機能することにより、図18(b)に模式的に示すような、大きさが-1以上+1以下の乱数であるパルスが並んだ雑音パルス列Rpti、j={rpti、j、0、・・・、rpti、j、L-1}を生成する(ステップS18)。
CPU311は、帯域識別変数ωを、ω=1に設定する(ステップS371)。
CPU311は、図6の帯域別雑音パルス列生成部としての帯域フィルタ部115として機能することにより、雑音パルス列Ppti、jの帯域ωの成分である帯域別雑音パルス列Rpti、j、ω={rpti、j、ω、0、・・・、rpti、j、ω、L-1}を生成する(図18のステップS373)。
CPU311は、ωがωMaxに達したか否かを判別する(ステップS375)。達していると判別された場合は(ステップS375;Yes)、処理を終了する。達していないと判別された場合は、(ステップS375;No)、ωを1増加してから(ステップS377)、ステップS373を繰り返す。
図19は、図16のステップS327で行われる、帯域別試行用励起信号Exi、j、ω={exi、j、ω、0、・・・、exi、j、ω、L-1}を生成する処理を示すフローチャートである。
CPU311は、試行強度I(0)i、jを求める(ステップS19)。この値は、後に修正を施されるものであるので、本ステップで厳密な値を求める必要はない。もっとも、フィードバック系の一般的な性質どおり、試行値といえどもできるだけ正確な値、すなわち後の修正ができるだけ少なくて済むような値、を採用するのが望ましい。かかる観点に鑑み、本実施形態の場合は、図3及び図6で点線矢印にて示したように、試行強度I(0)を、予測係数の0次の係数ci、j、0に基づいて、
I(0)i、j=exp(ci、j、0)
により求め、記憶部315に格納する(図19のステップS391)。
予測係数は図3に示した予測分析部15によって既に求まっているので、これに基づいて帯域別試行用励起信号を生成することは、音声符号化装置3の構造を簡易なものとするのに資する。
CPU311は、記憶部315の中を調べて、ピッチ長Pi、jが記憶部315に格納されているか否かを判別する(図19のステップS393)。
なお、基本的には、以下に述べるように、雑音的な性質を帯びていることがフラグにより示されている帯域については雑音パルス列に基づき該帯域の帯域別試行用励起信号を生成し、一方、ピッチ的な性質を帯びていることがフラグにより示されている帯域についてはピッチパルス列に基づき該帯域の帯域別試行用励起信号を生成する。しかし、そもそも残差信号全体がピッチ的性質を帯びていない場合は、図16のステップS313でNoと判別されてステップS317を経ないためピッチパルス列が生成されない。したがって、図19のステップS393のように、まず、ピッチ長の存否が判別され、もし存在しないのであればフラグに関係なく全帯域について雑音パルス列に基づき帯域別試行用励起信号が生成される手順にする必要がある。
よって、ピッチ長Pi、jが記憶部315に格納されていないと判別された場合は(ステップS393;No)、CPU311は、フラグの値を参照することなく、すぐにステップS397に進む。
ピッチ長Pi、jが記憶部315に格納されていると判別された場合は(ステップS393;Yes)、CPU311は、続いて、フラグFlagi、j、ω="UV"か否かを判別する(ステップS395)。フラグFlagi、j、ω="UV"であると判別された場合は(ステップS395;Yes)、ステップS397に進む。フラグFlagi、j、ω="UV"ではないと判別された場合は(ステップS395;No)、ステップS399に進む。
ステップS397では、帯域別試行用励起信号Exi、j、ωを、
Exi、j、ω=I(0)i、j×hi、j、ω×Rpti、j、ω
により求める。
ステップS399では、帯域別試行用励起信号Exi、j、ωを、
Exi、j、ω=I(0)i、j×hi、j、ω×Ppti、j、ω
により求める。
(係数ベクトルと逆量子化係数ベクトルの関係)
以下では、上述のフィードバックループ形成のために音声符号化装置3の中でシミュレートされる、音声復号装置4の動作の一部を説明するが、理解を容易にするために、まず、係数ベクトルと逆量子化係数ベクトルの関係を整理して図20に示す。
量子化された係数ベクトルはテーブルとして表記されるものである一方、逆量子化ベクトルは該表記を具体的なベクトルとして捉えたものであるが、既にベクトル量子化について説明したように、ここでは両者を特に区別することなく用いる。例えば、符号qは、ある量が量子化されたことを表す符号として用いているが、同時に、逆量子化されその量と直接比較し得る量のことも示すものとする。つまり、量子化された結果と、それが逆量子化された量とを、表記の上では区別しないこととする。本実施形態においては、量子化の結果の表現態様が重要なのではなく、量子化によって近似による情報量削減が達成されることが重要なためである。
図20に示す表は、既に図8(a)に示した、係数ベクトルの時系列毎かつ次元毎の一覧表に、各係数ベクトルに対応する近似結果を付記した表である。CPU311が図3のベクトル正規化部19、スカラー量子化部21、及び、ベクトル量子化部23として機能した結果、図10のフローチャートのステップS169及びステップS175において、記憶部315には、スカラー量子化係数ベクトル最大絶対値q[Max[c]]i,kとベクトル量子化正規化係数ベクトルq[n[c]]i、kとが格納されている。図20に示すように、係数ベクトル
Vi、k={ci、0、k、・・・、ci、Z-1、k}
は、量子化の結果、疑似係数ベクトル
q[V]i、k
={ q[Max[c]]i、k×q[n[c]]i、0、k、・・・、q[Max[c]]i、k×q[n[c]]i、Z-1、k}
に近似される。
(試行用再生音声信号を生成する手順)
以下では、本実施形態に係る音声符号化装置3において、図3に示す合成フィルタ算出部25及び疑似合成フィルタ部27が行う、試行用励起信号から試行用再生音声信号を生成する手順を、図21に示すフローチャートを参照しつつ説明する。
なお、前提として、試行用励起信号Exi、jと、図20の表に示したスカラー量子化係数ベクトル最大絶対値q[Max[c]]i、k及びベクトル量子化正規化係数ベクトルq[n[c]]i、kと、は、既に求められていて、記憶部315に格納されているものとする(0≦i≦M-1、0≦j≦Z-1、0≦k≦N-1)。
CPU311は、メインフレームカウンタiを、i=0に設定する(ステップS21)。
CPU311は、スカラー量子化係数ベクトル最大絶対値q[Max[c]]i、0、・・・、q[Max[c]]i、N-1と、ベクトル量子化正規化係数ベクトルq[n[c]]i、0、・・・、q[n[c]]i、N-1と、を、記憶部315からレジスタにロードする(ステップS411)。続いてCPU311は、疑似係数ベクトルq[V]i、kを、
q[V]i、k=q[Max[c]]i、k×q[n[c]]i、k(0≦k≦N-1)
という乗算により求める(ステップS413)。
CPU311は、サブフレームカウンタjを、j=0に設定する(ステップS415)。
CPU311は、試行用励起信号Exi、jを記憶部315からレジスタにロードする(ステップS417)。
CPU311は、疑似係数ベクトルq[V]i、0、・・・、q[V]i、N-1のそれぞれの第j成分であるq[Max[c]]i、0×q[n[c]]i、j、0、・・・、q[Max[c]]i、N-1×q[n[c]]i、j、N-1により、iで識別されるメインフレームの中のjで識別されるサブフレームにおける疑似合成フィルタを定義する(ステップS419)。これにより、図3の疑似合成フィルタ部27の仕様が決定される。
CPU311は、ステップS419により定義された疑似合成フィルタに試行用励起信号Exi、jを通すことに相当する演算を行うことにより、試行用再生音声信号W(0)i、j={w(0)i、j、0、・・・、w(0)i、j 、L-1}を生成し(ステップS421)、記憶部315に格納する(ステップS423)。
CPU311は、jがZ-1に達したか否かを判別する(ステップS425)。達していると判別された場合は(ステップS425;Yes)、ステップS429に進む。達していないと判別された場合は(ステップS425;No)、jを1増加してから(ステップS427)、ステップS417に戻る。
ステップS429では、CPU311は、iがM-1に達したか否かを判別する。達していると判別された場合は(ステップS429;Yes)、処理を終了する。達していないと判別された場合は(ステップS429;No)、iを1増加してから(ステップS431)、ステップS411に戻る。
(修正強度を生成する手順)
以下では、本実施形態に係る音声符号化装置3において、図3に示す修正因子決定部33が行う、修正強度を生成する手順を、図22に示すフローチャートを参照しつつ説明する。
なお、前提として、入力音声信号Si、jは記憶部315に格納されたまま残されているものとし、試行強度I(0)i、jと試行用再生音声信号W(0)i、jとは、既に求められて記憶部315に格納されているもものとする。また、図5のピッチ抽出部113により図12のステップS217においてピッチ長Pi、jが求められている場合には、ステップS219に示すとおり、ピッチ長Pi、jは記憶部315に格納されているものとする(0≦i≦M-1、0≦j≦Z-1)。
CPU311は、メインフレームカウンタiを、i=0に設定する(ステップS22)。
CPU311は、サブフレームカウンタjを、j=0に設定する(ステップS461)。
CPU311は記憶部315の中を検索し、ピッチ長Pi、jが記憶部315に格納されているか否かを判別する(ステップS463)。
格納されていると判別された場合には(ステップS463:Yes)、CPU311はピッチ長Pi、jを記憶部315からレジスタにロードし(ステップS465)、
m×Pi、j≦L-1<(m+1)×Pi、j
なる整数mを求め、Y= m×Pi、j+1に設定し(ステップS467)、ステップS471に進む。
一方、格納されていないと判別された場合には(ステップS463;No)、CPU311は、Y=Lに設定し(ステップS469)、ステップS471に進む。
ステップS471では、CPU311は、入力音声信号Si、j={si、j、0、・・・、si、j、L-1}、試行用再生音声信号W(0)i、j={w(0)i、j、0、・・・、w(0)i、j、L-1}、及び、試行強度I(0)i、jを記憶部315からレジスタにロードする。続いて、ステップS473では、CPU311は、入力音声信号強度sqrt(ΣSi、j 2)と試行用再生音声信号強度sqrt(ΣW(0)i、j 2)とを、
sqrt(ΣSi、j 2)=sqrt(si、j、0 2+・・・+si、j、Y-1 2)
sqrt(ΣW(0)i、j 2)=sqrt(w(0)i、j、0 2+・・・+w(0)i、j、Y-1 2)
のように計算する。かかる計算は、図14のステップS271及びステップS273で行われた、帯域別絶対強度Hi、j、ωの計算方法と同様のものである。また、図14のステップS271及びステップS273の使い分けと同様に、図22においても、ピッチ長Pi、jの存否により、積分時間長に相当するYの値の決定方法を変化させている。ピッチ長Pi、jが存在しない場合は、単にできるだけ長時間にわたる積分を行うことにより精度を高める一方、ピッチ長Pi、jが存在する場合には、積分する時間長をなるべく長くするだけではなく、該ピッチ長の整数倍とすることにより、位相のずれに起因する誤差が生じないようにする。
続いて、CPU311は、修正強度I(1)i、jを、
I(1)i、j = I(0)i、j×{sqrt(ΣSi、j 2)/sqrt(ΣW(0)i、j 2)}
のように求め(ステップS475)、記憶部315に格納する(ステップS477)。
ここで、この式の{}内の除算は、先に残差信号復元方針決定のためのフィードバックループについて説明した際に例示した、IS(0)/IW(0)=1.25という、割増率の算出のための除算に相当する。
CPU311は、jがZ-1に達したか否かを判別する(ステップS479)。達していると判別された場合は(ステップS479;Yes)、ステップS483に進む。達していないと判別された場合は(ステップS479;No)、jを1増加してから(ステップS481)、ステップS463に戻る。
ステップS483では、CPU311は、iがM-1に達したか否かを判別する。達していると判別された場合は(ステップS483;Yes)、処理を終了する。達していないと判別された場合は(ステップS483;No)、iを1増加してから(ステップS485)、ステップS461に戻る。
(特徴量から復号用励起信号を生成する手順)
以下では、図4に示す音声復号装置4の動作について説明する。まず、残差信号復元部65が、復号用励起信号を生成する手順について説明する。
前提として、復号部63により、特徴量であるフラグFlagi、j、ωと帯域別強度hi、j、ωと存在する場合にはピッチ長Pi、jとが復号されて、記憶部315に格納されているものとする。また、修正強度I(1)i、jも同じく復号され記憶部315に格納されているものとする。
既に述べたとおり、図4に示す残差信号復元部65は、図3に示す残差信号特徴量抽出部29に極めて似た動作を行う。いずれも、特徴量から、合成フィルタに入力するための励起用の信号を生成する点で、共通しているからである。ただし、前者は実際に音声を復元するための信号を生成するものであるのに対して、後者は修正因子である修正強度を求めるためのものである。後者の動作により求められた修正強度は、前者の動作に際しては、与えられる量となる。
以上の点に留意すると、特徴量から復号用励起信号を生成する手順は、図16に示した、特徴量から試行用励起信号を生成する処理とほぼ同じとなる。つまり概ね、図16にある試行用励起信号という用語を、復号用励起信号と読み替えればよい。そこで、煩雑になるのを避けるため、ここでは図16とは別のフローチャートを示すことはしない。
ただし、図16のステップS327の詳細が示された図19におけるステップS19及びステップS391の代わりに、CPU311が記憶部315からレジスタに修正強度I(1)i、jをロードするステップが挿入され、ステップS397及びステップS399ではI(0)i、jの代わりにI(1)i、jが用いられることになる。
さらに、好ましくは、サブフレームの境界でサブフレーム別残差信号強度が急激に変化することにより再生音声信号が不自然になることのないよう、帯域別にスムージング処理を行う。そのためには、復号用励起信号の生成における図16のステップS327に相当するステップである、帯域別復号用励起信号Exi、j、ωを生成する手順を、図23に示すようなものとする。
図23のフローチャートに示すように、CPU311は、修正強度I(1)i、jを記憶部315からレジスタにロードする。また、CPU311は、iとjとで特定されるサブフレームの直前のサブフレームにおける修正強度、フラグ、及び、帯域別強度である修正強度I(1)pre、フラグFlagpre、ω、及び、帯域別強度hpre、ωを、記憶部315からレジスタにロードする(ステップS23)。
CPU311は、記憶部315の中を検索して、ピッチ長Pi、jが記憶部315に格納されているか否かを判別する(ステップS511)。格納されていると判別された場合には(ステップS511;Yes)、判別ステップS513に進む。格納されていないと判別された場合には(ステップS511;No)、別の判別ステップS515に進む。
ステップS513では、CPU311は、フラグFlagi、j、ωがFlagi、j、ω="UV"であるか否かを判別する。"UV"であると判別された場合には(ステップS513;Yes)、判別ステップS515に進む。"UV"ではないと判別された場合には(ステップS513;No)、別の判別ステップS517に進む。
ステップS515では、CPU311は、Flagi、j、ω=Flagpre、ωであるか否かを判別する。Flagi、j、ω=Flagpre、ωであると判別された場合には(ステップS515;Yes)、ステップS551に進む。Flagi、j、ω=Flagpre、ωではないと判別された場合には(ステップS515;No)、ステップS553に進む。
ステップS517でも同様に、CPU311は、Flagi、j、ω=Flagpre、ωであるか否かを判別し、そうであると判別された場合には(ステップS517;Yes)ステップS555に、そうでないと判別された場合には(ステップS517;No)ステップS559に、それぞれ進む。
以上のステップを経てステップS551、ステップS553、ステップS555、及び、ステップS559に達したということは、それぞれ、iとjとで特定されるサブフレームにおける帯域別復号用励起信号が、直前のサブフレームにおけるそれとの間で、雑音から雑音、非雑音から雑音、非雑音から非雑音、及び、雑音から非雑音へと、つながるべきこと又は切り替わるべきことを意味する。これらの各ステップ終了後に、処理は終了する。
このうち、非雑音から雑音に切り替わる場合(ステップS553)と、雑音から非雑音に切り替わる場合(ステップS559)とには、上述のスムージング処理を行わず、単に図19のステップS397とステップS399とに相当するExi、j、ω=I(1)i、j×hi、j、ω×Rpti、j、ω(ステップS553)とExi、j、ω=I(1)i、j×hi、j、ω×Ppti、j、ω(ステップS559)という計算により、帯域別復号用励起信号Exi、j、ωを生成する。
雑音と非雑音とは、性質の違いのため、信号強度を直接比較しても有益な情報は得られない。そこで、ステップS553及びステップS559の場合のような、同一の帯域において、雑音的性質を有するサブフレームと雑音的性質を有さないサブフレームとが隣接している場合には、むしろ上述のスムージング処理は行わないほうが再生音声信号が自然なものとなる。
ステップS551及びステップS555では、サブフレームの境界で帯域別復号用励起信号の強度がなだらかに変化するように帯域別復号用励起信号Exi、j、ωを生成する。
その具体的な手順、すなわちスムージング処理の一例を、図24のフローチャートに示す。CPU311は、時系列カウンタtをt=0に設定する(ステップS24)。
ステップS551の場合、すなわち、雑音サブフレーム同士が隣接する場合には、帯域別復号用励起信号Exi、j、ωの第(t+1)番目の要素であるexi、j、ω、tを、
exi、j、ω、t
={(L-t)×I(1)pre×hpre、ω+t×I(1)i、j×hi、j、ω}×rpti、j、ω、t/L
により求める。
ステップS555の場合、すなわち、非雑音サブフレーム同士が隣接する場合には、帯域別復号用励起信号Exi、j、ωの第(t+1)番目の要素であるexi、j、ω、tを、
exi、j、ω、t
={(L-t)×I(1)pre×hpre、ω+t×I(1)i、j×hi、j、ω}×ppti、j、ω、t/L
により求める(ステップS561)。
CPU311は、tがL-1に達したか否かを判別する(ステップS563)。達していると判別された場合は(ステップS563;Yes)、処理を終了する。達していないと判別された場合は(ステップS563;No)、tを1増加してから(ステップS565)、ステップS561を繰り返す。
以上のように求められた帯域別復号用励起信号は全ての帯域にわたり合計され、復号用励起信号として図4の残差信号復元部65から出力される。
(音声再生信号を生成する手順)
図4の残差信号復元部65により上述のように生成され復号用励起信号として出力された信号は、疑似合成フィルタ部27を通されることにより、再生音声信号に変換される。具体的な手順は、図21に準ずる。試行用再生音声信号を単なる再生音声信号に、試行用励起信号を復号用励起信号に、それぞれ読み替える等する。
例えば、図4の疑似合成フィルタ部27は、合成フィルタ算出部25により、図20の表に示された疑似係数ベクトルq[V]i、kの成分の値により定義される(図21のステップS419に相当。)。
(実施形態2)
実施形態1に係る音声符号化装置3では、図3及び図6の機能構成図における残差信号復元試行部31の説明や、図19のフローチャートのステップS19の説明にて触れたように、試行強度I(0)i、jとして、予測係数の0次の係数に基づいたexp(ci、j、0)を用いていた。
これに対して本実施形態に係る音声符号化装置は、その機能構成のほとんどは実施形態1に係る音声符号化装置3と同じであるものの、その内部に新たに残差信号強度時間平均値sqrt(ΣDi、j 2/Y)=sqrt{(di、j、0 2+・・・+di、j、Y-1 2)/Y}を求める残差信号強度時間平均値算出部が設けられる(図示せず。)。そして、この残差信号強度時間平均値算出部が、図3の予測分析部15により求められた残差信号に基づいて残差信号強度時間平均値sqrt(ΣDi、j 2/Y)を算出して、図6の残差信号復元試行部31の中の帯域別試行用励起信号生成部221に引き渡す。帯域別試行用励起信号生成部221は、試行強度I(0)i、jを、予測係数の0次の係数に基づくかわりに、I(0)i、j=sqrt(ΣDi、j 2/Y)のように決定する。
なお、ここでYは、先に図22に示すフローチャートのステップS467とステップS469に示した求め方と同様に求められる。つまり、積分を行う際には、単純に、できるだけ長い時間にわたって計算するようにしたほうが精度が向上するという観点と、iとjとで特定されるサブフレームにおける残差信号が、全体としてピッチ的な性質を有するのであれば、位相のずれに起因する誤差が生じないようにするために、ピッチ長の整数に相当する時間にわたって計算するようにしたほうが精度が向上するという観点とに基づく。
音声復号装置が励起信号の強度として用いるべき値は、原理的には、予測分析により生成された残差信号の強度の値に等しいと考えられる。よって、帯域別試行用励起信号を生成するに際しては、上述のように、予測分析により生成された残差信号の強度に基づく方が、予測係数の一部に基づくよりも、正確であることが期待される。
このように、本実施形態に係る音声符号化装置は、実施形態1に係る音声符号化装置3に比べて、残差信号強度時間平均値を算出する機能を別途必要とするが、より適切な試行強度を生成する。つまり、はじめからより正確な試行強度を採用することにより、試行後の修正がより軽微で済むという点で、音声復号装置により再生される音声がより高品質なものとなることが期待される。
(実施形態3)
本実施形態に係る音声符号化装置は、実施形態1に係る音声符号化装置3から、残差信号復元試行部31と、合成フィルタ算出部25と、疑似合成フィルタ部27と、修正因子決定部33と、を省略した装置であり、本実施形態に係る音声復号装置は、かかる省略に対応した装置である。
本実施形態に係る音声符号化装置及び音声復号装置は、実施形態1の場合に比べて、上述のとおり、残差信号復元試行部31等が省略されたために簡易な装置となる。また、かかる省略により上述のフィードバックループによる再生音声の品質の向上は見込めなくなるが、量子化及び逆量子化部2を備えることによる予測信号の伝達の効率化は、実施形態1の場合と同様に、達成することができる。
(実施形態4)
本実施形態に係る音声符号化装置は、実施形態1に係る音声符号化装置3から、ベクトル正規化部19と、スカラー量子化部21と、ベクトル量子化部23と、を省略した装置であり、本実施形態に係る音声復号装置は、かかる省略に対応した装置である。
本実施形態に係る音声符号化装置及び音声復号装置は、実施形態1の場合に比べて、上述のとおり、ベクトル正規化部19等が省略されたために簡易な装置となる。また、かかる省略により予測係数の量子化による予測信号の伝達の効率化は見込めなくなるが、残差信号復元試行部31と、修正因子決定部33と、を備えることによる再生音声の品質向上は、実施形態1の場合と同様に、達成することができる。
(実施形態5)
実施形態1及び実施形態2に係る音声符号化装置は、図22のフローチャートに示したように、初めに仮定した試行強度I(0)i、jに対して、1回だけ上述のフィードバックを行って、修正強度I(1)i、jを求めた。それに対し本実施形態にかかる音声符号化装置は、修正強度I(1)i、jを求めた後、図19のフローチャートにおいてI(0)i、jをI(1)i、jに置き換えた手順に相当する手順等により、該修正強度I(1)i、jに基づき再び新たな修正強度I(2)i、jを求め、音声復号装置に伝達する。あるいはさらに、修正強度I(2)i、jに基づき新たな修正強度I(3)i、jを求める、といった手続を繰り返して修正強度についての数列I(0)i、j、I(1)i、j、I(2)i、j、I(3)i、j、I(4)i、j 、I(5)i、j、・・・を求めて、所定の収束条件を満たしたところで前記繰り返しをやめ、そのときに得られた最終的な修正強度を音声復号装置に伝達してもよい。
かかる繰り返しを要するために、本実施形態にかかる音声符号化装置は、実施形態1や実施形態2に係る音声符号化装置に比べて複雑な装置になるが、修正強度としてより適切な値を音声復号装置に伝達することができるため、音声復号装置にて再生される音声の品質が向上することが期待できる。
なお、この発明は、上記実施形態に限定されず、種々の変形及び応用が可能である。上述のハードウェア構成やブロック構成、フローチャートはあくまでも説明のための例示であって、本発明の範囲を限定するための例示ではない。
例えば、図7に示される音声符号化兼復号装置7の例として携帯電話機を挙げたが、PHS(Personal Handyphone System)、PDA(Personal Digital Assistants)、ノート型及びデスクトップ型パーソナルコンピュータ等による音声処理においても、同様に本発明を適用することができる。例えば本発明をパーソナルコンピュータに適用する場合には、パーソナルコンピュータに音声入出力装置や通信装置等を付加すれば、ハードウェアとしては携帯電話機の機能を有するようにすることができる。そして、上述の処理をコンピュータに実行させるためのコンピュータプログラムが記録媒体や通信により配布されれば、これをコンピュータにインストールして実行させることにより、該コンピュータをこの発明に係る音声符号化装置又は音声復号装置として機能させることも可能である。
すなわち、上記実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
1・・・合成フィルタ部、2・・・量子化及び逆量子化部、3・・・実施形態1に係る音声符号化装置、4・・・実施形態1に係る音声復号装置、5・・・総合ピッチ判別部、6・・・ピッチパルス列生成部、7・・・実施形態1に係る音声符号化兼復号装置、11・・・マイクロフォン、13・・・A/D変換部、15・・・予測分析部、17・・・予測分析用逆フィルタ算出器、19・・・ベクトル正規化部、21・・・スカラー量子化部、23・・・ベクトル量子化部、25・・・合成フィルタ算出部、27・・・疑似合成フィルタ部、29・・・残差信号特徴量抽出部、31・・・残差信号復元試行部、33・・・修正因子決定部、35・・・符号化部、37・・・送信部、51・・・特徴量抽出及び復元部、61・・・受信部、63・・・復号部、65・・・残差信号復元部、67・・・D/A変換部、69・・・スピーカ、111・・・ピッチ抽出用スイッチ、113・・・ピッチ抽出部、115・・・帯域フィルタ部、117・・・第1帯域フィルタ、119・・・第2帯域フィルタ、121・・・第3帯域フィルタ、123・・・帯域別雑音判別部、125・・・第1帯域雑音判別器、127・・・第2帯域雑音判別器、129・・・フラグ生成部、131・・・帯域別強度決定部、133・・・第1帯域強度算出器、135・・・第2帯域強度算出器、211・・・雑音パルス列生成部、221・・・帯域別試行用励起信号生成部、223・・・第1帯域別試行用励起信号生成器、225・・・第2帯域別試行用励起信号生成器、227・・・試行用励起信号生成部、311・・・CPU、313・・・ROM、315・・・記憶部、317・・・無線通信部、319・・・音声処理部、321・・・操作キー入力処理部、323・・・システムバス、325・・・アンテナ、327・・・操作キー、329・・・RAM、331・・・ハードディスク