(57)【要約】【課題】  性能と計算量をより改良した方法により、サンプリングされた信号から雑音を推定し、除去する。【解決手段】  カルマンフィルタ13は、PSDベクトルに沿って一方向に、PSDベクトルを再帰フィルタ処理する。また、前記フィルタ処理とは逆方向に、PSDベクトルを再帰フィルタ処理する。そして、二つのフィルタの処理結果を結合して、雑音PSD推定値にする。【選択図】  図5
2007293059.tif 000002
【特許請求の範囲】
【請求項１】
信号のベクトルの値を処理する信号処理装置であって、
前記ベクトルに沿って一方向に、前記ベクトルを再帰フィルタ処理する第一のフィルタと、
前記ベクトルに沿って前記第一のフィルタとは逆方向に、前記ベクトルを再帰フィルタ処理する第二のフィルタと、
前記第一および第二のフィルタの処理結果を結合する結合手段とを有し、
前記第一および第二のフィルタの係数は前記ベクトルの位置に依存することを特徴とする信号処理装置。
【請求項２】
前記係数は、予め決定されていることを特徴とする請求項1に記載された信号処理装置。
【請求項３】
前記ベクトルの値は周波数値であることを特徴とする請求項1または請求項2に記載された信号処理装置。
【請求項４】
前記ベクトルの値は雑音除去処理により得られる周波数値であることを特徴とする請求項1または請求項2に記載された信号処理装置。
【請求項５】
音声認識処理または音声強調処理を行う装置に組み込まれることを特徴とする請求項1から請求項4の何れかに記載された信号処理装置。
【請求項６】
信号のベクトルの値を処理する信号処理方法であって、
前記ベクトルに沿って一方向に、前記ベクトルを再帰フィルタ処理する第一のフィルタステップと、
前記ベクトルに沿って前記第一のフィルタステップとは逆方向に、前記ベクトルを再帰フィルタ処理する第二のフィルタステップと、
前記第一および第二のフィルタステップの処理結果を結合する結合ステップとを有し、
前記第一および第二のフィルタステップの係数は前記ベクトルの位置に依存することを特徴とする信号処理方法。
【請求項７】
請求項6に記載された信号処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば音声信号のような信号の信号処理に関する。
【背景技術】
【０００２】
多くのディジタル信号処理(DSP)システムは、入力信号の周波数領域の情報を得るために、FFT (Fast Fourier Transform)、または、それに類似する処理を実行する。FFTの場合、情報は、複素ベクトル値として得られる。そして、複素ベクトル値の実部と虚部の二乗和をとることで、ピリオドグラム(periodogram)として知られるベクトル値が得られる。ピリオドグラムは、PSD (Power Spectral Density)とも言われる。ここでは、簡潔な表現であるPSDを用いる。もし、信号が二つの独立した信号の和であれば、PSDも二つの独立したPSDの和として近似することができ、利用し易い信号表現である。
【０００３】
オーディオディジタル信号処理において、入力信号は、二つの信号から構成されることが多い。一方は人が話す音声であり、他方は電子回路が発生する雑音(circuit noise)や機械や自動車などが発生する背景雑音(background noise)である。信号全体から雑音を除去し、クリーンな音声信号を取り出す方法の応用には、次の二つの代表的なアプリケーションがある。
【０００４】
一つ目は自動音声認識(automatic speach recognition: ASR)である。ASRは、ユーザが発声した音声を認識し、その音声を基に何らかの操作を行うことを目標とする。例えば、演説、会話、発言(speech)などの書き起こし(transcribe)や、発声命令に基づく機械の操作である。ASRシステムは、通常、クリーンな音声だけを受け入れる。もし、雑音で劣化した音声をASRシステムに適用した場合、その性能は大きく低下する。
【０００５】
二つ目は音声強調(speech enhancement)である。音声強調は、雑音が載った音声信号から、クリーンで聞き取り可能な音声信号を生成することを目標とする。例えば、騒々しい機械の傍で電話をすると、電話相手は、音声とともに機械の騒音も聞くことになる。しかし、電話相手は、機械の騒音を除いた相手の音声のみを聞きたい筈である。音声強調は、これを達成しようとする。
【０００６】
上記のASRや音声強調には、スペクトルサブトラクション(spectral subtraction: SS)として知られる処理が、信号から雑音を除去するためにしばしば用いられる。これは、音声と雑音のPSDは加法的で、音声は、雑音の推定量を単純に減算することで復元できるという基本的な前提に基づく。
【０００７】
以下では、典型的なSSを図1を参照して説明する。なお、図1はSSを行う音声認識処理の前処理部分の構成を示すブロック図である。
【０００８】
まず、フレーム処理された入力信号をハートレー変換(Hartley transform)部16により、周波数領域の情報に変換する。そして、ピリオドグラム計算部17により、入力信号のPSDを計算する。
【０００９】
次に、雑音推定部32により、人が音声を発声していない、雑音だけが存在する無音区間(silence)において、複数フレームに亘り平均雑音PSDを計算する。
【００１０】
そして、SS部33により、各フレームのPSDから平均雑音PSDを減算し、雑音を除去したクリーンな音声PSDを得る。
【００１１】
ASRにおいては、メルスケール化フィルタ(mel-scaled filter) 18により、クリーンな音声PSDをフィルタ処理して、元のPSDより次数の小さいPSDベクトルを生成する。そして、隠れマルコフモデル(hidden Markov model: HMM)のようなパターン認識アルゴリズムが使用する特徴量として、対数演算部19により、メルスケール化されたPSDの対数を計算する。なお、対数演算部19の出力を離散コサイン変換したものを特徴量としてもよい。
【００１２】
一方、音声強調においては、雑音が除去された音声PSDは、雑音PSDと組み合わされ、例えばウィナーフィルタ(Weiner filter)処理される。ウィナーフィルタは、複素数のFFTの結果に重み付けをするために用いられる。さらに、この結果は、逆FFT(IFFT)により逆変換される。最後に、オーバラップおよび加算処理を行い、復元された音声信号を得る。
【００１３】
上記の処理の主要な問題は、雑音推定部32およびSS部33の不完全さにある。雑音推定部32における推定値は、有限のPSDフレームから計算する。もし、雑音の計算に少数のフレームしか利用できなければ、推定値は正確とは言えない。これは、もう一つの、これとは独立した次の問題にも影響する。
【００１４】
PSDはランダムに変動するので、SS処理はときどき、クリーンな音声PSDの結果として零または負を与える。PSDの値は、定義により正でなくてはならないから、何らかの訂正が必要になる。単純に、負の値を零にフロアリングする方法はうまく働かないことが知られている。ASRの場合、次は対数演算であり、零付近の値は負の無限に近付き、特徴量の通常の範囲を遥かに超えてしまう。音声強調では、小さい値はミュージカル雑音現象をもたらし、信号に音楽のような音を混入する。
【００１５】
ゼロPSD問題の対策として、二つの異なる解決方法を一般に用いる。
【００１６】
フロアリング：ASRでは、SSの結果がフロアリング値より小さくなることを認めず、通常、SS処理前のPSDの縮尺を変更した値にする方法を用いる。
【００１７】
時間方向フィルタ処理：音声強調では、SS値は零にフロアリングされた後、前フレームの値とSS処理された値の線形変換により求まる最終的な値を得る時間方向のフィルタを施す。発明者らは、このフィルタ処理が、ASRに有効ではないことを見出している。
【００１８】
先行技術文献としては次のようなものがある。
【００１９】
音声強調の概念、ウィナ−フィルタ処理、SSは周知技術であり、例えば非特許文献1に記載されている。ASRおよびメルフィルタ処理の概念は周知技術であり、例えば非特許文献2に記載されている。カルマンフィルタ処理(Kalman filitering)は周知技術であり、非特許文献3に記載されている。
【００２０】
特許文献1は、音声強調において、時間方向と周波数方向の両方向でスムージング処理を施す方法を記載する。周波数方向のスムージング処理では、再帰的なフィルタ処理ではなく、FIR処理を用いており、PSDの位置に依存して決まる方法ではなく、固定の係数となるフィルタを用いる。
【００２１】
特許文献2と非特許文献4は、隣接するスペクトルビン(spectral bins)に依存するスペクトルフィルタを用いることを記載する。しかし、係数はPSDの位置に依存しない。この場合のスペクトルフィルタは時間方向のものであり、以下で説明するが、PSDの時間的フィルタ処理を避けようとする本発明とは異なる。
【００２２】
特許文献3は、最新のASR用の雑音除去システムを記載する。このシステムは、例えばウィナーフィルタ処理のような付加的な技術を用いる。しかし、カルマンフィルタのような再帰的フィルタを用いず、実現には多くの計算量を要する。
【００２３】
【非特許文献１】Quatieri「Discrete Time Speech Signal Processing」ISBN 0-13-242942-X
【非特許文献２】Rabiner and Juang「Fundamentals of Speech Recognition」ISBN 0-13-015157-2
【非特許文献３】Scharf「Statistical Signal Processing ? Detection, Estimation and Time Series Analysis」ISBN 0-201-19038-9
【非特許文献４】ICASSP 2005 volume I 1081頁
【特許文献１】米国特許6,931,292号
【特許文献２】国際出願公開02/095732号
【特許文献３】米国特許出願公開2003/0018471号
【発明の開示】
【発明が解決しようとする課題】
【００２４】
本発明は、信号から雑音を除去することを目的とする。
【課題を解決するための手段】
【００２５】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００２６】
本発明にかかる信号処理装置は、信号のベクトルの値を処理する信号処理装置であって、前記ベクトルに沿って一方向に、前記ベクトルを再帰フィルタ処理する第一のフィルタと、前記ベクトルに沿って前記第一のフィルタとは逆方向に、前記ベクトルを再帰フィルタ処理する第二のフィルタと、前記第一および第二のフィルタの処理結果を結合する結合手段とを有し、前記第一および第二のフィルタの係数は前記ベクトルの位置に依存することを特徴とする。
【００２７】
本発明にかかる信号処理方法は、信号のベクトルの値を処理する信号処理方法であって、前記ベクトルに沿って一方向に、前記ベクトルを再帰フィルタ処理する第一のフィルタステップと、前記ベクトルに沿って前記第一のフィルタステップとは逆方向に、前記ベクトルを再帰フィルタ処理する第二のフィルタステップと、前記第一および第二のフィルタステップの処理結果を結合する結合ステップとを有し、前記第一および第二のフィルタステップの係数は前記ベクトルの位置に依存することを特徴とする。
【発明の効果】
【００２８】
本発明によれば、信号から雑音を除去することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明にかかる実施例の情報処理を図面を参照して詳細に説明する。
【実施例１】
【００３０】
［概要］
SSにおける本質的な問題は、極めて少ないデータ量からPSDの統計的な推定値を得なければならないことにある。未処理のSS PSD(raw SS PSD)の場合、各推定用に、たった一つの(PSD)値を使用する。より耐性のある推定を得るには、より多くのデータを用いて推定する必要がある。
【００３１】
本発明は、以下の二つの仮定に基づく。
【００３２】
一つ目は、フレームサイズが信号が安定とみなせる最小期間に設定される。言い換えると、連続するフレームには相関がないと仮定する。これは、HMMの仮定に非常に近い。
【００３３】
二つ目は、PSDのベクトルのサイズが非常に大きい。つまり、実際の音声スペクトルは、PSD値の数よりも遥かに小さい自由度をもつ。そして、隣接するPSD値は非常に高い相関をもつ。
【００３４】
上記の仮定からは、PSD値の時間方向のフィルタ処理は回避すべきで、（単一フレーム内のPSDベクトルに沿う）周波数方向のフィルタ処理が有効であると考えられる。発明者らは、これが、先行技術寄りも有効な方法であることを見出した。
【００３５】
本発明の特徴は、周波数を適用したカルマンフィルタの形態にある。カルマンフィルタ自体は周知技術である。しかし、本実施例が用いる再帰計算式は通常の式とは異なる。フィルタは、二つの単極再帰フィルタを構成する。一つ目のフィルタは、ベクトルの最初のPSD値によって初期化され、高次のインデックス値に向かってPSDベクトルをフィルタ処理する。二つ目のフィルタは、高次のインデックスPSD値から最初のPSD値に向かう以外は、一つ目のフィルタとほぼ同様である。フィルタ処理された二つの信号は線形に結合され、単一のカルマン平滑化PSDを与える。
【００３６】
［SS処理］
次に、本発明のSS処理の概要を説明する。
【００３７】
まず、複数の雑音フレームのPSDを合計し、カルマンフィルタにより、合計したPSDを平滑化する。各フィルタの係数は、合計を正規化するように選択する。フィルタの出力は、改良された雑音PSDの推定値となっている。
【００３８】
次に、後に続く各フレームのPSDから雑音PSDの推定値を減算し、負の値は零にフロアリングして、SS PSDを得る。
【００３９】
そして、カルマンフィルタを使用してSS PSDを平滑化し、平滑化したクリーンな音声PSDを得る。フィルタ係数は、フロアリング値を含むように、適宜、変更される。
【００４０】
ASRにおいては、フィルタ係数は、次の工程のメルフィルタ処理を必要としないように選択する。サイズを小さくしたメルPSDは、全PSDから単にサンプリングするだけで構成することができる。これは、図2に示す、応答ピークを中央に設定した16のインパルスのカルマンフィルタの非正規化インパルス応答に示される。図3は、同位置に中央を設定した従来のメルビン(mel bins)を示す。
【００４１】
また、音声強調の場合は、全PSDを用いて、例えばウィナーフィルタによって音声信号の再構成を行う。
【００４２】
［特徴抽出処理］
次に、ASRにおける特徴抽出処理を説明するが、当業者であれば、同等または類似の方法により、音声強調を実行することができる。
【００４３】
図4は通常のASRの前処理におけるデータの流れを示すブロック図である。
【００４４】
最初は、通常のASRの前処理と同じ処理を行う。例えばマイクによって入力される音声信号10は、PCMサンプラ13によって例えば11.025 kHzでサンプリングされる。そして、プリエンファシス14のフィルタ処理により、直流(DC)成分が除去され、高域強調（または低域低減）が施される。本実施例では下式を用いる。
xt' = xt - xt-1      …(1)
ここで、xtは時間tの音声信号のサンプル値
【００４５】
フィルタ処理された信号は、ハミング窓(Hamming window)によるウィンドウ処理部15により、256サンプルのフレームに分割される。新フレームは110サンプルごとに開始される。これは、フレームが互いに重なっていること、および、一秒当り100フレームになることを意味する。
【００４６】
その後、各フレームは、ハートレー変換部16により変換処理される。ハートレー変換部16によって得られる同一の周波数に対応する二つの出力は、PSD生成部34により、未処理のPSD (raw PSD)を形成するために二乗和される。ハートレー変換の出力を、このように利用すれば、FFTやDFT (discrete Fourier transform)を使用する場合と同じ結果が得られることは周知である。ここで、raw PSDベクトルをpとし、pのk番目の値をpkと表す。PSDベクトルはK個の値をもち、本実施例ではK = 129とする。
【００４７】
ここからは通常のASRの前処理とは異なる処理になる。図5はSS部35の構成（つまり、通常のASRとは異なる構成）を示すブロック図である。
【００４８】
図5に示す雑音加算部42は、雑音PSD推定値を形成するために、最初のNフレームを合計する。なお、本実施例ではN = 9である。カルマンフィルタ43は、合計されたベクトルを、下式の第一の再帰フィルタによりフィルタ処理する。
dk = {ak/(ak + N)}dk-1 + {1/(ak + N)}Σf=1Npf, k      …(2)
【００４９】
式(2)において、詳細は後述するが、Σ演算はf番目のPSDフレームのk番目の要素の総和を表す。第一の再帰フィルタは、PSDの最低周波数から処理を始めて、最高周波数に向かって処理を進める。最低周波数フィルタの値は次式で初期化される。
d1 = (1/N)Σf=1Npf, 1      …(3)
【００５０】
また、カルマンフィルタ43は、合計されたベクトルを、下式に示す第二の再帰フィルタによりフィルタ処理する。
ek = {ak/(ak + N)}ek+1 + {1/(ak + N)}Σf=1Npf, k      …(4)
【００５１】
第二の再帰フィルタは、PSDの最高周波数から処理を始めて、最低周波数に向かって処理を進める。最高周波数フィルタの値は次式で初期化される。
eK = (1/N)Σf=1Npf, K      …(5)
【００５２】
そして、カルマンフィルタ43は、平滑化した雑音PSD推定値を得るために、第一と第二の再帰フィルタ処理の結果を線形に結合する。
nk = {1/(2ak + N)}(dk-1 + ek+1) + {ak/(2ak + N)}Σf=1Npf, k      …(6)
ただし、最低周波数は次式で計算する
n1 = {1/(a1 + N)}e2 + {a1/(a1 + N)}Σf=1Npf, 1      …(7)
また、最高周波数は次式で計算する
nK = {1/(aK + N)}dK-1 + {aK/(aK + N)}Σf=1Npf, K      …(8)
【００５３】
次に、各フレームの正規化SS PSD推定値を計算するために、SS部44により、各PSDフレームから雑音PSD推定値を減算したraw SS PSDを計算する。
sk = pk - nk      …(9)
【００５４】
なお、SS部44は、すべての負のSS PSD値を零に置換する。また、平滑化PSDのフロアリング値cを下式で計算する。
ck = pk/16      …(10)
ここで、数値16は、経験的に求めた定数
【００５５】
カルマンフィルタ45は、雑音推定と同様に、SS PSDベクトルを下式の第一の再帰フィルタによりフィルタ処理する。
gk = {ak/(ak+b+1)}gk-1 + {1/(ak+b+1)}sk + {b/(ak+b+1)}ck  …(11)
【００５６】
なお、本実施例ではb=2とする。第一の再帰フィルタは、PSDの最低周波数から処理を始めて、最高周波数に向かって処理を進める。最低周波数フィルタの値は次式で初期化される。
g1 = {1/(b+1)}s1 + {b/(b+1)}c1      …(12)
【００５７】
また、カルマンフィルタ45は、SS PSDベクトルを下式の第二の再帰フィルタによりフィルタ処理する。
hk = {ak/(ak+b+1)}hk+1 + {1/(ak+b+1)}sk + {b/(ak+b+1)}ck  …(13)
【００５８】
第二の再帰フィルタは、PSDの最高周波数から処理を始めて、最低周波数に向かって処理を進める。最高周波数フィルタの値は次式で初期化される。
hK = {1/(b+1)}sK + {b/(b+1)}cK      …(14)
【００５９】
そして、カルマンフィルタ45は、平滑化したSS PSD推定値を得るために、第一と第二の再帰フィルタ処理の結果を線形に結合する。
qk = {1/(2ak+b+1)}(gk-1+hk+1) + {ak/(2ak+b+1)}sk + {b/(2ak+b+1)}ck  …(15)
ただし、最低周波数は次式で計算される
q1 = {1/(a1+b+1)}h2 + {a1/(a1+b+1)}s1 + {b/(a1+b+1)}c1  …(16)
また、最高周波数は次式で計算される
qK = {1/(aK+b+1)}gK-1 + {aK/(aK+b+1)}sK + {b/(aK+b+1)}cK  …(17)
【００６０】
上記の計算式で用いたakを求めるため、aKをメル三角形の幅(width of mel triangle)の半分になるように定義する。それは、メルフィルタを用いる場合のPSDの kの位置になる場所に相当する。この値は、次式によって計算する。
ak = {700 + (k - 1)r/2K}K/(1127W・r)      …(18)
ここで、rはサンプリングレート（本実施例では11025）
Wはメル三角形をメル尺度で測ったときの幅に相当
【００６１】
なお、本実施例では、300Hz（401.97メル）と5000Hz（2363.5メル）の間を、等間隔に32メル三角形で分割したものと等価になるようにシミュレートし、次式によってWを定義した。
W = (2363.5 - 401.97)/33      …(19)
【００６２】
このうように、カルマンフィルタ45の処理の中で、akの係数を用いてメルフィルタ処理することにより、カルマンフィルタ処理（平滑化）したSS PSD推定値を計算した後、改めてメルフィルタ処理を行う必要はない。
【００６３】
本実施例では、平滑化したSS PSDベクトルから、メル尺度上で等間隔になるような位置の32個の値をサンプリングする。サンプリング位置は図3に示す頂点の位置に相当する（ただし、図3には横軸のPSDインデクスの数が16の三角形しか記載していない）。
【００６４】
以降は、通常のASRの前処理に戻る。32個のメル値は、対数演算部19によって対数化される。そして、メル周波数ケプストラム係数(Mel frequencey cepstrum coefficient: MFCC)の特徴であるMFCC特徴21を求めるため、DCT部20によって離散コサイン変換される。MFCC特徴21は、より好ましくは、ケプストラム平均減算(cepstrum mean substraction: CMS)により正規化される。CMSは、よく知られた技術であり、ここでは改めて説明しない。
【００６５】
［変形例］
上記の実施例では、オーディオ信号を処理する例を説明した。しかし、本発明は、ソナーやレーダなどのサンプルされた形式の信号であれば、何れの信号にも適用可能である。
【００６６】
プリエンファシス部14やウィンドウ処理部15は、典型的なASR用の処理で、必須ではない。同様に、対数演算部19やDCT部20もASR用の典型的な処理で、必須ではない。これらの工程は、本発明の本質を阻害することなく、削除したり、あるいは、他の処理と置き換えることができる。
【００６７】
メル尺度は典型的なASRに用いられる。しかし、他の線形または非線形のワーピング（例えばバーク尺度(Bark scale)）などに、本発明の本質を阻害することなく、置き換えることできる。
【００６８】
FFT、DFTやハートレー変換はよく知られた技術であり、同じ算術結果を得ることができる。これらは、計算の複雑度が異なるに過ぎない。周波数変換を行う方法としては、よく知られた他の方法もあり、これらの方法も、本発明の本質を阻害することなく利用することが可能である。
【００６９】
本実施例では、雑音PSD推定値は一度のみ計算する。しかし、背景雑音の変化を追跡し更新するために、連続、あるいは、音声信号中のポーズ区間から雑音を推定することが可能である。
【００７０】
このうように、性能と計算量をより改良した信号処理により、サンプリングされた信号から雑音を推定することができる。そして、雑音の推定結果に基づき、サンプリングされた信号から雑音を除去することができる。
【００７１】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７２】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【００７３】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００７４】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００７５】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図面の簡単な説明】
【００７６】
【図１】SSを行う音声認識処理の前処理部分の構成を示すブロック図、
【図２】メルサンプル位置におけるカルマン平滑化重み係数を示す図（重み係数はメルbinとの関係を強調するために正規化されていない）、
【図３】従来のメルビン(mel bins)を示す図、
【図４】通常のASRの前処理におけるデータの流れを示すブロック図、
【図５】カルマン平滑化スペクトルサブトラクションを行うようにした通常の音声認識の前処理部である。
【図１】
2007293059.tif 000003
【図２】
2007293059.tif 000004
【図３】
2007293059.tif 000005
【図４】
2007293059.tif 000006
【図５】
2007293059.tif 000007