Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between VOICE_COMMUNICATION and MIC in MediaRecorder.AudioSource

Tags:

I am using media recorder for recording call in android using VOICE_COMMUNICATION & MIC mode alternatively.

RECORD_SOURCE = MediaRecorder.AudioSource.VOICE_COMMUNICATION; //RECORD_SOURCE = MediaRecorder.AudioSource.MIC; iAudioRecorder = new AudioRecord(RECORD_SOURCE, NATIVE_SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, RECORD_BUF_UNIT);

I saw that MIC recorded audio data has gain much greater than VOICE_COMMUNICATION (about 2/3 times) for some devices. Also background music captured by VOICE_COMMUNICATION is not as good as MIC.

Why do audio quality (like gain, responsiveness) differs for this two recording modes?

like image 339
Mansur Uddin Khan Avatar asked Nov 20 '17 14:11

Mansur Uddin Khan


People also ask

What is audio source mic?

Defines the audio source. An audio source defines both a default physical source of audio signal, and a recording configuration. These constants are for instance used in MediaRecorder#setAudioSource(int) or AudioRecord.

What is voice communication in call recorder?

VOICE_CALL is the actual call data being sent in a call, up and down (so your side and their side). VOICE_COMMUNICATION is just the microphone, but with codecs and echo cancellation turned on for good voice quality.

What is voice uplink and downlink?

This is the call recording source that FlexiSPY uses by default. (Samsung devices work well on this setting) Voice Call. This source uses both directions (known as uplink and downlink) to increase the chances of recording both sides of a call.

What is an audio source?

An AudioSource is a component that allows for sound to be played in your scene. It also holds the control options for the audio like Play Pause volume loop and all other properties and methods you need to control how the playback of your sounds work.


1 Answers

According to the Android Developer Reference for MIC and VOICE_COMMUNICATION, some pre-processing like echo cancellation, noise suppression is applied on the audio captured using VOICE_COMMUNICATION which, in turn, causes some attenuation on the data. Moreover, on doing such pre-processing, audio signals with low amplitude becomes even more weak due to this attenuation. So we feel like background audio is sort of gone away for some devices when it is too low.

Another point was varied characteristics from device to device. From this link, it solely depends on device manufacturer and they are free to decide which pre-processing should work on which modes and how.

like image 69
Khaled Avatar answered Sep 21 '22 13:09

Khaled