1
$\begingroup$

I am hoping to create an application that would listen to ambient sound and detect if music is being played. It is not important to identify the music being played; just detecting that some music is being played is enough.

I looked around for existing solutions but couldn't find any. Does anyone know algorithms that I can use to solve this problem? If source code is available, all the better. I found a couple of academic papers and implemented solutions suggested in them. But the results I obtained were not satisfactory.

PS: i) It would be a bonus if the algorithm is not computationally intensive; if algorithm is completely in time-domain that would be wonderful. ii) It is okay if the solution is not very accurate; occasional false-positives are okay.

$\endgroup$
1
$\begingroup$

This is a tough problem. The music identification service Shazam actually has a database of acoustic fingerprints for songs. Music is composed of many variable acoustic components and there are a slew of algorithms that may be used to estimate several components. One simple example would be the zero crossing rate, which is a time domain algorithm. I would refer to this link on the subject for a brief overview of pitch detection algorithms and go from there.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.