Keras CNN で 音の分類。
ディープラーニングで音声分類 のサンプルが出ていたので、試してみました。
しかし、下の方も同じ内容だが、改造の途中経過が記載されている。
畳込みニューラルネットワークの基本技術を比較する ー音でもやってみたー
オリジナルは、学習のプログラムが全て書かれていなかったので、
自分で適当に考えて完成させてみました。
開発環境
OS: Windwos10
GPU: GeForece GTX 1050 4GB
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. データのダウンロード
→ F:\tmp\ECS-50
2.テストと学習用の クラス、スペクトラムデータを、npz で作成。
プログラムは下記になります。
load-dataset.py
3. 学習の実行
プログラムは、かきになります。
train.py
補足
学習用のデータは、
下記の3個を使用しました。残りの2個も使うと、正解率が、かなり悪くなったので、のぞきました。
esc_melsp_train_raw.npz
esc_melsp_train_wn.npz
esc_melsp_train_ss.npz
5エポックずつ学習させました。
音声のスペクトラムデータは、 float32 にして、
+-の信号を、一律、4.1 で割って、-1.0 ~ +1.0 の値に正規化して学習させてみました。
注1) 正規化の方法は、幾つか試しましたが、+- の儘でも学習できるようです。 2010.1.30
75 エポック迄学習させました。
1エポック 約5分 になります。
正解率: 0.8520 になりました。
オリジナルは、 0.82 程行ったようなので、良い結果だと思います。