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.37 に示す. 入力には,音声波形を周波数領域に変換し求めたパワースペクトルを入力する. 出力は,PostFilter ノードで利用される.

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

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

Table 6.31: 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.32: 変数表

変数名

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

$\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.38 の通り.

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

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) $   (19)

周波数方向の平滑化は,時間平滑化された $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}) $   (20)

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 \ne nL \end{array} \right. $   (21)
  $\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 \ne nL \end{array} \right. $   (22)

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

3. 定常ノイズ推定:

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

      $\displaystyle S^{smo}_ m(f,k_ i) $ $\displaystyle < $ $\displaystyle \delta S^{min}_ m(f,k_ i) {または} $   (23)
      $\displaystyle f $ $\displaystyle < $ $\displaystyle N {または} $   (24)
      $\displaystyle S_{m}^{smo}(f,k_ i) $ $\displaystyle < $ $\displaystyle \lambda _ m(f-1,k_ i) $   (25)
  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. $   (26)

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

      $\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) $   (27)