Skip to content

ZhiyongYang798/pyAudioAnalysisUsingNeuralNet

Repository files navigation

A Python library for audio feature extraction, classification, segmentation and applications

This is the library pyAudioAnalysis written by Tyiannak. I added a neural network model in the library, so that you can train and test the audio signals using neural network other than the existed SVM and KNN. Except for the below instrcutions, you need to

  • Install tensorflow

Command line: For training python audioAnalysis.py trainClassifier -i data/7/ data/9/ --method neuralnet -o NeuralModel/79New.ckpt

Here, the model name has to be modelname.ckpt.

For testing python audioAnalysisRecordAlsa.py -recordAndClassifySegments 20 out.wav NeuralModel/79New.ckpt neuralnet

And Class A means folder 7, Class B means folder 9.

This doc contains general info. Click [here] (https://github.com/tyiannak/pyAudioAnalysis/wiki) for the complete wiki

News

  • Check out paura a python script for realtime recording and analysis of audio data
  • January 2017: mp3 files are also supported for single file feature extraction, classification and segmentation (using pydub library)
  • September 2016: New segment classifiers (from sklearn): random forests, extra trees and gradient boosting
  • August 2016: Update: mlpy no longer used. SVMs, PCA, etc performed through scikit-learn
  • August 2016: Update: Dependencies have been simplified
  • January 2016: [PLOS-One Paper regarding pyAudioAnalysis] (http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0144610) (please cite!)

General

pyAudioAnalysis is a Python library covering a wide range of audio analysis tasks. Through pyAudioAnalysis you can:

  • Extract audio features and representations (e.g. mfccs, spectrogram, chromagram)
  • Classify unknown sounds
  • Train, parameter tune and evaluate classifiers of audio segments
  • Detect audio events and exclude silence periods from long recordings
  • Perform supervised segmentation (joint segmentation - classification)
  • Perform unsupervised segmentation (e.g. speaker diarization)
  • Extract audio thumbnails
  • Train and use audio regression models (example application: emotion recognition)
  • Apply dimensionality reduction to visualize audio data and content similarities

Installation

  • Install dependencies:
pip install numpy matplotlib scipy sklearn hmmlearn simplejson eyed3 pydub
  • Clone the source of this library:
git clone https://github.com/tyiannak/pyAudioAnalysis.git

An audio classification example

More examples and detailed tutorials can be found [at the wiki] (https://github.com/tyiannak/pyAudioAnalysis/wiki)

pyAudioAnalysis provides easy-to-call wrappers to execute audio analysis tasks. Eg, this code first trains an audio segment classifier, given a set of WAV files stored in folders (each folder representing a different class) and then the trained classifier is used to classify an unknown audio WAV file

from pyAudioAnalysis import audioTrainTest as aT
aT.featureAndTrain(["classifierData/music","classifierData/speech"], 1.0, 1.0, aT.shortTermWindow, aT.shortTermStep, "svm", "svmSMtemp", False)
aT.fileClassification("data/doremi.wav", "svmSMtemp","svm")
Result:
(0.0, array([ 0.90156761,  0.09843239]), ['music', 'speech'])

In addition, command-line support is provided for all functionalities. E.g. the following command extracts the spectrogram of an audio signal stored in a WAV file: python audioAnalysis.py fileSpectrogram -i data/doremi.wav

Further reading

Apart from the current README file and [the wiki] (https://github.com/tyiannak/pyAudioAnalysis/wiki), a more general and theoretic description of the adopted methods (along with several experiments on particular use-cases) is presented [in this publication] (http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0144610). Please use the following citation when citing pyAudioAnalysis in your research work:

@article{giannakopoulos2015pyaudioanalysis,
  title={pyAudioAnalysis: An Open-Source Python Library for Audio Signal Analysis},
  author={Giannakopoulos, Theodoros},
  journal={PloS one},
  volume={10},
  number={12},
  year={2015},
  publisher={Public Library of Science}
}

Finally, for Matlab-related audio analysis material check this book.

Author

[Theodoros Giannakopoulos] (http://www.di.uoa.gr/~tyiannak), Postdoc researcher at NCSR Demokritos, Athens, Greece

About

Adding neural network model to pyAudioAnalysis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published