マルチチャネル信号のパワースペクトルから,信号に含まれる 定常ノイズ (例えば,ファンノイズや背景ノイズ,BackGround Noise) を推定する. 推定した定常ノイズは,PostFilter ノードで使用される.
無し.
どんなときに使うのか
信号に含まれるフ定常ノイズ (ファンノイズや背景ノイズ,BackGround Noise) を 推定する.この推定値が必要になるノードは,PostFilter である. PostFilter ノードでは,この背景ノイズと,PostFilter 内で推定されるチャネル間リークをもとに,分離処理でとりきれないノイズを抑制する.
典型的な接続例
BGNEstimator ノードの接続例を図 6.37 に示す. 入力には,音声波形を周波数領域に変換し求めたパワースペクトルを入力する. 出力は,PostFilter ノードで利用される.
パラメータ名 |
型 |
デフォルト値 |
単位 |
説明 |
DELTA |
3.0 |
パワー比閾値 |
||
L |
150 |
[frame] |
検出時間幅 |
|
ALPHA_S |
0.7 |
入力信号の平滑化係数 |
||
NOISE_COMPENS |
1.0 |
定常ノイズの混入率 |
||
ALPHA_D_MIN |
0.05 |
平滑化係数の最小値 |
||
NUM_INIT_FRAME |
100 |
[frame] |
初期化フレーム数 |
入力
: Matrix<float> 型. マルチチャネルパワースペクトル
出力
: Matrix<float> 型. 推定された定常ノイズのパワースペクトル.
パラメータ
: float 型. 3.0 がデフォルト値. パワースペクトルの周波数ビンに 音声などの目的音が含まれているかどうかの閾値. 大きい値にすると,より多くのパワーを定常ノイズとみなす.
: int 型. 150 がデフォルト値. 目的音が含まれるかの判断基準となる, 過去最もパワーの小さいスペクトル (定常ノイズ成分) を保持する時間. AudioStreamFromWave ノードなどで指定される ADVANCE パラメータ分の シフトが行われる回数として指定する.
: float 型. 0.7 がデフォルト値. 入力信号を時間方向に平滑化する 際の係数. 値が大きいほど,過去のフレームの値の重みを大きく平滑化する.
: float 型. 1.0 がデフォルト値. 目的音が含まれないと 判断されたフレームを,定常ノイズとして重みづけして加算する (定常ノイズの平滑化) ときの重み.
: float 型. 0.05 がデフォルト値. 定常ノイズの平滑化処理で, 目的音が含まれたと判断されたフレームのパワースペクトルを加える際の最小重み.
: int 型. 100 がデフォルト値. 処理を開始した際, このフレーム数だけ目的音の有無判定を行わず,全て定常ノイズとみなす.
以下では,定常ノイズを導出する過程を示す. 時間,周波数,チャネルインデックスは 表6.1 に準拠する.
変数名 |
対応パラメータ,または,説明 |
$\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 の通り.
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. 定常ノイズ推定:
目的音有無の判定
以下にいずれかが成り立つ場合,該当する時間,周波数に目的音のパワーは存在せず,ノイズのみがあるとみなされる.
$\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) |
平滑化係数の算出
定常ノイズのパワーを計算する際に用いられる平滑化係数$\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) |