以下、図面を参照して、この発明の実施形態について説明する。
(第1の実施例)
図1は、この発明の一実施形態である通信装置の構成を示すものである。この図に示す通信装置は、例えば携帯電話などの無線通信装置の受信系を示すものであって、無線通信部1と、デコーダ2と、信号処理部3と、ディジタル・アナログ(D/A)変換器4と、スピーカ5と、マイク6と、アナログ・ディジタル(A/D)変換器7と、ダウンサンプリング部8と、エコー抑圧処理部9と、エンコーダ10とを備えている。本実施形態では、再生する目的信号は、受信した入力信号に含まれる遠端話者の音声信号であるとして説明する。
無線通信部1は、移動通信網に収容される無線基地局と無線通信し、そしてこの無線基地局および移動通信網を通じて通信相手局との間に通信リンクを確立して通信する。
デコーダ2は、無線通信部1が通信相手局から受信した受信データを、事前に決められた時間単位である1フレーム(=20[ms])ごとに復号して、ディジタルの入力信号x[n] (n=0,1,…2N-1)を得て、フレーム単位で信号処理部3に出力する。ただし、この入力信号x[n]は、サンプリング周波数はfs’[Hz]でfs_wb_low[Hz]からfs_wb_high[Hz]までに帯域制限された広帯域の信号である。ここでは、後述する集音信号z[n]のサンプリング周波数fs[Hz]との関係を、fs’=2fsとする。また、サンプリング周波数fs’[Hz]のときの1フレームのデータ長は2Nサンプルする。つまり、N=20[ms]×fs[Hz]÷1000とする。
信号処理部3は、後述するエコー抑圧処理部8においてエコー低減された集音信号z[n] (n=0,1,…N-1)に応じて、1フレーム単位で入力信号x[n] (n=0,1,…2N-1)に対して信号補正処理を施し、音量または周波数特性を変化させて、その出力信号をy[n] (n=0,1,…2N-1)としてD/A変換器4とダウンサンプリング部8に出力する。なお、信号処理部3の具体的な構成例については後に詳述する。
D/A変換器4は、上記信号補正された出力信号y[n]をアナログ信号y(t)に変換して、スピーカ5に出力する。スピーカ5は、アナログ信号である出力信号y(t)を音響空間へ出力する。
マイク6は、音を集音してアナログ信号である集音信号z(t)を取得し、A/D変換器7に出力する。このアナログ信号には、近端話者の音声信号と、それ以外の周囲環境に起因するノイズ成分、出力信号y(t)と音響空間に起因するエコー成分などが混在する。例えばノイズ成分としては、電車などが出す騒音、車などのカーノイズ、人ごみでのストリートノイズなどが挙げられる。本実施形態では、通信装置として近端話者の音声信号は通信相手局との間での通信にて所望される必要な信号であるため、近端話者の音声信号以外の成分を周囲雑音として扱う。
A/D変換器7は、アナログ信号である集音信号z(t)をディジタル信号に変換して、ディジタルの集音信号z’[n] (n=0,1,…N-1)を得て、Nサンプル単位でエコー抑圧処理部8に出力する。ただし、この集音信号z[n]は、サンプリング周波数はfs[Hz]でfs_nb_low[Hz]からfs_nb_high[Hz]までに帯域制限された狭帯域の信号である。ただし、fs_wb_low ≦ fs_nb_low < fs_nb_high < fs/2 ≦ fs_wb_high < fs’/2 を満たすものとする。
ダウンサンプリング部8は、出力信号y[n]をサンプリング周波数fs’[Hz]からfs[Hz]にダウンサンプリングして、fs_nb_low[Hz]からfs_nb_high[Hz]までに帯域制限した信号をy’[n] (n=0,1,…N-1)としてエコー抑圧処理部9に出力する。
エコー抑圧処理部9は、ダウンサンプリングされた出力信号y’[n] (n=0,1,…N-1)を利用して、集音信号z’[n] (n=0,1,…N-1)に含まれるエコー成分を低減する処理を行い、そのエコー低減された信号をz[n] (n=0,1,…N-1)として、信号処理部3とエンコーダ10に出力する。ここでエコー抑圧処理部9は、例えば、特登4047867号公報や、特開2006−203358号公報や、特開2007−60644号公報などに記載される既存の技術で実施してよい。
エンコーダ10は、エコー抑圧処理部8においてエコー低減された集音信号z[n] (n=0,1,…N-1)をNサンプルごとに符号化して無線通信部1に出力し、無線通信部1によって送信データとして通信相手局へ送信される。
次に、信号処理部3の実施例について説明する。以下の説明では、例えば、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]とする。帯域制限の周波数帯域やサンプリング周波数については、これに限らない。また、ここではN=160とする。
図2は、信号処理部3の構成例を示すものである。信号処理部3は、周囲雑音推定部31と、周囲雑音情報帯域拡張部32と、信号特性補正部33とを備える。これらは、1つのプロセッサと、図示しない記憶媒体に記録されたソフトウェアによって実現することも可能である。
周囲雑音推定部31は、エコー抑圧処理部8においてエコー低減された信号から近端話者の音声信号以外の信号を周囲雑音と推定し、この周囲雑音を特徴付ける特徴量を抽出する。なお、集音信号z[n]が狭帯域の信号であるため、周囲雑音も狭帯域の信号である。そこで、周囲雑音を特徴付ける特徴量を、狭帯域信号情報と称する。狭帯域信号情報は、パワースペクトル、振幅スペクトルや位相スペクトル、PARCOR係数や反射係数、線スペクトル周波数、ケプストラム係数、メルケプストラム係数など、周囲雑音を特徴付ける特徴量であればどのようなものでも構わない。
周囲雑音情報帯域拡張部32は、狭帯域信号情報を用いて、周囲雑音を入力信号x[n]の周波数帯域と同じ周波数帯域(広帯域)に拡張した場合にこの周囲雑音を特徴付ける特徴量を推定する。この特徴量を、広帯域信号情報と称する。
信号特性補正部33は、周囲雑音情報帯域拡張部32を用いて、目的信号の信号特性を補正する。
このように、周囲雑音が狭帯域の信号であっても、広帯域に拡張した場合の特徴量を推定することによって、信号特性補正部33での補正処理によって明瞭度を向上させることができる。
以下の説明では、信号処理部3の具体的な構成について説明する。なお、以下の説明では、狭帯域信号情報は周囲雑音のパワースペクトル、広帯域信号情報は周囲雑音を広帯域の信号に拡張した場合のパワー値(広帯域パワー値)であるとして説明する。
図3に周囲雑音推定部31の構成例を示す。周囲雑音推定部31は、周波数領域変換部311と、パワー算出部312と、周囲雑音区間判定部313と、周波数スペクトル更新部314とを備える。
周囲雑音推定部31は、エコー抑圧処理部8においてエコー低減された集音信号z[n] (n=0,1,…N-1)から近端話者の音声信号以外である周囲雑音を推定してこの信号のパワースペクトル|N[f,w]|2 を抽出して、周囲雑音情報帯域拡張部32へ出力する。
周波数領域変換部311は、現在のフレームfの集音信号z[n] (n=0,1,…N-1)が入力される。そして、このフレームの1フレーム前の集音信号から窓掛けによるオーバーラップサンプル数分のサンプルを抽出し、現在のフレームの入力信号と時間方向に結合し、適宜零詰めなどを行って、周波数領域変換に必要なサンプル分の信号を取り出す。次のフレームでの集音信号z[n]のシフト幅と集音信号z[n]のデータ長の比であるオーバーラップは50%である場合が考えられるが、ここでは例として、1フレーム前とのオーバーラップの
サンプル数をL=48として、1フレーム前の集音信号Lサンプルと当該フレームの集音信号z[n]のN=160サンプル分とLサンプル分の零詰めから、2M=256サンプルを用意するとする。この2Mサンプルに対して正弦波窓による窓関数を乗じることで窓掛けを行う。そして、窓掛けを行った2Mサンプルの信号に対して、周波数領域変換を行う。周波数領域への変換は、例えばFFTの次数を2MとしFFTによって行うことができる。なお、周波数領域変換を施す信号に零詰めすることによってデータ長を2のべき乗(2M)にし、周波数領域変換の次数を2のべき乗(2M)にするとしたが、周波数領域変換の次数はこれに限らない。
集音信号z[n]が実信号である場合は、周波数領域変換を施して得られた信号から冗長なM=128ビンを除くと、周波数スペクトルZ[f,w] (w=0,1,…M-1)が得られる、これを出力する。ただし、ωは、周波数ビンを表す。なお、実信号のとき冗長なのは本来M-1 (=127)ビンであり、最高域の周波数ビンw=M (=128)を考慮するべきである。しかしながら、ここで周波数領域変換する信号は、帯域制限された音声信号を含むディジタル信号を前提としており、帯域制限によって最高域の周波数ビンw=Mを考慮しなくても音質に影響を及ぼさない。そこで、これ以降説明の簡略化のために、最高域の周波数ビンw=Mを考慮しない記述にする。勿論、最高域の周波数ビンw=Mを考慮しても構わない。その際、最高域の周波数ビンw=Mは、w=M-1と同等に扱うか、単独で扱うようにする。
なお、窓掛けに用いる窓関数は、ハミング窓に限定せず、他の対称窓(ハニング窓、ブラックマン窓、正弦波窓など)あるいは音声符号化処理で用いられるような非対称窓などに適宜変更してよい。また、周波数領域変換は、DFT(Discrete Fourier Transform)や離
散コサイン変換(DCT: Discrete Cosine Transform)などの周波数領域に変換する他の直交変換を代用することも可能である。
パワー算出部312は、周波数領域変換部311から出力された周波数スペクトルZ[f,w] (w=0,1,…M-1)における実部と虚部の2乗和であるパワースペクトル|Z[f,w]|2 (w=0,1,…M-1)を算出して出力する。
周囲雑音区間判定部313は、集音信号z[n] (n=0,1,…N-1)と、パワー算出部312から出力されるパワースペクトル|Z[f,w]|2 (w=0,1,…M-1)と、周波数スペクトル更新部314から出力される1フレーム前の各周波数帯域の周囲雑音のパワースペクトル|N[f-1,w]|2 を用いて、集音信号z[n]に周囲雑音が支配的に含まれている区間(周囲雑音区間)であるか、周囲雑音には含まない近端話者の音声信号と周囲雑音が混在している区間(音声区間)のどちらであるかの判別をフレーム毎に行い、フレーム毎に判定結果を表すフレーム判定情報vad[f]を出力する。ここでは、周囲雑音区間であるときフレーム判定情報vad[f]=0とし、音声区間であるときvad[f]=1とする。なおこれ以降、当該成分のみしか存在しないか、あるいは当該成分が他の成分よりも非常に多く含まれる場合(所定の閾値以上含まれる場合)を「支配的に含まれる」と表現する。
具体的には、集音信号z[n] (n=0,1,…N-1)とパワースペクトル|Z[f,w]|2 と1フレーム前の周囲雑音のパワースペクトル|N[f-1,w]|2 を用いて、複数の特徴量を算出し、フレーム判定情報vad[f]を出力する。ここでは複数の特徴量として、1次自己相関係数Acorr[f,1]、自己相関係数最大値Acorr_max[f]、周波数別SN比総和snr_sum[f]、周波数別SN比分散snr_var[f]を例に挙げて説明する。
まず、式(1)に示すように、フレーム単位でのパワーで正規化されて絶対値をとったk次自己相関係数Acorr[f,k] (k=1,…N-1)を計算する。
このとき併せて、k=1である1次自己相関係数Acorr[f,1]も計算する。1次自己相関係数Acorr[f,1]は0から1の値をとり、0に近づくほどノイズ性が強い。つまり、1次自己相関係数の値が小さいほど、集音信号に周囲雑音が多く含まれ、周囲雑音には含まない音声信号が少ないと判断される。そして、正規化されたk次自己相関係数Acorr[f,k] (k=1,…N-1)から式(2)に示すように、最大となる自己相関係数Acorr[f,k]を計算して、自己相関係数最大値Acorr_max[f]とする。自己相関係数最大値Acorr_max[f]は0から1の値をとり、0に近づくほどノイズ性が強い。つまり、自己相関係数の値が小さいほど、集音信号に周囲雑音が多く含まれ、周囲雑音には含まない音声信号が少ないと判断される。
次に、パワースペクトル|Z[f,w]|
2と周囲雑音のパワースペクトル|N[f,w]|
2とを入力として、それらの比である各周波数帯域のSN比を、ここではdB表現したsnr[f,w] (w=0,1,…M-1)として式(3)で算出する。
そして、各周波数帯域のSN比snr[f,w] (w=0,1,…M-1)の和を式(4)で算出し、周波数別SN比総和値snr_sum[f]とする。周波数別SN比総和値snr_sum[f]は0以上の値をとり、この値が小さいほど集音信号中にノイズ成分である周囲雑音が多く含まれ、周囲雑音には含まない音声信号が少ないと判断される。
また、各周波数帯域のSN比snr[f,w] (w=0,1,…M-1)の分散を式(5)で算出し、周波数別SN比分散値snr_var[f]とする。周波数別SN比分散値snr_var[f]は0以上の値をとり、この値が小さいほどノイズ成分である周囲雑音が多く含まれ、周囲雑音には含まない音声信号が少ないと判断される。
最後に、複数の特徴量である、1次自己相関係数Acorr[f,1]、自己相関係数最大値Acorr_max[f]、周波数別SN比総和値snr_sum[f]、周波数別SN比分散値snr_var[f]を用いて、これらにそれぞれ所定の重み付けによる重み付けを行い、複数の特徴量の重み付け和として周囲雑音度合type[f]を算出する。ここでは、周囲雑音度合type[f]が小さいほど周囲雑音が支配的であるとし、大きいほど周囲雑音には含まない音声信号が支配的であるとしているので、例えば、線形識別関数による判定を用いた学習アルゴリズムなどで重みw
1、w
2、w
3、w
4(ただしw
1≧0、w
2≧0、w
3≧0、w
4≧0)を設定して、式(6)で算出する。そして、周囲雑音度合type[f]が所定の閾値THRよりも大きければvad[f]=1とし、周囲雑音度合type[f]が所定の閾値THR以下であればvad[f]=0とする。
以上の説明では、複数の特徴量を求める際に、周波数ビンごとに処理するとして説明したが、周波数領域変換による隣接する複数の周波数ビンをまとめてグループを作り、そのグループ単位で処理を行っても構わない。また、フィルタバンクなどの帯域分割フィルタなどの周波数領域変換によって実現してもよい。
なお、前述した複数の特徴量を全て使わなくてもよいし、他の特徴量を追加して用いてもよい。また、無線通信部1あるいはデコーダ2から出力されるコーデック情報、例えば、無音挿入記述子(SID)や音声検出器(VAD)による音声であるか音声でないかを表す音声検出情報や擬似背景雑音を生成したかどうかの情報などを用いてもよい。
周波数スペクトル更新部314は、周囲雑音区間判定部313から出力されるフレーム判定情報vad[f]と、パワー算出部312から出力されるパワースペクトル|Z[f,w]|
2 (w=0,1,…M-1)を用いて、各周波数帯域の周囲雑音のパワースペクトルである|N[f,w]|
2 (w=0,1,…M-1)を推定して出力する。例えば、フレーム判定情報vad[f]を0として周囲雑音が支配的に含まれる区間(周囲雑音区間)であると判別されたフレームのパワースペクトル|Z[f,w]|
2 をフレーム単位で忘却させて平均的なパワースペクトルを算出し、これを各周波数帯域の周囲雑音のパワースペクトル|N[f,w]|
2 (w=0,1,…M-1)として出力する。なお、具体的には、各周波数帯域の周囲雑音のパワースペクトル|N[f,w]|
2 の算出は、式(8)に示すように1フレーム前の各周波数帯域の周囲雑音のパワースペクトル|N[f-1,w]|
2 を用いて再帰的に行う。ただし、式(7)の忘却係数α
N[ω]は1以下の係数であって、好ましくは0.75〜0.95程度である。
周囲雑音情報帯域拡張部32は、各周波数帯域の周囲雑音のパワースペクトル|N[f,w]|
2 を用いて、入力信号x[n]には存在して集音信号z[n]には存在しない周波数帯域成分を含めた信号のパワー値を生成する。
図4は周囲雑音情報帯域拡張部32の構成例を示す図である。周囲雑音情報帯域拡張部32は、パワー正規化部321と、辞書格納部322と、広帯域パワー算出部323とを備える。
周囲雑音情報帯域拡張部32では、狭帯域信号情報から狭帯域特徴量データを算出し、狭帯域信号情報から算出される狭帯域特徴量データと広帯域特徴量データとの対応を事前にモデル化しておき、このモデルと取得した狭帯域特徴量データとの対応を用いて広帯域特徴量データを算出し、広帯域特徴量データから広帯域信号情報を生成する。前述のとおり、ここでは、狭帯域信号情報は周囲雑音のパワースペクトルである。またここでは、広帯域特徴量データと広帯域信号情報は同じであるとし、広帯域信号情報は広帯域パワー値N_wb_level[f]で示される音量である。狭帯域特徴量データと広帯域特徴量データとの対応のモデル化には、GMM(Gaussian mixture model)を利用する手法を用いる。ここでは、狭帯域パワー値Pow_N[f]と周囲雑音の正規化したパワースペクトル|Nn[f,w]|2 (w=0,1,…M-1)を次数方向に連結してDnb次の狭帯域特徴量データとして用い、広帯域パワー値N_wb_level[f]をDwb次の広帯域特徴量データとして用いる(Dnb=M+1、Dwb=1)。
まず狭帯域信号情報から狭帯域特徴量データを算出するために、パワー正規化部321には、周囲雑音推定部31から出力される周囲雑音のパワースペクトル|N[f,w]|
2 (w=0,1,…M-1)が入力され、この周囲雑音のパワースペクトルを用いて狭帯域特徴量データを算出する。狭帯域特徴量データの1つは、式(8)に基づいて算出される、パワースペクトルの各周波数ビンの総和である狭帯域パワー値Pow_N[f]である。
また他の狭帯域特徴量データとしては、狭帯域パワー値Pow_N[f]を用いて式(9)に従って各周波数ビンのパワースペクトル|N[f,w]|
2を正規化したパワースペクトル|Nn[f,w]|
2を算出する。
辞書格納部322は、事前に集音した周囲雑音に基づいてDnb次の狭帯域特徴量データとDwb次の広帯域特徴量データとの対応をモデル化して学習された混合数Q(ここではQ=64)のGMMの辞書 λ1
q={w
q,μ
q,Σ
q}(q=1,…,Q)を格納する。なお、w
qはq番目の混合正規分布の混合重みを示し、μ
qはq番目の混合正規分布の平均ベクトル、Σ
qはq次数目の混合正規分布の共分散行列(対角共分散行列または全共分散行列)を表している。なお、平均ベクトルμ
qと共分散行列Σ
qの成分の数である次数は、Dnb+Dwbである。
辞書格納部322における事前の辞書λ1qの学習生成方法について、フローチャートを図5に示し、説明する。
GMMの生成に用いる信号は、入力信号x[n]と同様のサンプリング周波数fs’[Hz]でfs_wb_low[Hz]からfs_wb_high[Hz]までに帯域制限された広帯域な信号を別途事前に集音した信号群である。この信号群は、多数の様々な環境、様々な音量であることが望ましい。以下では、GMMの生成に用いる広帯域信号の信号群をまとめて広帯域信号データwb[n]と表記する。nは時刻(サンプル)を表す。
まず、広帯域信号データwb[n]を入力として、ダウンサンプリングフィルタによってサンプリング周波数fs[Hz]にダウンサンプリングし、fs_nb_low[Hz]からfs_nb_high[Hz]までの狭帯域に帯域制限された狭帯域信号データnb[n]を得る(ステップS101)。このようにして、集音信号z[n]と同じように帯域制限された信号群を生成する。なお、図示しないが、上記ダウンサンプリングフィルタや帯域制限処理でアルゴリズム遅延が生じる場合には、狭帯域信号データnb[n]を広帯域信号データwb[n]と同期を合わせる処理を行う。
次に、上記狭帯域信号データnb[n]からフレームf単位で狭帯域特徴量データPnb[f,d](d=1,…,Dnb)を抽出する(ステップS102)。狭帯域特徴量データPnd[f,d]は、所定の次数の狭帯域信号情報を表す特徴量データである。ステップS102ではまず、狭帯域信号データnb[n]からフレーム毎に前述の周波数領域変換部311における処理と同様に周波数領域変換処理を行い、M次の狭帯域信号データnb[n]のパワースペクトルを得る(ステップS1021)。次に、前述のパワー正規化部321における処理と同様の処理によって、狭帯域信号データnb[n]からフレーム毎にパワー算出を行い、1次のパワー値を得る(ステップS1022)。そして、これらのパワースペクトルとパワー値からM次の狭帯域信号データnb[n]の正規化されたパワースペクトルを得る(ステップS1023)。そして、M次の正規化されたパワースペクトルと1次のパワー値をフレーム単位で次数方向(次元方向)に連結して、次数Dnb(=M+1)の狭帯域特徴量データPnb[f,d](d=1,…,Dnb)を生成する(ステップS1024)。
一方、上記に並行して、広帯域信号データwb[n]からフレームf単位で広帯域特徴量データPwb[f,d](d=1,…,Dwb)を抽出する(ステップS103)。広帯域特徴量データPwb[f,d]は、所定の次数の広帯域信号情報を表す特徴量データである。ステップS103ではまず、広帯域信号データwb[n]からフレーム毎に前述の周波数領域変換部311における処理のFFT点数を倍の4M点にして、同様に周波数領域変換処理を行い、2M次の広帯域信号データwb[n]のパワースペクトルを得る(ステップS1031)。次に、前述のパワー正規化部321における処理と同様の処理によって、広帯域信号データwb[n]からフレーム毎にパワー算出を行って1次のパワー値を得る。このパワー値を次数Dwb(=1)の広帯域特徴量データPwb[f,d]とする(ステップS1032)。
次に、狭帯域特徴量データPnb[f,d](d=1,…,Dnb)と広帯域特徴量データPwb[f,d](d=1,…,Dwb)の時間的に同期が取れた2つの特徴量データをフレーム単位で次数方向(次元方向)に連結して、次数Dnb+Dwbの連結特徴量データP[f,d](d=1,…,Dnb+Dwb)を生成する(ステップS104)。
そして、連結特徴量データP[f,d]から混合数Q=1の初期GMMを生成し、各GMMの平均ベクトルをわずかにずらして別の混合分布を生成することで混合数Qを2倍に増やす処理と、連結特徴量データP[f,d]を用いてEMアルゴリズムにより収束するまでGMMの尤度最大化学習を行う処理とを交互に繰り返し行い、混合数Q(ここではQ=64)のGMM λ1
q={w
q,μ
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. などの文献に詳細な記述がある。
図4の説明に戻る。広帯域パワー算出部323には、パワー正規化部321から出力された狭帯域パワー値Pow_N[f]と周囲雑音の正規化したDnb次のパワースペクトル|Nn[f,w]|
2 (w=0,1,…M-1)が連結されて、狭帯域特徴量データPn_nb[f](d=1,…,Dnb)として入力される。また、広帯域パワー算出部323は、辞書格納部322からGMMの辞書λ1
q={w
i,μ
q,Σ
q}(q=1,…,Q)を読み出して、最小平均2乗誤差(MMSE:Minimam Mean Square Error)推定に従って、式(10)に示すように、複数の正規分布モデルによるソフトクラスタリングと連続的な線形回帰によって、周波数帯域が拡張された広帯域に対応する特徴量データへの変換を行い、狭帯域特徴量データPn_nb[f]から広帯域特徴量データである広帯域パワー値N_wb_level[f]を算出して出力する。式(10)は、次元(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とに分割する。
周囲雑音情報帯域拡張部32では、広帯域特徴量データと広帯域信号情報は同じであるとしたため、このようにして、狭帯域信号情報である周囲雑音のパワースペクトル|N[f,w]|
2から、広帯域信号情報である広帯域パワー値N_wb_level[f]が得られる。
図6に信号特性補正部33の構成例を示す。信号特性補正部33は、周波数領域変換部331と、補正度合決定部332と、補正処理部333と、時間領域変換部334とを備える。信号特性補正部33には、入力信号x[n] (n=0,1,…2N-1)と広帯域パワー値N_wb_level[f]が入力され、入力信号x[n]が集音信号に含まれる周囲雑音に埋もれてしまわないよう明瞭化する信号補正処理を行い、その補正後の出力信号y[n] (n=0,1,…2N-1)を出力する。
周波数領域変換部331には、周波数領域変換部311における集音信号z[n] (n=0,1,…N-1)の代わりに入力信号x[n] (n=0,1,…2N-1)が入力される。周波数領域変換部331は、周波数領域変換部311と同様の処理によって、入力信号x[n]の周波数スペクトルX[f,w]を出力する。例えば、周波数領域変換部331は、1フレーム前とのオーバーラップのサンプル数をL=96とし、1フレーム前の入力信号Lサンプルと当該フレームの入力信号x[n]の2N=320サンプル分とLサンプル分の零詰めから、4M=512サンプルを用意する。そして、この4Mサンプルに対して正弦波窓による窓関数を乗じることで窓掛けを行った信号に対して、FFTの次数を4MとしてFFTによる周波数領域変換を行う。
補正度合決定部332には、周囲雑音情報帯域拡張部32から出力された広帯域パワー値N_wb_level[f]を入力される。そして、式(11)で補正ゲインG[f,w] (w=0,1,…2M-1)を算出して出力する。
式(11)のN
0は、通常の利用環境における周囲雑音のパワーを入力信号x[n]と同じサンプリング周波数・同じ帯域制限で事前に測定しておいて設定した周囲雑音の基準パワー値である。このようにすることで、通常の利用環境よりも周囲雑音のパワー値が大きい環境(すなわち、周囲雑音が多く含まれる環境)でも、補正ゲインG[f,w]をその分大きく設定することで、入力信号x[n]を明瞭化することができる。
補正処理部333には、入力信号x[n]の周波数スペクトルX[f,w] (w=0,1,…2M-1)と補正度合決定部332から出力された補正ゲインG[f,w] (w=0,1,…2M-1)が入力される。そして、式(12)によって入力信号x[n]の周波数スペクトルX[f,w]を補正し、その補正結果である出力信号y[n]の周波数スペクトルY[f,w] (w=0,1,…2M-1)を出力する。
時間領域変換部334は、補正処理部333から出力された周波数スペクトルY[f,w] (w=0,1,…2M-1)に対して時間領域変換(周波数逆変換)を行って、周波数領域変換部331における窓掛けを考慮しオーバーラップを戻す処理を適宜行い、補正された信号である出力信号y[n]を算出する。例えば、周波数スペクトルY[f,w] (w=0,1,…2M-1)に対して、入力信号x[n]が実信号であることを考慮に入れて周波数スペクトルY[f,w]をw=0,1,…4M-1まで復元した上で、4M点のIFFT(Inverse Fast Fourier Transform)を行い、窓掛けを考慮し1フレーム前の補正された信号である出力信号y[n]を用いてオーバーラップを戻し、出力信号y[n]を算出する。
以上のように、再生される入力信号と集音信号で、信号成分が存在する周波数帯域が異なっていたり、サンプリング周波数が異なっていたりしていても、集音信号の音量について入力信号の周波数帯域を加味して拡張し推定することで、集音信号の音量が高精度に求まり、入力信号の明瞭度を向上させることができる。
なお、上述の説明では、本発明を通信装置に適用した場合について説明したが、図7(a)に示すように、ディジタルオーディオプレイヤに本発明を適用することも可能である。このディジタルオーディオプレイヤは、フラッシュメモリやHDD(Hard Disk Drive)を用いた記憶部11を備え、この記憶部11から読み出した音楽・オーディオデータをデコーダ2が復号する。このとき復号して再生したい所望の信号である目的信号は音楽・オーディオ信号である。このディジタルオーディオプレイヤのマイク6で集音される集音信号z(t)は、近端話者の音声や周囲環境に起因するノイズ成分、出力信号y(t)と音響空間に起因するエコー成分などで構成され、音楽・オーディオ信号は含まれない。この場合は、通信装置と異なって近端話者の音声は不要であるため、近端話者の音声を含んだこれら全ての成分を周囲雑音として取り扱う。
また、図7(b)に示すように、本発明を通信装置に適用して、音声帯域拡張通話装置に適用することも可能である。この音声帯域拡張通話装置は、デコーダ2Aを備え、デコーダ2Aと信号処理部3の間に信号帯域拡張処理部12を備えた構成である。そして、この場合の信号処理部3は、帯域が拡張された入力信号x’[n]に対して前述の処理をする。
なお、信号帯域拡張処理部12で行われる処理は、fs_nb_low[Hz]からfs_nb_high[Hz]までに帯域制限された狭帯域の入力信号をfs_wb_low[Hz]からfs_wb_high[Hz]までの広帯域の信号に帯域を拡張する処理であって、例えば、特登3189614号公報や特登3243174号公報や特開平9−55778号公報などに記載される既存の技術で実施してよい。
(信号処理部の変形例1)
次に、信号処理部にて用いる狭帯域信号情報は周囲雑音のパワースペクトル、広帯域信号情報は周囲雑音を広帯域の信号に拡張した場合のマスキング閾値(広帯域マスキング閾値)である場合を例にして説明する。
図8は、その構成を示すものである。信号処理部30は、信号処理部3で用いていた周囲雑音情報帯域拡張部32および信号特性補正部33に代わって、周囲雑音情報帯域拡張部34と、信号特性補正部35とを備えて構成される。
図9に周囲雑音情報帯域拡張部34の構成例を示す。周囲雑音情報帯域拡張部34は、パワー正規化部321と、辞書格納部342と、広帯域パワースペクトル算出部343と、広帯域マスキング閾値算出部344と、パワー制御部345とを備える。
周囲雑音情報帯域拡張部34は、周囲雑音情報帯域拡張部32と同様に、周囲雑音のパワースペクトルを入力として、入力信号x[n]には存在して集音信号z[n]には存在しない周波数帯域成分を含めた情報(広帯域信号情報)を生成する。つまり、周囲雑音情報帯域拡張部34では、狭帯域信号情報から狭帯域特徴量データを算出し、狭帯域信号情報から算出される狭帯域特徴量データと広帯域特徴量データとの対応を事前にモデル化しておき、このモデルと取得した狭帯域特徴量データとの対応を用いて広帯域特徴量データを算出し、広帯域特徴量データから広帯域信号情報を生成する。ただし、周囲雑音情報帯域拡張部34では、狭帯域特徴量データと広帯域特徴量データとの対応のモデル化に、ベクトル量子化によるコードブックを利用する手法を用いる。ここでは、周囲雑音の正規化したパワースペクトル|Nn[f,w]|2 (w=0,1,…M-1)をDnb次の狭帯域特徴量データとして用い、周囲雑音の正規化した広帯域のパワースペクトル|Nw[f,w]|2 (w=0,1,…2M-1)をDwb次の広帯域特徴量データとして用いる(Dnb=M、Dwb=2M)。具体的には、周囲雑音情報帯域拡張部34は、周囲雑音のパワースペクトル|N[f,w]|2 (w=0,1,…M-1)を入力として、周囲雑音のパワースペクトル|N[f,w]|2について入力信号x[n]には存在して集音信号z[n]には存在しない周波数帯域成分のパワースペクトルを周波数帯域拡張によって生成して、その帯域拡張されたパワースペクトルに対してマスキング閾値を求め、その結果である広帯域マスキング閾値N_wb_th[f,w] (w=0,1,…2M-1)を出力する。
辞書格納部342は、Dnb次の狭帯域特徴量データとDwb次の広帯域特徴量データとの対応をモデル化して事前に学習されたサイズQ(ここではQ=64)のコードブックの辞書λ2q={μxq,μyq}(q=1,…,Q)を格納している。なお、μxqはq番目のコードブックにおける狭帯域特徴量データのセントロイドベクトル、μyqはq番目のコードブックにおける広帯域特徴量データのセントロイドベクトルを表している。なお、コードブックのコードベクトルの次数は、狭帯域特徴量データのセントロイドベクトルμxqと広帯域特徴量データのセントロイドベクトルμyqの成分の和であるDnb+Dwbである。
辞書格納部342における事前の辞書λ2qの学習生成方法について、フローチャートを図10に示し、説明する。以下の説明では、前述の辞書λ1qの学習生成方法と同じ処理については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。
コードブックの辞書生成に用いる信号は、入力信号x[n]と同様でサンプリング周波数fs’[Hz]でfs_wb_low[Hz]からfs_wb_high[Hz]までに帯域制限された広帯域な信号を別途事前に集音した信号群である。この信号群は、多数の様々な環境、様々な音量であることが望ましい。以下では、コードブックの辞書生成に用いる広帯域信号の信号群をまとめて広帯域信号データwb[n]と表記する。また、nは時刻(サンプル)を表す。
まず、広帯域信号データwb[n]を入力として、サンプリング周波数fs[Hz]にダウンサンプリングし狭帯域信号データnb[n]を得る(ステップS101)。そして、狭帯域信号データnb[n]から狭帯域信号情報を表す特徴量データである狭帯域特徴量データPnb[f,d](d=1,…,Dnb)を抽出する(ステップS202)。このステップS202では、狭帯域信号データnb[n]のパワースペクトル(M次)を得て(ステップS1021)、狭帯域信号データnb[n]のパワー値を得て(ステップS1022)、これらのパワースペクトルとパワー値から狭帯域信号データnb[n]の正規化されたパワースペクトルを得て(ステップS1023)、これを次数Dnb(=M)の狭帯域特徴量データPnb[f,d](d=1,…,Dnb)とすること
によって狭帯域特徴量データの抽出を行う。
一方、広帯域信号データwb[n]から広帯域信号情報を表す特徴量データである広帯域特徴量データPwb[f,d](d=1,…,Dwb)を抽出する(ステップS203)。このステップS203では、広帯域信号データwb[n]のパワースペクトルを得て(ステップS1031)、広帯域信号データwb[n]から広帯域信号データwb[n]のパワー値をフレーム単位で得て(ステップS2032)、これらのパワースペクトルとパワー値から広帯域信号データwb[n]の正規化されたパワースペクトルをフレーム単位で得て(ステップS2033)、これを次数Dwb(=2M)の広帯域特徴量データPwb[f,d](d=1,…,Dwb)とすることによって広帯域特徴量データの抽出を行う。
次に、狭帯域特徴量データPnb[f,d](d=1,…,Dnb)と広帯域特徴量データPwb[f,d](d=1,…,Dwb)を連結して、次数Dnb+Dwbの連結特徴量データP[f,d](d=1,…,Dnb+Dwb)を生成する(ステップS104)。
上記連結特徴量データP[f,d]からサイズQ(ここではQ=64)のコードブックの辞書λ2q={μxq,μyq}(q=1,…,Q)をk−meansアルゴリズムやLBGアルゴリズムなどによるクラスタリング手法を用いて生成する(ステップS205)。ステップS205では、まず狭帯域セントロイドベクトルμx1を狭帯域特徴量データの全部の平均とし、広帯域セントロイドベクトルμy1を広帯域特徴量データの全部の平均としてサイズQ=1の初期コードブックを生成する(ステップS2051)。そして、コードブックのサイズQが所定数(ここでは64)に達したかどうかを判定する(ステップS2052)。コードブックのサイズQが所定数に達していなければ、コードブックλ2qの各コードベクトルにおける狭帯域セントロイドベクトルμxqと広帯域セントロイドベクトルμyqをわずかにずらして別のコードベクトルを生成することでコードブックのサイズQを2倍に増やす処理を行う(ステップS2053)。そして、次数Dnb+Dwbの連結特徴量データP[f,d]について、コードブックλ2qの各コードベクトルにおける狭帯域セントロイドベクトルμxqとの所定の距離尺度(例えばユークリッド距離やマハラノビス距離)が最小となるコードベクトルを求めて、連結特徴量データP[f,d]をその該当するコードベクトルに割り当てる。その後、コードブックλ2qのコードベクトルごとに割り当てられた連結特徴量データP[f,d]を用いて、コードベクトルごとに新しい狭帯域セントロイドベクトルμxqと広帯域セントロイドベクトルμyqを求めて、コードブックλ2qを更新する(ステップS2054)。コードブックのサイズQが所定数に達していれば、そのコードブックλ2q={μxq,μyq}(q=1,…,Q)を出力する。
広帯域パワースペクトル算出部343は、パワー正規化部321から出力された周囲雑音の正規化したパワースペクトル|Nn[f,w]|2 (w=0,1,…M-1)をDnb次の特徴量データとして入力し、辞書格納部342からコードブックの辞書λ2q={μxq,μyq}(q=1,…,Q)を読み出して、Dnb次の狭帯域特徴量データとDwb次の広帯域特徴量データとの対応から広帯域パワースペクトル|Nw[f,w]|2 (w=0,1,…2M-1)を求める。具体的には、Q個ある狭帯域セントロイドベクトルμxq(q=1,…,Q)から、周囲雑音の正規化したパワースペクトル|Nn[f,w]|2 (w=0,1,…M-1)と所定の距離尺度で一番距離が近いものを求めて、一番距離が近いコードベクトルにおける広帯域セントロイドベクトルμyqを広帯域パワースペクトル|Nw[f,w]|2 (w=0,1,…2M-1)とする。
広帯域マスキング閾値算出部344は、広帯域パワースペクトル算出部343から出力される広帯域パワースペクトル|Nw[f,w]|2 (w=0,1,…2M-1)を入力として、周波数成分ごとに周囲雑音のマスキング閾値である広帯域マスキング閾値N_wb_th1[f,w] (w=0,1,…2M-1)を算出する。
一般にマスキング閾値は、spreading functionと呼ばれる関数を信号のパワースペクトルに畳み込むことで算出することができる。すなわち、周囲雑音の広帯域マスキング閾値N_wb_th1[f,w] (w=0,1,…2M-1)は、spreading functionを関数sprdngf()として、式(13)の式で算出される。周囲雑音の広帯域パワースペクトル|Nw[f,w]|
2が広帯域マスキング閾値N_wb_th1[f,w]以下であるならば、周波数ビンω以外の周波数帯域の周囲雑音の広帯域パワースペクトルによってマスクされる。図11に、横軸を周波数[Hz]、縦軸をパワー[dB]として、屋外など様々な環境で採取した周囲雑音の広帯域マスキング閾値の例を示す。
ここで、bark[w]は周波数ビンωをバーク尺度に変換したバーク値を表し、spreading functionでは、バーク尺度bark[w]に適宜変換する。バーク尺度は、聴覚の分解能を考慮して、低域ほど細かく、高域ほど粗く設定された尺度である。
ここでは、spreading functionを関数sprdngf()として、ISO/IEC13818-7で定義されている方式を用いるとする。spreading functionは、例えばITU-R1387、3GPP TS 26.403といった文献で説明されている他の方式を用いても良い。なお、バーク尺度でなくても、メル尺度、ERB尺度など人間の音の高さの知覚特性や聴覚フィルタから得られた尺度を用いたspreading functionを適宜用いても構わない。
パワー制御部345は、パワー正規化321から出力された狭帯域パワー値Pow_N[f]と広帯域マスキング閾値算出部345から出力された広帯域マスキング閾値N_wb_th1[f,w] (w=0,1,…2M-1)を入力として、広帯域マスキング閾値N_wb_th1[f,w]のfs_nb_low[Hz]からfs_nb_high[Hz]におけるパワーを狭帯域パワー値Pow_N[f]と同じになるように、広帯域マスキング閾値N_wb_th1[f,w]を増幅あるいは減衰させることで制御し、このパワー制御されたN_wb_th1[f,w]を広帯域マスキング閾値N_wb_th[f,w]として出力する。
このようにして、周囲雑音情報帯域拡張部34では、狭帯域信号情報である周囲雑音のパワースペクトル|N[f,w]|2から、広帯域信号情報である広帯域マスキング閾値N_wb_th[f,w]を求める。
図12に信号特性補正部35の構成例を示す。信号特性補正部35は、周波数領域変換部331と、パワー算出部352と、マスキング閾値算出部353と、マスキング判定部354と、パワー平滑化部355と、補正度合決定部356と、補正処理部333と、時間領域変換部334とを備える。
信号特性補正部35は、入力信号x[n] (n=0,1,…2N-1)と広帯域マスキング閾値N_wb_th[f,w]を入力とし、入力信号x[n]が集音信号に含まれる周囲雑音に埋もれてしまわないよう明瞭化する信号補正処理を行い、その補正後の出力信号y[n] (n=0,1,…2N-1)を出力する。
パワー算出部352は、周波数領域変換部331から出力された入力信号x[n]の周波数スペクトルX[f,w] (w=0,1,…2M-1)における実部と虚部の2乗和であるパワースペクトル|X[f,w]|2 (w=0,1,…2M-1)を算出して出力する。
マスキング閾値算出部353は、パワー算出部352から出力された入力信号x[n]のパワースペクトル|X[f,w]|
2 (w=0,1,…2M-1)を入力として、spreading functionを関数sprdngf()として、式(14)の式で入力信号x[n]の広帯域マスキング閾値X_th[f,w] (w=0,1,…2M-1)を算出し出力する。広帯域マスキング閾値X_th[f,w]は、入力信号x[n]のパワースペクトル|X[f,w]|
2 が入力信号x[n]の広帯域マスキング閾値X_th[f,w]以下であるなら
ば、周波数ビンω以外の周波数帯域の入力信号x[n]のパワースペクトル|X[f,w]|
2 によってマスクされることを表す。
マスキング判定部354は、パワー算出部352から出力されたパワースペクトル|X[f,w]|
2 (w=0,1,…2M-1)とマスキング閾値算出部353から出力された広帯域マスキング閾値X_th[f,w]とを入力とし、周波数帯域ごとに入力信号x[n]自身によってマスクされるか否かを表すマスキング判定情報X_flag[f,w] (w=0,1,…2M-1)を出力する。具体的には、パワースペクトル|X[f,w]|
2 と広帯域マスキング閾値X_th[f,w]の大小比較を行い、パワースペクトル|X[f,w]|
2 が広帯域マスキング閾値X_th[f,w]以上ならば、その周波数成分は入力信号x[n]中の他の周波数成分にマスクされないとしてX_flag[f,w]=0とする。また、パワースペクトル|X[f,w]|
2 が広帯域マスキング閾値X_th[f,w]未満ならば、その周波数成分は入力信号x[n]中の他の周波数成分にマスクされるとしてX_flag[f,w]=1とする
パワー平滑化部355は、パワー算出部352から出力されたパワースペクトル|X[f,w]|
2 (w=0,1,…2M-1)とマスキング判定部354から出力されたマスキング判定情報X_flag[f,w]とを入力として、パワースペクトル|X[f,w]|
2 を式(15)の式による三角窓による移動平均によって平滑化して、平滑化されたパワースペクトル|X
S[f,w]|
2 を出力する。なお、Kは平滑化を計算する範囲であり、α
X[j]は、jが0に近いほど係数が大きくなるようなスムージング係数である。例えば、K=3で、α
X[j]は[0.1、0.2、0.4、0.8、0.4、0.2、0.1]とする。
補正度合決定部356は、パワー平滑化部355から出力された平滑化されたパワースペクトル|X
S[f,w]|
2 (w=0,1,…2M-1)とマスキング判定部354から出力されたマスキング判定情報X_flag[f,w] (w=0,1,…2M-1)と周囲雑音情報帯域拡張部32から出力されたN_wb_th[f,w] (w=0,1,…2M-1)とを入力として、補正ゲインG[f,w] (w=0,1,…2M-1)を算出して出力する。補正ゲインG[f,w]の具体的な算出は、まずマスキング判定情報X_flag[f,w]により入力信号x[n]中の他の周波数成分にマスクされる(X_flag[f,w]=1)と判定された周波数帯域であれば、G[f,w]=1とし補正による増幅も減衰も行わないようにする。そして、マスキング判定情報X_flag[f,w]により入力信号x[n]中の他の周波数成分にマスクされない(X_flag[f,w]=0)と判定された周波数帯域について、パワースペクトル|X[f,w]|
2 と周囲雑音の広帯域マスキング閾値N_wb_th[f,w]との大小比較を行う。ここで、パワースペクトル|X[f,w]|
2 が周囲雑音の広帯域マスキング閾値N_wb_th[f,w]以上ならば、その周波数成分は集音信号z[n]中の他の周波数成分にマスクされないのでG[f,w]=1とし、補正による増幅を行わないようにする。一方で、パワースペクトル|X[f,w]|
2 が周囲雑音の広帯域マスキング閾値N_wb_th[f,w]未満ならば、集音信号z[n]中の周囲雑音が少なければ知覚できるにも関わらず、周囲雑音があるためにマスクされていると判断し、式(16)の式のように補正ゲインG[f,w]を周囲雑音の広帯域マスキング閾値N_wb_th[f,w]と平滑化されたパワースペクトル|X
S[f,w]|
2との比に基づいて算出する。なお、関数Fは、平滑されたパワースペクトル|X
S[f,w]|
2のスペクトル傾斜を周囲雑音の広帯域マスキング閾値N_wb_th[f,w]の形状と平行に近くなるように増幅するような関数である。ここで、α、βは正の定数であり、γは正負いずれかの定数である。これらの定数は、入力信号x[n]の増幅度合いを調整するために用いられる。
補正度合決定部356において、このように求めた補正ゲインG[f,w]をさらに式(22)の式による三角窓による移動平均によって平滑化して、平滑化された補正ゲインG
S[f,w]を用いてもよい。なお、Kは平滑化を計算する範囲であり、α
X[j]は、jが0に近いほど係数が大きくなるようなスムージング係数である。例えば、K=3で、α
G[j]は[0.1、0.2、0.4、0.8、0.4、0.2、0.1]とする。
以上のように、再生される入力信号と集音信号で、信号成分が存在する周波数帯域が異なっていたり、サンプリング周波数が異なっていたりしていても、集音信号の周波数特性であるパワースペクトルについて入力信号の周波数帯域を加味して帯域拡張して推定することで、集音信号の周波数特性が高精度に求まり、入力信号の明瞭度を向上させることができる。
なお、図7(b)に示す音声帯域拡張通話装置に本変形例を適用する場合は、信号帯域拡張処理部12において事前に設定した周波数f_limit(f_limitは500〜1200[Hz]程度で、例えばf_limit=1000[Hz]とする)以下の低い周波数帯域が拡張されるとき、つまりfs_wb_low < fs_nb_lowかつfs_wb_low < f_limitであるときは、信号特性補正部35でf_limit以下の周波数帯域について信号補正処理をしないようにする。低域(f_limit以下の周波数)においては、集音する環境やノイズ成分の種類によって、周囲雑音のバラツキが大きいため、このようにすることで、信号帯域拡張処理部12において拡張した低い周波数帯域での周囲雑音のバラツキによって信号補正処理が不安定になることを防止できる。
(信号処理部の変形例2)
本変形例では、図8に示す信号処理部30にて用いる狭帯域信号情報を周囲雑音のパワースペクトルとし、広帯域信号情報を周囲雑音の広帯域パワースペクトル(周囲雑音を広帯域の信号に拡張した場合のパワースペクトル)とした場合を例にして説明する。この場合、周囲雑音情報帯域拡張部34では、狭帯域信号情報である周囲雑音のパワースペクトルを入力として、狭帯域特徴量データとして周囲雑音の正規化されたパワースペクトルを算出し、広帯域特徴量データである周囲雑音の正規化された広帯域パワースペクトルを事前にモデル化された狭帯域特徴量データと広帯域特徴量データとの対応を用いて算出し、この広帯域特徴量データから広帯域信号情報である周囲雑音の広帯域パワースペクトルを生成するようにする。なお、狭帯域特徴量データと広帯域特徴量データとの対応のモデル化には、図5に示すGMMを利用する手法を用いる。これによれば、再生される入力信号と集音信号で、信号成分が存在する周波数帯域が異なっていたり、サンプリング周波数が異なっていたりしていても、集音信号の周波数特性であるパワースペクトルについて入力信号の周波数帯域を加味して帯域拡張して推定することで、集音信号の周波数特性が高精度に求まり、入力信号の明瞭度を向上させることができる。
(信号処理部の変形例3)
次に、信号処理部にて用いる狭帯域信号情報は周囲雑音のパワースペクトル、広帯域信号情報は周囲雑音を広帯域の信号に拡張した場合のマスキング閾値(広帯域マスキング閾値)である場合を例にして説明する。
図13は、その構成を示すものである。信号処理部300では、信号処理部30で用いていた周囲雑音情報帯域拡張部34に代わって、周囲雑音情報帯域拡張部36を用いた構成になっている。
図14に周囲雑音情報帯域拡張部36の構成例を示す。周囲雑音情報帯域拡張部36は、パワー正規化部321と、狭帯域マスキング閾値算出部362と、帯域制御部363と、辞書格納部364と、広帯域マスキング閾値算出部365と、閾値補正部366と、パワー制御部345とを備える。
周囲雑音情報帯域拡張部36は、周囲雑音情報帯域拡張部34と同様に、集音信号z[n]の周波数帯域成分における情報(狭帯域信号情報)を入力として、入力信号x[n]には存在して集音信号z[n]には存在しない周波数帯域成分を含めた情報(広帯域信号情報)を生成する。つまり、周囲雑音情報帯域拡張部36では、狭帯域信号情報から狭帯域特徴量データを算出し、狭帯域特徴量データと広帯域特徴量データとの対応を事前にモデル化しておき、このモデルと取得した狭帯域特徴量データとの対応を用いて広帯域特徴量データを算出し、広帯域特徴量データから広帯域信号情報を生成する。この際、周囲雑音情報帯域拡張部36では、狭帯域特徴量データと広帯域特徴量データとの対応のモデル化に、ベクトル量子化によるコードブックを利用する手法を用いる。ここでは、周囲雑音の帯域制御された狭帯域マスキング閾値N_th[f,w] (w=0,1,…MC-1)のDnb次の狭帯域特徴量データとして用い、周囲雑音の広帯域マスキング閾値N_wb_th1[f,w](w=0,1,…2M-1)のDwb次の広帯域特徴量データとして用いる(Dnb=MC、Dwb=2M)。具体的には、周囲雑音情報帯域拡張部36は、周囲雑音のパワースペクトル|N[f,w]|2 (w=0,1,…M-1)を入力として、周囲雑音のマスキング閾値を求め、このマスキング閾値を帯域制限し、帯域制限されたマスキング閾値について入力信号x[n]には存在して集音信号z[n]には存在しない周波数帯域成分を周波数帯域拡張して生成して、この帯域拡張されたマスキング閾値である広帯域マスキング閾値N_wb_th[f,w] (w=0,1,…2M-1)を出力する。
狭帯域マスキング閾値算出部362は、パワー正規化部321から出力される周囲雑音の正規化したパワースペクトル|Nn[f,w]|
2(w=0,1,…M-1)を入力として、周波数成分ごとに周囲雑音のマスキング閾値である狭帯域マスキング閾値N_th1[f,w] (w=0,1,…M-1)を算出する。前述した広帯域マスキング閾値算出部344と同様にして、データ長である2MをMで置き換え、周囲雑音の狭帯域マスキング閾値N_th1[f,w] (w=0,1,…M-1)は、spreading functionを関数sprdngf()として、式(19)の式で算出される。狭帯域マスキング閾値N_th1[f,w]は、周囲雑音の正規化したパワースペクトル|Nn[f,w]|
2が狭帯域マスキング閾値N_th1[f,w]以下であるならば、周波数ビンω以外の周波数帯域の周囲雑音の正規化したパワースペクトルによってマスクされることを示す。
帯域制御部363は、狭帯域マスキング閾値算出部362から出力された周囲雑音の狭帯域マスキング閾値N_th1[f,w] (w=0,1,…M-1)を入力として、帯域制御する下限周波数limit_low[Hz]から帯域制御する上限周波数limit_high[Hz]までの周波数帯域の信号情報のみを用いるように制御し、帯域制御された狭帯域マスキング閾値であるN_th[f,w]を出力する。ただし、fs_nb_low ≦ limit_low < limit_high ≦ fs_nb_high < fs/2とする。例えばlimit_low=1000[Hz]、limit_high=3400[Hz]とするとき、これらの周波数帯域を式(24)で周波数ビンωに変換して考慮すると、狭帯域マスキング閾値N_th1[f,w] (w=0,1,…M-1)のうちw=32,33,…108のみを用いるようにする。M
CをN_th[f,w]の配列の個数として、帯域制御された狭帯域マスキング閾値N_th[f,w] (w=0,1,…M
C-1)は、狭帯域マスキング閾値N_th1[f,w] (w=32,…108)そのものを代入する。この場合はM
C=108-32+1=77である。
図11にも示す通り、低域においては、集音する環境やノイズ成分の種類によって、周囲雑音のマスキング閾値の分散・バラツキが大きいことが分かる。周囲雑音の主要な成分はノイズ成分であるため、狭帯域マスキング閾値N_th1[f,w]も低域においては、分散・バラツキが大きくなる。そこで、狭帯域特徴量データと広帯域特徴量データとの対応のモデル化をベクトル量子化によるコードブックを利用する手法を用いて、広帯域マスキング閾値を高精度に求めるために、分散・バラツキが大きい低域を用いないように帯域制御する。つまり、ここで、帯域制御する下限周波数limit_low[Hz]は、狭帯域マスキング閾値の分散・バラツキが所定の値よりも小さいような周波数帯域の下限に設定することが望ましい。こうすることによって、広帯域マスキング閾値を高精度に求めることができ、入力信号の明瞭度を向上させることができる。
また、マスキング閾値は、その周波数帯域のパワースペクトルだけではなくて周囲の周波数帯域のパワースペクトルを加味して算出される。そのため、マスキング閾値を求める元々の信号の帯域制限されている周波数帯域付近では、正確にマスキング閾値が算出できない。つまり、帯域制御する上限周波数limit_high[Hz]は、帯域制限を加味してもマスキング閾値が正確に求まる周波数帯域の上限に設定することが望ましい。こうすることによって、広帯域マスキング閾値を高精度に求めることができ、入力信号の明瞭度を向上させることができる。
辞書格納部364は、Dnb次の狭帯域特徴量データとDwb次の広帯域特徴量データとの対応をモデル化して事前に学習されたサイズQ(ここではQ=64)のコードブックの辞書λ3q={μxq,μyq}(q=1,…,Q)を格納している。なお、μxqはq番目のコードブックにおける狭帯域特徴量データのセントロイドベクトル、μyqはq番目のコードブックにおける広帯域特徴量データのセントロイドベクトルを表している。なお、コードブックのコードベクトルの次数は、狭帯域信号情報のセントロイドベクトルμxqと広帯域信号情報のセントロイドベクトルμyqの成分の和であるDnb+Dwbである。
辞書格納部364における事前の辞書λ3qの学習生成方法の一手法について、フローチャートを図15に示し、説明する。以下の説明では、上述した変形例1における辞書λ2qの学習生成方法と同じ処理については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。
まず、広帯域信号データwb[n]を入力として、サンプリング周波数fs[Hz]にダウンサンプリングし狭帯域信号データnb[n]を得る(ステップS101)。そして、狭帯域信号データnb[n]から狭帯域信号情報を表す特徴量データである狭帯域特徴量データPnb[f,d](d=1,…,Dnb)を抽出する(ステップS202)。このステップS202では、狭帯域信号データnb[n]のパワースペクトル(M次)を得て(ステップS1021)、狭帯域信号データnb[n]のパワー値を得て(ステップS1022)、これらのパワースペクトルとパワー値から狭帯域信号データnb[n]の正規化されたパワースペクトルを得て(ステップS1023)、式(23)と同様にして狭帯域信号データnb[n]のマスキング閾値を算出する(ステップS3024)。そして、狭帯域信号データnb[n]のマスキング閾値に対して、帯域制御部363での処理と同様に帯域制御する(ステップS3025)。これを次数Dnb(=MC)の狭帯域特徴量データPnb[f,d](d=1,…,Dnb)とすることによって狭帯域特徴量データの抽出を行う。
一方、広帯域信号データwb[n]から広帯域信号情報を表す特徴量データである広帯域特徴量データPwb[f,d](d=1,…,Dwb)を抽出する(ステップS303)。このステップS303では、広帯域信号データwb[n]のパワースペクトル(2M次)を得て(ステップS1031)、広帯域信号データwb[n]から広帯域信号データwb[n]のパワー値を得て(ステップS2032)、これらのパワースペクトルとパワー値から広帯域信号データwb[n]の正規化されたパワースペクトルをフレーム単位で得て(ステップS2033)、式(23)の次数をMから2Mにして同様にして広帯域信号データwb[n]のマスキング閾値を算出する(ステップS3034)。これを次数Dwb(=2M)の広帯域特徴量データPwb[f,d](d=1,…,Dwb)とすることによって広帯域特徴量データの抽出を行う。
次に、狭帯域特徴量データPnb[f,d](d=1,…,Dnb)と広帯域特徴量データPwb[f,d](d=1,…,Dwb)を連結して、次数Dnb+Dwbの連結特徴量データP[f,d](d=1,…,Dnb+Dwb)を生成する(ステップS104)。
そして、連結特徴量データP[f,d]からコードブックの各コードベクトルにおける狭帯域セントロイドベクトルμx
qと広帯域セントロイドベクトルμy
qを求め、サイズQ(ここではQ=64)のコードブックをk−meansアルゴリズムやLBGアルゴリズムなどによるクラスタリング手法を用いて生成する(ステップS205)。コードブックの各コードベクトルにおける広帯域セントロイドベクトルμy
qである広帯域信号データwb[n]のマスキング閾値を近似多項式係数で表現して、近似多項式係数を広帯域セントロイドベクトルμ’y
qとして辞書に格納して、辞書λ3
q={μx
q,μ’y
q}(q=1,…,Q)を生成する(ステップS307)。近似多項式係数m
p(p=0,…,P)とはここでは、縦軸をパワー値X[dB]、横軸を周波数Y[Hz]として、式(20)のようにマスキング閾値を所定の次数(ここではPとし、例えばP=6とする)の多項式で近似した、その多項式の係数のことであり、これ以降そのように呼ぶ。
このように、マスキング閾値を近似多項式係数で表現して辞書として格納しておくことで、マスキング閾値を辞書として格納しておくよりも、辞書の格納に掛かるメモリ量を削減することができ、辞書の配列の数を小さくなるため辞書の利用時の処理量を削減することができる。
広帯域マスキング閾値算出部365は、帯域制御部363から出力された帯域制御された狭帯域マスキング閾値N_th[f,w] (w=0,1,…MC-1)をDnb次の特徴量データとして入力し、辞書格納部364からコードブックの辞書λ3q={μxq,μ’yq}(q=1,…,Q)を読み出して、Dnb次の狭帯域特徴量データとDwb次の広帯域特徴量データとの対応から周囲雑音の広帯域マスキング閾値N_wb_th1[f,w](w=0,1,…2M-1)を求める。具体的には、Q個ある狭帯域セントロイドベクトルμxq(q=1,…,Q)から、帯域制御された狭帯域マスキング閾値N_th[f,w] (w=0,1,…MC-1)と所定の距離尺度で一番距離が近いものを求めて、一番距離が近いコードベクトルにおける広帯域セントロイドベクトルμ’yqをそのまま広帯域マスキング閾値の近似多項式係数として設定し、式(20)と同様にして広帯域マスキング閾値N_wb_th1[f,w](w=0,1,…2M-1)を算出する。
閾値補正部366は、狭帯域マスキング閾値算出部362から出力された周囲雑音の狭帯域マスキング閾値N_th1[f,w] (w=0,1,…M-1)と広帯域マスキング閾値算出部365から出力された周囲雑音の広帯域マスキング閾値N_wb_th1[f,w] (w=0,1,…2M-1)を入力として、狭帯域と広帯域における境界帯域付近での不連続性あるいは微分不連続性を解消するように補正し、その補正された広帯域マスキング閾値N_wb_th2[f,w] (w=0,1,…2M-1)を出力する。図16(a)に、境界帯域fs/2[Hz]前後の周波数において、狭帯域マスキング閾値N_th[f,w]と広帯域マスキング閾値N_wb_th1[f,w]とに不連続性が生じ、それを解消するように補正された広帯域マスキング閾値N_wb_th2[f,w]の例を示す。図16(b)に、境界帯域fs/2[Hz]前後の周波数において、狭帯域マスキング閾値N_th[f,w]と広帯域マスキング閾値N_wb_th1[f,w]とに不連続性と微分不連続性の両方が生じ、それを解消するように補正された広帯域マスキング閾値N_wb_th2[f,w]の例を示す。両図共に、実線は狭帯域マスキング閾値N_th[f,w]を、破線は広帯域マスキング閾値N_wb_th2[f,w]を、太実線は補正された広帯域マスキング閾値N_wb_th2[f,w]における補正箇所を表す。ただし、adjust_low[Hz] < fs/2 < adjust_high[Hz]とする。ここで、adjust_lowは周波数ビンωL−1に対応する周波数以上で周波数ビンωLに対応する周波数未満であり、adjust_highは周波数ビンωHに対応する周波数以上で周波数ビンωH+1に対応する周波数未満であるとする。例えばfs=8000[Hz]であるとき、adjust_low=3600[Hz]、adjust_high=4400[Hz]とする。具体的には、少なくとも境界帯域fs/2[Hz]前後の周波数において不連続あるいは微分不連続が検出された場合に、adjust_low[Hz]以上かつadjust_high[Hz]以下であるような境界帯域
付近について、周波数ビンωL、ωL+1…、ωL+SとωH、ωH−1…、ωH−Sにおける広帯域マスキング閾値N_wb_th1[f,w]を用いて、周波数ビンωL+S+1からωH−S−1までの広帯域マスキング閾値を(2S-1)次関数で模擬し、スプライン補間を行うことで、補正された広帯域マスキング閾値N_wb_th2[f,w]を求める。ここで、狭帯域マスキング閾値N_th1[f,M-1]と広帯域マスキング閾値N_wb_th1[f,M]との中点を通過するように模擬する関数を設定してスプライン補間を行ってもよい。
このように閾値補正部366において広帯域マスキング閾値を補正することで、広帯域マスキング閾値における不連続性あるいは微分不連続性が解消され、信号補正においても周波数方向の不連続性が無くなって違和感のない自然な信号補正にすることができ、高い明瞭感を得ることができる。
以上のように、再生される入力信号と集音信号で、信号成分が存在する周波数帯域が異なっていたり、サンプリング周波数が異なっていたりしていても、集音信号のマスキング閾値について入力信号の周波数帯域を加味して帯域拡張して推定することで、集音信号のマスキング閾値が高精度に求まり、入力信号の明瞭度を向上させることができる。
(信号処理部の変形例4)
信号処理部300の辞書格納部364における事前の辞書λ3qの学習生成方法の他の手法について、フローチャートを図17に示し、説明する。ここでは、狭帯域信号データnb[n]を生成しないで広帯域信号データwb[n]のみから辞書λ3qを学習生成する方法について説明する。以下の説明では、上述した変形例2における辞書λ3qの学習生成方法と同じ処理については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。
まず、ステップS303で広帯域信号データwb[n]から広帯域信号情報を表す特徴量データ(ここではマスキング閾値)である広帯域特徴量データPwb[f,d](d=1,…,Dwb)を抽出する。この広帯域特徴量データPwb[f,d](d=1,…,Dwb)のみを用いて、ステップS205でサイズQのコードブックを作成する。そして、コードブックの各コードベクトルにおける広帯域セントロイドベクトルμyqである広帯域信号データwb[n]の広帯域マスキング閾値に対して、帯域制御する下限周波数limit_low[Hz]から帯域制御する上限周波数limit_high[Hz]までの周波数帯域の広帯域マスキング閾値のみを用いるように制御する(ステップS3025)。これにより狭帯域に帯域制御された狭帯域マスキング閾値が求まり、これをコードブックの各コードベクトルにおける狭帯域セントロイドベクトルμxq(q=1,…,Q)とする(ステップS306)。その後、ステップS307で広帯域信号データwb[n]のマスキング閾値の近似多項式係数である広帯域セントロイドベクトルμ’yqと併せて辞書に格納して、辞書λ3q={μxq,μ’yq}を生成する。
狭帯域特徴量データを併用してクラスタリングする図15における手法では、狭帯域特徴量データに狭帯域と広帯域における境界帯域付近で誤差を含む。このように、広帯域特徴量データのみを用いてクラスタリングして、広帯域セントロイドベクトルを帯域制限して狭帯域セントロイドベクトルを求めることで、理想的なデータである広帯域特徴量データのみを用いてクラスタリングするため、図15における手法よりも、高精度にクラスタリングを行うことができる。
(信号処理部の変形例5)
信号処理部300の辞書格納部364における事前の辞書λ3qの学習生成方法の他の手法について、フローチャートを図18に示し、説明する。以下の説明では、上述した変形例2における辞書λ3qの学習生成方法と同じ処理については同じ番号を付番し、説明を簡明にするために必要に応じて重複する説明を省略する。
ステップS205でサイズQのコードブックを作成した後、コードブックの各コードベクトルにおける狭帯域セントロイドベクトルμxqである狭帯域信号データnb[n]のマスキング閾値を式(20)のように近似多項式で表現して、近似多項式係数を狭帯域セントロイドベクトルμ’xq(q=1,…,Q)とする(ステップS306A)。その後、ステップS307で広帯域信号データwb[n]のマスキング閾値の近似多項式係数である広帯域セントロイドベクトルμ’yqと併せて辞書に格納して、辞書λ3q={μ’xq,μ’yq}を生成する。
一方で、この手法においては、広帯域マスキング閾値算出部365では、帯域制御部363から出力された帯域制御された狭帯域マスキング閾値N_th[f,w] (w=0,1,…MC-1)をDnb次の特徴量データとして入力し、辞書格納部364からコードブックの辞書λ3q={μ’xq,μ’yq}(q=1,…,Q)を読み出して、Dnb次の狭帯域特徴量データとDwb次の広帯域特徴量データとの対応から周囲雑音の広帯域マスキング閾値N_wb_th1[f,w](w=0,1,…2M-1)を求めるようにする。具体的には、Q個ある狭帯域セントロイドベクトルμ’xq(q=1,…,Q)の近似多項式から、帯域制御された狭帯域マスキング閾値N_th[f,w] (w=0,1,…MC-1)と所定の距離尺度で一番距離が近いものを近似多項式に代入していくことで求めて、一番距離が近いコードベクトルにおける広帯域セントロイドベクトルμ’yqをそのまま広帯域マスキング閾値の近似多項式係数として設定し、式(20)と同様にして広帯域マスキング閾値N_wb_th1[f,w](w=0,1,…2M-1)を算出する。
このように、狭帯域マスキング閾値も近似多項式係数で表現して辞書として格納しておくことで、マスキング閾値を辞書として格納しておくよりも、図15における手法と比較しても、辞書の格納に掛かるメモリ量を削減することができ、辞書の配列の数を小さくなるため辞書の利用時の処理量を削減することができる。
(第2の実施例)
図19(a)は、本発明の第2の実施形態に係わる通信装置の構成を示すものである。
この図に示す通信装置は、例えば携帯電話などの無線通信装置の受信系を示すものであって、無線通信部1と、デコーダ2と、信号処理部3Aと、ディジタル・アナログ(D/A)変換器4と、スピーカ5と、マイク6と、アナログ・ディジタル(A/D)変換器7と、ダウンサンプリング部8と、エコー抑圧処理部9と、エンコーダ10とを備えている。
なお、第1の実施例と同様に、本発明は、図19(a)のような通信装置だけでなく、図19(b)に示すディジタルオーディオプレイヤに適用することも可能である。また、図19(c)に示す音声帯域拡張通話装置に適用することも可能である。
次に、信号処理部3Aについて説明する。図20は、その構成を示すものである。信号処理部3Aは、第1の実施例にて説明した信号処理部3に周囲雑音抑圧処理部37を追加して構成される。以下の説明では、上述した実施例と同じ構成については同じ番号を付番し、必要に応じて重複する説明を省略する。
図21に周囲雑音抑圧処理部37の構成例を示す。周囲雑音抑圧処理部37は、抑圧ゲイン算出部371と、スペクトル抑圧部372と、パワー算出部373と、時間領域変換部374とを備える。
周囲雑音抑圧処理部37は、周囲雑音推定部31から出力される周囲雑音のパワースペクトルと集音信号z[n]のパワースペクトルと集音信号z[n]の周波数スペクトルを用いて、集音信号z[n]に含まれる周囲雑音であるノイズ成分を抑圧して、周囲雑音であるノイズ成分が抑圧された信号s[n]をエンコーダ10に出力する。エンコーダ10では周囲雑音抑圧処理部37から出力された信号s[n]を符号化して無線通信部1に出力する。
抑圧ゲイン算出部371は、パワー算出部312から出力される集音信号z[n]のパワースペクトル|Z[f,w]|2 (w=0,1,…M-1)と、周波数スペクトル更新部314から出力される周囲雑音のパワースペクトル|N[f,w]|2 (w=0,1,…M-1)と、パワー算出部373から出力される1フレーム前の抑圧処理された信号のパワースペクトル|S[f-1,w]|2 (w=0,1,…M-1)とを用いて、各周波数帯域の抑圧ゲインG[f,w] (w=0,1,…M-1)を出力する。例えば、抑圧ゲインG[f,w]の算出は、以下のアルゴリズムまたはそれらの組み合わせによって行う。すなわち、一般のノイズキャンセラであるスペクトル・サブトラクション(Spectral Subtraction)法(S. F. Boll, “Suppression of acoustic noise in speech using spectral subtraction”, IEEE Trans. Acoustics, Speech, and Signal Processing, vol.ASSP-29, pp.113-120 (1979).)、ウィナー・フィルター(Wiener Filter)法(J. S. Lim, A. V. Oppenheim, “Enhancement and bandwidth compression of noisy speech”, Proc. IEEE Vol.67, No.12, pp.1586-1604, Dec.1979.)及び最尤推定(Maximum Likelihood)法(R. J. McAulay, M. L. Malpass, “Speech enhancement using a soft-decision noise suppression filter”, IEEE Trans. on Acoustics, Speech, and Signal Processing, vol.ASSP-28, no.2, pp.137-145, Apr.1980.)などである。ここでは一例としてウィナー・フィルター法を用いて、抑圧ゲインG[f,w]を算出するとする。
スペクトル抑圧部372は、周波数領域変換部311から出力された集音信号z[n]の周波数スペクトルZ[f,w] と、抑圧ゲイン算出部371から出力された抑圧ゲインG[f,w]とを入力として、集音信号z[n]の周波数スペクトルZ[f,w]を集音信号z[n]の振幅スペクトル|Z[f,w]| (w=0,1,…M-1)と位相スペクトルθZ[f,w] (w=0,1,…M-1)に分け、集音信号z[n]の振幅スペクトル|Z[f,w]| に抑圧ゲインG[f,w]を乗じることで周囲雑音であるノイズ成分を抑圧し、その抑圧処理された信号の振幅スペクトル|S[f-1,w]|とし、位相スペクトルθZ[f,w]をそのまま抑圧処理された信号の位相スペクトルθS[f,w]として、抑圧処理された信号の周波数スペクトルS[f,w] (w=0,1,…M-1)を算出する。
パワー算出部373は、スペクトル抑圧部372から出力された抑圧処理された信号の周波数スペクトルS[f,w] (w=0,1,…M-1)から抑圧処理された信号のパワースペクトル|S[f,w]|2 (w=0,1,…M-1)を算出し出力する。
時間領域変換部374は、スペクトル抑圧部372から出力された抑圧処理された信号の周波数スペクトルS[f,w] (w=0,1,…M-1)を入力として、周波数領域を時間領域に変換する処理(例えば、IFFT)を施し、周波数領域変換部311における窓掛けによるオーバーラップ分を考慮して1フレーム前の抑圧処理された信号s[n]を適宜加算して、抑圧処理された時間領域の信号s[n] (n=0,1,…N-1)を算出する。
以上のように、周囲雑音推定処理に周囲雑音抑圧処理を併用することで処理量の増加を抑えつつ、入力信号を明瞭化すると同時に、集音信号における周囲雑音成分を抑圧して高音質な集音信号を得ることができる。
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
例えば、入力信号(あるいは目的信号)のサンプリング周波数は、集音信号(あるいは周囲雑音)のサンプリング周波数の2倍に限定されるものではなく、整数倍でも、非整数倍でもよい。また、入力信号(あるいは目的信号)のサンプリング周波数は、集音信号(あるいは周囲雑音)のサンプリング周波数と等しい上で、入力信号(あるいは目的信号)の周波数帯域制限の範囲と集音信号(あるいは周囲雑音)の周波数帯域制限の範囲が異なっている場合であっても構わない。さらに、入力信号(あるいは目的信号)の周波数帯域制限の範囲が、集音信号(あるいは周囲雑音)の周波数帯域制限の範囲を包含していなくても構わない。さらにまた、入力信号(あるいは目的信号)の周波数帯域制限の範囲は、集音信号(あるいは周囲雑音)の周波数帯域制限の範囲と隣接していなくても構わない。
また、入力信号がモノラル信号ではなくステレオ信号であったとしても、例えばL(左)チャネルとR(右)チャネルにそれぞれ上記信号処理部3における信号処理を施したり、和信号(LチャネルとRチャネルの信号の和)と差信号(LチャネルからRチャネルの信号の差)にそれぞれ上記の信号処理を施したりすることで同様の効果が得られる。勿論、マルチチャネル信号であったとしても例えば同様にそれぞれのチャネル信号に対して上記の信号処理を施したりすることで同様の効果が得られる。
その他、この発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。