このノードは,音源分離ノード GHDSS によって分離された複素スペクトルに対し, 音声認識精度を向上するための後処理を行う. 同時に,ミッシングフィーチャーマスクを生成するための,ノイズパワースペクトルの生成も行う.
無し.
どんなときに使うのか
このノードは,GHDSS ノードによって分離されたスペクトルの整形と, ミッシングフィーチャーマスクを生成するために必要なノイズスペクトルを生成する時に用いる.
典型的な接続例
PostFilter ノードの接続例は図 483 の通り. 入力の接続として,INPUT_SPEC は GHDSS ノードの出力, INIT_NOISE_POWER は BGNEstimator ノードの出力と接続する.
出力について,図 483 では
分離音 (OUTPUT_SPEC) の音声特徴抽出 (MSLSExtraction ノード),
分離音と分離音に含まれるノイズのパワー (EST_NOISE_POWER) から音声認識時のミッシングフィーチャーマスク生成 (MFMGeneration ノード)
の接続例を示している.
入力
: Map<int, ObjectRef> 型. GHDSS ノードからの出力と同じ型. 音源 ID と,分離音の複素スペクトルである Vector<complex<float> > 型データのペア.
: Matrix<float> 型. BGNEstimator ノードによって推定された定常ノイズのパワースペクトル.
出力
: Map<int, ObjectRef> 型. 入力 INPUT_SPEC から,ノイズ除去がされた分離音の複素スペクトル. Object 部分は Vector<complex<float> > 型.
: Map<int, ObjectRef> 型. OUTPUT_SPEC の各分離音に対して,含まれていると推定されたノイズのパワーが, Vector<float> 型データとして ID とペアになっている.
パラメータ
パラメータ名 |
型 |
デフォルト値 |
単位 |
説明 |
MCRA_SETTING |
false |
ノイズ除去手法である,MCRA推定に関するパラメータ設定項目を表示する時,trueにする. |
||
MCRA_SETTING |
以下,MCRA_SETTING が trueの時に表示される |
|||
STATIONARY_NOISE_FACTOR |
1.2 |
定常ノイズ推定時の係数. |
||
SPEC_SMOOTH_FACTOR |
0.5 |
入力パワースペクトルの平滑化係数. |
||
AMP_LEAK_FACTOR |
1.5 |
漏れ係数. |
||
STATIONARY_NOISE_MIXTURE_FACTOR |
0.98 |
定常ノイズの混合比. |
||
LEAK_FLOOR |
0.1 |
漏れノイズの最小値. |
||
BLOCK_LENGTH |
80 |
検出時間幅. |
||
VOICEP_THRESHOLD |
3 |
音声存在判定の閾値. |
||
EST_LEAK_SETTING |
false |
漏れ率推定に関するパラメータ設定項目を表示する時,trueにする. |
||
EST_LEAK_SETTING |
以下,EST_LEAK_SETTING が trueの時に表示される. |
|||
LEAK_FACTOR |
0.25 |
漏れ率. |
||
OVER_CANCEL_FACTOR |
1 |
漏れ率重み係数. |
||
EST_REV_SETTING |
false |
残響成分推定に関するパラメータ設定項目を表示する時,trueにする. |
||
EST_REV_SETTING |
以下,EST_REV_SETTING が trueの時に表示される. |
|||
REVERB_DECAY_FACTOR |
0.5 |
残響パワーの減衰係数. |
||
DIRECT_DECAY_FACTOR |
0.2 |
分離スペクトルの減衰係数. |
||
EST_SN_SETTING |
false |
SN 比推定に関するパラメータ設定項目を表示する時,trueにする. |
||
EST_SN_SETTING |
以下,EST_SN_SETTING が trueの時に表示される. |
|||
PRIOR_SNR_FACTOR |
0.8 |
事前 SNR と事後 SNR の比率. |
||
VOICEP_PROB_FACTOR |
0.9 |
音声存在確率の振幅係数. |
||
MIN_VOICEP_PROB |
0.05 |
最小音声存在確率. |
||
MAX_PRIOR_SNR |
100 |
事前 SNR の最大値. |
||
MAX_OPT_GAIN |
20 |
最適ゲイン中間変数 v の最大値. |
||
MIN_OPT_GAIN |
6 |
最適ゲイン中間変数 v の最小値. |
パラメータ名 |
型 |
デフォルト値 |
単位 |
説明 |
EST_VOICEP_SETTING |
false |
音声確率推定に関するパラメータを設定する時,trueにする. |
||
EST_VOICEP_SETTING |
以下,EST_VOICEP_SETTING が trueの時に有効. |
|||
PRIOR_SNR_SMOOTH_FACTOR |
0.7 |
時間平滑化係数. |
||
MIN_FRAME_SMOOTH_SNR |
0.1 |
周波数平滑化 SNR の最小値 (frame). |
||
MAX_FRAME_SMOOTH_SNR |
0.316 |
周波数平滑化 SNR の最大値 (frame). |
||
MIN_GLOBAL_SMOOTH_SNR |
0.1 |
周波数平滑化 SNR の最小値 (global). |
||
MAX_GLOBAL_SMOOTH_SNR |
0.316 |
周波数平滑化 SNR の最大値 (global). |
||
MIN_LOCAL_SMOOTH_SNR |
0.1 |
周波数平滑化 SNR の最小値 (local). |
||
MAX_LOCAL_SMOOTH_SNR |
0.316 |
周波数平滑化 SNR の最大値 (local). |
||
UPPER_SMOOTH_FREQ_INDEX |
99 |
周波数平滑化上限ビンインデックス. |
||
LOWER_SMOOTH_FREQ_INDEX |
8 |
周波数平滑化下限ビンインデックス. |
||
GLOBAL_SMOOTH_BANDWIDTH |
29 |
周波数平滑化バンド幅(global). |
||
LOCAL_SMOOTH_BANDWIDTH |
5 |
周波数平滑化バンド幅(local). |
||
FRAME_SMOOTH_SNR_THRESH |
1.5 |
周波数平滑化 SNR の閾値. |
||
MIN_SMOOTH_PEAK_SNR |
1.0 |
周波数平滑化 SNR ピークの最小値. |
||
MAX_SMOOTH_PEAK_SNR |
10.0 |
周波数平滑化 SNR ピークの最大値. |
||
FRAME_VOICEP_PROB_FACTOR |
0.7 |
音声確率平滑化係数 (frame). |
||
GLOBAL_VOICEP_PROB_FACTOR |
0.9 |
音声確率平滑化係数 (global). |
||
LOCAL_VOICEP_PROB_FACTOR |
0.9 |
音声確率平滑化係数 (local). |
||
MIN_VOICE_PAUSE_PROB |
0.02 |
音声休止確率の最小値. |
||
MAX_VOICE_PAUSE_PROB |
0.98 |
音声休止確率の最大値. |
式で用いられる添字は,表 6.1 で定義されているものに準拠する. また,以降の式では,特に必要のない場合は,時間フレームインデックス $f$ を省略して表記する.
図 6.61 は,PostFilter ノードの流れ図である. 入力としては,GHDSS ノードからの分離音スペクトルと, BGNEstimator ノードの定常ノイズパワースペクトルが得られる. 出力には,音声が強調された分離音スペクトルと,分離音に混入しているノイズのパワースペクトルである.
処理の流れは
ノイズ推定
SNR 推定
音声存在確率推定
ノイズ除去
となっている.
1) ノイズ推定:
ノイズ推定処理の流れを図 6.62 に示す. PostFilter ノードが対処するノイズは,
a) マイクロホンの接点などが要因となる定常ノイズ ,
b) 除去しきれなかった別の音源の音 (漏れノイズ),
c) 前フレームの残響,
の3つである.
最終的な分離音に含まれるノイズ $\boldsymbol {\lambda }(f,k_ i)$ は,
$\displaystyle \boldsymbol {\lambda }(f, k_ i) $ | $\displaystyle = $ | $\displaystyle \boldsymbol {\lambda }^{sta}(f, k_ i) + \boldsymbol {\lambda }^{leak}(f, k_ i) + \boldsymbol {\lambda }^{rev}(f-1, k_ i) $ | (72) |
として求められる. ただし,$\boldsymbol {\lambda }^{sta}(f, k_ i),\boldsymbol {\lambda }^{leak}(f, k_ i),\boldsymbol {\lambda }^{rev}(f-1, k_ i)$ はそれぞれ, 定常ノイズ,漏れノイズ,前フレームの残響を表す.
1-a) で用いる変数は 表6.49 に基づく.
変数 |
説明,対応するパラメータ |
$\boldsymbol {Y}(k_ i) = \left[Y_1(k_ i),\dots , Y_ N(k_ i) \right]^ T$ |
周波数ビン $k_ i$ に対応する分離音複素スペクトル |
$\boldsymbol {\lambda }^{init}(k_ i) = \left[\lambda ^{init}_{1}(k_ i),\dots , \lambda ^{init}_ N(k_ i)\right]^ T$ |
定常ノイズ推定に用いる初期値パワースペクトル |
$\boldsymbol {\lambda }^{sta}(k_ i) = \left[\lambda ^{sta}_{1}(k_ i),\dots , \lambda ^{sta}_ N(k_ i) \right]^ T$ |
推定された定常ノイズパワースペクトル. |
$\alpha _ s$ |
入力パワースペクトルの平滑化係数.パラメータ SPEC_SMOOTH_FACTOR,デフォルト 0.5 |
$\boldsymbol {S}^{tmp}(k_ i) = \left[S^{tmp}_1(k_ i), \dots , S^{tmp}_ N(k_ i) \right]$ |
最小パワー計算用のテンポラリ変数. |
$\boldsymbol {S}^{min}(k_ i) = \left[S^{min}_1(k_ i), \dots , S^{min}_ N(k_ i) \right]$ |
最小パワーを保持する変数. |
$L$ |
$\boldsymbol {S}_{tmp}$ の保持フレーム数.パラメータ BLOCK_LENGTH,デフォルト 80 |
$\delta $ |
音声存在判定の閾値.パラメータ VOICEP_THRESHOLD,デフォルト 3.0 |
$\alpha _ d$ |
推定定常ノイズの混合比.パラメータ STATIONARY_NOISE_MIXTURE_FACTOR,デフォルト 0.98 |
$\boldsymbol {Y}^{leak}(k_ i)$ |
分離音に含まれると推定される漏れノイズのパワースペクトル |
$q$ |
入力分離音パワーから漏れノイズを除くときの係数.パラメータ AMP_LEAK_FACTOR, デフォルト 1.5 |
$S_{floor}$ |
漏れノイズ最小値.パラメータ LEAK_FLOOR, デフォルト 0.1 |
$r$ |
定常ノイズ推定時の係数.パラメータ STATIONARY_NOISE_FACTOR, デフォルト 1.2 |
まず,入力スペクトルを1フレーム前のパワーと平滑化したパワースペクトル $\boldsymbol {S}(f,k_ i) = \left[S_1(f,k_ i),\dots , S_ N(f,k_ i)\right]$ を求める.
$\displaystyle S_ n(f,k_ i) $ | $\displaystyle = $ | $\displaystyle \alpha _ s S_ n(f-1,k_ i) + (1 - \alpha _ s) |Y_ n(k_ i)|^2 \label{eq:MCRA-smooth} $ | (73) |
次に,$\boldsymbol {S}^{tmp}$,$\boldsymbol {S}^{min}$ を更新する.
$\displaystyle S^{min}_ n(f,k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} \min \{ S^{min}_ n(f-1,k_ i),S_ n(f,k_ i)\} & \mathrm{if}\ \ f \ne nL\\ \min \{ S^{tmp}_ n(f-1,k_ i),S_ n(f,k_ i)\} & \mathrm{if}\ \ f = nL \end{array}\right., $ | (74) | ||
$\displaystyle S^{min}_ n(f,k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} \min \{ S^{tmp}_ n(f-1,k_ i),S_ n(f,k_ i)\} & \mathrm{if}\ \ f \ne nL\\ S_ n(f,k_ i) & \mathrm{if}\ \ f = nL \end{array}\right., $ | (75) |
ただし,$n$ は任意の整数である. $\boldsymbol {S}^{min}$ はノイズ推定を始めてからの最小パワーを保持し, $\boldsymbol {S}^{tmp}$ は最近の $L$ フレームの極小パワーを保持している. $L$ フレームごとに $\boldsymbol {S}^{tmp}$ は更新される.
続いて,最小パワーと入力分離音のパワーの比から,音声が含まれるかどうかを判定する.
$\displaystyle S_ n^{r}(k_ i) $ | $\displaystyle = $ | $\displaystyle \frac{S_ n(k_ i)}{S^{min}(k_ i)}, $ | (76) | ||
$\displaystyle I_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} 1 & \mathrm{if}\ \ S_ n^ r(k_ i) > \delta \\ 0 & \mathrm{if}\ \ S_ n^ r(k_ i) \leq \delta \end{array} \right. $ | (77) |
$I_ n(k_ i)$ に音声が含まれる場合 1,含まれない場合 0となる. この判定結果をもとに,前フレーム定常ノイズと, 現在のフレームのパワーとの混合比 $\alpha _{d,n}^ C(k_ i)$ を決める.
$\displaystyle \alpha _{d,n}^ C(k_ i) $ | $\displaystyle = $ | $\displaystyle (\alpha _ d - 1)I_ n(k_ i) + 1. $ | (78) |
次に,分離音のパワースペクトルに含まれる漏れノイズを除去する.
$\displaystyle S^{leak}_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \sum _{p=1}^{N}|Y_ p(k_ i)|^2 - |Y_ n(k_ i)|^2,\label{eq:MCRA-leak} $ | (79) | ||
$\displaystyle S_ n^0(k_ i) $ | $\displaystyle = $ | $\displaystyle |Y_ n(k_ i)|^2 - q S^{leak}_ n(k_ i), $ | (80) |
ただし,$S_ n^0(k_ i) < S_{floor}$ のとき,
$\displaystyle S_ n^0(k_ i) $ | $\displaystyle = $ | $\displaystyle S_{floor} $ | (81) |
に値が変更される.
漏れノイズを除いたパワースペクトル $S_ n^0(f,k_ i)$ と, 前フレームの推定定常ノイズ $\boldsymbol {\lambda }^{sta}(f-1,k_ i)$ または, BGNEstimator からの出力である ${bf \lambda }^{init}(f,k_ i)$ を混合することで, 現在のフレームの定常ノイズを求める.
$\displaystyle \lambda ^{sta}_ n(f,k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} \alpha _{d,n}^ C(k_ i) \lambda ^{sta}_ n(f-1,k_ i) + (1-\alpha _{d,n}^ C(k_ i) r S_ n^0(f,k_ i) & \mathrm{if }{音源位置に変更なし}\\ \alpha _{d,n}^ C(k_ i) \lambda ^{init}_ n(f,k_ i) + (1-\alpha _{d,n}^ C(k_ i) r S_ n^0(f,k_ i) & \mathrm{if }{音源位置に変更あり} \end{array} \right. $ | (82) |
1-b) で用いる変数は 表6.50 に基づく.
変数 |
説明,対応するパラメータ |
$\boldsymbol {\lambda }^{leak}(k_ i)$ |
漏れノイズのパワースペクトル,各分離音の要素から成るベクトル. |
$\alpha ^{leak}$ |
全分離音パワーの合計に対する漏れ率. LEAK_FACTOR $\times $ OVER_CANCEL_FACTOR |
$S_ n(f,k_ i)$ |
式 (73) で求める平滑化パワースペクトル |
いくつかのパラメータを次のように計算する.
$\displaystyle \beta $ | $\displaystyle = $ | $\displaystyle -\frac{\alpha ^{leak}}{1-(\alpha ^{leak})^2+\alpha ^{leak}(1-\alpha ^{leak})(N-2)} $ | (83) | ||
$\displaystyle \alpha $ | $\displaystyle = $ | $\displaystyle 1 - (N-1)\alpha ^{leak}\beta $ | (84) |
このパラメータを用いて,平滑化されたスペクトル $\boldsymbol {S}(k_ i)$ と, 式 (79) で求められた,他の分離音のパワーから自分の分離音のパワーを除いた パワースペクトル $S^{leak}_ n(k_ i)$ を混合する.
$\displaystyle Z_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \alpha S_ n(k_ i) + \beta S^{leak}_ n(k_ i), $ | (85) |
ただし,$Z_ n(k_ i) < 1$ になる場合は,$Z_ n(k_ i) = 1$ とする.
最終的な漏れノイズのパワースペクトル $\boldsymbol {\lambda }^{leak}(k_ i)$ は,
$\displaystyle \lambda ^{leak}_ n $ | $\displaystyle = $ | $\displaystyle \alpha ^{leak} \left(\sum _{n' \ne n}Z_{n'}(k_ i) \right) $ | (86) |
として求める.
1-c) で用いる変数は 表6.51 に基づく.
変数 |
説明,対応するパラメータ |
$\boldsymbol {\lambda }^{rev}(f,k_ i)$ |
時間フレーム $f$ での残響のパワースペクトル |
$\boldsymbol {\hat S}(f-1,k_ i)$ |
前フレームの PostFilter の出力したノイズ除去後分離音スペクトル |
$\gamma $ |
前フレーム残響パワーの減衰係数.パラメータ REVERB_DECAY_FACTOR,デフォルト 0.5 |
$\Delta $ |
前フレーム分離音の減衰係数.パラメータ DIRECT_DECAY_FACTOR,デフォルト 0.2 |
残響のパワーは,前フレームの推定残響パワー $\boldsymbol {\lambda }^{rev}(f-1,k_ i) = [\lambda _1^{rev}(f-1,k_ i),\dots ,\lambda _ N^{rev}(f-1,k_ i)]^ T$ と, 前フレームの分離スペクトル ${\boldsymbol {\hat S}}(f-1,k_ i) = [{\hat S}_1(f-1,k_ i),\dots , {\hat S}_ N(f-1,k_ i)]^ T$ から次のように計算される. ${\hat S}_ n(f-1,k_ i)$ は複素数であることに注意.
$\displaystyle \lambda _ n^{rev}(f,k_ i) $ | $\displaystyle = $ | $\displaystyle \gamma \left(\lambda _ n^{rev}(f-1,k_ i) + \Delta |{\hat S}_ n(f-1,k_ i)|^2 \right) $ | (87) |
2) SNR 推定:
SNR 推定の流れを図 6.63 に示す. SNR 推定は,
a) SNR の計算
b) ノイズ混入前の事前 SNR 推定
c) 音声含有率の推定
d) 最適ゲインの推定
から成る.
変数 |
説明,対応するパラメータ |
$\boldsymbol {Y}(k_ i)$ |
PostFilter ノードの入力である分離音の複素スペクトル |
${\boldsymbol {\hat S}}(k_ i)$ |
PostFilter ノードの出力となる,整形された分離音複素スペクトル |
$\boldsymbol {\lambda }(k_ i)$ |
前段で推定されたノイズのパワースペクトル |
$\gamma _ n(k_ i)$ |
分離音 $n$ の SNR |
$\alpha _ n^ p(k_ i)$ |
音声含有率 |
$\xi _ n(k_ i)$ |
事前 SNR |
$\boldsymbol {G}^{H1}(k_ i)$ |
分離音の SNR を向上させるための最適ゲイン |
表 6.57 のベクトルの要素は,各分離音の値に対応する.
2-a) で用いる変数は,表6.57 に従う. ここでは,入力の複素スペクトル $\boldsymbol {Y}(k_ i)$ と, 前段で推定されたノイズのパワースペクトル $\boldsymbol {\lambda }(k_ i)$ を元に, SNR $\gamma _ n(k_ i)$ が計算される.
$\displaystyle \gamma _ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \frac{|Y_ n(k_ i)|^2}{\lambda _ n(k_ i)} $ | (88) | ||
$\displaystyle \gamma _ n^ C(k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} \gamma _ n(k_ i) & \mathrm{if}\ \ \gamma _ n(k_ i) > 0\\ 0 & \mathrm{otherwise} \end{array} \right. $ | (89) |
2-b) で用いる変数は,表6.53 に従う.
変数 |
説明,対応するパラメータ |
$\alpha ^ p_{mag}$ |
事前SNR係数.パラメータ VOICEP_PROB_FACTOR,デフォルト 0.9 |
$\alpha ^ p_{min}$ |
最小音声含有率.パラメータ MIN_VOICEP_PROB,デフォルト 0.05 |
音声含有率 $\alpha _ n^ p(f,k_ i)$ は,前フレームの事前 SNR $\xi _ n(f-1,k_ i)$ を用いて次のように計算される.
$\displaystyle \alpha _ n^ p(f,k_ i) $ | $\displaystyle = $ | $\displaystyle \alpha ^ p_{mag} \left(\frac{\xi _ n(f-1,k_ i)}{\xi _ n(f-1,k_ i)+1}\right)^2 + \alpha ^ p_{min} $ | (90) |
2-c) で用いる変数は,表6.54 に従う.
変数 |
説明,対応するパラメータ |
$a$ |
前フレーム SNR の内分比.パラメータ PRIOR_SNR_FACTOR,デフォルト 0.8 |
$\xi ^{max}$ |
事前SNR の上限.パラメータ MAX_PRIOR_SNR,デフォルト 100 |
事前 SNR $\xi _ n(k_ i)$ は,次のようにして計算する.
$\displaystyle \xi _ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \left(1-\alpha _ n^ p(k_ i)\right) \xi _{tmp} + \alpha _ n^ p(k_ i) \gamma _ n^ C(k_ i) \label{eq:prior-SNR} $ | (91) | ||
$\displaystyle \xi _{tmp} $ | $\displaystyle = $ | $\displaystyle a \frac{|{\hat S}_ n(f-1,k_ i)|^2}{\lambda _ n(f-1,k_ i)} + (1-a) \xi _ n(f-1,k_ i) $ | (92) |
ただし,$\xi _{tmp}$ は計算上の一時的な変数で,前フレームの推定 SNR$\gamma _ n(k_ i)$ と,事前 SNR $\xi _ n(k_ i)$ の内分値である. また,$\xi _ n(k_ i) > \xi ^{max}$ となる場合,$\xi _ n(k_ i) = \xi ^{max}$ と値を変更する.
2-d) で用いる変数は,表6.55 に従う.
変数 |
説明,対応するパラメータ |
$\theta ^{max}$ |
中間変数 $v_ n(k_ i)$ 最大値.パラメータ MAX_OPT_GAIN,デフォルト 20 |
$\theta ^{min}$ |
中間変数 $v_ n(k_ i)$ 最小値.パラメータ MIN_OPT_GAIN,デフォルト 6 |
最適ゲイン計算の前に,上で求めた事前 SNR$\xi _ n(k_ i)$ と,推定 SNR$\gamma _ n(k_ i)$ を 用いて,以下の中間変数 $v_ n(k_ i)$ を計算する.
$\displaystyle v_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \frac{\xi _ n(k_ i)}{1+\xi _ n(k_ i)} \gamma _ n(k_ i) \label{eq:prior-SNR-temp-v} $ | (93) |
$v_ n(k_ i) > \theta ^{max}$ の場合,$v_ n(k_ i) = \theta ^{max}$ とする.
音声がある場合の最適ゲイン $\boldsymbol {G}^{H1}(k_ i) = [G^{H1}_1(k_ i),\dots , G^{H1}_ N(k_ i)]$ は,
$\displaystyle G^{H1}_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \frac{\xi _ n(k_ i)}{1+\xi _ n(k_ i)}\exp \left\{ \frac{1}{2}\int _{v_ n(k_ i)}^{\inf }\frac{e^{-t}}{t}\mathrm{d}t \right\} $ | (94) |
として求める. ただし,
$\displaystyle \begin{array}{cr} G^{H1}_ n(k_ i) = 1 & \mathrm{if} v_ n(k_ i) < \theta ^{min} \\ G^{H1}_ n(k_ i) = 1 & \mathrm{if} G^{H1}_ n(k_ i) > 1. \end{array} $ | (95) |
3) 音声存在確率推定:
音声存在確率推定の流れを図 6.64 に示す. 音声存在確率推定は,
a) 3種類の帯域ごとに事前 SNR の平滑化
b) 各帯域で,平滑化した SNR を元に,暫定的な音声確率を推定
c) 3つの暫定確率をもとに音声休止確率を推定
d) 最終的な音声存在確率を推定
から成る.
3-a) で用いる変数を表6.56 にまとめる.
変数 |
説明,対応するパラメータ |
$\zeta _ n(k_ i)$ |
時間平滑化した事前 SNR |
$\xi _ n(k_ i)$ |
事前 SNR |
$\zeta ^{f}_ n(k_ i)$ |
周波数平滑化 SNR (frame) |
$\zeta ^{g}_ n(k_ i)$ |
周波数平滑化 SNR (global) |
$\zeta ^{l}_ n(k_ i)$ |
周波数平滑化 SNR (local) |
$b$ |
パラメータ PRIOR_SNR_SMOOTH_FACTOR,デフォルト 0.7 |
$F_{st}$ |
パラメータ LOWER_SMOOTH_FREQ_INDEX,デフォルト 8 |
$F_{en}$ |
パラメータ UPPER_SMOOTH_FREQ_INDEX,デフォルト 99 |
$G$ |
パラメータ GLOBAL_SMOOTH_BANDWIDTH,デフォルト 29 |
$L$ |
パラメータ LOCAL_SMOOTH_BANDWIDTH,デフォルト 5 |
まず,式(91) で計算された事前 SNR $\xi _ n(f,k_ i)$ と,前フレームの時間平滑化事前 SNR $\zeta _ n(f-1,k_ i)$ で, 時間平滑化を行う.
$\displaystyle \zeta _ n(f,k_ i) $ | $\displaystyle = $ | $\displaystyle b \zeta _ n(f-1,k_ i) + (1-b) \xi _ n(f,k_ i) $ | (96) |
周波数方向の平滑化は,その窓の大きさによって,frame,global,local の順に小さくなっていく.
frame での周波数平滑化
周波数ビン $F_{st} \sim F_{en}$ の範囲で加算平均による平滑化が行われる.
$\displaystyle \zeta ^{f}_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \frac{1}{F_{en}-F_{st}+1}\sum _{k_ j=F_{st}}^{F_{en}}\zeta _ n(k_ j) \label{eq:SNR-smooth-frame} $ | (97) |
global での周波数平滑化
global では,幅 $G$ での hanning 窓を用いた周波数平滑化が行われる.
$\displaystyle \zeta ^{g}_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \sum _{j=-(G-1)/2}^{(G-1)/2}w_{han}(j+(G-1)/2)\zeta _ n(k_{i+j}), $ | (98) | ||
$\displaystyle w_{han}(j) $ | $\displaystyle = $ | $\displaystyle \frac{1}{C}\left(0.5 - 0.5 \cos \left( \frac{2 \pi j}{G}\right)\right), $ | (99) |
ただし,$C$ は $\sum _{j=0}^{G-1} w_{han}(j) = 1$ にするための正規化係数.
local での周波数平滑化
local では,幅 $F$ での三角窓を用いた周波数平滑化が行われる.
$\displaystyle \zeta ^{l}_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle 0.25 \zeta _ n(k_ i-1) + 0.5 \zeta _ n(k_ i) + 0.25(k_ i+1) $ | (100) |
3-b) で用いる変数を表6.57 に示す.
変数 |
説明,対応するパラメータ |
$\zeta ^{f,g,l}_ n(k_ i)$ |
各帯域で平滑化された SNR |
$P^{f,g,l}_ n(k_ i)$ |
各帯域での暫定音声確率 |
$\zeta ^{peak}_ n(k_ i)$ |
平滑化 SNR のピーク |
$Z^{peak}_{min}$ |
パラメータ MIN_SMOOTH_PEAK_SNR,デフォルト値 1 |
$Z^{peak}_{max}$ |
パラメータ MAX_SMOOTH_PEAK_SNR,デフォルト値 10 |
$Z_{thres}$ |
FRAME_SMOOTH_SNR_THRESH,デフォルト値 1.5 |
$Z_{min}^{f,g,l}$ |
パラメータ MIN_FRAME_SMOOTH_SNR, |
MIN_GLOBAL_SMOOTH_SNR, |
|
MIN_LOCAL_SMOOTH_SNR,デフォルト値 0.1 |
|
$Z_{max}^{f,g,l}$ |
パラメータ MAX_FRAME_SMOOTH_SNRF, |
MAX_GLOBAL_SMOOTH_SNR, |
|
MAX_LOCAL_SMOOTH_SNR,デフォルト値 0.316 |
$P^{f}_ n(k_ i)$ と $\zeta ^{peak}_ n(k_ i)$ の計算
まず,$\zeta ^{peak}_ n(f,k_ i)$ を以下のように求める.
$\displaystyle \zeta ^{peak}_ n(f,k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} \zeta ^ f_ n(f,k_ i),& \mathrm{if\ } \zeta ^{f}_ n(f,k_ i) > Z_{thres} \zeta ^ f_ n(f-1,k_ i)\\ \zeta ^{peak}_ n(f-1,k_ i),& \mathrm{if\ otherwise}. \end{array} \right. $ | (101) |
ただし,$\zeta ^{peak}_ n(k_ i)$ の値はパラメータ $Z^{peak}_{min},Z^{peak}_{max}$ の範囲に入るようにする. すなわち,
$\displaystyle \zeta ^{peak}_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} Z^{peak}_{min},& \mathrm{if} \ \zeta ^{peak}_ n(k_ i)<Z^{peak}_{min}\\ Z^{peak}_{max},& \mathrm{if} \ \zeta ^{peak}_ n(k_ i)>Z^{peak}_{max} \end{array} \right. $ | (102) |
次に,$P_ n^ f(k_ i)$ を次のように求める.
$\displaystyle P^{f}_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} 0,& \mathrm{if}\ \zeta ^ f_ n(k_ i) < \zeta ^{peak}_ n(k_ i) Z_{min}^ f \\ 1,& \mathrm{if}\ \zeta ^ f_ n(k_ i) > \zeta ^{peak}_ n(k_ i) Z_{max}^ f\\ \frac{\log \left(\zeta ^ f_ n(k_ i)/ \zeta ^{peak}_ n(k_ i) Z^ f_{min}\right)}{\log \left( Z^ f_{max} / Z^ f_{min} \right) },& \mathrm{otherwise} \end{array} \right. $ | (103) |
$P^{g}_ n(k_ i)$ の計算
次の通りに計算する.
$\displaystyle P^ g_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} 0,& \mathrm{if}\ \ \zeta ^ g_ n(k_ i) < Z_{min}^ g\\ 1,& \mathrm{if}\ \ \zeta ^ g_ n(k_ i) > Z_{max}^ g\\ \frac{\ \log \left(\zeta ^ g_ n(k_ i)/ Z_{min}^ g\right)\ }{\ \log \left(Z_{max}^ g/ Z_{min}^ g\right)\ },& \mathrm{otherwise} \end{array} \right. $ | (104) |
$P^{l}_ n(k_ i)$ の計算
次の通りに計算する.
$\displaystyle P^ l_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ \begin{array}{cr} 0,& \mathrm{if}\ \ \zeta ^ l_ n(k_ i) < Z_{min}^ l\\ 1,& \mathrm{if}\ \ \zeta ^ l_ n(k_ i) > Z_{max}^ l\\ \frac{\ \log \left(\zeta ^ l_ n(k_ i)/ Z_{min}^ l\right)\ }{\ \log \left(Z_{max}^ l/ Z_{min}^ l\right)\ },& \mathrm{otherwise} \end{array} \right. $ | (105) |
3-c) で用いる変数を表6.58 に示す.
変数 |
説明,対応するパラメータ |
$q_ n(k_ i)$ |
音声休止確率 |
$a^{f}$ |
FRAME_VOICEP_PROB_FACTOR,デフォルト,0.7 |
$a^{g}$ |
GLOBAL_VOICEP_PROB_FACTOR,デフォルト,0.9 |
$a^{l}$ |
LOCAL_VOICEP_PROB_FACTOR,デフォルト,0.9 |
$q_{min}$ |
MIN_VOICE_PAUSE_PROB,デフォルト,0.02 |
$q_{max}$ |
MAX_VOICE_PAUSE_PROB,デフォルト,0.98 |
音声休止確率 $q_ n(k_ i)$ は,3つの周波数帯域の平滑化結果を元にして計算した暫定の音声確率 $P^{f,g,l}_ n(k_ i)$ を次のように統合して得られる.
$\displaystyle q_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle 1 - \left( 1-a^ l+a^ l P^ l_ n(k_ i) \right) \left( 1-a^ g +a^ g P^ g_ n(k_ i) \right) \left( 1-a^ f+ a^ f P^ f_ n(k_ i) \right), $ | (106) |
ただし,$q_ n(k_ i) < q_{min}$ のとき,$q_ n(k_ i) = q_{min}$ とし, $q_ n(k_ i) > q_{max}$ のとき,$q_ n(k_ i) = q_{max}$ とする.
音声存在確率 $p_ n(k_ i)$ は,音声休止確率 $q_ n(k_ i)$,事前 SNR $\zeta _ n(k_ i)$, 式 (93) により導出された中間変数 $v_ n(k_ i)$ を用いて次のように導出する.
$\displaystyle p_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle \left\{ 1 + \frac{q_ n(k_ i)}{1-q_ n(k_ i)} \left( 1+\zeta _ n(k_ i)\right) \exp \left(-v_ n(k_ i)\right)\right\} ^{-1} $ | (107) |
4) ノイズ除去: 出力である音声強調された分離音 ${\hat S}_ n(k_ i)$ は, 入力である分離音スペクトル $Y_ n(k_ i)$ に対して,最適ゲイン $G^{H1}_ n(k_ i)$,音声存在確率 $p_ n(k_ i)$ を次のように作用させることで 導出する.
$\displaystyle {\hat S}_ n(k_ i) $ | $\displaystyle = $ | $\displaystyle Y_ n(k_ i) G^{H1}_ n(k_ i) p_ n(k_ i) $ | (108) |