• 検索結果がありません。

HRLE

ドキュメント内 HARK Document (ページ 150-154)

第 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).

ドキュメント内 HARK Document (ページ 150-154)