以下では、本発明の実施の形態について説明する。実施形態を順次記述するにあたっては、原則として、同一の部材については同一の符号を付すこととし、また、その説明は省略することがある。
(実施形態1)
図1は、本発明の実施形態1に係る音声符号化装置1の機能構成図である。
音声符号化装置1は、図示するように、マイクロフォン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は固定値でも可変値でもかまわない。該時間長は、後述の音声復号装置2が備える後述の記憶部315の記憶容量が許すならば、例えば、音声符号化装置1のユーザが一息で話す時間に合わせてもよい。
しかし、該時間長に基づき一括的な信号処理がなされることから、該時間長は、音声符号化装置1から後述の音声復号装置2への通信に際しての最小時間単位に相当する。すなわち、該時間長は、理想的なリアルタイム通話からの遅延時間の下限を決定する。音声符号化装置1のユーザと後述の音声復号装置2のユーザとにとっては、できるだけリアルタイム通話に近い通話が可能となるような通信が可能となる方が、使い勝手の観点からは望ましいと考えられるので、その点では、後述の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が生成した試行用励起信号が入力されることにより、試行用再生音声信号を生成する。
修正因子決定部33には、修正方針を決定するための基礎データとして、疑似合成フィルタ部27が生成した試行用再生音声信号と、A/D変換部13が求めたデジタル入力音声信号と、が提供される。修正因子決定部33は、該試行用再生音声信号と該デジタル入力音声信号とを比較して、修正方針を決定する。該修正方針は、本実施形態の場合は、信号強度に関する修正方針であるので、以下では、かかる修正方針全般又は具体的な信号強度値を指して、単に修正強度と呼ぶことにする。修正因子決定部33は、決定した修正強度を、符号化部35に引き渡す。
符号化部35は、スカラー量子化部21からスカラー量子化係数ベクトル最大絶対値を、ベクトル量子化部23からベクトル量子化正規化係数ベクトルを、残差信号特徴量抽出部29から特徴量を、修正因子決定部33から修正強度を、それぞれ受け取り、これらをまとめて、任意の既知の手法により符号化し、かかる符号化により得られた符号を、送信部37に引き渡す。
送信部37は、符号化部35から引き渡された符号を、後述の音声復号装置2に向けて、送信する。送信方法は、本実施形態においては、無線通信によるものとするが、他の、有線や、有線と無線の併用など、様々な通信方法によるものであってもよい。
図2は、本実施形態に係る音声復号装置2の機能構成図である。
音声復号装置2は、図示するように、受信部61と、復号部63と、残差信号復元部65と、D/A変換部67と、スピーカ69と、を備える。
音声復号装置2は、図中で太枠で示されているとおり、合成フィルタ算出部25と、疑似合成フィルタ部27と、をさらに備える。これら、合成フィルタ算出部25及び疑似合成フィルタ部27は、それぞれ、音声符号化装置1における、図1の中で太線で示されている合成フィルタ算出部25及び疑似合成フィルタ部27と同じものである。
図2に示す音声復号装置2の受信部61は、図1に示す音声符号化装置1の送信部37から送信される、スカラー量子化係数ベクトル最大絶対値とベクトル量子化正規化係数ベクトルと特徴量と修正強度とが符号化されたものである符号を受け取り、図2に示す復号部63に引き渡す。
復号部63は、受信部から引き渡された符号を、音声符号化装置3の符号化部35で用いられた符号化方法に対応する復号方法により復号することにより、スカラー量子化係数ベクトル最大絶対値とベクトル量子化正規化係数ベクトルと特徴量と修正強度とを生成する。復号部63は、これらのうち、スカラー量子化係数ベクトル最大絶対値とベクトル量子化正規化係数ベクトルとを合成フィルタ算出部25に引き渡し、特徴量と修正強度とを残差信号復元部65に引き渡す。
合成フィルタ算出部25は、復号部63から引き渡されたスカラー量子化係数ベクトル最大絶対値を逆スカラー量子化した値を、同じく復号部63から引き渡されたベクトル量子化正規化係数ベクトルを逆ベクトル量子化したベクトルに乗じることにより、逆量子化係数ベクトルを生成する。合成フィルタ算出部25は、続いて、逆量子化係数ベクトルの成分を取り出して疑似予測係数を生成し、該疑似予測係数により、疑似合成フィルタ部27の合成フィルタとしての仕様を定義する。
残差信号復元部65は、特徴量と修正強度とを復号部63から取得するとともに、特徴量を手がかりに、該修正強度を加味しつつ、音声符号化装置1の予測分析部15が求めた残差信号に近い信号であることが期待される信号を、復号用励起信号として生成する。生成された復号用励起信号は、疑似合成フィルタ部27への入力信号となる。なお、残差信号復元部65は、音声符号化装置1の残差信号復元試行部31に似た動作を行う。この点については、後に、残差信号復元試行部31の詳細とともに説明する。
疑似合成フィルタ部27は、合成フィルタ算出部25が生成した疑似予測係数により定義された後、残差信号復元部65が生成した復号用励起信号が入力されることにより、デジタル再生音声信号を生成する。
デジタル再生音声信号はD/A変換部67によりアナログ再生音声信号に変換された後、スピーカ69に送られる。こうして、スピーカ69からは、復元された音声信号が、人間の耳に聞こえる態様にて発せられる。
図3は、図1の音声符号化装置1の残差信号特徴量抽出部29の詳細な機能構成を示す図である。
残差信号特徴量抽出部29は、引き渡された各サブフレームの残差信号Di、j={di、j、0、・・・、di、j、L-1}を、内蔵の総合ピッチ判別部3と、帯域フィルタ部115と、標本選択部141と、原則的にはピッチ抽出部113と、に引き渡す。ただし、ピッチ抽出部113にはピッチ抽出用スイッチ部111が前置されているため、ピッチ抽出部113に対しては、残差信号Di、jが引き渡されるとは限らない。
総合ピッチ判別部3は、残差信号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よりも大きい極大値を有しない場合はピッチを抽出することができないと判別する。
総合ピッチ判別部3は、残差信号Di、jからピッチを抽出することができると判別した場合は、ピッチ抽出用スイッチ部111に対して、スイッチを閉じるよう、指令を送る。該指令を受けたピッチ抽出用スイッチ部111はスイッチを閉じて、残差信号Di、jがピッチ抽出部113に送られるようにする。
一方、総合ピッチ判別部3は、残差信号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を求めるためには、任意の既知の手法を用いてよい。もっとも、総合ピッチ判別部3が上述の規格化された自己相関関数CREG(τ)を用いてピッチを抽出することができるか否かを判別した場合には、該判別の過程でCREG(τ)の所定の極大値を与えるτの値が副産物として容易に求まる。かつ、かかるτの値は、CREG(τ)の定義に鑑みれば、ピッチ長の値に相当すると考えられる。よって、ピッチ抽出部113は、総合ピッチ判別部5からかかるτの値を取得し、それをそのままピッチ長Pi、jとするのが簡易である。
ピッチ抽出部113は、ピッチ長を求めた場合には、該ピッチ長を帯域別強度決定部131と標本選択部141とに引き渡す。
帯域フィルタ部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}が雑音であるか否かを判別する。例えば、上で、総合ピッチ判別部3が残差信号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が送られている場合には、総合ピッチ判別部3が、残差信号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、ωと呼ぶ。
標本選択部141は、ピッチ抽出用スイッチ111のスイッチが閉じた場合、すなわち、総合ピッチ判別部3がピッチ長を求めることができると判別しピッチ抽出部113がピッチ長Pi、jを求めた場合、に動作し、そうでない場合は何もしない。
標本選択部141は、動作する場合には、引き渡された残差信号Di、jとピッチ長Pi、jとに基づき、該残差信号に含まれる標本di、j、0、・・・、di、j、L-1のうち、所定の条件に従って残差信号を特徴付ける標本を選択し、該標本がどれであるかを図2の音声復号装置2が判別することができるような情報を、標本選択情報として出力する。
つまり、音声復号装置2が励起用の信号として用いることになる残差信号がピッチ的な性質を有する場合には、図1の音声符号化装置1の残差信号特徴量抽出部29は、内蔵の標本選択部141により、ピッチ長Pi、jを特徴付ける残差信号標本以外に、例えば顕著な大きさを有する等、残差信号を特徴付けると考えられる残差信号標本をいくつか選びとる。
これらの標本の強度等は、符号化部35により符号化され、送信部37により図2の音声復号装置に伝達される。
これにより、残差信号標本の全てを符号化した場合に比べて、音声符号化装置が音声復号装置に伝達すべき情報量が少なくて済み、低ビットレート通信に向く。また、音声復号装置は、ピッチ長を特徴付ける残差信号標本以外の標本をも参照しつつ励起用の信号を生成することができるため、再生音声は、音声符号化装置に入力された元の音声をより忠実に再現することができる。
残差信号を特徴付ける標本を選択する際の前記所定の条件については、後に図を改めて説明する。
結局、残差信号特徴量抽出部29は、内蔵のフラグ生成部129が生成した各帯域についてのフラグと、同じく内蔵の帯域別強度決定部131が求めた各帯域の帯域別強度h i、j、ωと、を、残差信号特徴量として出力する。残差信号特徴量抽出部29は、ピッチ抽出部113がピッチ長Pi、jを求めた場合には、該ピッチ長及び標本選択情報も含めて、特徴量として出力する。
このように、残差信号を帯域別に扱うことにより、各帯域における帯域別残差信号の特徴の違いに応じた符号化がなされるため、復号して再生した音声の品質が向上する。また、かかる特徴は、おおまかには、雑音的であるか否かという単純な判別結果を示すフラグにより表されるので、音声符号化及び音声復号方式の簡素さは維持される。
換言すれば、残差信号の帯域別の特徴をおおまかに雑音的であるか否かという点から捉えるために、音声符号化装置1は簡素なもので済む。一方、音声復号に際しては、雑音パルス列及びピッチパルス列の生成手段と帯域分割手段があれば、全ての帯域の帯域別残差信号の復元が可能になり、簡素でありながらも、残差信号を帯域別に扱ったことによる音声品質の向上が期待される。
図4は、図1の音声符号化装置1の残差信号復元試行部31の詳細な機能構成を示す図である。
残差信号復元試行部31は、各帯域についてのフラグと、各帯域の帯域別強度h i、j、ωと、を、特徴量として、残差信号特徴量抽出部29(図1、図3)から受け取る。残差信号復元試行部31は、残差信号特徴量にピッチ長Pi、j及び標本選択情報が含まれていた場合には、該ピッチ長及び該標本選択情報も受け取る。
残差信号復元試行部31の中のピッチパルス列生成部4は、残差信号特徴量にピッチ長Pi、j及び標本選択情報が含まれていた場合には、該ピッチ長及び該標本選択情報に基づいてピッチパルス列を生成し、帯域フィルタ部115に引き渡す。一方、残差信号特徴量にピッチ長Pi、jも標本選択情報も含まれていない場合には、何もしない。
ピッチパルス列4がピッチ長Pi、j及び該標本選択情報に基づいてどのようにピッチパルス列を生成するかについては、後に図を改めて説明する。
図4においてピッチパルス列生成部4の下に描かれた帯域フィルタ部115は、上述の、図3に示された帯域フィルタ部115と同じ機能を有する。ただし、ピッチパルス列生成部4の下に描かれた帯域フィルタ部115は、ピッチパルス列生成部4から引き渡されたピッチパルス列を帯域分割して帯域別ピッチパルス列を生成することを目的とする。つまり、ピッチパルス列生成部4の下に描かれた帯域フィルタ部115は、帯域別ピッチパルス列生成部として機能する。
生成された各帯域の帯域別ピッチパルス列は、帯域別試行用励起信号生成部221に引き渡される。帯域別試行用励起信号生成部221は第1帯域別試行用励起信号生成器223と、第2帯域別試行用励起信号生成器225と、・・・、第ω帯域別試行用励起信号生成器(図示せず。)と、・・・、第ωMax帯域別試行用励起信号生成器(図示せず。)と、を内蔵している。第1帯域別試行用励起信号生成器223は、帯域1の帯域別ピッチパルス列を受け取る。第2帯域別試行用励起信号生成器225は、帯域2の帯域別ピッチパルス列を受け取る。以下、同様である。
残差信号復元試行部31の中の雑音パルス列生成部211は、雑音パルス列を生成し、帯域フィルタ部115に引き渡す。
図4において雑音パルス列生成部211の下に描かれた帯域フィルタ部115は、上述の、図3に示された帯域フィルタ部115及び図4においてピッチパルス列生成部4の下に描かれた帯域フィルタ部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は、かかる基準となる特定の値を、図1の点線矢印及び図4の点線矢印で表されるように、予測分析部15が求めた予測係数の一部を手がかりにして、決定することが、より好適である。この具体的な方法については、後に説明する。
帯域別試行用励起信号生成部221が生成した各帯域の帯域別試行用励起信号は、試行用励起信号生成部227に引き渡される。試行用励起信号生成部227は、引き渡された帯域別試行用励起信号を重ね合わせることにより、試行用励起信号を生成し、該信号を出力する。
音声復号装置2が備える残差信号復元部65(図2)は、以上のように図4を参照して説明した残差信号復元試行部31に酷似している。いずれも特徴量から励起用信号を生成するという共通した目的を有するからである。ただし、残差信号復元試行部65は、修正因子決定部33(図1)が決定した修正強度を受け取り、それを反映しつつ励起用の信号を生成する。よって、予測分析部15(図1)が求めた残差信号に対して、残差信号復元部65が出力する信号は、残差信号復元試行部31が出力する信号に比べてよりよく近似した信号となる。また、残差信号復元部65においては、サブフレーム間で信号強度にスムージング処理が施される。残差信号復元試行部65の動作の詳細については後述する。
ここまで機能構成図である図1乃至図4を参照して説明してきた本実施形態に係る音声符号化装置1及び音声復号装置2は、物理的には、ユーザにとっての使い勝手の良さを考慮して、両装置の機能を統合した、本実施形態に係る音声符号化兼復号装置5により実現される。
図5は、本実施形態に係る音声符号化兼復号装置5を示したものである。音声符号化兼復号装置5としては、例えば、携帯電話機が想定される。
音声符号化兼復号装置5は、図1で既に示してあるマイクロフォン11と、図2で既に示してあるスピーカ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との間で適宜データのやりとりを行いながら、数値演算により、音声符号化兼復号装置5に、図1に示す音声符号化装置1及び図2に示す音声復号装置2としての機能を発揮させる。CPU311は、その際、必要に応じて音声処理部319、無線通信部317、操作キー入力処理部321とデータのやりとりを行う。
図5の音声処理部319は、図1のA/D変換部13及び図2のD/A変換部67として動作することができる。無線通信部317は、図1の送信部37及び図2の受信部61として動作することができる。符号の送受信は、基本的には、図5のアンテナ325を用いた無線通信により行われるが、別の方法、例えば有線通信により行われてもよい。操作キー入力処理部321は、操作キー327からの操作信号を受け付けて、操作信号に対応するキーコード信号をCPU311に伝達する。操作キー327は、通信の相手方となる音声符号化兼復号装置5を特定する、つまり例えば携帯電話の場合であればいわゆる電話番号を入力するのに使われる他、基本的には設定済みの各種事項をユーザの好みに応じて変化させるために用いられてもよい。
(量子化について)
本実施形態に係る音声符号化装置1(図1)は、予測係数を量子化することにより、音声復号装置2(図2)に伝達すべき情報量を減少させ低ビットレート通信を実現する一助とする。本実施形態においては、量子化には図1のスカラー量子化部21によるスカラー量子化とベクトル量子化部23によるベクトル量子化とが併用される。以下では、かかる量子化が、本実施形態ではどのように行われるかを説明する。
本実施形態においては、本来スカラーである予測係数をいくつか集めて、各予測係数を成分とするベクトルを構成した後に、ベクトル量子化を行う。ただし、そのように構成されたベクトルを直接にベクトル量子化するのではなく、ベクトル正規化過程を挿入して、スカラー量子化に供される値を抜き取る。このように両種の量子化を組み合わせることにより、量子化の効率が向上する。
図6(a)は、予測係数の時系列を表にまとめたものである。既に述べたように、メインフレームは添字iで識別され、同一メインフレーム内のサブフレームは添字jで識別される。各メインフレームには0、・・・j、・・・、Z-1という番号が付けられたZ個のサブフレームが含まれる。i番のメインフレームの中のj番のサブフレームの残差信号についての予測係数Ci、jは、既に述べたように、また、図6(a)では各列として示されているとおり、Ci、j={ci、j、0、・・・、ci、j、k、・・・、ci、j、N-1}(0≦k≦N-1)という0乃至N-1次の予測係数の集まりである。
ここで、同一のメインフレームに含まれ、かつ、次数が共通する、合計Z個の予測係数を成分として、係数ベクトルを構成する。すなわち、図6(a)に点線の枠で囲んで示すように、係数ベクトルはメインフレームを表す添字iと次数を表す添字kとで特定されるのでVi、kと表記することにすれば、その成分は、
Vi、k ={ ci、0、k、・・・、ci、j、k、・・・、ci、Z-1、k}となる。
つまり、サブフレームが予測分析に対応した時間区間を意味するのに対して、メインフレームは係数ベクトルを構成する時間区間を意味する。
このように構成された係数ベクトルVi、kは、Z次元空間において、模式的には図6(b)のように表される。具体的なベクトル量子化の手法は様々であり、本実施形態においては任意の既知の手法を用いてよい。どの手法においても、原理的には、それぞれに番号が割り当てられた、有限個の代表ベクトルのセットを用意しておき、与えられたベクトルを、それに最も近い代表ベクトル又はそれらの線形結合で近似することとし、該与えられたベクトルを、該代表ベクトルに割り当てられた番号に変換する等する。取り扱いの便宜上、番号はテーブルとしてまとめられることが多い。
例えば図6(b)では、図示された係数ベクトルVi、kは、代表ベクトルのうち、点線で表されたベクトルに近いとする。このとき、この点線で表されたベクトルが、量子化係数ベクトルq[V]i、kである。また、Vi、kとq[V]i、kとの差分は、ベクトル量子化によって省略された情報であるといえる。
なお、上述のとおり、係数ベクトルは、ベクトル量子化を施されるとテーブルにまとめられる。よって、量子化係数ベクトルは、少なくとも見かけ上は、ベクトルではないともいえる。もっとも、該テーブルに記載された数値に対して、ベクトルとしての意味を与える、すなわち逆量子化を施すと、量子化係数ベクトルq[V]i、kが得られる。よって、無用の混乱を避けるために、以下では、係数ベクトルに量子化を施すことによりテーブルとして得られた結果と、該テーブルに逆量子化を施すことによって得られたベクトルと、を、ともに、量子化係数ベクトルq[V]i、kと呼ぶこととする。
このように同一次元のフィルタ係数をメインフレームすなわち連続するZ個のサブフレームにわたりまとめて係数ベクトルを構成することが、本実施形態においては、情報圧縮の点で効率が高い。
この理由は、音声が定常状態にある時間帯では、係数ベクトルVi、kの各成分が相互に近い値となり、このために、音声継続時間全体から得られる係数ベクトルVi、kの分布に大きな偏りが生じるためである。一般に、分布に偏りがあるベクトルの集合に対してベクトル量子化を施すと、情報圧縮効率が良い。
(予測分析の手順)
以下では、図1の予測分析部15が行う予測分析について、図7に示すフローチャートを参照しつつ説明する。予測分析としては、例えば、線型予測分析やMLSA(Mel Log Spectrum Approximation)分析が知られている。
記憶部315(図5)には、既に、デジタル入力音声信号Si、j={si、j、0、・・・、si、j、L-1}(0≦i≦M-1)が格納されているとする。CPU311(図5)は、内蔵のカウンタレジスタ(図示せず)をメインフレームカウンタiの格納に用いることとし、初期値として、i=0とする(図7のステップS7)。
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(図1)が定義される。換言すれば、予測分析用逆フィルタ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以降の処理を繰り返す。
(ベクトル量子化の手順)
以下では、図1のベクトル正規化部19、スカラー量子化部21、及び、ベクトル量子化部23が行う、ベクトル正規化とスカラー量子化とベクトル量子化の手順を、図8に示すフローチャートを参照しつつ説明する。
予測係数Ci、j(0≦i≦M-1、0≦j≦Z-1)は、既に、図6に示されるように係数ベクトルVi、k(0≦i≦M-1、0≦k≦N-1)としてまとめられ、記憶部315に格納されているものとする。
CPU311は、メインフレームカウンタiを、i=0に設定する(ステップS8)。
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に戻る。
(残差信号から特徴量を生成する手順)
以下では、本実施形態に係る音声符号化装置2において、図1及び図3に示す残差信号特徴量抽出部29が行う、残差信号からピッチ長と標本選択情報とフラグと帯域別強度とを生成する手順を、図9に示すフローチャートを参照しつつ説明する。
なお、前提として、既に残差信号Di、j={di、j、0、・・・、di、j、L-1}(0≦i≦M-1、0≦j≦Z-1)が求められていて、記憶部315に格納されているものとする。
CPU311は、メインフレームカウンタiを、i=0に設定する(ステップS9)。
CPU311は、サブフレームカウンタjを、j=0に設定する(ステップS211)。
CPU311は、記憶部315からレジスタに、残差信号Di、j={di、j、0、・・・、di、j、L-1}をロードする(ステップS213)。
CPU311は、残差信号Di、jからピッチ長を抽出することができるか否かを判別する(ステップS215)。該判別には、既に図3を用いて、残差信号特徴量抽出部29の中の総合ピッチ判別部5について説明したように、例えば、規格化された自己相関関数を用いる。
ピッチ長を抽出することができると判別された場合は(ステップS215;Yes)、CPU311は、ピッチ長Pi、jと標本選択情報とを求める(ステップS217)。
ピッチ長Pi、jは、既に図3を用いて、残差信号特徴量抽出部29の中のピッチ抽出部113について説明したように、例えば、総合ピッチ判別部3が規格化された自己相関関数を用いてピッチを抽出することができるか否かを判別した際の副産物として求まる。
標本選択情報の求め方の一例については、後に図を改めて説明する。
CPU311はその後、求めたピッチ長Pi、jと標本選択情報とを記憶部315に格納してから(ステップS219)、ステップS221に進む。
一方、ピッチ長を抽出することができないと判別された場合は(ステップS215;No)、すぐにステップS221に進む。
ステップS221では、CPU321は、帯域識別変数ωを、ω=1に設定する。
CPU311は、帯域別残差信号生成部としての帯域フィルタ部115(図3)として機能することにより、帯域ωの帯域別残差信号Di、j、ω={di、j、ω、0、・・・、di、j、ω、L-1}を生成する(図9のステップS223)。
CPU311は、帯域別雑音判別部123(図3)及びフラグ生成部129として機能することにより、帯域別残差信号Di、j、ωが雑音であるか否かを判別し、その結果を反映した帯域ωについてのフラグFlagi、j、ωを生成し(図9のステップS225)、記憶部315に格納する(ステップS227)。フラグが変数としてとり得る値は、後に図を改めて説明する。
CPU311は、帯域別強度決定部131(図3)として機能することにより、帯域別残差信号Di、j、ωの帯域別絶対強度Hi、j、ωを求める(図9のステップ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に戻る。
図9のステップS217で行われる、標本選択情報を生成する処理について、図10に示すフローチャート及び図11に示す残差信号等の模式図を参照しつつ、説明する。
図11(a)は、iとjとにより識別されるサブフレームにおける残差信号Di、jの模式図である。該残差信号中の標本di、j、0、・・・、di、j、L-1の値が時系列として示されている。
CPU311は、これらの標本di、j、0、・・・、di、j、L-1のうちから、絶対値が最大となる標本である基準残差標本di、j、u(0)を特定する(図10のステップS10)。
このように特定された基準残差標本di、j、u(0)から時系列上で後方にピッチ長Pi、jぶんの範囲内にある標本のうちから、残差信号を特徴付けることが期待される標本を選択する。標本が選択され得るかかる範囲のことを、以下では、検索対象区間と呼ぶことにする。
検索対象区間が確保されるためには、前記基準残差標本di、j、u(0)が、時系列上での最終の標本であるdi、j、L-1からピッチ長Pi、j以上手前に存在する必要がある。すなわち、不等式u(0)≦L-1-Pi、jが満たされる必要がある。そこで、上述のように選択された基準残差標本がこの不等式を満たさない場合には、標本di、j、0、・・・、di、j、L-1のうちから、絶対値が2番目となる標本を基準残差標本di、j、u(0)として特定し直す(図10のステップS911)。なお、このように特定し直した基準残差標本もまた前記不等式を満たさない場合には、絶対値が3番目となる標本を基準残差標本として再び特定し直す。以下、同様に、前記不等式が満たされるまで、基準残差標本の決め直しを繰り返す。
図11(b)は、図11(a)における検索対象区間を拡大して示したものである。検索対象区間には、標本が、図示するとおり、di、j、u(0)、・・・、di、j、u(0)+Pi、j-1の、合計Pi、j個存在する。
これらPi、j個の標本からdi、j、u(0)を除いたdi、j、u(0)+1、・・・、di、j、u(0)+Pi、j-1を、任意の既知の手法により絶対値の降順にソートする。そして、先頭からσ番目までの標本di、j、u(1)、・・・、di、j、u(σ)について、u(1)-u(0)とdi、j、u(1)/|di、j、u(0)|、・・・、u(σ)-u(0)とdi、j、u(1)/|di、j、u(0)|を求める(ステップS913)。
σは原理的には最大でPi、j-1とすることができる。しかし、標本選択情報を生成する意義は、残差信号を特徴付けることが期待される標本を少数選択して低ビットレート通信に適合させることにある。よって、与えられた情報伝達許容量と達成したい再生音声の品質とを比較衡量して、選択する標本の個数を決定する。
なお、かかる標本の個数はあらかじめ定めておいてもよいが、必ずしも固定値である必要はない。例えば、図1の符号化部35がエントロピ符号化等の、情報圧縮率が一定にならない符号化方式を採用している場合には、情報圧縮率がたまたま高くなったために伝達可能容量にゆとりがある時間帯には多数の標本を選択する等、標本の個数を動的に定めるようにしてもよい。
図11(c)に示すように、選択された標本の基準残差標本に対する時系列上の相対位置と、該選択された標本を該基準残差標本の絶対値により規格化した値と、が、標本選択情報となり(図10のステップS915)、処理は終了する。
理解を容易にするために、ここで、図2の音声復号装置2が前記標本選択情報に基づいて復号用励起信号を生成する処理の概要を、図12を参照しつつ説明する。
図1の音声符号化装置1から標本選択情報を受け取った図2の音声復号装置2は、標本選択情報に上述のとおり選択された標本の基準残差標本に対する相対位置及び相対標本値が含まれていることから、図12(a)に示すように、基準残差標本から開始する1ピッチぶんの信号を生成することができる。
続いて、音声復号装置2は、図12(b)に示すように、前記1ピッチ分の信号を時系列上で繰り返し接続することにより、復号用励起信号を生成する。
なお、このとき同時に、基準残差標本の大きさが後述のようにsqrt(Pi、j)となるような拡大又は縮小を、基準残差標本及び選択された標本に施す。
図12(c)は、図11(a)と同じく、元の残差信号を示す模式図である。図12(b)を図12(c)と比較すれば明らかなように、復号用励起信号は、定性的には、元の残差信号のうち目立つ標本を少数選択し、それらをピッチ長単位で繰り返すことにより生成される。
図13は、図9のステップS225で行われる、帯域ωについてのフラグFlagi、j、ωを生成する処理を示すフローチャートである。
CPU311は、図3の帯域別雑音判別部123として機能することにより、帯域ωの帯域別残差信号Di、j、ω={di、j、ω、0、・・・、di、j、ω、L-1}が雑音であるか否かを判別する(ステップS13)。判別のための手法としては、例えば、既に図3の第ω帯域雑音判別器の動作として説明したように、規格化された自己相関関数を計算することによる手法を用いるのが好適である。
雑音であると判別された場合は(ステップS13;Yes)、CPU311は、変数Flagi、j、ωを"UV"に設定してから(ステップS261)、処理を終了する。雑音ではないと判別された場合は(ステップS13;No)、CPU311は、、変数Flagi、j、ωを"V"に設定してから(ステップS263)、処理を終了する。
図14は、図9のステップS229で行われる、帯域別残差信号Di、j、ωの帯域別絶対強度Hi、j、ωを求める処理を示すフローチャートである。
CPU311は、記憶部315の中を検索し、記憶部315にピッチ長Pi、jが格納されているか否かを判別する(ステップS14)。記憶部315にピッチ長Pi、jが格納されているとすれば、それは図9のステップS219によるものであり、ステップS219を経ているということは、ステップS215で残差信号Di、jには全体としてピッチ的な性質が存在すると判別されたことを意味する。記憶部315にピッチ長Pi、jが格納されていないとすれば、ステップS215で残差信号Di、jには全体としてピッチ的な性質が存在しないと判別されたことを意味する。
記憶部315にピッチ長Pi、jが格納されていると判別された場合は(ステップS14;Yes)、既に図3の帯域別強度決定部131について説明したように、例えば、所定の時間にわたり帯域別残差信号の2乗を時間積分した後、その平方根を、帯域別絶対強度Hi、j、ωとする(ステップS271)。さらに、上述のように、本ステップに進んだということは、残差信号Di、jが全体としてピッチ的な性質を帯びていることであるから、これも既に図3の帯域別強度決定部131についての説明で触れたように、前記所定の時間は、Pi、jの整数倍でありかつできるだけ長い時間であることが好ましい。この後、処理は終了する。
記憶部315にピッチ長Pi、jが格納されていないと判別された場合は(ステップS14;No)、これも既に図3の帯域別強度決定部131の説明で触れたように、例えば、帯域別残差信号Di、j、ωの全継続時間にわたる積分に基づいて、帯域別絶対強度Hi、j、ωを求める(ステップS273)。この後、処理は終了する。
図14が、強度の絶対的な大きさを示す帯域別絶対強度Hi、j、ωを求める処理を示すフローチャートであったのに対して、図15は、図9のステップ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を繰り返す。
(特徴量から試行用励起信号を生成する手順)
以下では、本実施形態に係る音声符号化装置1において、図1及び図4に示す残差信号復元試行部31が行う、ピッチ長と標本選択情報とフラグと帯域別強度とから試行用励起信号を生成する手順を、図16に示すフローチャートを参照しつつ説明する。
なお、前提として、既にフラグFlagi、j、ωと帯域別強度hi、j、ωとが求められていて、記憶部315に格納されているものとする(0≦i≦M-1、0≦j≦Z-1、1≦ω≦ωMax)。また、Di、jからピッチ長Pi、jを抽出することができきた場合には(図9のステップ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は、図4のピッチパルス列生成部4及び帯域フィルタ部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は、図4の帯域別試行用励起信号生成部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は、図4のピッチパルス列生成部4として機能することにより、ピッチ長Pi、jと標本選択情報とに基づいて、図17(b)に模式的に示すピッチパルス列Ppti、j={ppti、j、0、・・・、ppti、j、L-1}を生成する(ステップS17)。この図17(b)は、既に参照した図12(b)と同じ図である。そして、ピッチ長Pi、jと標本選択情報とに基づくピッチパルス列Ppti、jの生成方法は、既に図11及び図12を参照して説明したとおりである。
CPU311は、帯域識別変数ωを、ω=1に設定する(ステップS351)。
CPU311は、図4の帯域別ピッチパルス列生成部としての帯域フィルタ部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は、図4の雑音パルス列生成部211として機能することにより、図18(b)に模式的に示すような、大きさが-1以上+1以下の乱数であるパルスが並んだ雑音パルス列Rpti、j={rpti、j、0、・・・、rpti、j、L-1}を生成する(ステップS18)。
CPU311は、帯域識別変数ωを、ω=1に設定する(ステップS371)。
CPU311は、図4の帯域別雑音パルス列生成部としての帯域フィルタ部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)。この値は、後に修正を施されるものであるので、本ステップで厳密な値を求める必要はない。もっとも、当然のことながら、試行値といえどもできるだけ正確な値、すなわち後の修正ができるだけ少なくて済むような値、を採用するのが望ましい。かかる観点に鑑み、本実施形態の場合は、図1及び図4で点線矢印にて示したように、試行強度I(0)を、予測係数の0次の係数ci、j、0に基づいて、
I(0)i、j=exp(ci、j、0)
により求め、記憶部315に格納する(図19のステップS391)。
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、ω
により求める。
(係数ベクトルと逆量子化係数ベクトルの関係)
後に、図1の疑似合成フィルタ部27が試行用再生音声信号を生成する手順と、図2の音声復号装置2が復号用励起信号を生成するために必要な修正強度を図1の修正因子決定部33が求める手順と、を説明するが、理解を容易にするために、まず、係数ベクトルと逆量子化係数ベクトルの関係を整理して図20に示す。
量子化された係数ベクトルはテーブルとして表記されるものである一方、逆量子化ベクトルは該表記を具体的なベクトルとして捉えたものであるが、既にベクトル量子化について説明したように、ここでは両者を特に区別することなく用いる。例えば、符号qは、ある量が量子化されたことを表す符号として用いているが、同時に、逆量子化されその量と直接比較し得る量のことも示すものとする。つまり、量子化された結果と、それが逆量子化された量とを、表記の上では区別しないこととする。本実施形態においては、量子化の結果の表現態様が重要なのではなく、量子化によって近似による情報量削減が達成されることが重要なためである。
図20に示す表は、既に図6(a)に示した、係数ベクトルの時系列毎かつ次元毎の一覧表に、各係数ベクトルに対応する近似結果を付記した表である。CPU311が図3のベクトル正規化部19、スカラー量子化部21、及び、ベクトル量子化部23として機能した結果、図8のフローチャートのステップ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}
に近似される。
(試行用再生音声信号を生成する手順)
以下では、本実施形態に係る音声符号化装置1において、図1に示す合成フィルタ算出部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)。これにより、図1の疑似合成フィルタ部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に戻る。
(修正強度を生成する手順)
以下では、本実施形態に係る音声符号化装置1において、図1に示す修正因子決定部33が行う、修正強度を生成する手順を、図22に示すフローチャートを参照しつつ説明する。
なお、前提として、入力音声信号Si、jは記憶部315に格納されたまま残されているものとし、試行強度I(0)i、jと試行用再生音声信号W(0)i、jとは、既に求められて記憶部315に格納されているもものとする。また、図3のピッチ抽出部113により図9のステップ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)。
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に戻る。
(特徴量から復号用励起信号を生成する手順)
以下では、図2に示す音声復号装置2の動作について説明する。まず、残差信号復元部65が、復号用励起信号を生成する手順について説明する。
前提として、復号部63により、特徴量であるフラグFlagi、j、ωと帯域別強度hi、j、ωとが復号されて、記憶部315に格納されているものとする。さらに、存在する場合にはピッチ長Pi、j及び標本選択情報も復号されて、記憶部315に格納されているものとする。また、修正強度I(1)i、jも同じく復号され記憶部315に格納されているものとする。
既に述べたとおり、図2に示す残差信号復元部65は、図1に示す残差信号特徴量抽出部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を繰り返す。
以上のように求められた帯域別復号用励起信号は全ての帯域にわたり合計され、復号用励起信号として図2の残差信号復元部65から出力される。
(音声再生信号を生成する手順)
図2の残差信号復元部65により上述のように生成され復号用励起信号として出力された信号は、疑似合成フィルタ部27を通されることにより、再生音声信号に変換される。具体的な手順は、図21に準ずる。試行用再生音声信号を単なる再生音声信号に、試行用励起信号を復号用励起信号に、それぞれ読み替える等する。
例えば、図4の疑似合成フィルタ部27は、合成フィルタ算出部25により、図20の表に示された疑似係数ベクトルq[V]i、kの成分の値により定義される(図21のステップS419に相当。)。
(実施形態2)
実施形態1に係る音声符号化装置1は、基準残差標本を特定し、該基準残差標本から時系列上で後方に1ピッチ長以内の区間すなわち検索対象区間に存在する標本のうちから、絶対値の大きい標本をいくつか選択して、それらの標本の、基準残差標本に対する相対的な大きさと、基準残差標本に対する時系列上の相対的な位置と、を、標本選択情報とした。
本実施形態に係る音声符号化装置も、検索対象区間の決定は、実施形態1に係る音声符号化装置1と同様に行う。
しかし、本実施形態に係る音声符号化装置は、検索対象区間をあらかじめ所定の個数の小区間に等分しておき、それぞれの小区間毎に最大の絶対値を有する標本を特定し、該標本の基準残差標本に対する相対的な大きさを標本選択情報とする。
そして、本実施形態においては、検索対象区間に含まれる小区間の個数は、音声符号化装置と音声復号装置との間で、あらかじめ同じ個数に取り決められている。
さらに、音声符号化装置と音声復号装置との間では、前者から後者へ、標本選択情報を例えば時系列順に送信するというように取り決められている。
そして、そのように標本選択情報を受け取った音声復号装置は、1番目の標本として受け取った標本を1番目の小区間に割り当てる。音声復号装置は続いて、2番目の標本として受け取った標本を2番目の小区間に割り当てる。以下、同様である。このようにして、本実施形態に係る音声復号装置は、復号用励起信号を生成するためのピッチパルス列を生成する。
音声復号装置は、小区間内の先頭サンプリング時刻を基準とした所定の時刻に、受け取った標本を割り当てるものとする。
このため、実施形態1の場合と異なり、ひとつには、音声符号化装置側で、絶対値が比較的大きい2個の標本がたまたま同一小区間に属している場合には、一方の標本が、その顕著さにもかかわらず、選択されない。よって当然のことながら、音声復号装置側はそのように捨象された標本を再現し得ない。そしてもうひとつには、音声復号装置は、標本が存在するべき厳密なサンプリング時刻を知らされず、単に標本がどの小区間に属しているかということだけを知らされる。よって、選択された標本は、音声符号化装置から音声復号装置への情報伝達の過程において、最大で小区間の時間長ぶんだけ、時系列上の位置が移動してしまう。
つまり、同一個数の標本を送受信するという条件で比較した場合、本実施形態に係る音声復号装置は、実施形態1に係る音声復号装置2ほど的確には、ピッチパルス列を生成しないといえる。
しかし、本実施例の場合、実施形態1の場合と異なり、音声符号化装置は、音声復号装置に対して、基準残差標本に対する選択した標本の相対的な位置を通知する必要がない。
よって、実施形態1の場合と同じ数の標本について標本選択情報を生成した場合、該情報は少なくて済むので、通信ビットレートに制約がある場合には有利である。
以下では、ここまでに述べてきた本実施形態における標本の選択の仕方及び音声復号装置側でのピッチパルス列の生成の仕方について、図25と図26とに示された具体例を用いて、説明する。
残差信号は図25(a)に示すとおりのものであるとする。これは、実施形態1について説明した際に参照した図11(a)と同じものである。よって、本実施形態の、実施形態1と比べた場合の特徴は、図25及び図26を、図11及び図12と比較すると、容易に理解できる。
ピッチ長Pi、jに相当する時間区間を、図25(b)に示すように、ここでは、4個の小区間に分割するとする。すると、図25(c)に示すように、各小区間の中で最大の絶対値を有する標本が選択される。
同じ個数の標本が選択される図11(c)とは、選択される標本が異なる。本実施形態の場合は、実施形態1の場合とは標本の選択の仕方が異なるためである。例えば、図11(c)ではu(2)として選択されている標本は、比較的顕著な大きさを有するものの、図25(c)では選択されない。図25(c)では、該標本とたまたま同じ小区間に含まれる、より大きい標本だけが、u(1)として選択されるためである。
ここで、選択された標本は、音声復号装置側では、小区間の先頭のサンプリング時刻に割り当てられるとあらかじめ決めてあるものとする。すると、本実施形態の場合に音声復号装置側でピッチパルス列の繰り返し単位となる信号は、図26(a)のようなものである。図25(c)と比べると、標本の位置がずれている。これは、本実施形態に係る音声復号装置は、標本の時系列上の位置を、小区間単位でしか把握しないためである。この点、実施形態1の場合、図11(c)と図12(a)とに示されるとおり、標本の位置がずれることはない。
本実施形態に係る音声復号装置により生成されるピッチパルス列は、図26(b)に示すものとなる。図12(b)に示される実施形態1の場合とは、異なっている。なお、図26(c)は、元の残差信号であり、図25(a)、図11(a)、及び、図12(c)と同じものである。
(実施形態3)
実施形態2では、小区間の中から絶対値が最大の標本を選択した。それに対して、本実施形態では、小区間に含まれる全ての標本の平均値を基準残差標本の絶対値により除した値を、標本選択情報とする。
つまり、実施形態2の場合は、小区間に含まれる特定のひとつの標本により、該小区間を代表させるのに対して、本実施形態の場合は、小区間に含まれる全標本に基づいて計算された値により、該小区間を代表させる。
実施形態1と比較した場合の本実施形態の特徴は、実施形態2の場合と同様である。
なお、この発明は、上記実施形態に限定されず、種々の変形及び応用が可能である。上述のハードウェア構成やブロック構成、フローチャートはあくまでも説明のための例示であって、本発明の範囲を限定するための例示ではない。
例えば、図5に示される音声符号化兼復号装置3の例として携帯電話機を挙げたが、PHS(Personal Handyphone System)、PDA(Personal Digital Assistants)、ノート型及びデスクトップ型パーソナルコンピュータ等による音声処理においても、同様に本発明を適用することができる。例えば本発明をパーソナルコンピュータに適用する場合には、パーソナルコンピュータに音声入出力装置や通信装置等を付加すれば、ハードウェアとしては携帯電話機の機能を有するようにすることができる。そして、上述の処理をコンピュータに実行させるためのコンピュータプログラムが記録媒体や通信により配布されれば、これをコンピュータにインストールして実行させることにより、該コンピュータをこの発明に係る音声符号化装置又は音声復号装置として機能させることも可能である。
すなわち、上記実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
1・・・実施形態1に係る音声符号化装置、2・・・実施形態1に係る音声復号装置、3・・・総合ピッチ判別部、4・・・ピッチパルス列生成部、5・・・実施形態1に係る音声符号化兼復号装置、11・・・マイクロフォン、13・・・A/D変換部、15・・・予測分析部、17・・・予測分析用逆フィルタ算出器、19・・・ベクトル正規化部、21・・・スカラー量子化部、23・・・ベクトル量子化部、25・・・合成フィルタ算出部、27・・・疑似合成フィルタ部、29・・・残差信号特徴量抽出部、31・・・残差信号復元試行部、33・・・修正因子決定部、35・・・符号化部、37・・・送信部、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帯域強度算出器、141・・・標本選択部、211・・・雑音パルス列生成部、221・・・帯域別試行用励起信号生成部、223・・・第1帯域別試行用励起信号生成器、225・・・第2帯域別試行用励起信号生成器、227・・・試行用励起信号生成部、311・・・CPU、313・・・ROM、315・・・記憶部、317・・・無線通信部、319・・・音声処理部、321・・・操作キー入力処理部、323・・・システムバス、325・・・アンテナ、327・・・操作キー、329・・・RAM、331・・・ハードディスク