第 6 章 ノードリファレンス 51
6.3 Separation カテゴリ
6.3.6 HRLE
ノードの概要
本ノードは,Histogram-based Recursive Level Estimation (HRLE)法によって定常ノイズレベルを推定する.
HRLEは,入力スペクトルのヒストグラム(頻度分布)を計算し,その累積分布とパラメータLxにより指定 した正規化累積頻度からノイズレベルを推定する.ヒストグラムは,指数窓により重み付けされた過去の入力 スペクトルから計算され,1フレームごとに指数窓の位置は更新される.
必要なファイル 無し
使用方法
どんなときに使うのか
スペクトル減算によるノイズ抑圧を行うときに用いる.
典型的な接続例
図6.46に示すように,入力はGHDSSなどの分離ノードの後に接続し,出力はCalcSpecSubGainなどの最 適ゲインを求めるノードに接続する.図6.47は,EstimateLeakを併用した場合の接続例である.
図6.46:HRLEの接続例1
ノードの入出力とプロパティ
入力
INPUT SPEC :Map<int, float>型. 入力信号のパワースペクトル
図6.47:HRLEの接続例2 表6.38: HRLEのパラメータ表 パラメータ名 型 デフォルト値 単位 説明
LX float 0.85 正規化累積頻度(Lx値).
TIME CONSTANT float 16000 [pt] 時定数.
NUM BIN float 1000 ヒストグラムのビン数.
MIN LEVEL float -100 [dB] ヒストグラムの最小レベル.
STEP LEVEL float 0.2 [dB] ヒストグラムのビンの幅.
DEBUG bool false デバッグモード.
出力
NOISE SPEC :Map<int, float>型. 推定ノイズのパワースペクトル
パラメータ
LX :float型.デフォルトは0.85.累積頻度分布上の正規化累積頻度を0–1の範囲で指定する.0を指定す
ると最小レベル,1を指定すると最大レベル,0.5を指定するとメジアン(中央値)を推定する.
TIME CONSTANT :float型.デフォルトは16000.時定数(0以上)を時間サンプル単位で指定する.
NUM BIN :float型.デフォルトは1000.ヒストグラムのビン数を指定する.
MIN LEVEL :float型.デフォルトは-100.ヒストグラムの最小レベルをdB単位で指定する.
STEP LEVEL :float型.デフォルトは0.2.ヒストグラムのビンの幅をdB単位で指定する.
DEBUG :boolデフォルトはfalse.デバッグモードを指定する. デバッグモード(true)の場合,累積ヒ
出力値は,複数の行と列を含む複素行列数値形式であり,行は周波数ビンの位置,列はヒストグラム の位置,各要素は丸括弧で区切られた複素数値(左側が実数,右側が虚数部)を示す.(累積ヒストグラ ムは,実数値であるため,通常では虚数部は0である.しかし今後のバージョンでも0であることは保 障されない.) 1つのサンプルに対する累積ヒストグラムの加算値は,1ではなく指数的に増大してい る(高速化のため). そのため累積ヒストグラム値は,累積頻度そのものを表してはいない事に注意 されたい. 各行の累積ヒストグラム値のほとんどが0で,最後の列に近い位置のみに値を含む場合,
入力値が設定したヒストグラムのレベル範囲を超えて大きい状態(オーバーフロー状態)にあるので,
NUM BIN, MIN LEVEL,STEP LEVELの一部またはすべてを高い値に設定しなおすべきである. また 逆に各行の累積ヒストグラム値がほとんど一定値で,最初の列に近い位置のみに異なる低い値が含まれ る場合,入力値が設定したヒストグラムのレベル範囲より小さい状態(アンダーフロー状態)にあるの で,MIN LEVELを低い値に設定しなおすべきである.出力の例:
Compmat.disp()
---[(1.00005e-18,0), (1.00005e-18,0), (1.00005e-18,0), ..., (1.00005e-18,0);
(0,0), (0,0), (0,0), ..., (4.00084e-18,0);
...
(4.00084e-18,0), (4.00084e-18,0), (4.00084e-18,0), .., , (4.00084e-18,0)]ˆT Matrix size = 1000 x 257
ノードの詳細
図6.48にHRLEの処理フローを示す.HRLEは,入力パワーからレベルのヒストグラムを求め,その累積分 布からLxレベルを推定する処理となっている.Lxレベルとは,図6.49に示すように,累積頻度分布上の正規 化累積頻度がxになるレベルである.xは,パラメータであり,例えば,x=0であれば最小値,x=1であれ ば最大値,x=0.5であれば中央値を推定する処理となる.
䠍䠊䝺䝧䝹 䜈䛾ኚ
䠎䠊䜲䞁 䝕䝑䜽䝇 䛾ィ⟬
䠏䠊䝠䝇䝖 䜾䝷䝮䛾
᭦᪂
䠐䠊⣼✚䝠䝇䝖 䜾䝷䝮䛾ィ⟬
䝺䝧䝹 㢖ᗘ
䝺䝧䝹
⣼✚㢖ᗘ
䠑䠊Lx䜲 䞁䝕䝑䜽 䝇䛾ィ⟬
䠓䠊䝟䝽 䞊䜈䛾 ኚ
䝠䝇䝖䜾䝷䝮
⣼✚䝠䝇䝖䜾䝷䝮 ᥎ᐃ䝜䜲䝈
䝟䝽䞊 䠄䝇䝨䜽䝖䝹䠅
ධຊ䝟䝽䞊 䠄䝇䝨䜽䝖䝹䠅
䠒䠊䝺䝧䝹 䛾ィ⟬
yp YL Iy
N(t, i)
S(t, i) x
Ix Lx
np
䠍䠊䝺䝧䝹 䜈䛾ኚ
䠎䠊䜲䞁 䝕䝑䜽䝇 䛾ィ⟬
䠏䠊䝠䝇䝖 䜾䝷䝮䛾
᭦᪂
䠐䠊⣼✚䝠䝇䝖 䜾䝷䝮䛾ィ⟬
䝺䝧䝹 㢖ᗘ
䝺䝧䝹
⣼✚㢖ᗘ
䠑䠊Lx䜲 䞁䝕䝑䜽 䝇䛾ィ⟬
䠓䠊䝟䝽 䞊䜈䛾 ኚ
䝠䝇䝖䜾䝷䝮
⣼✚䝠䝇䝖䜾䝷䝮 ᥎ᐃ䝜䜲䝈
䝟䝽䞊 䠄䝇䝨䜽䝖䝹䠅
ධຊ䝟䝽䞊 䠄䝇䝨䜽䝖䝹䠅
䠒䠊䝺䝧䝹 䛾ィ⟬
yp YL Iy
N(t, i)
S(t, i) x
Ix Lx
np
図6.48:HRLEの処理フロー
HRLEの具体的な処理手順は,下記の7つの数式(図6.48の各処理に対応)で示すとおりである.式中で,
tは時刻(フレーム単位),y は入力パワー(INPUT SPEC),n は推定ノイズパワー(NOISE SPEC]),x,α,
Power Level L [dB]
Frequency N(L) [# of counts]
Noise
Speech
L0 L100
Power Level L [dB]
Cumulative Frequency S(L) [# of cnts.]
Noise
Speech Smax
0 x [%]
Lx
=x/100*Smax
Cumulation
図6.49: Lx値の推定
Lmin,Lstepはヒストグラムに関わるパラメータでそれぞれ正規化累積頻度(LX),時定数(TIME CONSTANT),
ビンの最小レベル(MIN LEVEL),ビンのレベル幅(STEP LEVEL),⌊a⌋はa以下のaに最も近い整数を示して いる.また,パラメータを除く全ての変数は,周波数の関数であり,各周波数毎に独立して同じ処理が施され る.式中では,簡略化のため周波数を省略した.
YL(t) = 10 log10yp(t), (6.48)
Iy(t) = ⌊(YL(t)−Lmin)/Lstep⌋, (6.49) N(t,l) = αN(t−1,l)+(1−α)δ(l−Iy(t)), (6.50) S(t,l) =
∑l k=0
N(t,k), (6.51)
Ix(t) = argmin
I
[
S(t,Imax) x
100−S(t,I)
], (6.52)
Lx(t) = Lmin+Lstep·Ix(t), (6.53)
np(t) = 10Lx(t)/10 (6.54)
参考文献
(1) H. Nakajima, G. Ince, K. Nakadai and Y. Hasegawa: “An Easily-configurable Robot Audition System using Histogram-based Recursive Level Estimation”, Proc. of IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS), 2010 (to be appeared).