What i would like to do sounds simple, but i can't seem to find much on the subject unless i go down a very complex path.
What i want to do is be able to attach a microphone array to a computer, and then determine which microphone is closest to the sound. I would like to be able to extend this to maybe 15 microphones at some point.
I don't need to know exact location or distance, but if i have 4 microphones, and the sound is closer to mic3 (assuming the sound will never be in the exact center or the mics, and assuming the sound is always located closer to one mice then others) - can i programmatically determine the sound came from mic 3 based on the loudness of the sound?
Surely someone has done something like this for Windows or Android in VB or in C++? ANd can recommend some hardware?
What i want to do is be able to attach a microphone array to a computer, and then determine which microphone is closest to the sound. I would like to be able to extend this to maybe 15 microphones at some point.
I don't need to know exact location or distance, but if i have 4 microphones, and the sound is closer to mic3 (assuming the sound will never be in the exact center or the mics, and assuming the sound is always located closer to one mice then others) - can i programmatically determine the sound came from mic 3 based on the loudness of the sound?
Surely someone has done something like this for Windows or Android in VB or in C++? ANd can recommend some hardware?
Volume comparison can work, but what works better is to look at arrival time.
Are you are working in the near field? Far field tequniques tend to lean more towards beamforming and such as 'closest' is not really meaingful in the far field.
"Sonar for practising engineers" is not too shabby for the basics or any book on acoustic beamforming.
CUDA is your friend for writing the beamformer in software, or vhdl/verilog for doing it in hardware.
Volume comparison is usually disapointing, but is trivial to play with.
Regards, Dan.
Are you are working in the near field? Far field tequniques tend to lean more towards beamforming and such as 'closest' is not really meaingful in the far field.
"Sonar for practising engineers" is not too shabby for the basics or any book on acoustic beamforming.
CUDA is your friend for writing the beamformer in software, or vhdl/verilog for doing it in hardware.
Volume comparison is usually disapointing, but is trivial to play with.
Regards, Dan.
Ah. You sent me a PM, and I suggested you open a thread, but I see you already did.
I agree with dmills, volume isn't the route, arrival time is. To use volume, you'd have to assume all noise sources are omnidirectional - radiating in all directions. But if the sound was coming out of some cylinder - like a pipe - it could be right under one mic, but "aimed" at another mic. That other farther mic might actually get a louder signal. Wall reflections could confuse.
If we ignore loudness, then comparing all mic inputs for time, the first one to hear it is closest.
I claim no expertise in this, but seems to me it matters why you need this data. If you are locating parts in an area, probably visual methods would be magnitudes more precise. And if you rely on a moving thing to emit sound, you might reconsider and use sonar. Have your sensors sending out ultrasonic sound pulses and measuring the reflection time.
I agree with dmills, volume isn't the route, arrival time is. To use volume, you'd have to assume all noise sources are omnidirectional - radiating in all directions. But if the sound was coming out of some cylinder - like a pipe - it could be right under one mic, but "aimed" at another mic. That other farther mic might actually get a louder signal. Wall reflections could confuse.
If we ignore loudness, then comparing all mic inputs for time, the first one to hear it is closest.
I claim no expertise in this, but seems to me it matters why you need this data. If you are locating parts in an area, probably visual methods would be magnitudes more precise. And if you rely on a moving thing to emit sound, you might reconsider and use sonar. Have your sensors sending out ultrasonic sound pulses and measuring the reflection time.
Thanks for the feedback and good analogies.
I was hoping to find an easy way to locate (rough location) a person in an interior space - If i wanted to give a voice command to a computer, could it determine in which room inside a house i am located.
But since my sound background is limited to programming IVR 15 years ago, I was not sure what existed today.
I was hoping to find an easy way to locate (rough location) a person in an interior space - If i wanted to give a voice command to a computer, could it determine in which room inside a house i am located.
But since my sound background is limited to programming IVR 15 years ago, I was not sure what existed today.
- Status
- Not open for further replies.