使用硬件数字增益控制通话下行音量(可视化)
📎 原始文档:https://www.kdocs.cn/l/cqPwBjwYf6p0 使用硬件数字增益控制通话下行音量(可视化)
基本原理
客户反馈通话下行音量为1等级时,底噪很明显,我们认为这个底噪是量化噪声。软件音量控制器的位宽是16bit,硬件音量控制的位宽是24bit的。当软件音量控制器保持0dB时,去调节硬件音量控制器,会比硬件音量控制器保持0dB时,调节软件音量控制器计算出来的结果更精确,从而减少精度缺失,减少量化噪声的产生。
相关测试
我们做了以下测试:
测试1:设置软件音量控制器为0dB,设置硬件音量控制器为-36dB,即相当于1等级音量,此时通话的下行噪声基本听不见。
侧式2:设置硬件音量控制器为0dB,设置软件音量控制器为-36dB,即相当于1等级音量,此时通话的下行噪声很明显。
优化方法
我们可以提供一种改善通话下行底噪的方案:通话时,保持软件音量控制器为0dB,通过调节硬件音量控制器来调节音量。
优点:
(1)对低等级音量时的下行噪声有明显改善,对中等级音量时的下行噪声有一点改善,
缺点:
(1)对高等级音量时的下行噪声改善不明显,最大音量时无改善。
(2)DAC只有一路硬件数字音量控制,通话时播提示音,提示音声音大小也会被硬件数字音量控制,即提示音的音量会随着通话音量等级变化。(补充:这种问题有一种方法可以改善,即本身提示音的音量不大的时候,比如提示音音量原本最大为-18dB,当硬件控制器音量等级调小时,可以对应调大提示音的软件数字增益;当硬件控制器音量等级调大时,可以对应调小提示音的软件数字增益,尽量使提示音的音量保持)
修改方法
JL700
以SDK:TWS耳机AC700N-demo2.0.2(patch_08.03)为例。
修改audio\cpu\br36\audio_volume_mixer.c,如下图:

文件:
【金山文档 | WPS云文档】 audio_volume_mixer
https://kdocs.cn/l/cmLnIWbec5Lq
JL701
以SDK:TWS耳机AC701N-demo1.0.0(patch 06)为例。
修改audio\cpu\br28\audio_volume_mixer.c,如下图:


文件:
【金山文档 | WPS云文档】 audio_volume_mixer
https://kdocs.cn/l/cmMLm7y87i27