雑音重み推定と音声GMMを用いた雑音除去

雑音重み推定と音声
GMMを用いた雑音除去
神戸大学大学院工学研究科
三宅 信之,滝口 哲也,有木 康雄
研究の背景

雑音が混入することで音声認識率が低下


そのため様々な雑音除去法が存在する
発話中に突如発生した雑音は除去しづらい
研究の目的

クリーンスピーチに突発的な雑音が重畳したとき,
その雑音を除去し、音声認識率を改善する
電話音
o
m
o
t
e
システム全体の流れ
音声特徴量
の抽出
突発性雑音あり
雑音の識別
雑音の検出
雑音除去
音声認識
クリーンスピーチ
クラスタリング


雑音は種類が多いためあらかじめクラスタリング
クラス内距離を一定以下(θ)に設定したい

除去時にクラスのデータの平均値を雑音のデータとして利用
 クラス内距離を一定以下にすることでミスマッチを防ぐ
K-meansで分類
データと中心の距離dを計算
θ<dなら
クラスを分割
クラスタリング

クラス内距離を小さくするとクラスが増えすぎる

ツリー上にすることで解決
d <50

上段から徐々にθの
値を小さくしていく
d <25
...
Class 1
phone
Class 2
coins
coin
…..
Class N
Tear
システム全体の流れ
音声特徴量
の抽出
突発性雑音あり
雑音の識別
雑音の検出
雑音除去
音声認識
クリーンスピーチ
雑音の検出


識別器を用いてクリーンスピーチか
雑音重畳音声かのラベルを付ける
識別器はAdaBoostで作成

弱識別器はdecision stump
入力フレーム
あらゆるげんじつおすべてじぶんのほーえねじまげたのだ
がーーーー
識別器
クリーンスピーチ
雑音重畳音声
雑音の識別
Clean
speech
Noisy
speech
×
Classifier
feature×
×
各クラスの雑音重畳音声を使用して
作成した識別器で
ツリーの上段から順に識別していく
phone
...
識別器はone-vs-rest法で拡張した
Class 1
AdaBoostで作成
Class 2
coins
coin
…..
Class N
Tear
雑音除去
音声特徴量
の抽出
突発性雑音あり
雑音の識別
雑音の検出
雑音除去
音声認識
クリーンスピーチ
雑音重畳音声の特徴量
x(t ) s(t )  n(t )
観測信号 音声信号
雑音
メルフィルタバンクに変換
X b  Sb  N b
(b次元目の特徴量)
~~~~
どんな雑音か識別されている
≒特徴量の大まかな形は既知(強さは不明)
強さを表す定数αを導入
X b  Sb    N b
X
雑音重畳音声の特徴量
対数メルフィルタバンク xb  log(X b ) に変換
X b  Sb    N b
expxb   expsb     expnb 
xb  logexp(sb )    exp(nb ) 
 sb  log1    exp(nb  sb ) 
 sb  g b (s,n, )
第2項を推定し、音声特徴量を得る
GMMを用いた推定
[2001eurospeech, segura et.al]
クリーン音声のGMM(Gaussian Mixture Model)
p(s)   Pr(m) N s;  s,m ,  s,m  をもとに p( x ) を考える
m
p(x) 
 Pr(m) N x; 
x, m ,  x, m

m
x  s  g(s,n, ) より
 x,m   s ,m  G,m
G,m  log[1    exp( s,m   n )]
 x,m   s ,m
識別されたクラスの平均値
第2項の推定値は混合ごとの尤度を使った、G,m の重み付き平均とする
 P r(m) N x;  ,  
gˆ 
 P r(m) N x;  ,  
x,m
x,m
G,m
m
x,m
m
x,m
未知
sˆ  x - gˆ
重み推定

EMアルゴリズムを使った推定


p(x)が最大になるように決定
混合ごとの重み推定


p(x,m)が最大になるように混合ごとに決定
混合ごとの最大の尤度による重み付き平均
EMアルゴリズムを用いた推定
 P r(m) N x; 
  P r(m) N ( x; 
p( x ) 
x,m ,  x,m
m
s,m

 g (  s ,m ,  n ,  ),  x,m )
m
を最大化するようにαの値を決定
EMアルゴリズムの使用
Estimationステップ
Q( ,  ( k ) ) 
p(x, m,  (k ) ) log p(x, m,  )

m
Maximizationステップ
 ( k 1)  arg max Q( ,  ( k ) )

収束するまで繰り返すことで最適解を得る
EMアルゴリズムを用いた推定
 log p(x)


 p( x, m)
k
( xb   s,m,b  log(1    e
b
n ,b   s ,m,b
 x2,m,b (1    e
n ,b   s ,m,b
と微分した式は複雑な値になるためニュートン法を用いてとく
 log p(x)
f ( ) 

 2 log p (x)
( 2)
f ( ) 
 2
(1)
 
f (1) ( )
f ( 2) ( )
を繰り返すことで近似解を得る
))  e
)
n ,b   s ,m,b
混合ごとの推定

m
は p(x, m) を最大化するよう混合ごとに決定
 log p(x, m)
p(x,m)
0 を解く
0 あるいは



log px, m  
( xb   x, m,b ) 2
b


b
 log p(x, m)

 m

b
 2 x2,m,b
 
( xb   s ,m,b  log(1   m  e N ,b s ,m ,b )) 2
 2 x2,m,b
 
 
( xb   s,m,b  log(1   m  e n,b s ,m,b ))  e n,b s ,m,b
 x2,m,b (1   m
解析的にとくことは難しく、
ニュートン法で決定
e
n ,b   s ,m,b
)
0
p(x, m)
α
混合ごとの推定
求めた m を使い
G,m  log1   m  exp(n   s,m )
x
と定義しなおす
推定値に各混合の尤度を使って重み付き平均
 p(x, m)  
gˆ 
 p(x, m)
G,m
m
m
音声特徴量の推定
sˆ  x  gˆ
sˆ
実験条件(雑音除去)

発話データ
ATR特定話者単語発話
男性2名女性2名
雑音データ [S. Nakamura, et al, 2000]
 RWCP非音声ドライソースに含まれ
るすべての雑音(105種)
 1種類につき100データが存在し、50
データを学習用、50データをテスト用
に使用

SNRを調整した
雑音重畳音声500単語×4人
計2000発話(シミュレーションデータ)
 SNR -5,0,5 dB
雑音継続時間は20~300 ms程度



クラス内距離



上段から順に50,25,12,6
クラス数45
学習データ


単語発話2000発話
AdaBoostの学習用に上記の発話に
雑音を重畳させたもの
テストデータ

雑音の検出・識別



雑音除去


AdaBoostの学習回数200回
特徴量:24次元対数メルフィルタバンク
クリーン音声GMM混合数16,32,64
評価法



MFCC 12次元
クリーン音声で作成した
HMMでの認識率を算出
音素HMM 各5状態 4混合
検出・識別結果
再現率
適合率
識別率
再現率=
適合率=
識別率=
5 dB
0.820
0.827
0.283
0 dB
0.897
0.831
0.404
-5 dB
0.952
0.833
0.470
正しく検出されたフレーム数
正しく検出されたフレーム数+未検出フレーム数
正しく検出されたフレーム数
正しく検出されたフレーム数+誤検出フレーム数
正しく検出されたフレーム数-識別誤り数
正しく検出されたフレーム数
音声認識結果
[SNR -5 dB]
100
95
90
100
重み推定なし
EMアルゴリズム
混合毎推定
85
78.8 79.1
80
75
72.2
95
90
79.479.4
70.1
70
79.680.2
81.5 82.2
85
80
75
69.6
70
65
65
60
96.5
60
57.4
55
55
50
50
45
45
40
40
除去なし
16混合
32混合
64混合
雑音除去時の混合数
Oracle
label
クリーンス
ピーチ
音声認識結果
[SNR 0 dB]
100
95
90
85
80
75
70
65
60
55
50
45
40
重み推定なし
EMアルゴリズム
混合毎推定
80.3 81.2
63.8
除去なし
80.7 82.0
64.7
60.8
16混合
32混合
81.4 82.4
85.785.1
63.0
64混合
雑音除去時の混合数
Oracle
label
100
95
90
85
80
75
70
65
60
55
50
45
40
96.5
クリーンス
ピーチ
音声認識結果
[SNR 5 dB]
100
95
90
85
80
75
70
65
60
55
50
45
40
100
重み推定なし
EMアルゴリズム
混合毎推定
82.8 83.3
83.9 84.1
84.4 84.7
88.4 89.1
95
90
96.5
85
80
75
70.5
65.8
65.8
70
64.1
65
60
55
50
45
除去なし
16混合
32混合
64混合
雑音除去時の混合数
40
Oracle
label
クリーンス
ピーチ
未知雑音に対する実験結果


10-foldクロスバリデーションを用い、94種で学習、残りの11種の雑音
でテストデータを作成
GMM 64混合,混合ごとの重み推定を使用
90
85
80
75
70
65
60
55
50
45
40
5 dB
0 dB
-5 dB
再現率
0.808
0.879
0.934
適合率
0.802
0.806
0.806
除去前
除去後
80.0
77.0
72.6
70.1
63.2
58.6
まとめと今後の予定






突発性の雑音除去法を提案した
シミュレーションデータにおいて、雑音除去に
よって認識率の改善が見られた
重み推定を行うことでの認識率の改善
未知雑音に対しても本手法の有効性を確認
大語彙・不特定話者での音声認識への適応
実環境での実験