I would like to log the amount of times a specific sound (in my case 4 seconds) is detected by the microphone from the real world enviroment. It could be either realtime or from a pre-recorded file. It shall be able to handle difference in sound volume (due to different distance to the sound source) and tone difference due to doppler-effect (when source is moving towards or away from the microphone).

Exact sound: http://www.exeng.se/upl/Hemglass_-_Torturing_Swedes.mp3

Thanks in advance


Your question is difficult to answer. Are you asking whether there is a software application that performs this function? Are you asking how you might go about creating software to do this?

Clearly you've examined the problem to realize that the sound will vary in different real-world circumstances, making detection more challenging.

You're probably familiar with applications like Shazam, which can identify music via mobile phone microphones. I find it surprising how well it can identify songs despite noisy environments, distorted or compressed/limited audio, and other artifacts. Obviously there are some algorithms being used to get around these audio imperfections.

There are questions (or thoughts) that anyone attempting to answer your question must pose:

  • What are your requirements for accuracy? In other words, does the application need to be able to handle additional noise or other things that otherwise hinder easy identification?
  • Are you familiar with audio processing, such as that which an end-user might have with SoundForge or Audacity? If you're familiar with how computers store and process audio, you will have an easier time assessing the quality or performance of existing software, or at least have a head start in creating your own.
  • What sort of microphone is being used? Advice given may vary based on the quality and placement of the mic. For that matter, the sound emitter may be important as well. Will it be a mobile phone? Another electronic device? From what distance? Will the emitter always be the same device, or will it vary? Knowing these things will help narrow the focus a bit on whether you need a simple or complex solution.
  • You mention the doppler effect in your question, which raises the question of what speeds might the detector or emitter be traveling. In other words, how much doppler shift is expected, and to what limits should the application be expected to correct for it?
  • You mention the emitted sound may be pre-recorded or "real time" which suggests a person might produce the sounds using keys or buttons of some sort. (This is similar to how DTMF tones work in telephone systems, mentioned below.) This also implies that the duration of tones and gaps in the sound may vary.
  • If you're intending to write your own software, you'll likely need to break this project down into small steps, and identify specific ones that you are unsure of. Specific programming questions can be asked at StackOverflow.com. But definitely avoid asking about the whole project at once!

There are lots of software applications and electronic devices which can detect tones such as DTMF tones (from telephone systems), you might want to research that as a place to start (based on the monophonic tones in your sample audio).

I hope some of the above points help to focus things a bit, and perhaps encourage you to edit your question to provide more detail. Entire books have been written on the subject of audio recognition by digital systems. Good luck with your project.

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.