Processing math: 0%

6.3.1 BGNEstimator

6.3.1.1 ノードの概要

マルチチャネル信号のパワースペクトルから,信号に含まれる 定常ノイズ (例えば,ファンノイズや背景ノイズ,BackGround Noise) を推定する. 推定した定常ノイズは,PostFilter ノードで使用される.

6.3.1.2 必要なファイル

無し.

6.3.1.3 使用方法

どんなときに使うのか

信号に含まれるフ定常ノイズ (ファンノイズや背景ノイズ,BackGround Noise) を 推定する.この推定値が必要になるノードは,PostFilter である. PostFilter ノードでは,この背景ノイズと,PostFilter 内で推定されるチャネル間リークをもとに,分離処理でとりきれないノイズを抑制する.

典型的な接続例

BGNEstimator ノードの接続例を図 6.56 に示す. 入力には,音声波形を周波数領域に変換し求めたパワースペクトルを入力する. 出力は,PostFilter ノードで利用される.

\includegraphics[width=.8\textwidth ]{fig/modules/BGNEstimator}
Figure 6.56: BGNEstimator の接続例

6.3.1.4 ノードの入出力とプロパティ

Table 6.40: BGNEstimator のパラメータ表

パラメータ名

デフォルト値

単位

説明

DELTA

float 

3.0

 

パワー比閾値

L

int 

150

[frame]

検出時間幅

ALPHA_S

float 

0.7

 

入力信号の平滑化係数

NOISE_COMPENS

float 

1.0

 

定常ノイズの混入率

ALPHA_D_MIN

float 

0.05

 

平滑化係数の最小値

NUM_INIT_FRAME

int 

100

[frame]

初期化フレーム数

入力

INPUT_POWER

: Matrix<float> 型. マルチチャネルパワースペクトル

出力

NOISE_POWER

: Matrix<float> 型. 推定された定常ノイズのパワースペクトル.

パラメータ

DELTA

: float 型. 3.0 がデフォルト値. パワースペクトルの周波数ビンに 音声などの目的音が含まれているかどうかの閾値. 大きい値にすると,より多くのパワーを定常ノイズとみなす.

L

: int 型. 150 がデフォルト値. 目的音が含まれるかの判断基準となる, 過去最もパワーの小さいスペクトル (定常ノイズ成分) を保持する時間. AudioStreamFromWave ノードなどで指定される ADVANCE パラメータ分の シフトが行われる回数として指定する.

ALPHA_S

: float 型. 0.7 がデフォルト値. 入力信号を時間方向に平滑化する 際の係数. 値が大きいほど,過去のフレームの値の重みを大きく平滑化する.

NOISE_COMPENS

: float 型. 1.0 がデフォルト値. 目的音が含まれないと 判断されたフレームを,定常ノイズとして重みづけして加算する (定常ノイズの平滑化) ときの重み.

ALPHA_D_MIN

: float 型. 0.05 がデフォルト値. 定常ノイズの平滑化処理で, 目的音が含まれたと判断されたフレームのパワースペクトルを加える際の最小重み.

NUM_INIT_FRAME

: int 型. 100 がデフォルト値. 処理を開始した際, このフレーム数だけ目的音の有無判定を行わず,全て定常ノイズとみなす.

6.3.1.5 ノードの詳細

以下では,定常ノイズを導出する過程を示す. 時間,周波数,チャネルインデックスは 表6.1 に準拠する.

Table 6.41: 変数表

変数名

対応パラメータ,または,説明

\boldsymbol {S}(f,k_ i) = [S_1(f,k_ i), ..., S_ M(f,k_ i)]^ T

時間フレーム f,周波数ビン k_ i の入力パワースペクトル

\boldsymbol {\lambda }(f,k_ i) = [\lambda _1(f,k_ i), ..., \lambda _ M(f,k_ i)]^ T

推定されたノイズスペクトル

\delta

DELTA,デフォルト 0.3

L

L,デフォルト 150

\alpha _{s}

ALPHA_S,デフォルト 0.7

\theta

NOISE_COMPENS,デフォルト 1.0

\alpha _{d}^{min}

ALPHA_D_MIN,デフォルト 0.05

N

NUM_INIT_FRAME,デフォルト 100

導出のフローは,図6.57 の通り.

\includegraphics[width=.8\textwidth ]{fig/modules/BGNEstimator-flow.eps}
Figure 6.57: 定常ノイズ推定の流れ

1. 時間方向,周波数方向平滑化: 時間方向の平滑化は,入力パワースペクトル {\boldsymbol S}(f,k_ i) と, 前フレームの定常ノイズパワースペクトル {\boldsymbol \lambda }(f-1,k_ i) の内分により行う.

  \displaystyle S_{m}^{smo,t}(f,k_ i) \displaystyle = \displaystyle \alpha _{s} \lambda _ m(f-1,k_ i) + (1-\alpha _{s}) S_ m(f,k_ i)   (34)

周波数方向の平滑化は,時間平滑化された S_{m}^{smo,t}(f,k_ i) に対して行う.

  \displaystyle S_{m}^{smo}(f,k_ i) \displaystyle = \displaystyle 0.25 S_{m}^{smo}(f,k_{i-1}) + 0.5 S_{m}^{smo}(f,k_ i) + 0.25 S_{m}^{smo}(f,k_{i+1})   (35)

2. 最小エネルギーの更新: 目的音の有無を判定するため,処理を開始してからの 各チャネル,周波数ビンについての最小のエネルギー{\boldsymbol S}^{min}を計算する. {\boldsymbol S}^{min} は,各チャネル,周波数ビンごとの,処理を開始してからの最小エネルギーで, {\boldsymbol S}^{tmp} は,L フレームごとに更新される暫定最小エネルギーである.

  \displaystyle S^{tmp}_ m(f,k_ i) \displaystyle = \displaystyle \left\{ \begin{array}{cr} S^{smo}_ m(f,k_ i), & \mathrm{if}\ \ f = nL\\ \min \{ S^{tmp}_ m(f-1,k_ i), S^{smo}_ m(f,k_ i)\} , & \mathrm{if}\ \ f \neq nL \end{array} \right.   (36)
  \displaystyle S^{min}_ m(f,k_ i) \displaystyle = \displaystyle \left\{ \begin{array}{cr} \min \{ S^{tmp}_ m(f-1,k_ i), S^{smo}_ m(f,k_ i)\} , & {if~ ~ } f = nL\\ \min \{ S^{min}_ m(f-1,k_ i), S^{smo}_ m(f,k_ i)\} , & {if~ ~ } f \neq nL \end{array} \right.   (37)

ただし,n は任意の整数である.

3. 定常ノイズ推定:

  1. 目的音有無の判定
    以下にいずれかが成り立つ場合,該当する時間,周波数に目的音のパワーは存在せず,ノイズのみがあるとみなされる.

      \displaystyle S^{smo}_ m(f,k_ i) \displaystyle < \displaystyle \delta S^{min}_ m(f,k_ i) {または}   (38)
      \displaystyle f \displaystyle < \displaystyle N {または}   (39)
      \displaystyle S_{m}^{smo}(f,k_ i) \displaystyle < \displaystyle \lambda _ m(f-1,k_ i)   (40)
  2. 平滑化係数の算出
    定常ノイズのパワーを計算する際に用いられる平滑化係数\alpha _{d}は,

      \displaystyle \alpha _{d} \displaystyle = \displaystyle \left\{ \begin{array}{cr} \frac{1}{f+1}, & {if~ ~ }(\frac{1}{f+1} \geq \alpha _{d}^{min}) \\ \alpha _{d}^{min}, & {if~ ~ }(\frac{1}{t+1} < \alpha _{d}^{min}) \\ 0 & ({目的音が含まれるとき}) \end{array} \right.   (41)

    として計算する. 定常ノイズは以下の式によって求める.

      \displaystyle \lambda _ m(f,k_ i) \displaystyle = \displaystyle (1-\alpha _{d}) \lambda _ m(f-1,k_ i) + \alpha _{d} \theta S_ m(f,k_ i)   (42)