整体的通话信号流程如下:
MIC采集信号 -> 放大器 -> ADC采集 -> 通话MIC数字增益 -> AEC算法 -> ANS降噪算法 -> 通话MIC后端数字增益 -> 通话EQ -> 蓝牙上行。
配置中如图所示:
MIC去直流fliter配置:MIC高通fliter,去掉直流信号。作用相当于修改串联的MIC输入电容。想低频少一些,可以选择Cutoff 240Hz。MIC省电容电阻接法时,修改此项可以等效调整电容参数;不省电容方案时,此项用默认值CutOff 30Hz即可。
MIC偏置电路配置:这个是根据硬件来选择。
MIC内部偏置电阻大小:修改需要根据MIC的实际情况来选择,不同的值对声音的效果是有影响的。
MIC模拟增益:放大范围内步进3DB。模拟增益的大小需要注意ADC的动态采集范围。ADC的动态采集范围是0到2.5V。若模拟增益放大倍数太大,超过了ADC的采集电压范围。会导致信号失真。
通话MIC数字增益:放大范围内步进0.5DB。数字增益主要作为模拟增益的细调补充。一般设置为0。
通话MIC后置数字增益:数字后置增益是在回声消除算法之后对数据进行放大处理的增益。数字增益,主要调节MIC数字增益。
ANS降噪方式:
近端MIC降噪:给近端降噪,实际优化的是远端的效果;
远端降噪:在近端多一路降噪处理,优化的是近端的效果;
ANS近端降噪模式:
模式0 :AEC -> NS ,这种补偿值调35-40之间
模式1 :NS -> AEC,这种需要补偿值调 160-180之间
AEC回声消除级别:优化回音的级别,这个值越高,双边通话效果越差;
AEC远端补偿值:这个值相当于一个延时处理,值越大延时的时间越长;
注意:MIC模拟增益+通话MIC后置数字增益不大于30;
通话EQ:
如果开了mSBC高清通话,EQ就会使用16K采样率的;
如果关掉了mSBC高清通话,EQ就会使用8K采样率的。
问题分析及解决方法:
1:回音
回音是远端说话,远端可以听到自己说话的声音,主要原因是由于喇叭密封不够好,并且咪头过于靠近喇叭而导致,可以通话以下方法来解决:增大AEC回音消除级别,这个不建议太高;适当降低DAC通话音量;适当增加近端环境噪声阈值;
2:杂音
如果是近端杂音(听音乐不会出现),那就降低通话的基带参数,如果听音乐也会出现,那就从硬件出发先解决杂音;
如果是远端杂音,可以检查硬件是否损坏;适当增加近端环境噪声阈值;略微减小MIC模拟增益。
3:近端出现啪啪声
这个啪啪声是由于蓝牙传输掉包导致的,掉包后,这一帧就没有声音了,如果连续的好几帧都这一帧,就会出现啪啪声,可以通过调整硬件抗干扰来实现,也可以通过增强软件基带参数来实现,或者是关闭mSBC高清通话,mSBC的采样率是16KHZ,易丢包;关闭之后采样率就变回8KHZ,不易丢包。
还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。