JP2009098203A - 信号推定装置、その方法、そのプログラム、その記録媒体 - Google Patents
信号推定装置、その方法、そのプログラム、その記録媒体 Download PDFInfo
- Publication number
- JP2009098203A JP2009098203A JP2007266929A JP2007266929A JP2009098203A JP 2009098203 A JP2009098203 A JP 2009098203A JP 2007266929 A JP2007266929 A JP 2007266929A JP 2007266929 A JP2007266929 A JP 2007266929A JP 2009098203 A JP2009098203 A JP 2009098203A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- matrix
- estimation
- frame
- noise
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Analysis (AREA)
Abstract
【課題】高速な処理で原信号を推定する。
【解決手段】観測信号を予め定められたフレーム毎に分割することで、フレーム分割信号を生成し(200、S2)、観測信号中の雑音区間から雑音分散値を推定し(S4、100)、固定基底行列を記憶し(305)、固定基底行列とフレーム分割信号とを用いて、対角行列である分散対角行列を生成し(325、S50)、前記雑音分散値と前記分散対角行列とを用いて、重み対角行列を計算し(400、S6)、前記固定基底行列と前記重み対角行列とを用いて、推定行列を計算し(500、S8)、前記フレーム分割信号に前記推定行列を畳み込むことで、フレーム推定信号を生成し(600、S10)、前記フレーム推定信号を重畳加算することで、前記原信号の推定信号を生成する(800、S14)。
【選択図】図2
【解決手段】観測信号を予め定められたフレーム毎に分割することで、フレーム分割信号を生成し(200、S2)、観測信号中の雑音区間から雑音分散値を推定し(S4、100)、固定基底行列を記憶し(305)、固定基底行列とフレーム分割信号とを用いて、対角行列である分散対角行列を生成し(325、S50)、前記雑音分散値と前記分散対角行列とを用いて、重み対角行列を計算し(400、S6)、前記固定基底行列と前記重み対角行列とを用いて、推定行列を計算し(500、S8)、前記フレーム分割信号に前記推定行列を畳み込むことで、フレーム推定信号を生成し(600、S10)、前記フレーム推定信号を重畳加算することで、前記原信号の推定信号を生成する(800、S14)。
【選択図】図2
Description
この発明は、例えば音声信号等の原信号に雑音が重畳した観測信号から当該原信号を推定する信号推定装置、その方法、そのプログラム、その記録媒体に関する。
例えば、音声信号などのディジタル信号を伝送および蓄積する際には、外部から重畳する様々な雑音により品質が劣化する。重畳する雑音の性質が完全に推定可能であれば、雑音信号が重畳した信号(以下、「観測信号」という)から推定した雑音信号を引き去ることにより、原信号を推定し、品質を向上させることができる。観測信号とはその他、映像信号などである。観測信号から原信号を推定する手法として、部分空間法が提案されている(特許文献1参照)。
部分空間法は、観測信号を表現するベクトル空間において、原信号を表現する信号部分空間と、雑音信号を表現する雑音部分空間を推定する。その上で、信号部分空間に含まれる雑音成分が最小になるような推定行列を推定し、観測信号に当該推定行列を畳み込むことで原信号を高精度に推定する手法である。信号部分空間と雑音部分空間の推定は、観測信号に対するKL変換(Karhunen-Loeve変換)を用いて行う。KL変換は、非特許文献1に詳細に記載されている。
図1に、従来の部分空間法を用いた信号推定装置2を示す。信号推定装置2は、雑音分散推定部100、フレーム分割部200、KL変換部290、フレーム推定信号生成部600、推定行列計算部500、対角成分計算部400、窓関数演算部700、重畳加算演算部800、により構成されている。また、以下で説明する観測信号とは、ディジタル信号であり、z(n)と表す。ただし、nは離散時刻とする。
まず、雑音分散推定部100は、観測信号z(n)の雑音分散値σを求める。雑音分散値σの求めかたの詳細は後ほど述べる。フレーム分割部200は、観測信号z(n)を一定時間長(以下、「フレーム」という。)の信号に分割することで、フレーム分割信号zi(n)を生成する。ただし、iはフレーム番号を表す。フレーム分割信号zi(n)はKL変換部290に入力される。
KL変換部290は、上記KL変換を行うことにより、主成分行列Vと主成分分散行列Sを求める。KL変換部290は、相関行列計算手段300と主成分分析計算手段320により構成される。以下、主成分行列Vと主成分分散行列Sの求め方の詳細を述べる。
相関行列計算手段300は、フレーム分割信号から当該フレーム分割信号の相関行列Rを生成する。また、相関行列Rとしてトープリッツ(Toeplitz)行列RTを生成しても良い。トープリッツ行列RTを利用すると、以降の処理の代入や乗算などの演算回数を大幅に減らすことができ、高速に相関行列を近似計算できる。相関行列R、トープリッツ行列RTの具体的な求め方は後ほど詳細に説明する。
主成分分析計算手段320は、相関行列Rを固有値分解することにより、以下の式(1)を満たす主成分行列Vと主成分分散行列Sを計算する。ここで、Vの各列は正規直交基底ベクトルからなる。またSは対角行列である。
S=VCRV
S=diag(s[1],s[2],...,s[N]) (1)
ただし、Nはフレーム長であり、VCは行列Vの転置を示し、diag(A1,A2,...,AN)は、A1,A2,...,ANを対角要素とする対角行列を生成する関数である。
固有値分解は、特異値分解などのアルゴリズムを用いて、実行できる。詳細は非特許文献2に記載されている。
S=diag(s[1],s[2],...,s[N]) (1)
ただし、Nはフレーム長であり、VCは行列Vの転置を示し、diag(A1,A2,...,AN)は、A1,A2,...,ANを対角要素とする対角行列を生成する関数である。
固有値分解は、特異値分解などのアルゴリズムを用いて、実行できる。詳細は非特許文献2に記載されている。
ところで、KL変換は直交変換の一種である。観測信号から、なるべく少数の基底で観測信号全体を表現できるような直交基底の組を求め、これを用いて観測信号を直交変換する。この直交基底が主成分(主成分行列Vに対応)である。主成分は、既に求めた他の主成分と直交することを制約条件とした上で、分散値(主成分分散行列Sに対応)を最大化する方向ベクトルを計算することで逐次的に求めることができる。主成分の計算をLagrangeの未定乗数法などにより定式化すると、観測信号から求まる相関行列の固有ベクトルが主成分に各固有ベクトルに対応する固有値が主成分方向の分散値に対応するという結果を得る。従って、観測信号をKL変換する処理は、観測信号から求まる相関行列を固有値分解することで、実現できる。詳細は非特許文献3に記載されている。
対角成分計算部400は、主成分分析計算手段320よりの主成分分散行列Sの要素s(k)と雑音分散推定部100よりの雑音分散値σを用いて、各主成分に対応する重みを計算して重み対角行列Qを生成する。重み対角行列Qの各要素q(k)は、例えば、以下の式(2)により求められる。
s(k)>σの場合 q(k)=s(k)/(s(k)+μσ)
s(k)≦σの場合 q(k)=0 (2)
そして、Q=diag(q(0),q(1),...,q(N−1))である。ただし、μはLagrangeの乗数である。
s(k)>σの場合 q(k)=s(k)/(s(k)+μσ)
s(k)≦σの場合 q(k)=0 (2)
そして、Q=diag(q(0),q(1),...,q(N−1))である。ただし、μはLagrangeの乗数である。
次に、重み対角行列Qの求め方の概念を説明する。この重み対角行列Qの求め方の詳細は非特許文献1に記載されている。観測信号に重畳している雑音信号のレベルを閾値以下に抑えるという制約条件の下で、推定行列Hを作用させて得られる推定信号y^(フレーム推定信号生成部600の出力)と観測信号zの差のパワーを最小化するような推定行列Hを直交基底により対角化して得られた行列が、重み対角行列Qに対応する。以下に、重み対角行列Qの求め方の詳細を述べる。
観測信号zの行列に対して推定行列Hを作用させて得られる推定信号y^は以下の式(3)で求められる。
y^=Hz (3)
原信号yと推定信号y^の誤差信号rは以下の式(4)により求められる
r=y^−y
=(H−I)y+Hω
=ry+rω (4)
ここで、Iは単位行列であり、ωは観測信号zと同じサイズの白色雑音のベクトルであり、ryは信号歪であり、rωは雑音信号の残差信号である。信号歪のパワーεy 2と残差信号のパワーεω 2は以下の式(5)により表すことができる。
εy 2=trE{ryry C}=tr{(H−I)Ry(H−I)C}
εω 2=trE{rωrω C}=σtr{HHC} (5)
ただし、E{}は期待値であり、trは固有和であり、Ryは原信号の相関関数である。
従って、推定行列Hは次の式(6)で表される制約付最適化問題の解となる。
y^=Hz (3)
原信号yと推定信号y^の誤差信号rは以下の式(4)により求められる
r=y^−y
=(H−I)y+Hω
=ry+rω (4)
ここで、Iは単位行列であり、ωは観測信号zと同じサイズの白色雑音のベクトルであり、ryは信号歪であり、rωは雑音信号の残差信号である。信号歪のパワーεy 2と残差信号のパワーεω 2は以下の式(5)により表すことができる。
εy 2=trE{ryry C}=tr{(H−I)Ry(H−I)C}
εω 2=trE{rωrω C}=σtr{HHC} (5)
ただし、E{}は期待値であり、trは固有和であり、Ryは原信号の相関関数である。
従って、推定行列Hは次の式(6)で表される制約付最適化問題の解となる。
この制約付最適化問題をLagrangeの未定係数法で解いた解は以下の式(7)のようになる。
H=Ry(Ry+μσI)−1 (7)
ただし、μはLagrange乗数である。Hを求める際に、聴覚重みなどの制約を雑音の閾値に掛けるなどの手法により、Hの要素を変化させ、聴感を向上させることも可能である。詳細は非特許文献4に記載されている。
H=Ry(Ry+μσI)−1 (7)
ただし、μはLagrange乗数である。Hを求める際に、聴覚重みなどの制約を雑音の閾値に掛けるなどの手法により、Hの要素を変化させ、聴感を向上させることも可能である。詳細は非特許文献4に記載されている。
次に、信号部分空間と雑音部分空間を利用した推定行列Hについて述べる。主成分の計算において、最初の方に求まる主成分方向の分散値は大きく、後になるに従って、主成分方向の分散値は小さくなり、ほぼ「0」になる。この主成分方向の成分については、直交変換により得られる成分を捨てて、代わりに、平均値で代用しても、元の信号との誤差は最小となる。
音声信号のように周期性のある信号は、ベクトル空間中で偏りを持つ分布を形成するために、KL変換により直交変換を行うと、分散が大きな主成分とほぼ「0」になる主成分に分かれる。一方、白色雑音のように、周期性のない信号はベクトル空間中の偏りが少ない分布になり、全ての主成分方向の分散に大きな違いが生じない。
そして、原信号に白色の加法性雑音が重畳した観測信号を考える。ここでは、重畳する雑音として白色雑音を仮定して議論するが、事前に白色化フィルタを適用することにより有色性雑音を白色化することが可能であるため、一般性を失わない(非特許文献1参照)。観測信号z(n)をKL変換する場合、主成分は観測信号の相関行列の固有ベクトルと一致する。観測信号zの相関行列は、原信号の相関行列と白色雑音の相関行列との和をとったものである。
原信号をKL変換することにより求めた主成分を列ベクトルとして、横に並べてできる行列(主成分行列)で対角化すると特定の主成分方向にパワーが集中し、その他の主成分方向ではパワーがほぼ「0」になる。一方、白色雑音の相関行列は、各要素の値に雑音分散値σをもつ単位行列になる。ここで、相関行列は、非負定値対称行列であるので、固有値は全て非負になる。観測信号から求まる相関行列は式(4)で示したとおり、原信号の相関行列と雑音の相関行列の和となるので、観測信号から得られる相関行列を対角化して得られる対角行列は雑音分散値にほぼ等しい要素と、雑音分散値を越える要素をもつ行列となる。
従って、観測信号から求めた相関行列を対角化して得た対角行列の要素のうち、雑音分散値以下の要素に対応する主成分は雑音を表現する主成分となり、雑音の分散を超える要素に対応する主成分は原信号を表現する主成分となる。
以上をまとめると観測信号をKL変換することにより求めた主成分行列を用いて、観測信号から求めた相関行列を対角化し、得られた対角行列の要素のうち、雑音分散値σより小さいものに対応する主成分を雑音部分空間の基底とし、そのほかの主成分を信号部分空間の基底とすることにより、観測信号zを表現するベクトル空間を信号部分空間と雑音部分空間に分離する。
ここで、推定行列Hはフレーム長をNとすると、N×Nの大きさの正方行列である。フレーム分割信号を縦に並べてできるベクトルに対して、推定行列Hを左から掛けることにより得られる信号が、フレーム毎に推定された原信号(つまり、フレーム推定信号)になる。この推定行列Hを原信号の相関行列Ryを固有値分解して得た直交行列により対角化すると、直交行列と対角行列の積により以下の式(8)のように表現できる。
ここで、Vは相関行列Ryを固有値分解して得られる直交行列を表し、Gμは対角行列を表す。Guの各要素は次式で表される。
Gu=diag(g(1),g(2),...,g(M))
g(k)=λ(k)/(λ(k)+μσ) (9)
ここで、λ(k)は原信号yの相関行列の固有値であり、Mは信号部分空間の
次元である。以上をまとめると、推定行列Hを対角化して得られる行列Qは以下の式(10)のようになる。
s(k)>σの場合 q(k)=s(k)/(s(k)+μσ)
s(k)≦σの場合 q(k)=0 (10)
そして、Q=diag(q(0),q(1),...,q(N−1))である。なお、非特許文献1では、周波数領域における制約条件をもとに線形予測子を求める手法についても言及しているが、これを用いて求めた行列Qを用いても本発明と同様の効果を得られる。
g(k)=λ(k)/(λ(k)+μσ) (9)
ここで、λ(k)は原信号yの相関行列の固有値であり、Mは信号部分空間の
次元である。以上をまとめると、推定行列Hを対角化して得られる行列Qは以下の式(10)のようになる。
s(k)>σの場合 q(k)=s(k)/(s(k)+μσ)
s(k)≦σの場合 q(k)=0 (10)
そして、Q=diag(q(0),q(1),...,q(N−1))である。なお、非特許文献1では、周波数領域における制約条件をもとに線形予測子を求める手法についても言及しているが、これを用いて求めた行列Qを用いても本発明と同様の効果を得られる。
推定行列計算部500は、対角成分計算部400より得た重み対角行列Qと主成分分析計算手段320より得た主成分行列Vとを用いて、推定行列Hを計算する。推定行列Hの求め方の詳細は後ほど説明する。
フレーム推定信号生成部600は、フレーム分割部200よりのフレーム分割信号zi(n)に、推定行列計算部500よりの推定行列Hを畳み込むことで、フレーム推定信号yi^(n)を生成する。
窓関数演算部700は、以下の式(11)のように、フレーム推定信号生成部600よりのフレーム推定信号yi^(n)に対して、ハニング窓やハミング窓などの窓関数wを掛けることで、窓かけ推定信号ywiを生成する。
ywi(n)=w・yi^(n) (11)
重畳加算演算部800は、窓関数演算部700よりの窓かけ推定信号ywiとフレーム時間長Nの半分の時間長N/2づつ重ねて足し合わせることにより、フレーム分割前の原信号を推定する処理を行う。窓関数を掛けて重畳加算を行うことにより、推定信号がフレーム間境界において不連続となり、異音が生じる事を防ぐ。
Yariv Ephraim, Harry L.Van Trees,"A Signal Subspace Approach for Speech Enhancement", IEEE Trans.on Speech And Audio Processing, Vol.3,No.4,July 1995,pp251-266 William H.Press,Saul A.Teukolsky 他,"Numerical Recipes in C"、技術評論社 Aapo Hyvarinen,Juha Karhunen, Erkki Oja,"詳解独立成分分析"東京電機大学出版 Yi Hu, Philipos C.Loizou,"A Perceptually Motivated Subspace Approach for Speech Enhancement",ICSLP-2002,pp1797-1800
重畳加算演算部800は、窓関数演算部700よりの窓かけ推定信号ywiとフレーム時間長Nの半分の時間長N/2づつ重ねて足し合わせることにより、フレーム分割前の原信号を推定する処理を行う。窓関数を掛けて重畳加算を行うことにより、推定信号がフレーム間境界において不連続となり、異音が生じる事を防ぐ。
Yariv Ephraim, Harry L.Van Trees,"A Signal Subspace Approach for Speech Enhancement", IEEE Trans.on Speech And Audio Processing, Vol.3,No.4,July 1995,pp251-266 William H.Press,Saul A.Teukolsky 他,"Numerical Recipes in C"、技術評論社 Aapo Hyvarinen,Juha Karhunen, Erkki Oja,"詳解独立成分分析"東京電機大学出版 Yi Hu, Philipos C.Loizou,"A Perceptually Motivated Subspace Approach for Speech Enhancement",ICSLP-2002,pp1797-1800
部分空間法を用いた観測信号に対する原信号の推定では、フレーム中の観測信号に対してKL変換を行い、フレーム中の観測信号の主成分行列Vと主成分分散行列Sを求める必要がある。主成分行列Vと主成分分散行列Sを計算するためには、相関行列に対して特異値分解などの固有値計算アルゴリズム(特許文献2の記載)を実行するか、制約条件付の分散最大化アルゴリズムなどの手法を用いる必要があった。しかし、何れの手法を用いても膨大な演算量が必要であるため、部分空間法を用いて現実的な時間内に原信号の推定を行うことは困難という問題点がある。
この発明の信号推定装置は原信号と雑音信号を含む観測信号から当該原信号を推定するものであり、フレーム分割部と固定基底行列記憶部と分散対角行列生成部と対角成分計算部と推定行列計算部とフレーム推定信号生成部と重畳加算演算部とを備える。フレーム分割部は、観測信号を予め定められたフレーム毎に分割することで、フレーム分割信号を生成する。雑音分散推定部は、観測信号中の雑音区間から雑音分散値を推定する。固定基底行列記憶部は、固定基底行列を記憶する。分散対角行列生成部は、固定基底行列とフレーム分割信号とを用いて、対角行列である分散対角行列を生成する。対角成分計算部は、雑音分散値と分散対角行列とを用いて、重み対角行列を計算する。推定行列計算部は、固定基底行列と重み対角行列とを用いて、推定行列を計算する。フレーム推定信号生成部は、フレーム分割信号に推定行列を畳み込むことで、フレーム推定信号を生成する。重畳加算演算部は、フレーム推定信号を重畳加算することで、原信号の推定信号を生成する。
また、前記固定基底行列は、コサイン基底行列としてもよい。
また、前記分散対角行列生成部は、相関行列計算手段と、相関行列対角化手段と、で構成してもよい。相関行列計算手段は、フレーム分割信号から当該フレーム分割信号の相関行列を計算する。相関行列対角化手段は、相関行列と固定基底行列を用いて、分散対角行列を計算する。
また、前記分散対角行列生成部は、自己相関関数計算手段と、対角化行列記憶手段と、対角化行列計算手段と、で構成してもよい。自己相関関数計算手段は、フレーム分割信号から観測信号の自己相関関数ベクトルを計算する。対角化行列記憶手段は、観測信号の相関行列をトープリッツ行列に近似することで固定基底行列から求まる対角化行列を記憶する。対角化相関行列計算手段は、自己相関関数ベクトルと対角化行列とから分散対角行列を計算する。
上記の構成により、相関行列の対角化を行うために演算量が膨大である固有値分解などの処理を行う必要がない。従って、現実的な時間内に処理することが極めて困難な部分空間法に基づく原信号の推定を高速に行うことができる。
以下に、発明を実施するための最良の形態を示す。なお、同じ機能を持つ構成部や同じ処理を行う過程には同じ番号を付し、重複説明を省略する。
図2に実施例1の信号推定装置50−1の機能構成例を示し、図3に信号推定装置50−1の主な処理の流れを示す。信号推定装置50−1は、KL変換部290が分散対角行列生成部325−1、固定基底行列記憶部305に代替されている点で従来の信号推定装置2(図1参照)と異なる。分散対角行列生成部325−1は、相関行列計算手段300と相関行列対角化手段330とで構成されている。また、以下の説明での観測信号とは、例えば音声信号や映像信号などである。以下の説明では、観測信号を音声信号とし、観測信号は、推定すべき原信号と雑音信号とが含まれているものである。
まず、ディジタル信号である観測信号z(n)は、フレーム分割部200と雑音分散推定部100に入力される。ただし、nは離散時刻である。フレーム分割部200は、観測信号z(n)を予め定められたフレーム毎に分割することで、フレーム分割信号zi(n)を生成する(ステップS2)。iはフレーム番号である。また、ディジタル信号は一定の時間間隔(サンプリング間隔)毎に連続時間信号の値を取り出すことにより得られる。1秒間に行うサンプリング回数をサンプリング周波数という(例えば、16kHz)。予め定められたフレームbを10msとすると、フレーム長Nは、160サンプルになる。観測信号をフレーム毎に切り出す際に、各フレームは図4に示すように、直線のフレームとフレーム長の半分の時間長N/2だけ重なりを持って切り出される。
一方、雑音分散推定部100は、観測信号z(n)中の雑音区間から雑音分散値σを推定する(ステップS4)。観測信号の入力開始からBms(例えばB=50ms)の間の雑音分散値σを推定する場合には、例えば、以下の式(20)を演算する。
相関行列計算手段300は、フレーム分割信号zi(n)から当該フレーム分割信号の相関行列Rを計算する(ステップS52)。以下に、相関行列Rの生成処理を詳細に説明する。まず相関行列Rを計算するフレームに隣接する複数のサンプルを並べた以下の様な行列Xを生成する。相関行列Rを計算するフレームの1番目のサンプルをz(t)とする。前後Tフレーム、合計2T+1フレーム分の観測信号を利用して行列Xを生成する。
この行列Xを用いて、相関行列Rを以下の式(21)で求める。
R=XXC/2TN (21)
ここで、相関行列Rとして、トープリッツ行列RTを用いることもできる。トープリッツ行列RTは、観測信号の自己相関関数の値を用いて生成される。トープリッツ行列RTを用いると以後の処理で行われる代入、乗算などの演算回数を大幅に減らすことができ、高速に相関行列Rを近似計算できる。以下、トープリッツ行列RTの計算方法を述べる。
R=XXC/2TN (21)
ここで、相関行列Rとして、トープリッツ行列RTを用いることもできる。トープリッツ行列RTは、観測信号の自己相関関数の値を用いて生成される。トープリッツ行列RTを用いると以後の処理で行われる代入、乗算などの演算回数を大幅に減らすことができ、高速に相関行列Rを近似計算できる。以下、トープリッツ行列RTの計算方法を述べる。
トープリッツ行列RTは、フレーム中の観測信号から自己相関関数を求め、正方行列に代入することで、生成される。自己相関関数r(τ)の定義は、以下の式(22)で表すことができる。
r(τ)=(1/N)・ΣN−1−τ n=1z(n)z(n+τ) (22)
(τ=1,2,...,N)
しかし、自己相関関数を式(22)の通りに計算すると膨大な時間がかかる場合がある。そこで、例えば、高速フーリエ変換を用いた計算の方が高速であることが知られている。従って、高速フーリエ変換を利用した以下の式(23)で自己相関関数r(m)を求める。
r(m)=(1/N)・FFT−1[│Z(k)│2] (23)
ただし、FFT−1[]は、逆フーリエ変換を示し、Z(k)は観測信号z(n)のフーリエ級数を表す。
r(τ)=(1/N)・ΣN−1−τ n=1z(n)z(n+τ) (22)
(τ=1,2,...,N)
しかし、自己相関関数を式(22)の通りに計算すると膨大な時間がかかる場合がある。そこで、例えば、高速フーリエ変換を用いた計算の方が高速であることが知られている。従って、高速フーリエ変換を利用した以下の式(23)で自己相関関数r(m)を求める。
r(m)=(1/N)・FFT−1[│Z(k)│2] (23)
ただし、FFT−1[]は、逆フーリエ変換を示し、Z(k)は観測信号z(n)のフーリエ級数を表す。
次に、自己相関関数r(m)を以下の正方行列に代入することで、トープリッツ行列RTが生成される。
以上のように相関行列に、トープリッツ行列を仮定することにより、高速フーリエ変換を利用した高速な自己相関関数の計算と行列への相関値の代入のみで相関行列の近似計算を高速に実現できる。
固定基底行列記憶部305は、固定基底行列を記憶する。固定基底行列は、以下で説明する相関行列対角化手段330による相関行列Rの対角化に用いられる。ここで、相関行列Rの対角化に用いられる基底として、コサイン基底、サイン基底、複素正弦波、ウェーブレットなどがある。そして、経験的に相関行列Rの対角化に用いられる基底として、コサイン基底を用いると、聴感が比較的良くなることが分かっている。以後の説明では、固定基底行列として、コサイン基底行列を用いる場合を説明する。
コサイン基底行列Uは、コサイン基底を縦ベクトルとして、これらを横に並べて構成される。コサイン基底行列Uのi行j列の要素uijは、例えば、以下の式(24)で与えられる。
相関行列対角化手段330は、相関行列Rと固定基底行列Uを用いて、相関行列Rの対角化を行うことで、分散対角行列D1を計算する(ステップS54)。分散対角行列D1は、以下の式(25)により、相関行列rの対角化を近似することにより生成される。
D1=UCRU (25)
なお、この式(25)は、相関行列rに対する2次元離散コサイン変換に等しい。同様に、例えば、固定基底行列に複素正弦波を用いれば、相関行列の2次元フーリエ変換により相関行列Rの対角化を実現できる。ここで、式(25)中のRUのように、Rに直交行列Uを右から掛けることは、Rの各行を離散コサイン変換して、結果の離散コサイン係数を各行に並べる処理に相当する。離散コサイン変換は、離散フーリエ変換同様、高速化アルゴリズムが存在するので、これを利用して、さらに高速化することも可能である。離散コサイン変換の高速化アルゴリズムは「W.Chen, C.H.Smith, S.C.Fralic, "A Fast computational algorithm for the discrete cosine transform",IEEE Trans. Commun., vol.COM-28, pp.1004-1009, 1979」に記載されている。
D1=UCRU (25)
なお、この式(25)は、相関行列rに対する2次元離散コサイン変換に等しい。同様に、例えば、固定基底行列に複素正弦波を用いれば、相関行列の2次元フーリエ変換により相関行列Rの対角化を実現できる。ここで、式(25)中のRUのように、Rに直交行列Uを右から掛けることは、Rの各行を離散コサイン変換して、結果の離散コサイン係数を各行に並べる処理に相当する。離散コサイン変換は、離散フーリエ変換同様、高速化アルゴリズムが存在するので、これを利用して、さらに高速化することも可能である。離散コサイン変換の高速化アルゴリズムは「W.Chen, C.H.Smith, S.C.Fralic, "A Fast computational algorithm for the discrete cosine transform",IEEE Trans. Commun., vol.COM-28, pp.1004-1009, 1979」に記載されている。
さらに、RUの左からUの転置行列を掛けた結果、得られる行列として対角行列を仮定しているので、対角成分のみを計算すれば十分である。従って、以下のような、アルゴリズムにより、行列の対角化を高速化できる。まず、J=RUを計算する。また、Jの求め方のもう一つの方法として、Rの各行に対して高速離散コサイン変換を行うことでこの処理を実行し、結果の離散コサイン変換を各行に並べて行列Jとすることも可能である。Jが求まると、以下の式(26)により、分散対角行列D1を求めることができる。
D1=diag(u1 Cj1,u2 Cj2,...,uN CjN) (26)
ただし、jmは行列Jのm列を取り出してできるベクトルであり、unは、行列Uのn列目を取り出してできるベクトルである。このように、コサイン基底のような固定の直行基底を用いた相関行列の対角化では、求まる対角行列の非対角成分が完全に「0」にならないが、変換長が長くなるにつれて対角成分に対する非対角成分の値が「0」に近づきKL変換による対角化に漸近することが知られている。従来技術の信号推定装置2による相関行列の対角化では、相関行列の固有値分解が必要であるが、この実施例1の信号推定装置50−1であれば、式(25)のような行列同士の積のみで、相関行列の対角化が可能となり、結果として、高速な処理が実現できる。
D1=diag(u1 Cj1,u2 Cj2,...,uN CjN) (26)
ただし、jmは行列Jのm列を取り出してできるベクトルであり、unは、行列Uのn列目を取り出してできるベクトルである。このように、コサイン基底のような固定の直行基底を用いた相関行列の対角化では、求まる対角行列の非対角成分が完全に「0」にならないが、変換長が長くなるにつれて対角成分に対する非対角成分の値が「0」に近づきKL変換による対角化に漸近することが知られている。従来技術の信号推定装置2による相関行列の対角化では、相関行列の固有値分解が必要であるが、この実施例1の信号推定装置50−1であれば、式(25)のような行列同士の積のみで、相関行列の対角化が可能となり、結果として、高速な処理が実現できる。
対角成分計算部400は、相関行列対角化手段330よりの分散対角行列D1と雑音分散推定部100よりの雑音分散値σとを用いて、重み対角行列Qを求める(ステップS6)。重み対角行列Qの各要素q(k)は、例えば、以下の式(27)により求められる。
s(k)>σの場合 q(k)=s(k)/(s(k)+μσ)
s(k)≦σの場合 q(k)=0 (27)
そして、Q=diag(q(0),q(1),...,q(N−1))である。ただし、Nは上述のようにフレーム長である。
s(k)>σの場合 q(k)=s(k)/(s(k)+μσ)
s(k)≦σの場合 q(k)=0 (27)
そして、Q=diag(q(0),q(1),...,q(N−1))である。ただし、Nは上述のようにフレーム長である。
推定行列計算部500は、コサイン基底行列Uと重み対角行列Qとを用いて、推定行列Hを計算する(ステップS8)。推定行列Hは、以下の式(28)により求められる。
H=UQUC (28)
フレーム推定信号生成部600は、フレーム分割信号zi(n)に推定行列Hを畳み込むことで、フレーム推定信号yi^(n)を生成する(ステップS10)。具体的には以下の式(29)により生成される。
Y^i=HZi (29)
ここで、Y^i=(yi^(1),yi^(2),...,yi^(N))Cであり、
Zi=(zi(1),zi(2),...,zi(N))Cである。
H=UQUC (28)
フレーム推定信号生成部600は、フレーム分割信号zi(n)に推定行列Hを畳み込むことで、フレーム推定信号yi^(n)を生成する(ステップS10)。具体的には以下の式(29)により生成される。
Y^i=HZi (29)
ここで、Y^i=(yi^(1),yi^(2),...,yi^(N))Cであり、
Zi=(zi(1),zi(2),...,zi(N))Cである。
窓関数演算部700は、フレーム推定信号Y^iに対して、ハニング窓やハミング窓などの窓関数wを掛ける(ステップS12)。窓の長さはフレーム長と同じ長さであり、以下の式(30)により窓関数演算を行うことで、窓掛け推定信号ywi(n)を生成する。
ywi(n)=wyi^(n) (30)
そして、窓掛け推定信号ywi(n)がフレーム推定信号として、重畳加算演算部800に入力される。また、窓関数演算部700はなくてもよく、フレーム推定信号生成部600よりのフレーム推定信号y^i(n)を直接、重畳加算演算部800に入力させてもよい。
そして、窓掛け推定信号ywi(n)がフレーム推定信号として、重畳加算演算部800に入力される。また、窓関数演算部700はなくてもよく、フレーム推定信号生成部600よりのフレーム推定信号y^i(n)を直接、重畳加算演算部800に入力させてもよい。
重畳加算演算部800は、フレーム推定信号を重畳加算することで、原信号の推定信号y^(n)を生成する(ステップS14)。例えば、図4に示すように、直前フレームの窓掛け推定信号ywi(n)もしくは直前フレームのフレーム推定信号y^i(n)と、フレーム時間長Nの半分の時間長N/2づつ重ねて足し合わせていくことにより、フレーム分割前の原信号の推定信号を生成する。窓関数演算部700で窓関数wを掛けて重畳加算を行うことにより、推定信号がフレーム間境界において不連続となることで生じる異音を防ぐことができる。
このように、コサイン基底のような固定の直行基底を用いた相関行列の対角化では、求まる対角行列の非対角成分が完全に「0」にならないが、変換長が長くなるにつれて対角成分に対する非対角成分の値が「0」に近づきKL変換による対角化に漸近することが知られている。上述のように、信号推定装置50−1は、固定基底行列記憶部305に予め記憶させた固定基底行列と、相関行列を用いて、分散対角行列D1を生成する。従って、信号推定装置50−1では、相関行列の対角化において、相関行列の固有値分解処理の必要がなく、式(25)に示す行列同士の積のみで、相関行列の対角化処理が可能であり、結果として高精度に原信号を推定可能とし、かつ、高速な処理を実現できる。
図5に実施例2の信号推定装置50−2の機能構成例を示し、図6に信号推定装置50−2の主な処理の流れを示す。信号推定装置50−2の分散対角行列生成部325−2は、自己相関関数計算手段340と、対角化行列記憶手段360と、対角化相関行列計算手段350と、で構成されている点で、信号推定装置50−1と異なる。
フレーム分割部200よりのフレーム分割信号zi(n)は、自己相関関数計算手段340に入力される。自己相関関数計算手段340は、フレーム分割信号zi(n)から観測信号z(n)の自己相関関数ベクトルを計算する(ステップS62)。具体的には、まず以下の式(31)により計算する。
r(m)=(1/N)・FFT−1[│Z(k)│2] (31)
ただし、FFT−1[]は、逆フーリエ変換を示し、Z(k)は観測信号z(n)のフーリエ級数を表す。そして、自己相関の値r(m)を以下の式(32)のように縦に並べて自己相関関数ベクトルγを生成する。
γ=(r(1)、r(2),...、r(N))C (32)
一方、観測信号z(n)の相関行列Rをトープリッツ行列RTに近似することで固定基底行列から求まる対角化行列を記憶する。実施例1同様、固定基底行列をコサイン基底行列とする。以下に、対角化行列の求め方について述べる。
r(m)=(1/N)・FFT−1[│Z(k)│2] (31)
ただし、FFT−1[]は、逆フーリエ変換を示し、Z(k)は観測信号z(n)のフーリエ級数を表す。そして、自己相関の値r(m)を以下の式(32)のように縦に並べて自己相関関数ベクトルγを生成する。
γ=(r(1)、r(2),...、r(N))C (32)
一方、観測信号z(n)の相関行列Rをトープリッツ行列RTに近似することで固定基底行列から求まる対角化行列を記憶する。実施例1同様、固定基底行列をコサイン基底行列とする。以下に、対角化行列の求め方について述べる。
上述のように、従来の信号推定装置2による部分空間法がフレーム中の観測信号から相関行列を計算するのに対し、この実施例2の信号推定装置50−2では観測信号から計算した相関行列をトープリッツ行列に近似する。コサイン基底行列を用いて、トープリッツ行列を対角化すると、求まる対角行列の対角成分の各要素は以下の式(33)で表すことができる。
この結果を利用すると、対角行列の対角成分のみを取り出してできるベクトルdはd=(S(1、1)、S(2、2),...,S(N、N))Cになり、以下の式(35)で定義される対角化行列Wを用いて、dは式(36)のように定義される。
d=Wγ (36)
対角化行列Wは予め計算されており、対角化行列記憶手段360に記憶される。
対角化行列Wは予め計算されており、対角化行列記憶手段360に記憶される。
対角化相関行列計算手段350は、自己相関関数ベクトルγと対角化行列Wとから分散対角行列D2を計算する(ステップS64)。まず、式(36)のように、対角化行列Wと自己相関関数ベクトルγの積を演算することで、分散対角行列D2はベクトルdを用いて以下の式(37)により求められる。
D2=diag(d(1),d(2),...,d(N)) (37)
ただし、d(k)はベクトルdのk番目の要素を示す。それ以降の処理は、実施例1と同様なので省略する。
D2=diag(d(1),d(2),...,d(N)) (37)
ただし、d(k)はベクトルdのk番目の要素を示す。それ以降の処理は、実施例1と同様なので省略する。
この信号推定装置50−2のように、予め対角化行列Wを計算して求めておき、対角化行列記憶手段360に記憶させておく。そうすることで、分散対角行列D2を求めるための演算(相関関数の対角化)が、自己相関関数ベクトルγを求める演算(自己相関関数計算手段340の処理)と、対角化相関行列計算手段350による1回の行列の掛け算(対角化相関行列計算手段359の処理、式(36)参照)のみで可能であるため、結果として部分空間法を実施例1よりも更に早く実行できる。
実施例1、2では、重畳される雑音が、白色雑音であることを前提として、説明した。この実施例3の信号推定装置50−3は、重畳される雑音が白色雑音以外である場合であっても、原信号を推定できる。図7に実施例3の信号推定装置50−3の機能構成例を示す。信号推定装置50−3は、雑音区間検出部110、白色化フィルタ推定部130、白色化フィルタ処理部140、雑音分散更新部120、が付加されている点で信号推定装置50−1と異なる。
雑音区間検出部110は、観測信号z(n)から当該観測信号の雑音区間を検出する。この雑音区間の検出処理の詳細は、「afshin Rezayee,Saeed Gazor,"An Adaptive KLT Approach for Speech Enhancement",IEEE Trans.on Speech And Audio Processing,Vol.9,No.2,Feb,2001.」に記載されている。
雑音分散推定部100は、雑音区間検出部110で検出された雑音区間についての雑音分散値σを推定する。
一方、白色化フィルタ推定部130は、雑音区間検出部110で検出された雑音区間についての白色化フィルタを推定する。白色化フィルタの推定の詳細は、上記非特許文献1に記載されている。そして、白色化フィルタ処理部140は、フレーム分割信号に推定された白色化フィルタを畳み込んで、観測信号を白色化する。
また、雑音分散更新部120は、雑音区間検出部110において現在のフレームが雑音区間であると判断された場合、過去の雑音分散値σt−1を現在の雑音分散値σに更新する。また、現在のフレームが雑音区間でないと判断された場合には、雑音分散値σt−1は更新しない。
この信号推定装置50−3のような構成にすることで、雑音が白色化されていない場合であっても、原信号を推定することができる。
[変形例1]
雑音区間検出部110、白色化フィルタ推定部130、白色化フィルタ処理部140、雑音分散更新部120は、信号推定装置50−1、50−2だけでなく、信号推定装置2にも付加できる。図7に信号推定装置50−3の変形例1の信号推定装置50−4の機能構成例を示す。こうすることで、白色化されていない雑音が重畳している場合であっても原信号を推定できる。
[変形例1]
雑音区間検出部110、白色化フィルタ推定部130、白色化フィルタ処理部140、雑音分散更新部120は、信号推定装置50−1、50−2だけでなく、信号推定装置2にも付加できる。図7に信号推定装置50−3の変形例1の信号推定装置50−4の機能構成例を示す。こうすることで、白色化されていない雑音が重畳している場合であっても原信号を推定できる。
Claims (10)
- 原信号と雑音信号を含む観測信号から当該原信号を推定する信号推定装置であって、
前記観測信号を予め定められたフレーム毎に分割することで、フレーム分割信号を生成するフレーム分割部と、
前記観測信号中の雑音区間から雑音分散値を推定する雑音分散推定部と、
固定基底行列を記憶する固定基底行列記憶部と、
前記固定基底行列と前記フレーム分割信号とを用いて、対角行列である分散対角行列を生成する分散対角行列生成部と、
前記雑音分散値と前記分散対角行列とを用いて、重み対角行列を計算する対角成分計算部と、
前記固定基底行列と前記重み対角行列とを用いて、推定行列を計算する推定行列計算部と、
前記フレーム分割信号に前記推定行列を畳み込むことで、フレーム推定信号を生成するフレーム推定信号生成部と、
前記フレーム推定信号を重畳加算することで、前記原信号の推定信号を生成する重畳加算演算部と、
を備えることを特徴とする信号推定装置。 - 請求項1記載の信号推定装置であって、
前記固定基底行列は、コサイン基底行列であることを特徴とする信号推定装置。 - 請求項1または2記載の信号推定装置であって、
前記分散対角行列生成部は、
前記フレーム分割信号から当該フレーム分割信号の相関行列を計算する相関行列計算手段と、
前記相関行列と前記固定基底行列を用いて、前記分散対角行列を計算する相関行列対角化手段と、
を備えるものであることを特徴とする信号推定装置。 - 請求項1または2記載の信号推定装置であって、
前記分散対角行列生成部は、
前記フレーム分割信号から前記観測信号の自己相関関数を計算する自己相関関数計算手段と、
前記観測信号の相関行列をトープリッツ行列に近似することで前記固定基底行列から求まる対角化行列を記憶する対角化行列記憶手段と、
前記自己相関関数と前記対角化行列とから前記分散対角行列を計算する対角化相関行列計算手段と、を備えるものであることを特徴とする信号推定装置。 - 請求項1〜4何れかに記載の信号推定装置であって、
更に、
前記観測信号から当該観測信号の雑音区間を検出する雑音区間検出部と、
前記雑音区間から白色化フィルタを推定する白色化フィルタ推定部と、
前記フレーム分割信号に前記白色化フィルタを畳み込むことで、白色化フレーム分割信号を生成する白色化フィルタ処理部と、
現在の観測信号のフレームが、雑音区間であると、雑音分散値を更新する雑音分散更新部と、を備え、
前記フレーム推定信号生成部は、前記フレーム白色化フレーム分割信号に前記推定行列を畳み込むことで、前記フレーム推定信号を生成するものであり、
前記対角成分計算部は、前記更新された雑音分散値と前記分散対角行列とを用いて、重み対角行列を計算するものであることを特徴とする信号推定装置。 - 観測信号を予め定められたフレーム毎に分割することで、フレーム分割信号を生成するフレーム分割部と、
前記観測信号から当該観測信号の雑音区間を検出する雑音区間検出部と、
前記雑音区間から白色化フィルタを推定する白色化フィルタ推定部と、
前記雑音区間についての雑音分散値を推定する雑音分散推定部と、
現在の観測信号のフレームが雑音区間であると、雑音分散値を更新する雑音分散更新部と、
前記フレーム分割信号に前記白色化フィルタを畳み込むことで、白色化フレーム分割信号を生成する白色化フィルタ処理部と、
前記白色化フレーム分割信号と前記雑音分散値を用いて、重み対角行列を計算する対角成分計算部と、
前記重み対角行列を用いて、推定行列を推定行列を推定する推定行列計算部と、
前記白色化フレーム分割信号に前記推定信号を畳み込むことで、フレーム推定信号を生成するフレーム推定信号生成部と、
前記フレーム推定信号を重畳加算することで、前記原信号の推定信号を生成する重畳加算演算部と、
を備えることを特徴とする信号推定装置。 - 原信号と雑音信号を含む観測信号から当該原信号を推定する信号推定方法であって、
前記観測信号を予め定められたフレーム毎に分割することで、フレーム分割信号を生成する過程と、
前記観測信号中の雑音区間から雑音分散値を推定する過程と、
固定基底行列を記憶する過程と、
予め記憶されている固定基底行列と前記フレーム分割信号とを用いて、対角行列である分散対角行列を生成する過程と、
前記雑音分散値と前記分散対角行列とを用いて、重み対角行列を計算する過程と、
前記固定基底行列と前記重み対角行列とを用いて、推定行列を計算する過程と、
前記フレーム分割信号に前記推定行列を畳み込むことで、フレーム推定信号を生成する過程と、
前記フレーム推定信号を重畳加算することで、前記原信号の推定信号を生成する過程と、
を有することを特徴とする信号推定方法。 - 観測信号を予め定められたフレーム毎に分割することで、フレーム分割信号を生成する過程と、
前記観測信号から当該観測信号の雑音区間を検出する過程と、
前記雑音区間から白色化フィルタを推定する過程と、
前記雑音区間についての雑音分散値を推定する過程と、
現在の観測信号のフレームが雑音区間であると、雑音分散値を更新する過程と、
前記フレーム分割信号に前記白色化フィルタを畳み込むことで、白色化フレーム分割信号を生成する過程と、
前記白色化フレーム分割信号と前記雑音分散値を用いて、重み対角行列を計算する過程と、
前記重み対角行列を用いて、推定行列を推定行列を推定する過程と、
前記白色化フレーム分割信号に前記推定信号を畳み込むことで、フレーム推定信号を生成する過程と、
前記フレーム推定信号を重畳加算することで、前記原信号の推定信号を生成する過程と、
を有することを特徴とする信号推定方法。 - 請求項1〜6の何れかに記載される信号推定装置の各部としてコンピュータを機能させるための信号推定プログラム。
- 請求項9記載の信号推定プログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007266929A JP2009098203A (ja) | 2007-10-12 | 2007-10-12 | 信号推定装置、その方法、そのプログラム、その記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007266929A JP2009098203A (ja) | 2007-10-12 | 2007-10-12 | 信号推定装置、その方法、そのプログラム、その記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009098203A true JP2009098203A (ja) | 2009-05-07 |
Family
ID=40701311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007266929A Pending JP2009098203A (ja) | 2007-10-12 | 2007-10-12 | 信号推定装置、その方法、そのプログラム、その記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009098203A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011033717A (ja) * | 2009-07-30 | 2011-02-17 | Secom Co Ltd | 雑音抑圧装置 |
CN110535801A (zh) * | 2019-03-07 | 2019-12-03 | 中兴通讯股份有限公司 | 多径分离方法、装置和存储介质 |
-
2007
- 2007-10-12 JP JP2007266929A patent/JP2009098203A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011033717A (ja) * | 2009-07-30 | 2011-02-17 | Secom Co Ltd | 雑音抑圧装置 |
CN110535801A (zh) * | 2019-03-07 | 2019-12-03 | 中兴通讯股份有限公司 | 多径分离方法、装置和存储介质 |
CN110535801B (zh) * | 2019-03-07 | 2022-06-24 | 中兴通讯股份有限公司 | 多径分离方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3257044B1 (en) | Audio source separation | |
US10650841B2 (en) | Sound source separation apparatus and method | |
CN102750956B (zh) | 一种单通道语音去混响的方法和装置 | |
US10373628B2 (en) | Signal processing system, signal processing method, and computer program product | |
EP2912660B1 (en) | Method for determining a dictionary of base components from an audio signal | |
CN103559888A (zh) | 基于非负低秩和稀疏矩阵分解原理的语音增强方法 | |
US9576583B1 (en) | Restoring audio signals with mask and latent variables | |
WO2016011048A1 (en) | Decomposing audio signals | |
US10904688B2 (en) | Source separation for reverberant environment | |
CN110875054B (zh) | 一种远场噪声抑制方法、装置和系统 | |
Kameoka et al. | Complex NMF with the generalized Kullback-Leibler divergence | |
EP3550565B1 (en) | Audio source separation with source direction determination based on iterative weighting | |
US11694707B2 (en) | Online target-speech extraction method based on auxiliary function for robust automatic speech recognition | |
GB2510650A (en) | Sound source separation based on a Binary Activation model | |
EP3242295B1 (en) | A signal processor | |
JP2009098203A (ja) | 信号推定装置、その方法、そのプログラム、その記録媒体 | |
US10657958B2 (en) | Online target-speech extraction method for robust automatic speech recognition | |
JP2017151216A (ja) | 音源方向推定装置、音源方向推定方法、およびプログラム | |
JP2013186383A (ja) | 音源分離装置、音源分離方法、およびプログラム | |
Mirzaei et al. | Under-determined reverberant audio source separation using Bayesian Non-negative Matrix Factorization | |
Wang et al. | Speech enhancement control design algorithm for dual-microphone systems using β-NMF in a complex environment | |
Saleem et al. | Regularized sparse decomposition model for speech enhancement via convex distortion measure | |
Asano et al. | Sound source localization in spatially colored noise using a hierarchical Bayesian model | |
Adiloğlu et al. | A general variational Bayesian framework for robust feature extraction in multisource recordings | |
Jyoshna et al. | An Intelligent reference free adaptive learning algorithm for speech enhancement |