Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I simultaneously record audio from every mic on a microphone array into a separate buffer in Android?

Tags:

android

audio

Many tablets and some smart phones use an array of microphone for things like noise cancellation. For example Motorola Droid X uses three microphone arrays and even allows you to set "audio scenes". An example is discussed here.

I want to be able to record from all the microphones that are available on the tablet/phone at the same time. I found that using AudioSource we can choose the mic (I do not know which mic this is specifically but it might be the one facing the user) or the mic that is in same orientation as the video camera, but could not find anyway of accessing all the other mic in the mic array. Any help that points me in the right direction to investigate this will be great. Thanks in advance for your time.

like image 941
vinay samuel Avatar asked Jan 10 '12 18:01

vinay samuel


People also ask

What is dual microphone array?

Array mics (dual or otherwise) are like smaller versions of multi-mic setups. Using the differences in the two (or more) audio signals, a digital signal processor (DSP) can automatically figure out the difference between the main signal and any background noise.

What is the difference between microphone and microphone array?

A Microphone Array (or array microphone) is a microphone device that functions just like a regular microphone, but instead of having only one microphone to record sound input, it has multiple microphones (2 or more) to record sound. The microphones in the array device work together to record sound simultaneously.


1 Answers

It's seems like you've verified that there isn't a standard Android API for accessing specific mics in an array. I couldn't find anything either.

As is the case with custom additions to the Android system, it's up to the manufacturer to release developer APIs. Motorola has done this before. I took a look at all of the ones they have listed and it seems they simply don't expose it. Obviously, they have code somewhere which can do it (the "audio scenes" uses it).

So the quick answer: you're out of luck.

The more involved answer: you can go spelunking around the source code for the Droid X because it's released as open source. If you can actually find it, understand that you're using an undocumented API which could be changed at any time. Plus, you'll have to do this for every device you want to support.

like image 184
colithium Avatar answered Oct 14 '22 10:10

colithium