Keras CNN Sound Classify #5

Keras CNN で 音の分類 #5。update 2020.5.25

ディープラーニングで音声分類 のサンプルが出ていたので、試してみましたの #5です。
変更
1) 学習データのメルスペクトグラム方法を、変更しました。 by nishi 2020.5.25
 Keras CNN Sound Classify
で、オリジナルができたので、同じ要領で、今度は、
Inception V3 を使って、同じ学習データ、テストデータを使って試してみました。

開発環境
OS: Windwos10
GPU: GeForece GTX 1070 8GB
Anaconda
Python3.6
TensorFlow 1.14.0 GPU
Keras 2.3.1

注1) TensorFlow 1.14.0 を使っているのは、 K210 の YOLO v2 等で、
使っているので、他意はありません。
注2)  Keras は、オリジナルを使っています。
tensorflow.python.keras を敢えて使っていません。

手順は、上記ページに従って行いました。

1.今回のテストと学習用の クラス、スペクトラムデータを、npz で作成。
プログラムは下記になります。
今回は、メルスペクトグラムのパラメータを変えて、データを、 (128,1723,1) → (256,862,1) にして見ました 。
後、使う学習データは、 raw,wn,ss の3種類で試してみました。

load-dataset4.py

2. 学習の実行
プログラムは、下記になります。

今回は、float32 を使います。
GPUを GTX1070 8GByte にしたので学習できます。

今回は、
val_acc/loss=0.8100/0.9055  acc/loss=0.9740/0.5329  280 epoch  です。

train-incept.py

2. モデルのアプリ
学習済みモデルを使った、PCのマイク入力による Sound Classify プログラムは、下記になります。

PCのスピーカから、ECS-50 のSound の音を出して、下記プログラムにPCのマイク経由で音を与えれば、クラスの分類が出来ます。

結構当たりますが、飛行機、ヘリコプター、エンジン などの、細かい音が一杯入っている音は苦手な、ような気がします。

注1) 別のテストで、ESC-50 のデータを読み込んで、直接判定させてみる、飛行機、ヘリコプター、エンジンの音だけでの検証で、
110/120 → 0.916667 になるので、どうやら、スピーカ → マイク 間で音が悪くなっているのが原因のようです。

注2) 今回は、学習データにwn(white noise) を入れたので、ある程度は、PCのノイズには強いようですが、やはり、マイク がPCのファンの音を拾わないようにした方が良いと思います。

注3) 下記のソースで、dbl_off = 2 を設定すると、 入力データを、0.4 sec ずらしてダブルでのmodel.predict() を行えます。

sound-predict3-incept-v3.py

注) ちなみに、PCのスピーカから、ECS-50 のSound の音を出すのは、
sound-player.py を使います。
Keras CNN Sound Classify #2

感想としては、InceptionV3 の方が、良い結果が得られるみたいです。

このブログ記事について

このページは、おんちゃんが2020年5月25日 18:08に書いたブログ記事です。

ひとつ前のブログ記事は「Keras CNN Sound Classify #4」です。

次のブログ記事は「Keras CNN Sound Classify #6」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ