ichou1のブログ

主に音声認識、時々、データ分析のことを書く

音声認識メモ(DeepSpeech)その7

特徴量変換の際に、「MinMax正規化」を使ってみる。

特徴量変換

波形データ

左から下記のとおり。

  • ジェット機
  • 「どろぼうでもはいったかと、いっしゅんぼくはおもった」
  • 「さっぽろ」

f:id:ichou1:20200822105715p:plainf:id:ichou1:20200822105722p:plainf:id:ichou1:20200822105731p:plain

波形データ(MinMax正規化)
data = librosa.util.normalize(original)

f:id:ichou1:20200822112803p:plainf:id:ichou1:20200822112737p:plainf:id:ichou1:20200822112750p:plain

メルスペクトログラム

f:id:ichou1:20200822110723p:plainf:id:ichou1:20200822110711p:plainf:id:ichou1:20200822110701p:plain

メルスペクトログラム(MinMax正規化)

図右側のcolorbarに注目。

f:id:ichou1:20200822113312p:plainf:id:ichou1:20200822113323p:plainf:id:ichou1:20200822113337p:plain



認識結果の比較

レーニング時の条件としては下記のとおり。

  • 標準化(Z-score Normalization)は「無し」
  • プリエンファシスは「無し」
  • MinMax正規化は「無し」


MinMax正規化は推論時のみ。

テストデータ 「どろぼうでもはいったかと、いっしゅんぼくはおもった」

MinMax正規化なし

['sil', 'sil', 'sil', 'sil', '_', '_', '_', '_', 't', 'o', 'o', 'o', 'o', '_', '_', '_', '_', 'r', 'r', 'r', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'b', 'o', 'o', 'o', '_', '_', '_', '_', 'o', 'o', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', 'd', 'e', 'e', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'm', 'm', 'm', '_', '_', '_', '_', '_', '_', '_', 'h', 'h', 'h', 'h', 'h', '_', '_', '_', 'a', 'a', 'a', '_', 'i', 'i', 'i', 'i', '_', '_', '_', '_', 'Q', 'Q', 'Q', '_', '_', '_', '_', '_', '_', 't', 't', '_', '_', 'a', 'a', '_', '_', '_', '_', 'k', 'k', 'k', 'k', '_', '_', '_', 'a', 'a', 'a', '_', '_', '_', '_', '_', '_', '_', 't', 't', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'pau', 'pau', 'pau', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'i', 'i', 'i', 'i', 'i', '_', '_', '_', '_', 'Q', 'Q', 'sh', 'sh', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'u', 'u', '_', '_', '_', 'N', 'N', 'N', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'b', 'o', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'k', 'k', 'k', 'u', 'u', '_', '_', '_', '_', '_', '_', 'w', 'w', '_', 'a', 'a', 'a', 'a', 'a', 'a', 'o', '_', '_', '_', '_', 'o', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', 'm', 'm', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'Q', 'Q', 'Q', '_', '_', '_', '_', '_', '_', '_', '_', 't', 't', '_', '_', '_', 'a', 'a', 'a', 'a', 'a', 'a', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'sil', ..., 'sil']


MinMax正規化あり

['sil', 'sil', 'sil', 'sil', '_', '_', '_', 't', 't', 'o', 'o', 'o', '_', '_', '_', '_', '_', 'r', 'r', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'b', 'b', 'o', 'o', '_', '_', '_', '_', '_', 'o', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', 'd', 'd', 'e', 'e', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'm', 'm', 'm', '_', '_', '_', '_', '_', '_', '_', 'h', 'h', 'h', 'h', '_', '_', '_', '_', 'a', 'a', 'a', '_', 'i', 'i', 'i', 'i', '_', '_', '_', '_', '_', 'Q', 'Q', '_', '_', '_', '_', '_', '_', 't', 't', '_', '_', 'a', 'a', '_', '_', '_', '_', 'k', 'k', 'k', 'k', '_', '_', '_', 'a', 'a', 'a', '_', '_', '_', '_', '_', '_', '_', 't', 't', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'pau', 'pau', 'pau', 'pau', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'i', 'i', 'i', 'i', 'i', '_', '_', '_', '_', 'Q', 'Q', 'sh', 'sh', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'u', 'u', '_', '_', '_', '_', 'N', 'N', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'b', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'k', 'k', 'k', 'k', 'u', 'u', '_', '_', '_', '_', '_', '_', 'w', 'w', '_', '_', 'a', 'a', 'a', 'a', 'a', 'a', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'm', 'm', 'm', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'Q', 'Q', 'Q', '_', '_', '_', '_', '_', '_', '_', '_', 't', 't', '_', '_', '_', '_', 'a', 'a', 'a', 'a', 'a', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'sil', ..., 'sil']

⇒time-Step中の反応が出る部分に変化あり。音素の認識に関しては変化なし。

テストデータ 「ジェット機

MinMax正規化なし

['sil', 'sil', 'sil', 'sil', 'sil', 'sil', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'sh', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'sil', ..., 'sil']


MinMax正規化あり

['sil', 'sil', 'sil', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'ch', 'sh', 'sh', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'h', 'k', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'k', 'k', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'sil', ..., 'sil']

⇒「正規化あり」の方が反応が出ている。
レーニング時のデータと比べて振幅が小さい場合は前処理が必要と思われる。


「さっぽろ」に関しては元々、MinMax正規化された状態になっている。認識結果は下記のとおり。

['sil', 'sil', 'sil', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'a', 'a', 'a', 'a', '_', '_', '_', '_', 'Q', 'Q', 'Q', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 't', 'o', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'r', 'r', 'o', 'o', 'o', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'sil', ..., 'sil']