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
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:
- Where can I buy a printing press machine?Best solution by ebay.com
- How can I connect my VMware virtual machine to the Internet?Best solution by Yahoo! Answers
- How do I make a high power audio amplifier?Best solution by maximintegrated.com
- How can I develop a customer base for selling cars?Best solution by briantracy.com
- How can i become a learning disability nurse?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
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.