Hi there! I've been working this issue since my Cosmo arrived. Although I'm new to Android, I've been doing Linux poorly for many years. The solution here helps a bit, but seems to be missing the real problem as calls are still muffled (less so now), but I also notice a bit of audio clipping going on. I suspect we are overdriving the mic pre-amp. I also noticed in the Phone App settings > accessibility > Noise Reduction, disabling it doesn't survive a reboot.
This issue extends to GSM calls also. It is not a hardware issue as the sound recorder is clear and crisp.
I did an ADB pull of the /vendor folder and poured over all the related files I may be on to a solution. (Thanks to Zarhan for the idea!)
in /vendor/etc/audio_param/Speech_ParamUnitDesc.xml :
[div class=\'codetop\']CODE[/div][div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
<Field name="TX NR Switch" array_index="4" bit="0,0" check_list="0,off,1,on"/>
<Field name="TX NR Quick learning" array_index="4" bit="1,1" check_list="0,quick,1,slow"/>
<Field name="TX NR for high frequency" array_index="4" bit="8,8" check_list="0,on,1,off"/>
<Field name="TX NR suppression strength" array_index="8" bit="6,8" check_list="0,23dB,1,20.5dB,2,18dB,3,15.5dB,4,13dB,5,10.5dB,6,8dB,7,off"/>
<Field name="TX Adaptive gain control" array_index="4" bit="12,13" check_list="0,fixed 10 dB,1, fixed 0 dB,2,vary between 10 to 6dB, 3,vary between 10 to 0dB"/>
<Field name="TX mute 1s" array_index="10" bit="1,1" check_list="0,on,1,off"/>
<Field name="TX Ambient noise calibration" array_index="8" bit="12,13" check_list="0,0dB,1,3dB,2,6dB,3,9dB"/>
<Field name="TX Handfree Tone Detection" array_index="4" bit="9,9" check_list="0,off,1,on"/>
<Field name="TX expander switch" array_index="3" bit="0,1" check_list="0,off,1,suppress echo,2,suppress stationary noise,3,suppress non-stationary noise"/>
<Field name="TX expander suppression gain" array_index="3" bit="4,5" check_list="0,3dB,1,9dB,2,12dB,3,15dB"/>
<Field name="TX NR Noise Adaption Rate" array_index="4" bit="10,11" check_list="0,722ms,1,209ms,2,62ms,3,32ms"/>[/div]
After I finished chuckling about the code, I've been trying unsuccessfully to flip the high frequency bits. But I'm pretty sure I'm onto it. I'll start a new thread to address this and maybe get a fix in place.