以下、図面を参照して、この発明の実施形態について説明する。
図1(a)は、この発明の一実施形態に係わる信号帯域拡張装置が適用された通信装置の構成を示すものである。この図に示す通信装置は、例えば携帯電話などの無線通信装置の受信系を示すものであって、無線通信部1と、デコーダ2と、帯域拡張処理部3と、D/A変換器4とを備えている。
無線通信部1は、移動通信網に収容される無線基地局と無線通信し、そしてこの無線基地局および移動通信網を通じて通信相手局との間に通信リンクを確立して通信する。
デコーダ2は、無線通信部1が通信相手局から受信した受信データを、事前に決められた単位(1フレーム=Nサンプル)ごとに復号して、ディジタルの入力信号x[n] (n=0,1,…,N-1)を得る。ここで1フレームをN=160サンプルとする。ただし、この入力信号x[n]は、サンプリング周波数はfs[Hz]でfs_nb_low[Hz]からfs_nb_high[Hz]までに帯域制限された狭帯域の信号である。このようにして得られたディジタルの入力信号x[n]は、フレーム単位で帯域拡張処理部3に出力される。
帯域拡張処理部3は、1フレーム単位で上記入力信号x[n] (n=0,1,…,N-1)に帯域拡張処理を施し、帯域拡張処理によりfs_wb_low[Hz]からfs_wb_high[Hz]までの帯域に拡張される。このとき、サンプリング周波数はデコーダ2でのサンプリング周波数fs[Hz]のままであるか、あるいはより高いサンプリング周波数fs’[Hz]に変更される。すなわち、帯域拡張処理部3によって、サンプリング周波数fs[Hz]あるいはサンプリング周波数fs’[Hz]の帯域拡張された出力信号y[n]が1フレーム単位で得られる。なお、帯域拡張処理部3の具体的な構成例については後に詳述する。
D/A変換器4は、上記帯域拡張された出力信号y[n]をアナログ信号y(t)に変換して、スピーカ5に出力する。スピーカ5は、アナログ信号である出力信号y(t)を音響空間へ出力する。
なお、図1(a)では、この発明に関わる信号帯域拡張装置を通信装置に適用しているが、図1(b)に示すように、ディジタルオーディオプレイヤに適用することも可能である。このディジタルオーディオプレイヤは、無線通信部1に代わって、フラッシュメモリやHDD(Hard Disk Drive)を用いた記憶部6を備え、この記憶部6から読み出した音楽データをデコーダ2が上述したように復号する。
次に、帯域拡張処理部3の実施例について説明する。
(第1の実施例)
図2は、この発明に係わる帯域拡張処理部3の第1の実施例の構成を示すものである。第1の実施例では、帯域拡張処理部3の帯域拡張処理で、サンプリング周波数fs[Hz]のまま、fs_wb_low[Hz]からfs_wb_high[Hz]までの帯域に拡張されるものとする。ただし、fs_wb_low ≦ fs_nb_low < fs_nb_high ≦ fs_wb_high < fs/2 を満たすものとする。
また以下の説明では、低域拡張を例に挙げるため、fs_wb_low < fs_nb_low、fs_nb_high = fs_wb_highとして説明し、例えば、fs=8000[Hz]、fs_nb_low=340[Hz]、fs_nb_high=3950[Hz]、fs_wb_low=50[Hz]、fs_wb_high=3950[Hz]とする。帯域制限の周波数帯域やサンプリング周波数については、これに限らない。
この図に示すように、第1の実施例の帯域拡張処理部3は、線形予測分析部101と、逆フィルタ102と、帯域生成判別部103と、線形予測合成部105と、帯域通過フィルタ108と、信号遅延処理部109と、信号加算処理部110とを備える。これらは、1つのプロセッサと、図示しない記憶媒体に記録されたソフトウェアによって実現することも可能である。
線形予測分析部101は、狭帯域に帯域制限された現在のフレームfの入力信号x[n] (n=0,1,…,N-1)が入力され、これを線形予測分析して、狭帯域のスペクトル包絡を表す狭帯域スペクトルパラメータとして、Dn次の線形予測係数LPC[f,d](d=1,…,Dn)を得る。ここでは例えば、Dn=14とする。具体的には、線形予測分析の対象となる現在のフレームfの入力信号x[n] (n=0,1,…,N-1)と、このフレームの直前の1フレーム前の入力信号の合計2フレームを時間方向に結合したデータ長2Nの入力信号x[n] (n=0,1,…,2N-1)に対して、窓関数をハミング窓として窓関数を入力信号に乗じて、データ長2Nの窓掛けを行い、その信号wx[n] (n=0,1,…,2N-1)に対してDn次の線形予測分析を行う。なお、1フレーム前の入力信号は、線形予測分析部101が備えるメモリを用いて保持する。
ここでは、例として、次の時刻(フレーム)での入力信号x[n]のシフト幅(ここではNサンプル)と窓掛けを行った入力信号wx[n]のデータ長(ここでは2Nサンプル)の比であるオーバーラップは50%としている。ただし、窓掛けに用いる窓関数は、ハミング窓に限定せず、他の対称窓(ハニング窓、ブラックマン窓、正弦波窓など)あるいは音声符号化処理で用いられるような非対称窓などに適宜変更してよい。またオーバーラップは、50%に限らない。この実施形態では、狭帯域のスペクトル包絡を表現する狭帯域スペクトルパラメータとして、線形予測係数を用いる場合を例にしているが、狭帯域スペクトルパラメータとして、線スペクトル対(LSP)や線スペクトル周波数(LSF)、PARCOR係数、メルケプストラム係数などを用いてもよい。
逆フィルタ102は、線形予測分析部101で得た線形予測係数LPC[f,d]を用いて逆フィルタを形成し、その逆フィルタに線形予測分析部101でデータ長2Nの窓掛けした入力信号wx[n]を入力して、狭帯域音源信号であるデータ長2Nの線形予測残差信号e[n]を得る。
帯域生成判別部103は、まず拡張する帯域において入力信号のピーク成分が欠落しているか否かを判定する。つまり、帯域生成判別部103は、入力信号に基本周波数が欠落しているかどうかを判定する。そして、欠落してないと判定された場合は、低域を広帯域化した信号を利用しないように動作する。一方で、入力信号に基本周波数が欠落していると判定された場合には、低域の広帯域化によって基本周波数が復元されているので、低域を広帯域化した信号を利用するように動作する。帯域生成判別部103は、帯域制限された狭帯域信号である上記線形予測残差信号e[n]が入力され、この信号を低域側について帯域拡張して広帯域化した広帯域音源信号である線形予測残差信号e_wb[n]を生成するとともに、帯域生成するかしないかを示す制御情報info[f]をフレーム単位で生成する。これらの信号および情報は、線形予測合成部105に出力される。
図3に帯域生成判別部103の構成例を示す。この構成例では、帯域生成判別部103は、調波構造生成判定部1031と、ハングオーバ制御部1032とを備える。
調波構造生成判定部1031は、図4に示すように、広帯域化処理部10311と、比較判定部10312とを備える。
広帯域化処理部10311は、逆フィルタ102で得た帯域制限された狭帯域信号であるデータ長2Nの線形予測残差信号e[n]に非線形処理を施して、有声音では基本周波数の倍音ごとに周波数領域でピークを持つ構造(調波構造)となる広帯域信号に変換する。これによって、広帯域化されたデータ長2Nの線形予測残差信号e_wb[n]が得られる。
このような調波構造に変換する非線形処理の一例としては、図5(a)〜(c)に示すような非線形関数を用いた非線形処理がある。図5(a)は半波整流を表す。また、調波構造にする非線形処理としては図5(b)のように全波整流を用いることもできる。図5(c)中のA[n]は、フレーム毎に線形予測残差信号e[n]の時間領域での振幅の絶対値の平均値を算出し、振幅の絶対値の平均値に事前に設定された一定値を加算した値を設定した時間で動的に可変な閾値を示す。これらの処理に限らないが、帯域制限された入力信号が、この帯域制限によって、有声音において、基本周波数が欠落していた場合は基本周波数を生成し、基本周波数が欠落していない場合は基本周波数を生成しないようにするために、少なくとも周期性を残す関数が望ましい。
比較判定部10312は、帯域制限された狭帯域信号であるデータ長2Nの線形予測残差信号e[n]と、広帯域化されたデータ長2Nの線形予測残差信号e_wb[n]とを比較して、広帯域化処理部10311において生成した調波構造を用いるべきか否かを判定し、この判定結果を判定情報info1[f]としてハングオーバ制御部1032に出力する。図6に構成例を示す。
図6に示す比較判定部10312は、周波数領域変換部103121,103122と、パワー算出部103123,103124と、ピーク抽出部103125,103126と、ピーク比較部103127とを備える。
周波数領域変換部103121は、データ長2Nの線形予測残差信号e[n]が入力され、この信号にFFT(Fast Fourier Transform)などの処理を施して周波数領域の信号に変換して、線形予測残差信号e[n]の周波数スペクトルE[ω,f]を算出する。以下の説明では、FFTの次数は2Nとし、ωは周波数ビンの番号を表し、1≦ω≦2Nとする。ただしFFTの次数はこれに限らず、FFTを施す信号に零詰めしてデータ長を2のべき乗にし、FFTの次数を2のべき乗にしてもよい。
同様に、周波数領域変換部103122は、データ長2Nの線形予測残差信号e_wb[n]が入力され、この信号にFFTなどの処理を施して周波数領域の信号に変換して、線形予測残差信号e_wb[n]の周波数スペクトルE_wb[ω,f]を算出する。同様に以下の説明では、FFTの次数は2Nとする。
なお、周波数領域変換部103121および周波数領域変換部103122は、DFT(Discrete Fourier Transform)や離散コサイン変換(DCT: Discrete Cosine Transform)、ウォルシュ・アダマール変換(WHT: Walsh Hadamard Transform)、ハーレ変換(HT: Harr Transform)、スラント変換(SLT: Slant Transform)、カルーネン・レーベ変換(KLT: Karhunen Loeve Transform)などの周波数領域に変換する他の直交変換を代用することも可能である。
パワー算出部103123は、上記周波数スペクトルE[ω,f]が入力され、これに基づいてパワースペクトル|E[ω,f]|2を算出する。
同様に、パワー算出部103124は、上記周波数スペクトルE_wb[ω,f]が入力され、これに基づいてパワースペクトル|E_wb[ω,f]|2を算出する。
ピーク抽出部103125は、上記パワースペクトル|E[ω,f]|2が入力され、これに基づいて、少なくとも低域拡張される周波数帯域(fs_wb_low[Hz]以上かつfs_nb_low[Hz]未満)を含まない所定の探索範囲(fs_nb_low以上かつfs_serch1未満)について、低周波数から高周波数に向けて、パワースペクトル|E[ω,f]|2が極大となり、かつ予め求めておいた全周波数帯域での平均パワースペクトル|E_avr[f]|2以上であるような周波数(ピーク)を探索し、そのピークの周波数ビンとなる周波数ωp[f] [Hz]を抽出する。なお、fs_serch1[Hz]は、有声音の場合の基本周波数を捉えられるように、予め設定される(人間の音声の基本周波数は凡そ56[Hz]〜500[Hz]であるため、例えば500[Hz])か、あるいは動的に設定される。
同様に、ピーク抽出部103126は、上記パワースペクトル|E_wb[ω,f]|2が入力され、これに基づいて、少なくとも低域拡張された周波数帯域(fs_wb_low[Hz]以上かつfs_serch2[Hz]未満)を含む所定の探索範囲(fs_wb_low[Hz]以上かつfs_serch2[Hz]未満)について、低周波数から高周波数に向けて、パワースペクトル|E_wb[ω,f]|2が極大となり、かつ予め求めておいた全周波数帯域での平均パワースペクトル|E_wb_avr[f]|2以上であるような周波数(ピーク)を探索し、そのピークの周波数ビンとなる周波数ωp_wb[f] [Hz]を抽出する。
なお、fs_serch2[Hz]は、有声音の場合の基本周波数を捉えられるように、予め設定されるか、あるいは動的に設定されるものとする。fs_serch2は、fs_serch1と同じ値であってもよい。ここではfs_serch1=fs_serch2=500[Hz]と固定値にする。
ピーク比較部103127は、入力信号に基本周波数が欠落していたかどうかの判定処理を行う。この判定処理では、周波数ωp[f] [Hz]と周波数ωp_wb[f] [Hz]に基づいて、ωp_wb[f] [Hz]がωp[f] [Hz]と比較してfs_nb_low[Hz]より低い周波数帯域に十分にパワーの大きいピークが生成され、かつこのピークの周波数が予め設定した周波数帯域に含まれることを確認することで、帯域制限によって欠落していた基本周波数にピークを有する信号成分が、広帯域化処理部10311による広帯域化処理によって生成されたものと判定する。そして、基本周波数にピークを有する信号成分が生成されたと判定した場合には、「1」となる判定情報info1[f]をハングオーバ制御部1032に出力し、一方、生成されたと判定しない場合には「0」を出力する。広帯域化処理部10311による広帯域化処理によって、上記パワースペクトル|E[ω,f]|2が極大値となる最小の周波数の半音(半分の周波数)が上記パワースペクトル|E_wb[ω,f]|2に生成されるため、この予め設定する周波数帯域の上限値はfs_serch1の半分程度にし、下限値はfs_nb_low[Hz]の半分程度にする。ここでは例えば150〜250[Hz]とする。
結果、入力信号に基本周波数が欠落していた場合、例えば周波数ωp[f]は基本周波数の倍音(2倍の周波数)とすると、ピーク抽出部103125によってfs_nb_low[Hz]以上かつfs_serch1[Hz]未満に周波数ωp[f]を抽出し、広帯域化処理部10311による広帯域化処理によって生成された周波数ωp[f]の半音である周波数ωp_wb[f]がピーク抽出部103126によって抽出され、所定の周波数帯域(凡そfs_nb_low÷2[Hz]以上かつfs_serch1÷2[Hz]未満)に十分にパワーの大きいピークが生成されることから、周波数ωp_wb[f]を欠落した基本周波数と判定し、入力信号に基本周波数が欠落していたと判定する。一方で、入力信号に基本周波数が欠落していない場合、例えば周波数ωp[f]は基本周波数とすると、ピーク抽出部103125によってfs_nb_low[Hz]以上かつfs_serch1[Hz]未満に周波数ωp[f]を抽出し、広帯域化処理部10311による広帯域化処理によって周波数ωp[f]の半音が生成されるが、所定の周波数帯域(凡そfs_nb_low÷2[Hz]以上かつfs_serch1÷2未満[Hz])に十分にパワーの大きいピークが生成さないことから、ピーク抽出部103126によって周波数ωp_wb[f]は抽出されずに、入力信号に基本周波数が欠落していなかったと判定する。
このようにすることで、基本周波数を陽に抽出することなく、少ない計算量で、入力信号に基本周波数が欠落している場合とそうでない場合を判別できるため、それぞれの場合に応じて、原音により近い信号を生成することができる。
すなわち、比較判定部10312は、帯域制限された狭帯域信号であるデータ長2Nの線形予測残差信号e[n]と、広帯域化されたデータ長2Nの線形予測残差信号e_wb[n]とに基づいて、(1)広帯域化処理部10311による広帯域化処理の前後で、異なる周波数のピークが低周波数領域に発生し、(2)それらのピークが全周波数帯域の平均レベルを超え、(3)広帯域化処理後のピークが基本周波数領域に存在することを確認すると、「1」を示す判定情報info1[f]をハングオーバ制御部1032に出力する。
次に、上記構成の比較判定部10312の具体例について説明する。
まず、例えば男性の音声のように、fs_nb_low[Hz]以下に基本周波数があるような声の高さが低く、入力信号として基本周波数が欠落している音声が入力される場合について説明する。図7を用いて、この場合の比較判定部10312の動作を説明する。この場合、ピーク抽出部103125には、図7(a)に示すようなパワースペクトル|E[ω,f]|2が入力される。これに対して、ピーク抽出部103125は、fs_nb_low[Hz]以上かつfs_serch1[Hz]未満の周波数帯域について、低周波数から順にピーク探索を行うことにより、予め求めておいた全周波数帯域での平均パワースペクトル|E_avr[f]|2以上であるようなピークの周波数ビンとなる周波数ωp[f] [Hz]を抽出する。
ピーク抽出部103126には、図7(b)に示すようなパワースペクトル|E_wb[ω,f]|2が入力される。これに対して、ピーク抽出部103126は、fs_wb_low[Hz]以上かつfs_serch2[Hz]未満の周波数帯域について、低周波数から順にピーク探索を行うことにより、予め求めておいた全周波数帯域での平均パワースペクトル|E_wb_avr[f]|2以上であるようなピークの周波数ビンとなる周波数ωp_wb[f] [Hz]を抽出する。
そして、ピーク比較部103127は、ピーク抽出部103125が抽出した周波数ωp[f]と、ピーク抽出部103126が抽出した周波数ωp_wb[f]が一致しないことを確認し、さらに、周波数ωp_wb[f]が前述した予め設定する所定の周波数帯域(例えば150〜250[Hz])に含まれることを確認する。これによりピーク比較部103127は、入力信号に基本周波数が欠落していると判定し、広帯域化処理部10311による広帯域化処理によって図7(c)に示すように上記低周波数帯域に帯域拡張が行われた信号であるデータ長2Nの線形予測残差信号e_wb[n]を利用するように動作するために、「1」を示す判定情報info1[f]をハングオーバ制御部1032に出力する。
次の例として、例えば女性の音声のように、fs_nb_low[Hz]以上に基本周波数があるような声の高さが高く、入力信号として基本周波数が欠落していない音声が入力される場合について説明する。図8を用いて、この場合の比較判定部10312の動作を説明する。この場合、ピーク抽出部103125には、図8(a)に示すようなパワースペクトル|E[ω,f]|2が入力される。これに対して、ピーク抽出部103125は、fs_nb_low[Hz]以上かつfs_serch1[Hz]未満の周波数帯域について、低周波数から順にピーク探索を行うことにより、予め求めておいた全周波数帯域での平均パワースペクトル|E_avr[f]|2以上であるようなピークの周波数ビンとなる周波数ωp[f] [Hz]を抽出する。
ピーク抽出部103126には、図8(b)に示すようなパワースペクトル|E_wb[ω,f]|2が入力される。これに対して、ピーク抽出部103126は、fs_wb_low[Hz]以上かつfs_serch2[Hz]未満の周波数帯域について、低周波数から順にピーク探索を行うが、予め求めておいた全周波数帯域での平均パワースペクトル|E_wb_avr[f]|2以上であるようなピークの周波数ビンとなる周波数ωp[f] [Hz]を抽出する。なお、広帯域化処理部10311による広帯域化処理によってピークの周波数ビンとなる周波数ωp[f]の半音成分が0[Hz]に生成されるが、0[Hz]はピークの周波数ビンとして抽出されない。
このため、ピーク比較部103127は、ピーク抽出部103125が抽出した周波数ωp[f]と、ピーク抽出部103126の出力が一致し、さらにピーク抽出部103126の出力の周波数が基本周波数帯域(例えば150〜250[Hz])に含まれることが確認できない。これによりピーク比較部103127は、入力信号に基本周波数が欠落していないと判定し、広帯域化処理部10311による広帯域化処理によって図8(c)に示すように上記低周波数帯域に帯域拡張が行わない信号であるデータ長2Nの線形予測残差信号e[n]を利用するように動作するために、「0」を示す判定情報info1[f]をハングオーバ制御部1032に出力する。
このように、基本周波数を陽に抽出することなく、少ない計算量で、声の高さが高い音声であるか低い音声であるか、あるいは暗に男性の音声であるか女性の音声であるかを判別できるため、それぞれの場合に応じて、原音により近い信号を生成することができる。
ハングオーバ制御部1032は、調波構造生成判定部1031(比較判定部10312)からの判定情報info1[f]を平準化して、制御情報info[f]として次数・係数設定部1051に出力する。判定情報info1[f]による帯域生成処理の実施/非実施は、結果的に有声音のフレームのみで、フレーム単位で判定しているため、一発話内の無声音などでは判定が切り替わり異音を生じてしまう。従ってこの平準化は、一発話内においてフレーム単位で帯域生成処理の実施/非実施が切り替わらないようにするためのものであって、過去の連続する複数のフレームでそれぞれ得られた制御情報info[f]に基づいて、「1」あるいは「0」を示す制御情報info[f]を出力する。
具体的には、以下のような平準化処理を実施する。
まず、以下のようにフレーム毎に、制御情報info[f]を累積加算したsum_flag[f]を算出する。
info1[f]=1の場合、sum_flag[f] = sum_flag[f] + 1
info1[f]=0の場合、sum_flag[f] = sum_flag[f] - 1
次に、語頭での検出を俊敏にするために、以下のようにsum_flag[f]の下限を制御する。
sum_flag[f] < -3の場合は、sum_flag[f] = -3
そして、フレーム単位で頻繁に切り替わらないよう孤立フラグを以下のように反転させる。
info1[f]=1かつsum_flag[f]<0の場合、info1[f]=0
info1[f]=0かつsum_flag[f]>0の場合、info1[f]=1
このようにハングオーバ制御されたinfo1[f]を、info[f]=info1[f]として出力する。
線形予測合成部105は、図9に示すように、次数・係数設定部1051と、合成処理部1052、フレーム合成処理部1053とを備え、狭帯域スペクトルパラメータである線形予測係数LPC[f,d]と、データ長2Nの線形予測残差信号e_wb[n]および制御情報info[f]に基づいて、データ長Nの第1の広帯域信号y1[n]を生成する。線形予測合成部105は、入力信号に基本周波数が欠落してないと判定された場合(制御情報info[f]=0)は、広帯域化処理部10311による広帯域化処理によって生成された広帯域音源信号であるデータ長2Nの線形予測残差信号e_wb[n]を利用すると原音に忠実な信号を生成できなくなるため、これを利用しないように動作し、一方、入力信号に基本周波数が欠落していると判定された場合(制御情報info[f]=1)は、広帯域化処理部10311による広帯域化処理によって生成された広帯域音源信号であるデータ長2Nの線形予測残差信号e_wb[n]を利用するように動作する。このようにすることで、基本周波数を陽に抽出することなく、少ない計算量で、入力信号に基本周波数が欠落している場合は基本周波数を生成できる処理を行い、入力信号に基本周波数が欠落していない場合は信号を生成しない処理を行うことができ、原音により近い信号を生成することができる。
具体的には、帯域生成判別部103内のハングオーバ制御部1032からinfo[f]=1が通知される場合、次数・係数設定部1051は、狭帯域スペクトルパラメータである線形予測係数LPC[f,d]をそのまま広帯域スペクトルパラメータである線形予測係数LPC1[f,d]とした上で、線形予測係数LPC1[f,d]を用いて線形予測合成フィルタを生成し、合成処理部1052が上記線形予測合成フィルタを用いて、広帯域音源信号である線形予測残差信号e_wb[n]に線形予測合成を行ってデータ長2Nの第1の広帯域信号y1[n]を出力し、フレーム合成処理部1053がデータ長2Nの第1の広帯域信号y1[n]の時間的に前半のデータ(データ長N)と、1フレーム前に線形予測合成部105が出力したデータ長2Nの第1の広帯域信号y1[n]の時間的に後半のデータ(データ長N)とをこれらのオーバーラップ分を考慮して加算して、データ長Nの第1の広帯域信号y1[n]を算出する。
一方、帯域生成判別部103内のハングオーバ制御部1032からinfo[f]=0が通知される場合、次数・係数設定部1051は、全てのdについてLPC1[f,d]=0とした線形予測次数LPC1[f,d]を生成し、広帯域スペクトルパラメータである線形予測係数LPC1[f,d]を用いて線形予測合成フィルタを生成し、合成処理部1052が上記線形予測合成フィルタを用いて、広帯域音源信号である線形予測残差信号e_wb[n]に線形予測合成を行ってデータ長2Nの第1の広帯域信号y1[n]を出力し、フレーム合成処理部1053がデータ長2Nの第1の広帯域信号y1[n]の時間的に前半のデータ(データ長N)と、1フレーム前に線形予測合成部105が出力したデータ長2Nの第1の広帯域信号y1[n]の時間的に後半のデータ(データ長N)とをこれらのオーバーラップ分を考慮して加算して、データ長Nの第1の広帯域信号y1[n]を算出する。あるいは、info[f]=0が通知される場合、合成処理部1052が全てのnについてy1[n]=0とするようにしてもよい。
帯域通過フィルタ108は、データ長Nの広帯域信号y1[n]に対して、拡張したい周波数帯域のみを通過させるフィルタ処理を施し、これにより通過した信号、すなわち拡張したい周波数帯域の信号をデータ長Nの第2の広帯域信号y2[n]として出力する。つまり、上記帯域通過フィルタ処理により、fs_wb_low[Hz]からfs_nb_low[Hz]までの周波数帯域を通過させて、この周波数帯域の信号が第2の広帯域信号y2[n]として得られる。
信号遅延処理部109は、データ長Nの入力信号x[n]を所定の時間(D1サンプル分)だけバッファし、入力信号x[n-D1]として遅延させて出力することで、帯域通過フィルタ108から出力される信号とタイミングを合わせる。すなわち、所定の時間(D1サンプル分)は、線形予測分析部101への入力から帯域通過フィルタ108から出力が得られるまでの処理遅延の時間に相当する。この値は、事前に求めておき、D1を常に固定値として用いる。
信号加算処理部110は、信号遅延処理部109から出力されるデータ長Nの入力信号x[n-D1]と、データ長Nの第2の広帯域信号y2[n]とを、共にサンプリング周波数fs[Hz]のままで加算して、データ長Nの広帯域信号y[n]を出力信号として得る。これにより、入力信号x[n-D1]は、第2の広帯域信号y2[n]分だけ帯域拡張される。
以上のように、上記構成の信号帯域拡張装置では、入力信号に対する帯域拡張処理として低域拡張処理を実施し、この帯域拡張処理の前後の信号を比較して入力信号において基本周波数成分が欠落しているか否かを判定し、入力信号において基本周波数成分が欠落している場合には、帯域拡張処理で生成した信号成分を加算して帯域拡張するようにし、入力信号において基本周波数の信号が欠落していない場合には、帯域拡張処理で生成した信号成分を加算しないようにしている。
したがって、上記構成の信号帯域拡張装置によれば、帯域制限により基本周波数の成分が欠落しているような入力信号について基本周波数成分を付加することができ、基本周波数が欠落していないような入力信号については帯域拡張処理によって生成してしまった基本周波数の半音成分を付加させないことができ、原音により忠実で音質のよい帯域拡張された信号を生成することができる。また帯域生成判別部103における計算量は少ないので、信号処理にかかる演算量を増大することもない。
なお、この実施例では、デコーダ2から帯域拡張処理部3に入力信号x[n]のみが入力される構成となっているが、デコーダ2で得られた情報、例えば線形予測係数LPC[f,d]や線形予測残差信号e[n]などを帯域拡張処理部3で用いるようにしてもよい。このようにすることで、各信号を算出するモジュールが不要となり、計算量を少なくすることができる。
(第1の実施例の変形例1)
また線形予測合成部105に代わって、図10に示すような線形予測合成部105aを用いてもよい。線形予測合成部105aは、無音化処理部1054と、切替スイッチSW1と、合成処理部1052とを備える。
切替スイッチSW1は、帯域生成判別部103によって得られた、帯域生成するかしないかを示す制御情報info[f]にしたがって切替制御され、帯域生成する場合、すなわち制御情報info[f]=1の場合には、帯域生成判別部103(広帯域化処理部10311)で生成された広帯域音源信号である線形予測残差信号e_wb[n]を合成処理部1052に出力し、一方、帯域生成しない場合、すなわち制御情報info[f]=0の場合には、無音化処理部1054で生成された無音信号を広帯域音源信号として合成処理部1052に出力する。
これに対して、合成処理部1052は、上記狭帯域スペクトルパラメータである線形予測係数LPC[f,d]をそのまま広帯域スペクトルパラメータとして、その広帯域スペクトルパラメータに基づいて線形予測合成フィルタを生成し、切替スイッチSW1から出力される広帯域音源信号に対して線形予測合成を行い、データ長2Nの第1の広帯域信号y1[n]を算出する。
このような構成であっても、同様の効果を発揮する。
また、このような構成によれば、線形予測合成部105の合成処理部1052における線形予測合成フィルタは常に動作することになるので、制御情報info[f]が0と1とで切り替わることによって、線形予測係数LPC[f,d]に基づく線形予測合成部105の合成処理部1052における線形予測合成フィルタの内部状態が影響を受けて、出力である第1の広帯域信号y1[n]が不連続になり異音を生じることを防ぐことができる。
(第1の実施例の変形例2)
また線形予測合成部105に代わって、図11に示すような線形予測合成部105cを用いてもよい。線形予測合成部105cは、切替スイッチSW3と、合成処理部1052と、フレーム合成処理部1053とを備える。
切替スイッチSW3は、帯域生成判別部103によって得られた、帯域生成するかしないかを示す制御情報info[f]にしたがって切替制御され、帯域生成する場合、すなわち制御情報info[f]=1の場合には、合成処理部1052で生成されたデータ長2Nの第1の広帯域信号y1[n]をフレーム合成処理部1053に出力し、一方、帯域生成しない場合、すなわち制御情報info[f]=0の場合には、帯域生成判別部103(広帯域化処理部10311)で生成されたデータ長2Nの線形予測残差信号e_wb[n]を第1の広帯域信号y1[n]としてフレーム合成処理部1053に出力する。
これに対して、フレーム合成処理部1053は、上記切替スイッチSW3を介して出力されたデータ長2Nの第1の広帯域信号y1[n]に対してフレーム合成処理を行い、データ長Nの第1の広帯域信号y1[n]を算出する。
このような構成であっても、同様の効果を発揮する。また、このような構成によれば、制御情報info[f]=0の場合には、帯域生成判別部103で生成された線形予測残差信号e_wb[n]を第1の広帯域信号y1[n]としてフレーム合成処理部1053に出力するようにするため、合成処理部1052での処理を行わないようにできるので、第1の実施例よりも小さい計算量で、原音により忠実で音質のよい帯域拡張された信号を生成することができるという効果が得られる。
(第2の実施例)
次に、この発明に係わる帯域拡張処理部3の第2の実施例について説明する。図12は、その構成を示すものである。以下の説明では、上述した第1の実施例と同じ構成については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。
第2の実施例に関わる帯域拡張処理部3では、第1の実施例に関わる帯域拡張処理部3で用いていた線形予測合成部105および信号加算処理部110に代わって、線形予測合成部105bおよび信号加算処理部110bを用いている。
線形予測合成部105bは、狭帯域スペクトルパラメータである線形予測係数LPC[f,d]をそのまま広帯域スペクトルパラメータとし、この広帯域スペクトルパラメータに基づいて線形予測合成フィルタを生成して、広帯域音源信号である線形予測残差信号e_wb[n]に線形予測合成を行い、フレーム合成して、データ長Nの第1の広帯域信号y1[n]を算出する。
信号加算処理部110bは、図13に示すように構成される。すなわち、信号加算処理部110bは、信号加算処理部110と、切替スイッチSW2とを備える。
信号加算処理部110は、信号遅延処理部109から出力されるデータ長Nの入力信号x[n-D1]と、データ長Nの第2の広帯域信号y2[n]とを、共にサンプリング周波数fs[Hz]のままで加算して、データ長Nの広帯域信号y[n]を得る。
切替スイッチSW2は、帯域生成判別部103によって得られた、帯域生成するかしないかを示す制御情報info[f]にしたがって切替制御され、帯域生成する場合、すなわち制御情報info[f]=1の場合には、信号加算処理部110で得た広帯域信号y[n]を出力信号として出力し、一方、帯域生成しない場合、すなわち制御情報info[f]=0の場合には、信号遅延処理部109から出力されるデータ長Nの入力信号x[n-D1]を出力信号として出力する。
このような構成であっても、第1の実施例と同様の効果を発揮する。また、このような構成によれば、制御情報info[f]=0の場合には、信号遅延処理部109から出力されるデータ長Nの入力信号x[n-D1]を出力信号として出力するようにするため、線形予測合成部105b、帯域通過フィルタ108、信号加算処理部110bを処理させなくするようにできるので、第1の実施例よりもさらに小さい計算量で、原音により忠実で音質のよい帯域拡張された信号を生成することができるという効果が得られる。
(第3の実施例)
次に、この発明に係わる帯域拡張処理部3の第3の実施例について説明する。図14は、その構成を示すものである。以下の説明では、前述した実施例と同じ構成については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。
第3の実施例に関わる帯域拡張処理部3では、第1の実施例の帯域拡張処理部3において、線形予測合成部105と帯域通過フィルタ108の間に、ディップ強調処理部106と歪み低減処理部107とを設けるとともに、信号加算処理部110の後段にスペクトル補正部111を設けたものである。
ディップ強調処理部106は、制御情報info[f]=1の場合に、線形予測合成部105で合成されたデータ長2Nの第1の広帯域信号y1[n]に対してパワースペクトルのディップ強調処理を施し、この処理によって得た信号y3[n]を帯域通過フィルタ108に出力する。一方、制御情報info[f]=0の場合は、ディップ強調処理は実施せず、第1の広帯域信号y1[n]をそのまま信号y3[n]として帯域通過フィルタ108へ出力する。
ディップ強調処理部106の動作をより具体的に説明すると、ディップ強調処理部106は、はじめに広帯域化されたデータ長2Nの広帯域信号y1[n]を2N点を用いたFFTなどの処理によって周波数領域に変換して、周波数スペクトルY1[f,ω]を得る。ただしFFTの次数はこれに限らず、FFTを施す信号に零詰めしてデータ長を2のべき乗にし、FFTの次数を2のべき乗にしてもよい。
またディップ強調処理部106は、周波数スペクトルY1[f,ω]からパワースペクトル|Y1[f,ω]|2を算出する。
次に、ディップ強調処理部106は、fs_wb_low≦fs・ω/2N[Hz]≦fs_nb_low[Hz]を満たす拡張する周波数ビンωについて、パワースペクトル|Y1[f,ω]|2の平均値Y_powthr1[f]を算出する。また、ディップ強調処理部106は、拡張する周波数帯域の内で、|Y1[f,ω]|2<Y_powthr1[f]となる周波数帯域でのパワースペクトルの平均値Y_powavr2[f]を算出する。
そして、ディップ強調処理部106は、|Y1[f,ω-1]|2>|Y1[f,ω]|2かつ|Y1[f,ω]|2<|Y1[f,ω+1]|2となる隣接周波数ビンのパワースペクトルよりも小さく極小値となる周波数ビンや、|Y1[f,ω]|2<Y_powavr2[f]を満たすパワースペクトルの小さな周波数ビンを、周波数領域でのパワースペクトルのディップとして抽出する。それから、ディップ強調処理部106は、これらの抽出した周波数ビンに対してディップ強調ゲインG[f,ω]を例えば0と設定するなど1よりも小さくなるようにし、周波数領域でのパワースペクトルのディップとして抽出しない周波数ビンについては、G[f,ω]=1とする。
最後に、ディップ強調処理部106は、周波数スペクトルY1[f,ω]に上記ディップ強調ゲインG[f,ω]を乗じ、この乗算結果をIFFTなどによって時間領域に変換して、ディップ強調したデータ長2Nの信号y3[n]を得る。
スペクトル補正部111は、制御情報info[f]=1の場合に、信号加算処理部110の加算処理から出力されるデータ長Nの広帯域信号y5[n](実施例1における広帯域信号y[n]に相当する信号)に対して、帯域拡張しようとする帯域fs_wb_low[Hz]〜fs_nb_low[Hz]を強調するようにスペクトル補正処理を施し、これによってスペクトルが補正された信号をy[n]として出力する。具体的には、スペクトル補正部111は、データ長Nの広帯域信号y5[n]を2N点を用いたFFTなどの処理によって周波数領域に変換して、周波数スペクトルY5[f,ω]を得る。ただしFFTの次数はこれに限らず、FFTを施す信号に零詰めしてデータ長を2のべき乗にし、FFTの次数を2のべき乗にしてもよい。そして、帯域拡張しようとする帯域fs_wb_low[Hz]〜fs_nb_low[Hz]はG’[f,ω]≧1に、他の帯域の周波数ビンについてはG[f,ω]=1と事前に設定されているスペクトル補正ゲインG’[f,ω]を、周波数スペクトルY5[f,ω]に乗じ、この乗算結果をIFFTなどによって時間領域に変換して、スペクトル補正処理をしたデータ長Nの広帯域信号y[n]を得る。一方、制御情報info[f]=0の場合は、上述したようなスペクトル補正処理は実施せず、信号y5[n]をそのまま信号y[n]として出力する。
このような構成であっても、同様の効果を発揮する。また、このような構成によれば、入力信号に基本周波数が欠落していると判定された場合(制御情報info[f]=1)に、広帯域化処理部10311による広帯域化処理によって生成されたデータ長2Nの線形予測残差信号e_wb[n]を利用して広帯域信号を得て、ディップ強調により拡張する周波数帯域において、線形予測合成前の広帯域化された信号について調波構造の谷が深くなり山と谷がくっきりし、広帯域化処理によって生じた調波構造の歪みをより低減することができ、広帯域化した帯域拡張された信号の音質を向上させることができる。また、スペクトル補正により帯域拡張しようとする帯域fs_wb_low[Hz]〜fs_nb_low[Hz]を強調することができ、広帯域化した帯域拡張された信号の音質を向上させることができる。一方で、入力信号に基本周波数が欠落していないと判定された場合(制御情報info[f]=0)は、ディップ強調処理やスペクトル補正処理を施さなくてよいので計算量を抑えることができる。
なお、図14に示した構成では、ディップ強調処理部106とスペクトル補正部111とを両方設けた構成を示したが、いずれか一方を備える構成であってもよい。
(第4の実施例)
次に、この発明に係わる帯域拡張処理部3の第4の実施例について説明する。図15は、その構成を示すものである。以下の説明では、前述した実施例と同じ構成については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。
第5の実施例に関わる帯域拡張処理部3では、第1の実施例の帯域拡張処理部3において、帯域生成判別部103と線形予測合成部105の間に、パワー制御部115と信号加算処理部116を設けるとともに、有声/無声推定部112と、雑音生成部113と、パワー制御部114とを設けたものである。
有声/無声推定部112は、入力信号x[n]と、線形予測分析部101が線形予測分析した狭帯域スペクトルパラメータであるDn次の線形予測係数LPC[f,d]とを入力として、入力信号x[n]がフレーム単位で「有声音」であるか「無声音」であるかを推定し、その推定情報vuv[f]を出力する。具体的には、有声/無声推定部112は、まず入力信号x[n]からフレーム単位での零交差の数を算出し、それをフレーム長Nで割って平均化した上でマイナスにした負の平均零交差数Zi[f]を算出する。次に、下式(1)に示すように、フレーム単位での入力信号x[n]の2乗和をdB単位で計算し、これをフレームパワーCi[f]とする。
また、下式(2)に示すように、フレーム単位での1次自己相関係数In[f]を計算する。
そして、狭帯域スペクトルパラメータであるDn次の線形予測係数LPC[f,d]に零詰めして256点の信号として256点FFTを行い、周波数スペクトルL[f,ω]を得て、周波数スペクトルL[f,ω]の2乗であるパワースペクトル|L[f,ω]|
2に対して10を底とする対数を取り−10倍することでLPCによるスペクトル包絡をdB単位で算出し、基本周波数が存在すると想定される帯域におけるLPCによるスペクトル包絡の平均値Vi[f]を下式(3)に示すように算出する。なお、例えば基本周波数が存在すると想定される帯域を75[Hz]≦fs・ω/256[Hz]≦325[Hz]とし、つまりVi[f]として2≦ω≦11の平均を求める。
そして有声/無声推定部112は、負の平均零交差数Zi[f]、フレームパワーCi[f]、1次自己相関係数In[f]、LPCスペクトル包絡の平均値Vi[f]に対してそれぞれ適宜重みを付けた線形和をフレーム毎に監視し、所定の閾値を超えた場合に「有声音」であると推定し、所定の閾値を超えない場合に「無声音」と推定し、その推定情報vuv[f]を出力する。
雑音生成部113は、有声/無声推定部112の推定結果である推定情報vuv[f]が「無声音」の場合に、一様にランダムな乱数を生成し、それを信号の振幅値にすることにより、白色化された雑音信号wn[n]をデータ長2N分生成して出力する。
パワー制御部114は、逆フィルタ102から出力された狭帯域音源信号であるデータ長2Nの線形予測残差信号e[n]と有音/無声推定部112から出力された1次自己相関係数In[f]に基づいて、雑音生成部113が生成した雑音信号wn[n]を所定のレベルまで増幅し、信号加算処理部116に出力する。具体的には、まずデータ長2Nの線形予測残差信号e[n]の2乗和を求め、データ長2Nの雑音信号wn[n]の2乗和を求め、線形予測残差信号e[n]の2乗和を雑音信号wn[n]の2乗和で割って増幅ゲインg1[f]を求める。次に、無声音である程レベルを増幅させるために、1次自己相関係数In[f]の絶対値が0に近づけば1に近づき、1次自己相関係数In[f]の絶対値が1に近づけば0に近づく増幅ゲインg2[f]を求める。そして、増幅ゲインg1[f]とg2[f]を雑音信号wn[n]に乗じる。
パワー制御部115は、逆フィルタ102から出力された狭帯域音源信号であるデータ長2Nの線形予測残差信号e[n]と有音/無声推定部112から出力された1次自己相関係数In[f]に基づいて、帯域生成判別部103(広帯域化処理部10311)で得られた広帯域化されたデータ長2Nの線形予測残差信号e_wb[n]を所定のレベルまで増幅し、信号加算処理部116に出力する。具体的には、まずデータ長2Nの線形予測残差信号e[n]の2乗和を求め、データ長2Nの線形予測残差信号e_wb[n]の2乗和を求め、線形予測残差信号e[n]の2乗和を線形予測残差信号e_wb[n]の2乗和で割って増幅ゲインg3[f]を求める。次に、有声音である程レベルを増幅させるために、1次自己相関係数In[f]の絶対値が1に近づけば1に近づき、1次自己相関係数In[f]の絶対値が0に近づけば0に近づく増幅ゲインg4[f]を求める。そして、増幅ゲインg3[f]とg4[f]を線形予測残差信号e_wb[n]に乗じる。
信号加算処理部116は、パワー制御部114から出力される雑音信号wn[n]と、パワー制御部115から出力される線形予測残差信号e_wb[n]とを加算して、広帯域音源信号として、線形予測合成部105に出力する。
線形予測合成部105は、狭帯域スペクトルパラメータである線形予測係数LPC[f,d]をそのまま広帯域スペクトルパラメータとして、広帯域スペクトルパラメータと、信号加算処理部116から出力される広帯域音源信号と、制御情報info[f]とに基づいて、データ長Nの第1の広帯域信号y1[n]を合成する。
このような構成であっても、同様の効果を発揮する。また、このような構成によれば、入力信号に基本周波数が欠落していると判定された場合(制御情報info[f]=1)に、広帯域化処理部10311による広帯域化処理によって生成されたデータ長2Nの線形予測残差信号e_wb[n]を利用して広帯域信号を得て、有音/無声推定部112により有声音と無声音でそれぞれに適した信号を生成することができ、広帯域化して帯域拡張された信号を原音に近づけて、音質を向上させることができる。一方で、入力信号に基本周波数が欠落していないと判定された場合(制御情報info[f]=0)は、有音/無声推定部112、雑音生成部113、パワー制御部114、パワー制御部115、信号加算処理部116を動作させなくてよいので計算量を抑えることができる。
(第5の実施例)
次に、この発明に係わる帯域拡張処理部3の第5の実施例について説明する。第5の実施例は、第1の実施例と比較して、拡張する帯域において入力信号のピーク成分が欠落しているか否か、つまり帯域制限によって基本周波数の信号成分が欠落した入力信号か否かを判断する判断方法が異なる。第1の実施例では、帯域拡張前の線形予測残差信号のパワースペクトルと帯域拡張後の線形予測残差信号のパワースペクトルとを比較して帯域制限によって基本周波数の信号成分が欠落した入力信号か否かを判断していたが、第5の実施例では、帯域拡張前の線形予測残差信号のパワースペクトルを用いて帯域制限によって基本周波数の信号成分が欠落した入力信号か否かを判断する。
図16は、この発明に係わる帯域拡張処理部3の第5の実施例の構成を示すものである。以下の説明では、前述した実施例と同じ構成については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。この図に示すように、第5の実施例の帯域拡張処理部3は、線形予測分析部101と、逆フィルタ102と、帯域生成判別部203と、広帯域化処理部104と、線形予測合成部105と、帯域通過フィルタ108と、信号遅延処理部109と、信号加算処理部110bとを備える。
線形予測分析部101は、狭帯域に帯域制限された入力信号x[n]が入力され、これを線形予測分析して、狭帯域スペクトルパラメータとしてDn次の線形予測係数LPC[f,d](d=1,…,Dn)を得る。
逆フィルタ102は、線形予測分析部101で得た狭帯域スペクトルパラメータである線形予測係数LPC[f,d]を用いて逆フィルタを形成し、その逆フィルタに線形予測分析部101で窓掛けしたデータ長2Nの入力信号wx[n]を入力し、狭帯域音源信号としてデータ長2Nの線形予測残差信号e[n]を得る。この信号e[n]は、狭帯域信号である。
帯域生成判別部203は、拡張する帯域において入力信号のピーク成分が欠落しているか否かを判定する。具体的には、狭帯域音源信号である上記線形予測残差信号e[n]に基づいて、調波構造を生成するべきか否かを判定し、この判定結果を制御情報info[f]として出力する。帯域生成判別部203は、図17に示すように、調波構造生成判定部2031と、ハングオーバ制御部2032とを備える。調波構造生成判定部2031は、ピーク抽出部20311と、生成判定部20312とを備える。また、図18に示すように、ピーク抽出部20311は、周波数領域変換部203111と、第1ピーク抽出部203112と、第2ピーク抽出部203113とを備える。
ピーク抽出部20311は、狭帯域信号e[n]のパワースペクトルを求め、これより所定のレベル以上のパワーを有する周波数(ピーク)を、低周波数から順に高周波数に向けて、少なくとも2つ検出する。
周波数領域変換部203111は、データ長2Nの線形予測残差信号e[n]が入力され、この信号に例えば2N点によるFFT(Fast Fourier Transform)などの処理を施して周波数領域の信号に変換して、線形予測残差信号e[n]の周波数スペクトルE[f,ω]を算出し、パワースペクトル|E[f,ω]|2を算出する。以下の説明では、ωは周波数ビンの番号を表し、1≦ω≦2Nとする。
第1ピーク抽出部203112は、パワースペクトル|E[f,ω]|2に基づいて、予め設定された探索範囲の周波数帯域から、パワースペクトル|E[f,ω]|2が極大値となり、かつ所定のレベル以上のパワーを有するような周波数ωp1[f] [Hz]を第1周波数(ピーク)として検出する。
同様に、第2ピーク抽出部203113は、パワースペクトル|E[f,ω]|2に基づいて、予め設定された探索範囲の周波数帯域から、パワースペクトル|E[f,ω]|2が極大値となり、かつ所定のレベル以上のパワーを有するような周波数ωp2[f] [Hz]を第2周波数(ピーク)として検出する。なお、第2ピーク抽出部203113は、第1ピーク抽出部203112の探索範囲に連続し、この探索範囲よりも高い周波数帯域について探索を行うことで、第1ピーク抽出部203112とは異なるピークを検出する。
生成判定部20312は、ピーク抽出部20311が検出した2つのピークである第1周波数ωp1[f] [Hz]と第2周波数ωp2[f] [Hz]の周波数差に基づいて、拡張しようとする低域において入力信号x[n]の基本周波数が欠落しているか否かを判断することで、広帯域化処理部104によって生成された線形予測残差信号e_wb[n]を利用して広帯域信号を生成するべきか否かを判定し、この判定結果を判定情報info1[f]として出力する。具体的には、生成判定部20312は、第1ピーク抽出部203112が検出した第1周波数ωp1[f] [Hz]と、第2ピーク抽出部203113が検出した第2周波数ωp2[f] [Hz]との差分ωp2[f]−ωp1[f] [Hz]を求め、上記第1周波数ωp1[f] [Hz]から上記差分だけ引いた周波数であるωp1[f]−(ωp2[f]−ωp1[f])[Hz]が、拡張しようとする低域の帯域fs_wb_low[Hz]〜fs_nb_low[Hz]に収まるか否かで、入力信号x[n]において基本周波数が欠落しているか否かを判断する。
例えば、図19(a)に示すように、第1周波数ωp1[f] [Hz]と第2周波数ωp2[f] [Hz]が求められた場合には、周波数ωp1[f]−(ωp2[f]−ωp1[f])[Hz]は、拡張しようとする低域の帯域fs_wb_low[Hz]〜fs_nb_low[Hz]に収まるので、入力信号x[n]において基本周波数が欠落していると判断し、判定情報info1[f]=1を出力する。一方、図19(b)に示すように、第1周波数ωp1[f] [Hz]と第2周波数ωp2[f] [Hz]が求められた場合には、周波数ωp1[f]−(ωp2[f]−ωp1[f])[Hz]は、拡張しようとする低域の帯域fs_wb_low[Hz]〜fs_nb_low[Hz]に収まらないので、入力信号x[n]において基本周波数が欠落していないと判断し、判定情報info1[f]=0を出力する。
ハングオーバ制御部2032は、生成判定部20312からの判定情報info1[f]を平準化して、制御情報info[f]として出力する。判定情報info1[f]による帯域生成処理の実施/非実施は、結果的に有声音のフレームのみで、フレーム単位で判定しているため、一発話内の無声音などでは判定が切り替わり異音を生じてしまう。従ってこの平準化は、一発話内においてフレーム単位で帯域生成処理の実施/非実施が切り替わらないようにするためのものであって、過去の連続する複数のフレームでそれぞれ得られた制御情報info[f]に基づいて、「1」あるいは「0」を示す制御情報info[f]を出力する。
広帯域化処理部104は、制御情報info[f]=1の場合、逆フィルタ102で得た帯域制限された狭帯域音源信号であるデータ長2Nの線形予測残差信号e[n]に非線形処理を施して、有声音では基本周波数の倍音ごとに周波数領域でピークを持つ構造(調波構造)となる広帯域信号に変換し、広帯域音源信号として、広帯域化されたデータ長2Nの線形予測残差信号e_wb[n]を得て出力する。一方、広帯域化処理部104は、制御情報info[f]=0の場合には、非線形処理は行わずに、線形予測残差信号e[n]を広帯域音源信号である線形予測残差信号e_wb[n]としてそのまま出力する。
線形予測合成部105bは、第1の実施例で説明したように、狭帯域スペクトルパラメータである線形予測係数LPC[f,d]をそのまま広帯域スペクトルパラメータとし、広帯域スペクトルパラメータと広帯域音源信号であるデータ長2Nの線形予測残差信号e_wb[n]および制御情報info[f]に基づいて、データ長Nの第1の広帯域信号y1[n]を合成する。
このような構成であっても、同様の効果を発揮する。また、このような構成によれば、広帯域化処理部104によって広帯域化された線形予測残差信号e_wb[n]を生成し解析することなく、線形予測残差信号e[n]を解析するようにしているので、さらに小さい計算量で、原音により忠実で音質のよい帯域拡張された信号を生成することができるという効果が得られる。
また、実施例1と同様に、線形予測合成部105bに代わって、図9に示すような線形予測合成部105を用いてもよいし、図10に示すような線形予測合成部105aを用いてもよいし、図11に示すような線形予測合成部105cを用いてもよい。また、実施例2と同様に、信号加算処理部110に代わって、図13に示すような信号加算処理部110bを用いてもよい。これらのような構成であっても、第5の実施例と同様の効果を発揮する。また、これらのような構成によれば、第5の実施例よりもさらに小さい計算量で、原音により忠実で音質のよい帯域拡張された信号を生成することができるという効果が得られる。
(第6の実施例)
次に、この発明に係わる帯域拡張処理部3の第6の実施例について説明する。図20は、その構成を示すものであって、前述した実施例の帯域拡張処理部3は、低域拡張を行うものであったが、高域についても拡張を行う機能を備える。以下の説明では、上述した実施例と同じ構成については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。
第6の実施例では、帯域拡張処理部3の入力信号x[n] (n=0,1,…,N-1)は、fs_nb_low[Hz]からfs_nb_high[Hz]までに帯域制限されているものとし、帯域拡張処理部3の帯域拡張処理によってサンプリング周波数fs[Hz]からより高いサンプリング周波数fs’[Hz]に変更され、fs_wb_low[Hz]からfs_wb_high[Hz]までの帯域に拡張されるものとする。ただし、fs_wb_low ≦ fs_nb_low < fs_nb_high < fs/2 ≦ fs_wb_high < fs’/2 を満たすものとする。
また以下の説明では、低域拡張と高域拡張を例に挙げるため、fs_wb_low < fs_nb_low、fs_nb_high < fs_wb_highとして説明し、例えば、fs=8000[Hz]、fs’=16000[Hz]、fs_nb_low=340[Hz]、fs_nb_high=3950[Hz]、fs_wb_low=50[Hz]、fs_wb_high=7950[Hz]とする。帯域制限の周波数帯域やサンプリング周波数については、これに限らない。
図20に示すように、第6の実施例の帯域拡張処理部3は、線形予測分析部101と、逆フィルタ102と、帯域生成判別部103と、線形予測合成部105と、帯域通過フィルタ108と、アップサンプリング部500と、高域拡張処理部510と、アップサンプリング部530と、信号遅延処理部109と、信号加算処理部110dとを備える。これらは、1つのプロセッサと、図示しない記憶媒体に記録されたソフトウェアによって実現することも可能である。
線形予測分析部101は、狭帯域に帯域制限された入力信号x[n]が入力され、これを線形予測分析して、狭帯域スペクトルパラメータとしてDn次の線形予測係数LPC[f,d](d=1,…,Dn)を得る。
逆フィルタ102は、線形予測分析部101で得た狭帯域スペクトルパラメータである線形予測係数LPC[f,d]を用いて逆フィルタを形成し、その逆フィルタに線形予測分析部101で窓掛けしたデータ長2Nの入力信号wx[n]を入力して、狭帯域音源信号としてデータ長2Nの線形予測残差信号e[n]を得る。
帯域生成判別部103は、帯域制限された狭帯域音源信号である上記線形予測残差信号e[n]が入力され、この信号を帯域拡張して広帯域音源信号である線形予測残差信号e_wb[n]を生成するとともに、帯域生成するかしないかを示す制御情報info[f]をフレーム単位で生成する。これらの信号および情報は、線形予測合成部105に出力される。具体的な構成例は、第1の実施例において、図3乃至図6を用いて説明したものと同様である。
線形予測合成部105は、狭帯域スペクトルパラメータである線形予測係数LPC[f,d]をそのまま広帯域スペクトルパラメータとし、その広帯域スペクトルパラメータと広帯域音源信号であるデータ長2Nの線形予測残差信号e_wb[n]および制御情報info[f]に基づいて、データ長Nの第1の広帯域信号y1[n]を生成する。具体的な構成例は、第1の実施例において、図9を用いて説明したものと同様である。
帯域通過フィルタ108は、データ長Nの広帯域信号y1[n]に対して、拡張した周波数帯域のみを通過させるフィルタ処理を施し、これにより通過した信号、すなわち拡張した周波数帯域の信号をデータ長Nの第2の広帯域信号y2[n]として出力する。つまり、上記フィルタ処理により、fs_wb_low[Hz]からfs_nb_low[Hz]までの周波数帯域を通過させて、この周波数帯域の信号が第2の広帯域信号y2[n]として得られる。
アップサンプリング部500は、上記第2の広帯域信号y2[n]を、サンプリング周波数fs[Hz]からfs’[Hz]にアップサンプリングし、エイリアシングを除去し、y2_wb[n]として出力する。
高域拡張処理部510は、入力信号x[n]に高域拡張処理を施して、入力信号x[n]の周波数帯域よりも高い周波数帯域を拡張した広帯域信号y_hi_wb[n]を生成する。高域拡張処理部510は、例えば図21に示すように構成される。
線形予測分析部518は、線形予測分析部101と同様の処理を実施するものであって、狭帯域に帯域制限された入力信号x[n]が入力され、これを線形予測分析して、第2の狭帯域スペクトルパラメータとしてDnb次の線形予測係数LPC2[f,d](d=1,…,Dnb)を得る。ここでは例えばDnb=10とする。勿論、Dnb=DnとしLPC2[f,d]=LPC[f,d]として、前記狭帯域スペクトルパラメータと第2の狭帯域スペクトルパラメータを同じにして、線形予測分析部101と処理を共通化させてもよい。
逆フィルタ519は、逆フィルタ102と同様の処理を実施するものであって、線形予測分析部518で得た第2の狭帯域スペクトルパラメータである線形予測係数LPC2[f,d]を用いて逆フィルタを形成し、その逆フィルタに線形予測分析部518で窓掛けしたデータ長2Nの入力信号wx[n]を入力して、第2の狭帯域音源信号としてデータ長2Nの線形予測残差信号e2[n]を得る。勿論、Dnb=DnとしLPC2[f,d]=LPC[f,d]として、逆フィルタ102と処理を共通化させ、前記狭帯域音源信号と第2の狭帯域音源信号を同じにしてもよい。
スイッチSW4およびスイッチSW5は、帯域生成判別部103によって得られた、帯域生成するかしないかを示す制御情報info[f]にしたがって切替制御され、帯域生成する場合、すなわち制御情報info[f]=1の場合には、逆フィルタ519で得たデータ長2Nの線形予測残差信号e2[n]を帯域通過フィルタ520に出力し、一方、帯域生成しない場合、すなわち制御情報info[f]=0の場合には、逆フィルタ519で得たデータ長2Nの線形予測残差信号e2[n]をそのままアップサンプリング部521に出力する。
帯域通過フィルタ520は、逆フィルタ519の出力である線形予測残差信号e2[n]から広帯域化に用いる周波数帯域を通過させるためのフィルタであって、帯域制限によって劣化した低域の影響を除去するために、少なくとも低域を低減する特性を有する。ここでは例えば1000[Hz]〜3400[Hz]を通過させる帯域通過フィルタとする。具体的には、逆フィルタ519で得たデータ長2Nの線形予測残差信号e2[n]を入力として、帯域通過フィルタ処理し、スイッチSW5を介して、帯域通過処理した線形予測残差信号をe2[n]としてアップサンプリング部521に出力する。
アップサンプリング部521は、アップサンプリング部500と同様の処理を実施するものであって、スイッチSW5を介して出力された信号e2[n]を、サンプリング周波数fs[Hz]からfs’[Hz]にアップサンプリングし、エイリアシングを除去し、データ長4Nの信号e2_us[n]として出力する。
広帯域化処理部522は、広帯域化処理部10311と同様の処理を実施するものであって、アップサンプリング部521から出力されたデータ長4Nの信号e2_us[n]に非線形処理を施して、有声音では基本周波数の倍音ごとに周波数領域でピークを持つ構造(調波構造)となる広帯域信号に変換する。これによって、広帯域化されたデータ長4Nの線形予測残差信号e2_wb[n]が得られる。
雑音生成部513は、有声/無声推定部112の推定結果である推定情報vuv[f]が「無声音」の場合に、一様にランダムな乱数を生成し、それを信号の振幅値にすることにより、白色化された雑音信号wn[n]をデータ長4N分生成して出力する。
パワー制御部514は、アップサンプリング部521から出力されたデータ長4Nの信号e2_us[n]と有音/無声推定部112から出力された1次自己相関係数In[f]に基づいて、雑音生成部513が生成した雑音信号wn[n]を所定のレベルまで増幅し、信号加算処理部516に出力する。具体的には、まずデータ長4Nの信号e2_us[n]の2乗和を求め、データ長4Nの雑音信号wn[n]の2乗和を求め、信号e2_us[n]の2乗和を雑音信号wn[n]の2乗和で割って増幅ゲインg1[f]を求める。次に、無声音である程レベルを増幅させるために、1次自己相関係数In[f]の絶対値が0に近づけば1に近づき、1次自己相関係数In[f]の絶対値が1に近づけば0に近づく増幅ゲインg2[f]を求める。そして、増幅ゲインg1[f]とg2[f]を雑音信号wn[n]に乗じる。
パワー制御部515は、アップサンプリング部521から出力されたデータ長4Nの信号e2_us[n]と有音/無声推定部112から出力された1次自己相関係数In[f]に基づいて、広帯域化処理部522で得られた広帯域化されたデータ長4Nの信号e2_wb[n]を所定のレベルまで増幅し、信号加算処理部516に出力する。具体的には、まずデータ長4Nの信号e2_us[n]の2乗和を求め、データ長4Nの信号e2_wb[n]の2乗和を求め、信号e2_us[n]の2乗和を信号e2_wb[n]の2乗和で割って増幅ゲインg3[f]を求める。次に、有声音である程レベルを増幅させるために、1次自己相関係数In[f]の絶対値が1に近づけば1に近づき、1次自己相関係数In[f]の絶対値が0に近づけば0に近づく増幅ゲインg4[f]を求める。そして、増幅ゲインg3[f]とg4[f]を信号e2_wb[n]に乗じる。
信号加算処理部516は、パワー制御部514から出力される雑音信号wn[n]と、パワー制御部515から出力される信号e2_wb[n]とを加算して、データ長4Nの信号e3_wb[n]を広帯域音源信号として信号合成部524に出力する。
スペクトル包絡広帯域化処理部523は、狭帯域信号のスペクトル包絡を表す狭帯域スペクトルパラメータと広帯域信号のスペクトル包絡を表す広帯域スペクトルパラメータとの対応を事前にモデル化しておき、第2の狭帯域スペクトルパラメータ(ここでは線形予測係数LPC2[f,d])を取得し、このスペクトルパラメータを用いて、モデル化しておいた狭帯域スペクトルパラメータと広帯域スペクトルパラメータとの対応から第2の広帯域スペクトルパラメータ(ここでは線スペクトル周波数LSF_WB[f,d])を求める処理を行う。狭帯域のスペクトル包絡を表すスペクトルパラメータから広帯域のスペクトル包絡を表すスペクトルパラメータに変換する手法としては、ベクトル量子化(VQ)による符号帳を用いる手法(例えば、吉田, 阿部, ”コードブックマッピングによる狭帯域音声から広帯域音声の生成法”, 信学論(D-II), vol.J78-D-II, No.3, pp.391-399, Mar. 1995.)や、GMMを用いる手法(例えば、K. Y. Park, H. S. Kim, ”Narrowband to Wideband Conversion of Speech using GMM based Transformation”, Proc. ICASSP2000, vol.3, pp.1843-1846, Jun. 2000.)や、ベクトル量子化(VQ)による符号帳とHMMを用いる手法(例えば、G. Chen, V. Parsa, ”HMM-based Frequency Bandwidth Extension for Speech Enhancement using Line Spectral Frequencies”, Proc. ICASSP2004, vol.1, pp.709-712, 2004.)や、HMMを用いる手法(例えば、S. Yao, C. F. Chan, ”Block-based Bandwidth Extension of Narrowband Speech Signal by using CDHMM”, Proc. ICASSP2005, vol.1, pp.793-796, 2005.)などがあり、どれを用いても構わない。ここでは、例えばGMM(Gaussian mixture model)を利用する手法を用いるとして、線形予測分析部518で得た第2の狭帯域スペクトルパラメータである線形予測係数LPC2[f,d]を、fs_wb_low[Hz]からfs_wb_high[Hz]までに対応する第2の広帯域スペクトルパラメータであるDwb次の広帯域の線スペクトル周波数LSF_WB[f,d](d=1,…,Dwb)に、事前に線形予測係数LPC2[f,d]と線スペクトル周波数LSF_WB[f,d]の対応をモデル化しておいたGMMを利用して変換する。ここでは例えばDwb=18とする。なお、狭帯域スペクトルパラメータであるスペクトル包絡を表す特徴量データは、線形予測係数限らず、PARCOR係数や反射係数、線スペクトル周波数、ケプストラム係数、メルケプストラム係数などでも構わない。同様に、広帯域のスペクトルパラメータであるスペクトル包絡を表す特徴量データは、線スペクトル周波数に限らず、例えばLPC係数、PARCOR係数や反射係数、ケプストラム係数、メルケプストラム係数などでも構わない。
スペクトル包絡広帯域化処理部523のより具体的な構成例を図22に示す。スペクトル包絡広帯域化処理部307は、線スペクトル周波数変換部523aと、GMM格納部523bと、スペクトル包絡生成部523cとを備える。
線スペクトル周波数変換部523aは、第2の狭帯域スペクトルパラメータである線形予測係数LPC2[f,d](d=1,…,Dnb)を、同じ次数の線スペクトル周波数(LSF)であるLSF_NB[f,d](d=1,…,Dnb)に変換して、スペクトル包絡生成部523cに出力する。
GMM格納部523bは、事前に学習された混合数Q(ここではQ=64)のGMM λq={wq,μq,Σq}(q=1,…,Q)を格納している。なお、wqはq番目の混合正規分布の混合重みを示し、μqはq番目の混合正規分布の平均ベクトル、Σqはq次数目の混合正規分布の共分散行列(対角共分散行列または全共分散行列)を表している。なお、平均ベクトルμqと共分散行列Σqの成分の数である次数は、Dnb+Dwbである。
スペクトル包絡生成部307cは、線スペクトル周波数LSF_NB[f,d](d=1,…,Dnb)を入力として、GMM格納部523bからGMM λ
q={w
i,μ
q,Σ
q}(q=1,…,Q)を読み出して、最小平均2乗推定(MMSE:Minimam Mean Square Error)に従って、下式(4)に示すように、広帯域信号のスペクトル包絡を表す第2の広帯域スペクトルパラメータとして線スペクトル周波数LSF_WB[f,d](d=1,…,Dwb)を算出して出力する。下式(4)は、次元(d=1,…,Dnb+Dwb)方向のベクトルとして記載している。また、平均ベクトルμ
q(d=1,…,Dnb+Dwb)は次元方向で、μ
q N(d=1,…,Dnb)とμ
q W(d=Dnb,…,Dnb+Dwb)に分割し、(Dn+Dw)×(Dn+Dw)行列である共分散行列Σ
qも以下のように、Dn×Dn行列であるΣ
q NNとDn×Dw行列であるΣ
q NWとDw×Dn行列であるΣ
q WNとDw×Dw行列であるΣ
q WWとに分割する。
事前のGMMの学習生成方法について、フローチャートを図23に示し、説明する。
GMMの生成に用いる信号は、サンプリング周波数fs’[Hz]でfs_wb_low[Hz]からfs_wb_high[Hz]までに対応する理想的な広帯域信号(原音)とし、なるべく多数の音声信号を用いた信号群を用意する。この信号群は、多数の話者、様々な音量、様々な発話内容であることが望ましい。以下では、GMMの生成に用いる理想的な広帯域信号の信号群をまとめて1つにして、広帯域信号データwb[n]と表記する。また、nは時刻(サンプル)を表す。
まず、広帯域信号データwb[n]を入力として、ダウンサンプリングフィルタによってサンプリング周波数fs[Hz]にダウンサンプリングし、fs_nb_low[Hz]からfs_nb_high[Hz]までの狭帯域に帯域制限された狭帯域信号データnb[n]を得る(ステップS101)。このようにして、入力信号x[n]と同じように帯域制限された信号群を生成する。なお、図示しないが、上記ダウンサンプリングフィルタや帯域制限処理でアルゴリズム遅延が生じる場合には、狭帯域信号データnb[n]を広帯域信号データwb[n]と同期を合わせる処理を行う。
次に、上記狭帯域信号データnb[n]からフレームf単位で所定の次数の狭帯域のスペクトル包絡を表す特徴量データを抽出する(ステップS102)。ステップS102ではまず、狭帯域信号データnb[n]からフレーム毎に線形予測分析を行い、Dnb次の線形予測係数LPC_NB[f,d](d=1,…,Dnb)を得る(ステップS102A)。次にDnb次の線形予測係数LPC_NB[f,d]から同じ次数の線スペクトル周波数LSF_NB[f,d](d=1,…,Dnb)に変換する。(ステップS102B)。
一方、上記に並行して、広帯域信号データwb[n]からフレームf単位で所定の次数の広帯域のスペクトル包絡を表す特徴量データを抽出する(ステップS103)。ステップS103ではまず、広帯域信号データwb[n]からフレーム毎に線形予測分析を行い、Dwb次の線形予測係数LPC_WB[f,d](d=1,…,Dwb)を得る(ステップS103A)。次にDwb次の線形予測係数LPC_WB[f,d]から同じ次数の線スペクトル周波数LSF_WB[f,d](d=1,…,Dwb)に変換する。(ステップS103B)。
次に、完全に時間的に同期が取れた狭帯域のスペクトル包絡を表す特徴量データである線スペクトル周波数LSF_NB[f,d](d=1,…,Dnb)と、広帯域のスペクトル包絡を表す特徴量データである線スペクトル周波数LSF_WB[f,d](d=1,…,Dwb)の2つの特徴量データをフレーム単位で次数方向(次元方向)に連結して、次数Dnb+Dwbの連結特徴量データP[f,d](d=1,…,Dnb+Dwb)を生成する(ステップS104)。
最後に、上記連結特徴量データP[f,d]から混合数Q=1の初期GMMを生成し、各GMMの平均ベクトルをわずかにずらして2倍の数のGMMを生成することで混合数Qを増やす処理と、上記連結特徴量データP[f,d]を用いてEMアルゴリズムにより収束するまでGMMの尤度最大化学習を行う処理とを交互に繰り返し行い、混合数Q(ここではQ=64)のGMM λq={wq,μq,Σq}(q=1,…,Q)を生成する(ステップS105)。EMアルゴリズムについては、D.A.Reynols and R.C.Rose,“Robust text-independent speaker identification using Gaussian mixture models”,IEEE Trans. Speech and Audio Processing, Vol.3, no.1, pp.72-83, Jan.1995. などの文献に詳細な記述がある。
信号合成部524は、スペクトル包絡広帯域化処理部523で得た上記第2の広帯域スペクトルパラメータである線スペクトル周波数LSF_WB[f,d](d=1,…,Dwb)に基づいて線スペクトル対LSP_WB[f,d](d=1,…,Dwb)を生成して、信号加算処理部516で得た広帯域音源信号であるデータ長4Nの線形予測残差信号e3_wb[n]にLSP合成フィルタ処理を行い、データ長4Nの広帯域信号y1[n]を算出し、データ長4Nの広帯域信号y1[n]の時間的に前半のデータ(データ長2N)と、1フレーム前に信号合成部524が出力したデータ長4Nの広帯域信号y1[n]の時間的に後半のデータ(データ長2N)とをこれらのオーバーラップ分を考慮して加算して、データ長2Nの広帯域信号y1[n]を算出する。
アップサンプリング部530は、データ長Nの入力信号x[n]を、サンプリング周波数fs[Hz]からfs’[Hz]にアップサンプリングし、エイリアシングを除去し、データ長2Nのx_wb[n]として出力する。
信号遅延処理部109は、データ長2Nの入力信号x_wb[n]を所定の時間(D2サンプル分)だけバッファし、アップサンプリングされた入力信号x_wb[n-D2]として遅延させて出力することで、高域拡張処理部510から出力される信号y_hi_wb[n]と、アップサンプリング部500から出力される信号y2_wb[n]とタイミングを合わせる。すなわち、所定の時間(D2サンプル分)は、線形予測分析部101への入力からアップサンプリング部500から出力が得られるまでの処理遅延の時間からアップサンプリング部530での処理遅延の時間を引いた分の時間D3と、高域拡張処理部510の処理遅延の時間からアップサンプリング部530での処理遅延の時間を引いた分の時間D4の大きな方に相当する。ここでは、D3<D4として、D2=D4としており、アップサンプリング部500から出力される信号y2_wb[n]についても、y2_wb[n-D2+D3]として、別途遅延させておく。この値は、事前に求めておき、D2を常に固定値として用いる。
信号加算処理部110dは、信号遅延処理部109から出力されるアップサンプリングされたデータ長2Nの入力信号x_wb[n-D2]と、アップサンプリング部500から出力されるデータ長2Nの第2の広帯域信号y2_wb[n-D2+D3]と、高域拡張処理部510から出力されるデータ長2Nの広帯域信号y_hi_wb[n]とを、サンプリング周波数fs’[Hz]で加算して、データ長2Nの広帯域信号y[n]を出力信号として得る。これにより、アップサンプリングされた入力信号x[n-D2]は、広帯域信号y_hi_wb[n]と第2の広帯域信号y2_wb[n]の分だけ帯域拡張される。
このように構成した帯域拡張処理部3を信号帯域拡張装置に適用すれば、入力信号に対する低域拡張処理を実施し、この帯域拡張処理の前後の信号を比較して、帯域制限により入力信号における基本周波数の成分が欠落しているか否かを判定し、入力信号において基本周波数の信号が欠落している場合には、帯域拡張処理で生成した低域信号成分と高域信号成分を加算して帯域拡張するようにし、入力信号において基本周波数の信号が欠落していない場合には、帯域拡張処理で生成した高域信号成分のみを加算して帯域拡張するようにしている。
したがって、上記構成の信号帯域拡張装置によれば、帯域制限により基本周波数が欠落しているような入力信号について基本周波数成分と高域信号成分を付加することができ、帯域制限により基本周波数が欠落していないような入力信号については高域信号成分のみを付加させ、帯域拡張処理によって生成してしまった基本周波数の半音成分を付加させないことができ、原音により忠実で音質のよい帯域拡張された信号を生成することができる。
また、このように構成した帯域拡張処理部3を信号帯域拡張装置に適用すれば、帯域制限により入力信号における基本周波数の成分が欠落しているか否かを判定し、入力信号において基本周波数の信号が欠落している場合には、帯域制限によって劣化した低域の影響を除去するために、帯域通過フィルタによって少なくとも低域を減衰させた信号に基づき広帯域信号を生成するようにしているため、原音により忠実で音質のよい帯域拡張された信号を生成することができる。
なお、この実施例では帯域生成判別部103によって制御情報info[f]と広帯域化された線形予測残差信号e_wb[n]を得る構成となっているが、図17に示した帯域生成判別部203によって制御情報info[f]を得て図16に示した広帯域処理部104によって広帯域化された線形予測残差信号e_wb[n]を得る構成にしてもよい。このような構成であっても、第6の実施例と同様の効果を発揮する。また、このような構成によれば、第6の実施例よりもさらに小さい計算量で、原音により忠実で音質のよい帯域拡張された信号を生成することができる。
(第6の実施例の変形1)
また、SW4とSW5を除き、帯域通過フィルタ520に代わって、図24に示すようにフィルタ設定部511と帯域通過フィルタ520aを用いてもよい。また、図24に示すように高域通過フィルタ525と高域通過フィルタ526を追加してもよい。
フィルタ設定部511は、帯域生成判別部103によって得られた制御情報info[f]に基づいて、帯域通過フィルタ520aのフィルタ特性の設定を行う。具体的には、制御情報info[f]=1の場合には、上記フィルタの帯域通過特性を2000[Hz]〜3400[Hz]に設定し、一方、制御情報info[f]=0の場合には、上記フィルタの帯域通過特性を700[Hz]〜3400[Hz]に設定する。すなわち、入力信号において基本周波数の信号が欠落している場合には、入力信号において基本周波数の信号が欠落していない場合よりも上記フィルタの帯域通過特性の低域側を狭くする。このようにすることで、入力信号において基本周波数の信号が欠落している場合において、線形予測残差信号e2[n]における帯域制限によって劣化した低域の影響をより除去することができる。
帯域通過フィルタ520aは、逆フィルタ519で得た第2の狭帯域音源信号であるデータ長2Nの線形予測残差信号e2[n]に対して、フィルタ設定部511によって設定が行われたフィルタ特性によって帯域通過フィルタ処理を行い、帯域通過処理した線形予測残差信号をe2[n]としてアップサンプリング部521に出力する。
高域通過フィルタ525は、広帯域化処理部522から出力される広帯域化されたデータ長4Nの線形予測残差信号e2_wb[n]を入力として、少なくとも直流成分を除去するような高域通過フィルタによる処理を行い、その処理した信号をパワー制御部515に出力する。このようにすることで、広帯域化処理部522で生成された線形予測残差信号e2_wb[n]に含まれる直流成分などの不要な成分を除去することができ、パワー制御部515において不要な成分がない信号を用いることで正確にパワーを制御することができる。
高域通過フィルタ526は、雑音生成部513から出力されるデータ長4Nの雑音信号wn[n]を入力として、少なくとも直流成分を除去するような高域通過フィルタ(例えば400[Hz]以下の周波数を除去するようなフィルタ)による処理を行い、その処理した信号をパワー制御部514に出力する。このようにすることで、雑音生成部513で生成された雑音信号wn[n]に含まれる直流成分などの不要な成分を除去することができ、パワー制御部514において不要な成分がない信号を用いることで正確にパワーを制御することができる。
このような構成であっても、第6の実施例と同様の効果を発揮する。
また、このような構成によれば、帯域生成判別部103によって得られた制御情報に応じて、帯域通過フィルタ520aのフィルタ設定をフィルタ設定部511で変化させることで、入力信号において基本周波数の信号が欠落している場合において、線形予測残差信号e2[n]における帯域制限によって劣化した低域の影響をより除去することができ、原音により忠実で音質のよい帯域拡張された信号を生成することができる。また、高域通過フィルタ525において広帯域化処理部522で生成された線形予測残差信号e2_wb[n]に含まれる直流成分などの不要な成分を除去すること、あるいは、高域通過フィルタ526において雑音生成部513から出力される雑音信号wn[n]に含まれる直流成分などの不要な成分を除去することができ、原音により忠実で音質のよい帯域拡張された信号を生成することができる。
(第6の実施例の変形2)
また図25に示すようにスペクトル補正部111を備えてもよい。
スペクトル補正部111aは、帯域生成判別部103によって得られた制御情報info[f]に基づいて、信号加算処理部110dから出力される広帯域信号に対して、周波数帯域ごとに強調あるいは減衰させるようなスペクトル補正処理を施し、これによってスペクトルが補正された信号をy[n]として出力する。具体的には、スペクトル補正部111は、まず信号加算処理部110dから出力されるデータ長2Nの広帯域信号を2N点を用いたFFTなどの処理によって周波数領域に変換して、周波数スペクトルY’[f,ω]を得る。ただしFFTの次数はこれに限らず、FFTを施す信号に零詰めしてデータ長を2のべき乗にし、FFTの次数を2のべき乗にしてもよい。そして、帯域生成判別部103によって得られた制御情報info[f]=1の場合には声の低い音声であるため、帯域拡張しようとする帯域fs_wb_low[Hz]〜fs_nb_low[Hz]ではスペクトル補正ゲインG’[f,ω]を1以上にし、制御情報info[f]=0の場合には声の低い音声であるため、帯域拡張しようとする帯域fs_wb_low[Hz]〜fs_nb_low[Hz]には信号がないため、スペクトル補正ゲインG’[f,ω]を1以下にする。あるいは、帯域生成判別部103によって得られた制御情報info[f]=1の場合には声の低い音声であるため、帯域感を良くするために周波数バランスを補正するように、帯域拡張しようとする帯域fs_nb_high[Hz]〜fs_wb_high[Hz]ではスペクトル補正ゲインG’[f,ω]を1以上にする。そして、他の帯域の周波数ビンについてはG’[f,ω]=1とし、周波数スペクトルY’[f,ω]にスペクトル補正ゲインG’[f,ω]を乗じ、この乗算結果をIFFTなどによって時間領域に変換して、スペクトル補正処理をした広帯域信号を得る。
このような構成であっても、第6の実施例と同様の効果を発揮する。
また、このような構成によれば、帯域生成判別部103によって得られた制御情報に応じて、スペクトル補正部111aによって広帯域信号の周波数バランスを補正することで、入力信号に応じて帯域感を良くすることができる。また、スペクトル補正部111aにより帯域拡張しようとする帯域を強調することができ、広帯域化した帯域拡張された信号の音質を向上させることができる。
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
その一例として例えば、図26に示すように、帯域拡張処理部3の前段に入力信号x[n]に対して信号処理をする狭帯域信号処理部117を設け、狭帯域信号処理部117からの出力x_nb[n]を実施例1から実施例6における入力信号x[n]として帯域拡張処理部3へ入力する構成であるとする。狭帯域信号処理部117は、雑音抑圧処理や、特定帯域を強調するフィルタ処理などでよく、帯域生成判別部103から出力された1フレーム前の制御情報info[f-1]を用いて、処理を変化させるように動作する。狭帯域信号処理部117が雑音抑圧処理であるときには、制御情報info[f-1]=1の場合にはピーク抽出された周波数ωp[f]以下の低域を十分に考慮した繊細な処理にし、制御情報info[f-1]=0の場合にはピーク抽出された周波数ωp[f]以下の低域を重要視しないで荒く扱うような処理にする。すなわち、狭帯域信号処理部117が雑音抑圧処理であるときには、制御情報info[f-1]=1の場合は、制御情報info[f-1]=0の場合よりも低域の雑音抑圧を弱め、音声を歪ませ過ぎないようにする。例えば、制御情報info[f-1]=0の場合には周波数ωp[f]以下の低域は強く雑音抑圧を行い、他の帯域や制御情報info[f-1]=1の場合には通常の雑音抑圧を行うなどのようにする。また、狭帯域信号処理部117が特定帯域を強調するフィルタ処理であるときには、制御情報info[f-1]=0の場合は、制御情報info[f-1]=1の場合よりも低域のピークを強く強調する。例えば、制御情報info[f-1]=0の場合には周波数ωp[f]付近の帯域を強調することでピークを強調し基本周波数を強調したり、他の帯域や制御情報info[f-1]=1の場合には特に強調しないなどの処理にする。これによれば、入力信号において基本周波数の信号が欠落していない場合には、狭帯域信号処理部117により事前に基本周波数を強調したり、余計な雑音成分を除去したりすることで、後段の帯域拡張処理部3における広帯域化において、有声音において調波構造を精度よく生成することができるため、原音により忠実で音質のよい帯域拡張された信号を生成することができる。
同様に、図27に示すように、帯域拡張処理部3の前段に入力信号x[n]に対して信号処理をする狭帯域信号処理部117を設け、狭帯域信号処理部117からの出力x_nb[n]を実施例1から実施例6における入力信号x[n]として帯域拡張処理部3へ入力する構成であるとし、狭帯域信号処理部117は、雑音抑圧処理や、特定帯域を強調するフィルタ処理などでよく、帯域生成判別部203から出力された1フレーム前の制御情報info[f-1]を用いて、上記周波数ωp[f]を周波数ωp1[f]と読み変えることにより、処理を変化させるように動作させても、同様の効果が得られる。
また他の一例として例えば、図1(b)に示すように、ディジタルオーディオプレイヤに適用し、入力信号x[n]として音楽・オーディオ信号を想定する。この場合、例えば、図12と図13における線形予測分析部101と、逆フィルタ部102と、線形予測合成部105とを除いた構成とする。つまり、入力信号x[n]を帯域生成判別103に入力し、帯域生成判別103から出力された広帯域化された信号を帯域通過フィルタ108に入力し、帯域通過フィルタ108から出力された拡張され帯域を抽出した広帯域信号と帯域生成判別103から出力された制御情報info[f]を信号加算処理部110bに入力し、信号加算処理部110bでは制御情報info[f]に応じて帯域通過フィルタ108から出力された広帯域信号を加算したり加算しなかったり制御する。このようにしても同様の効果が得られる。
また、入力信号がモノラル信号ではなくステレオ信号であったとしても、例えばL(左)チャネルとR(右)チャネルにそれぞれ上記帯域拡張処理部3における帯域拡張処理を施したり、和信号(LチャネルとRチャネルの信号の和)と差信号(LチャネルからRチャネルの信号の差)にそれぞれ上記の帯域拡張処理を施したりすることで同様の効果が得られる。
その他、この発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
1…無線通信部、2…デコーダ、3…帯域拡張処理部、4…D/A変換器、5…スピーカ、6…記憶部、101,518…線形予測分析部、102,519…逆フィルタ、108,517,520…帯域通過フィルタ、103,203…帯域生成判別部、104,522,10311…広帯域化処理部、105,105a,105b,105c…線形予測合成部、106…ディップ強調処理部、109…信号遅延処理部、110,110b,110d,116,516…信号加算処理部、111…スペクトル補正部、112…有声/無声推定部、113,513…雑音生成部、114,115,514,515…パワー制御部、117…狭帯域信号処理部、1031,2031…調波構造生成判定部、1032,2032…ハングオーバ制御部、10312…比較判定部、203111,103121,103122…周波数領域変換部、103123,103124…パワー算出部、103125,103126,20311,203112,203113…ピーク抽出部、103127…ピーク比較部、1051…次数・係数設定部、1052…合成処理部、1053…フレーム合成処理部、1054…無音化処理部、SW1,SW2,SW3,SW4,SW5…切替スイッチ、20312…生成判定部、500,521,530…アップサンプリング部、510…高域拡張処理部、511…フィルタ設定部、523…スペクトル包絡広帯域化処理部、523A…線スペクトル周波数変換部、523B…GMM格納部、523C…スペクトル包絡生成部、524…信号合成部。