How do I develop an algorithm?

How do I develop a classification algorithm, machine learning for audio?

  • I am working on some thing that requires me to find certain patterns (features- which is also audio) in my input data set (audio) and classify the audio based on these patterns. I would like to know some basic algorithms/ideas to do this. Any examples of similar implementations would help me a lot. Please do explain a simple implementation of a similar idea i.e how to give the input features as audio for comparison, how to go about applying the algorithm, how to input audio  etc. Is Octave or MATLAB suitable? I am a new to this. So, simple language for explaining can help a lot. Thanks!

  • Answer:

    I have not done audio classification myself but from the descriptions you've given I can assume that k-means clustering (http://en.wikipedia.org/wiki/K-means_clustering) would be a good place to start. The algorithm as such can be found just about anywhere online and the wikipedia page I linked has the basic definition and also variations of the clustering technique. Essentially in your case what k-means would do is, when you give 'K' that is the number of clusters you want to group your audio samples into,  it would pick K samples at random and initialize the system. When initializing, each sample will have a mean value irrespective of whether or not the samples in the clusters are similar. Once this is done, each audio sample present in each cluster will be matched with the closest mean on the system and assign it to that cluster instead. This will be repeated till convergence and finally you'll have K clusters containing samples that are similar to each other. This is the underlying algorithm. You will have to tweak according to your needs and the availability of data. More details about K-means and the necessary idea about how it works can be found here: http://www.cs.uvm.edu/~xwu/kdd/Slides/Kmeans-ICDM06.pdf

Vignesh Natarajan at Quora Visit the source

Was this solution helpful to you?

Other answers

You can take use of signal processing techniques to convert the audio signals into some form of features. Either you can use http://en.wikipedia.org/wiki/Fast_Fourier_transform or http://en.wikipedia.org/wiki/Mel-frequency_cepstrum. This will transform your time varying signal into the frequency domain. Then you can feed this data into any classifier (SVM, Naive bayes, Random Forest, ...) to build a ML model and then predict based on your model. Further reading: Read chapter 9 of http://www.amazon.com/Building-Machine-Learning-Systems-Python/dp/1782161406/ref=sr_1_1?ie=UTF8&qid=1399233421&sr=8-1&keywords=building+machine+learning+systems+with+python

Ankit Sharma

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.