Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,813,583 Members 38,082 Now Online
XDA Developers Android and Mobile Development Forum

[MOD][ROOT] Camcorder Audio Quality "Fix" and Thoughts on In-Call Voice Quality

Tip us?
 
ai3gtmc
Old
#121  
Junior Member
Thanks Meter 1
Posts: 3
Join Date: Jan 2014
Thumbs up 556

Just flashed this. Wow. Big difference, I can handle the extra noise, what u can't handle is the recording chopping off like in the stock library. Thank you!
 
bushu16
Old
#122  
bushu16's Avatar
Senior Member
Thanks Meter 15
Posts: 256
Join Date: Mar 2008
Location: Bombay
Quote:
Originally Posted by chdloc View Post
As the question regarding in-call audio quality has come up a few times, let me elaborate on my findings:

Most modern smartphones use two microphones when making phone calls. Dual-microphone processing can be very sensitive to the relative position of the talkers mouth and the microphone, in particular in varying background noise scenarios. Especially when the main microphone on the N5 (the one behind the grille) is far away from the mouth the local talker may be mistaken for background noise and, hence, get suppressed.


As dumb as it sounds, try to hold your phone "right" when making calls, i.e. talk directly into the microphone and try not to move the phone much.
A second very important "good practice" suggestion is to keep the loudspeaker volume as low as possible and try to talk in low background noise environments (I know that the latter one is not always possible). The reason is the rather nasty subject of double-talk.
When a phone detects a double-talk situation, i.e. a loud RX signal combined with a strong TX signal (talker + background noise), the AEC (acoustic echo canceler) will typically start "clipping" the near-end speech, which results the other end not being able to hear you.


Other than these two basic suggestions, there are a couple of things a brave soul can try to fight this issue.
Note there is no (and possibly never will be a) real fix without Qualcomm's and LG's intervention. I'm currently using what's
behind door #2 below with success...

1. Changes in build.prop (not an endorsed workaround)
========================================

consider this change
- persist.audio.dualmic.config=endfire
+ persist.audio.dualmic.config=broadside

What this does is change the dual-microphone algorithm to an alternate one. In my (limited) testing, however, "broadside" was
worse than the "endfire" configuration. Actually, I never got many complaints about other people not being able to hear me using "endfire"
However, it may work for you. If it does, great, and you don't need to move on to try other stuff, such as another change:

- persist.audio.dualmic.config=endfire
+ persist.audio.dualmic.config=none

This change turns off dual-microphone processing altogether. The big caveat is, however, is that this change seems to disable other
vital signal processing as well, in particular AEC.

Other issues I have seen with these two changes is that the first call after a reboot is often "bad", which can be fixed by quickly switching to speakerphone mode and back. Not good.


2. A very complicated workaround (which works for me)
=========================================

As I mentioned earlier in the thread, I spent a lot of time trying to fix the in-call RX distortion issue when recording from the line.
I found a workaround that works for me that may partially address the issue of occasional low TX level as well. I say partial since low TX level may be caused by both the dual-microphone processing as well as the AEC in double-talk situations. This workaround only addresses (turns off) the dual-microphone processing while still enabling AEC as well as some noise suppression. Low TX levels in double-talk situations can only be improved by Qualcomm, but somewhat alleviated by an educated user (see suggestions above).

The fix requires:
* turning off dual-microphone processing (persist.audio.dualmic.config=none in build.prop)
* custom AOSP kernel (3.4.0-gd59db4e) that allows for injecting proper (?) audio calibration data via Qualcomm's acdb interface, which enables AEC as well as single-channel noise suppression
* a bunch of Tasker scripts
* a shell script
* a binary that commits the calibration data to the kernel/CPU upon a system reboot, or when needed as determined by the Tasker and shell scripts

Ultimately, in finding a fix for this issue, I got stuck at the lack of documentation of Qualcomm's audio interface.
My solution is just a huge hack to address a problem that really can only be fixed by Qualcomm and LG (and maybe Google) as
all processing during cellular calls is done by Qualcomm deep within the MSM/DSP. It is my understanding that the signal processing within that chip is controlled by some of the proprietary vendor blobs.
How do I actually perform the step 2...? can you guide me in steps.

HTC One X (ROOTED)
 
Matrix_19
Old
#123  
Senior Member
Thanks Meter 75
Posts: 425
Join Date: Sep 2011
Location: Quebec City
When L will release, if Google doesn't fix anything, do you think we will just have to use the fix for Android L Preview ?
 
chdloc
Old
#124  
Member - OP
Thanks Meter 137
Posts: 87
Join Date: Jul 2010
Quote:
Originally Posted by bushu16 View Post
How do I actually perform the step 2...? can you guide me in steps.
Please PM me if you (or anyone else interested) are not scared away by running and modifying Tasker scripts,
shell scripts, and custom kernels; I'd be happy to set you up.

Note, that my mod is really a huge hack that may or may not work for others. At least until effectiveness is confirmed
by others I'd prefer to restrict support to PM.
 
chdloc
Old
#125  
Member - OP
Thanks Meter 137
Posts: 87
Join Date: Jul 2010
Quote:
Originally Posted by Matrix_19 View Post
When L will release, if Google doesn't fix anything, do you think we will just have to use the fix for Android L Preview ?
We will just have to wait and see how the final version of L deals with this and how this particular part of
the ROM differs from the L Preview.
Once Google releases the source code it should be easy to update my mod to work with L, if necessary.
The Following 3 Users Say Thank You to chdloc For This Useful Post: [ Click to Expand ]
 
wigginst
Old
#126  
Senior Member
Thanks Meter 125
Posts: 632
Join Date: Aug 2011
Worked wonders on my n5! Thanks! I teach music and marching bands for a living and the difference in recording quality is very noticeable!

Sent from my Nexus 5 using Tapatalk
 
5H00T4
Old
#127  
Member
Thanks Meter 4
Posts: 42
Join Date: Nov 2010
Man, seeing this is a general problem makes me kinda glad and fu**ing mad at the same time.
Glad because I am not the only one and the hardware is not the culprit, but mad that they haven't fixed it at all.
Unacceptable, isn't this supposed to be the flagship device?

Any news on whether they are planning to to fix this?
At the very least they must have the fix in the final version of Android L.
Everything else is a disgrace.


Is there any way to create more pressure?
Sending a tip to an Android news website so they can run a story?
 
chdloc
Old
#128  
Member - OP
Thanks Meter 137
Posts: 87
Join Date: Jul 2010
Quote:
Originally Posted by 5H00T4 View Post
Man, seeing this is a general problem makes me kinda glad and fu**ing mad at the same time.
Glad because I am not the only one and the hardware is not the culprit, but mad that they haven't fixed it at all.
Unacceptable, isn't this supposed to be the flagship device?

Any news on whether they are planning to to fix this?
At the very least they must have the fix in the final version of Android L.
Everything else is a disgrace.


Is there any way to create more pressure?
Sending a tip to an Android news website so they can run a story?
I'm starting to think that camcorder audio quality problems are not universal across all N5's. Otherwise I would expect this thread
to light up a lot more than it has been. My current guess is that the dual-microphone processing algorithms used for cellular voice
calling and camcorder use cases are "fatally" sensitive to microphone tolerances and we are in the minority of folks whose acoustic
front-ends barely meet (or even fail) the expected specs.

It is also possible that not all people are sensitive to (or bothered by) the distortions produced by the stock experience. To rule that
one out I'd be really interested in listening to sample recordings made by people who have no complaints with the audio quality of
their camcorder recordings.
 
nappent
Old
#129  
nappent's Avatar
Senior Member
Thanks Meter 81
Posts: 424
Join Date: Sep 2010
Location: Bothell, Wa
Honestly most people just don't notice.
 
nomancoolboy
Old
#130  
nomancoolboy's Avatar
Senior Member
Thanks Meter 444
Posts: 789
Join Date: Jun 2012
Location: Ahmedabad
Quote:
Originally Posted by nappent View Post
Honestly most people just don't notice.
Exactly .
I rarely make phone calls ..
Btw the audio in camcorder is not as good as a flagship should have..
With the tweaks it does make a difference .. Btw can we enable stereo audio recording ? Just like the jishnu's nexus 5 cam mod .. I tried that in the beginning but then it was removed ..
(I think i haven't read OP properly)

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes