I'm trying to estimate the direction of arrival of sound using a microphone array. This requires me to find the delay of the sound signal upon arriving the different microphones. For convenience, I was hoping to use 4 USB mini microphones and connect them all to a USB hub to create a 4 mic array. Is this possible?
1 Answer
No, this is not possible. The main problem is that the audio sample clocks between the four microphones will not be phase-aligned and possibly not match in frequency. Because of this you won't know how to align the four data streams to do proper processing.
It would be better to get a single 4-channel audio USB interface. At least then you'll know that they are all time aligned and sync'd. You can find many of these types of devices at Sweetwater Sound and Guitar Center.
-
\$\begingroup\$ Is there a cheaper alternative to this? Ultimately the whole thing is supposed to work as an embedded system. I just want to test the algorithm now. \$\endgroup\$ Commented Jul 27, 2013 at 18:26
-
1\$\begingroup\$ For a short period of time, you could use independent USB interfaces and calibrate out any delay variation by exposing them to a source from which they are all equidistant, but the calibration may go invalid in as little as a minute due to clock drift. If you assume the delay is only on the digital side, it should be uniform with frequency and you could expose them to a reference source at a different frequency even during your experiment to maintain/verify calibration. You could also consider electrically injecting the calibration source through a small capacitor. \$\endgroup\$ Commented Jul 27, 2013 at 19:15
-
\$\begingroup\$ I found a cheap mixer : gear4music.com/PA-DJ-and-Lighting/…. It says its got 4 input channels. Can I use 4 mics and connect them to the mixer to have them synced? And more importantly, can I extract the required time delay information from this? (after digitizing the output) \$\endgroup\$ Commented Jul 27, 2013 at 19:35
-
\$\begingroup\$ @lonesword a mixer won't help. It will just mix together the audio from all the mics, and you won't be able to identify the sound from the individual mics. I expect you will have to process the individual audio signals directly, and simultaneously, to be able to extract the required timing information. \$\endgroup\$ Commented Jul 27, 2013 at 21:27
-
1\$\begingroup\$ A mixer combines the channels, a multi-channel USB interface would keep them separate (though you may spend a long time fighting with drivers to get the data in a useful form). Frankly it sounds like you are in a bit over your head here - perhaps you should try some initial experiments with only two microphones using a common stereo setup, and gain some practical experience with that. \$\endgroup\$ Commented Jul 28, 2013 at 5:18