audio-classification icon indicating copy to clipboard operation
audio-classification copied to clipboard

:musical_score: Environmental sound classification using Deep Learning with extracted features

Environmental Sound Classification using Deep Learning

A project from Digital Signal Processing course

Dependencies

  • Python 3.6
  • numpy
  • librosa
  • pysoundfile
  • sounddevice
  • matplotlib
  • scikit-learn
  • tensorflow
  • keras

Dataset

Dataset could be downloaded at Dataverse or Github.

I'd recommend use ESC-10 for the sake of convenience.

Example:

├── 001 - Cat
│  ├── cat_1.ogg
│  ├── cat_2.ogg
│  ├── cat_3.ogg
│  ...
...
└── 002 - Dog
   ├── dog_barking_0.ogg
   ├── dog_barking_1.ogg
   ├── dog_barking_2.ogg
   ...

Feature Extraction

Put audio files (.wav untested) under data directory and run the following command:

python feat_extract.py

Features and labels will be generated and saved in the directory.

Classify with SVM

Make sure you have scikit-learn installed and feat.npy and label.npy under the same directory. Run svm.py and you could see the result.

Classify with Multilayer Perceptron

Install tensorflow and keras at first. Run nn.py to train and test the network.

Classify with Convolutional Neural Network

  • Run cnn.py -t to train and test a CNN. Optionally set how many epochs to train on.
  • Predict files by either:
    • Putting target files under predict/ directory and running cnn.py -p
    • Recording on the fly with cnn.py -P