一起调试XVF3800麦克风阵列(四)
本文介绍了XVF3800音频处理模块的关键调优参数设置方法。首先说明参考增益AUDIO_MGR_REF_GAIN的默认值1.5是合适的,能避免回声消除不足或信号削波问题。其次指出麦克风增益AUDIO_MGR_MIC_GAIN需确保回声信号比参考信号低6dB以上,防止AEC算法不收敛。最后解释了静音等级AEC_AECSILENCELEVEL的自适应机制,建议保持默认值1e-9。测试使用白噪声和静音文
本章将继续跟随官方的调优文档开始探究,建议在确定每个调优参数的合适值后,使用这些值重新构建设备固件并重新刷写设备,此过程在后续官方的“构建应用程序”部分有详细描述;建议在每个调优步骤开始时重启设备。
AEC的参考增益
AUDIO_MGR_REF_GAIN
xvf_host --use i2c AUDIO_MGR_REF_GAIN
默认值为1.5:

根据官方的说法是REF信号可能在进来之前已经经过处理了,可能被EQ过,衰减,某些频段被Boost过。这里从AEC算法上我们推测他可能还有这种意图:
当REF的增益过小的时候:回声消除欠消,回声有残留。
当REF的增益过大的时候:参考信号被削波,AEC无法收敛,后级BF和NR出问题。
设置参数,将左通道输出为增益前的参考信号:
xvf_host --use i2c AUDIO_MGR_OP_L 4 0
将右通道输出为增益后的参考信号:
xvf_host --use i2c AUDIO_MGR_OP_R 12 0
此时默认是增益了1.5的,我们直接使用树莓派播放白噪声将白噪声(白噪声在所有频段都是均衡的!)注入参考信号通道,开启路由观察。
XVF3800-Software_v3_2_1-3/sources/modules/fwk_xvf/modules/tuning/audio_files/48khz目录下,播放 white_noise_0dbfs_2ch_48khz.wav 文件。
aplay white_noise_0dbfs_2ch_48khz.wav

测试发现官方设置的1.5刚好,所有的信号没有被削顶,且接近满幅度!所以我们这里无需在固件中修改这个参数,但是我们在新的工程和硬件部署的时候请注意设置这个参数!
麦克风增益
AUDIO_MGR_MIC_GAIN
xvf_host --use i2c AUDIO_MGR_MIC_GAIN
默认增益设置的为10:

将左输出设置为选定麦克风增益后的信号(直接直接采用麦克风0):
xvf_host --use i2c AUDIO_MGR_OP_L 3 0
将右输出设置为参考音频增益后的信号:
xvf_host --use i2c AUDIO_MGR_OP_R 12 0
我们在 XVF3800-Software_v3_2_1-3/sources/modules/fwk_xvf/modules/tuning/audio_files/48khz目录下,播放 white_noise_0dbfs_2ch_48khz.wav 文件。查看录音的电平幅度!
aplay white_noise_0dbfs_2ch_48khz.wav

上图左声道就是回声信号,右声道就是参考信号。
为什么一定要比-6dB还要低?
如果回声比参考信号只低一点点,AEC算法算法就无法收敛:
回声太强 -> 某些频段被放大 -> 算法误认为房间路径有放大效果 -> 算法学到错误的放大系数 -> 残余回声影响下一次适应!
所以这里一定回声信号要比参考信号小-6dB以上!
静音等级设置
AEC_AECSILENCELEVEL
xvf_host --use i2c AEC_AECSILENCELEVEL

这里是不是觉得很奇怪?设置的值和实际DSP内部的参数不一致?实际上这个XVF3800内部自适应的一个过程。
这个阈值的作用是:
当信号功率大于阈值的时候,这个信号就被当作有效信号,反之小于就认为是静音或者是噪声!
翻看内部代码可以观察到:
当检测到强信号的时候(>set),cur = set
当检测到中等信号的时候(1e-6f 到 set之间) cur = 0.05 × set
当检测到极低信号的时候 (< 1e-6f) cur = 1e-6f
我们开始来测量底噪的功率,设置左声道为增益后的参考信号输出!(这是因为再曾以后相对的AEC获取到的噪声也是会增加的,这非常符合实际AEC的使用噪声)
xvf_host --use i2c AUDIO_MGR_OP_L 12 0
设置右声道为静音声道:
xvf_host --use i2c AUDIO_MGR_OP_R 0 0
实际我们只需要测量左声道即可!
进入XVF3800-Software_v3_2_1-3/sources/modules/fwk_xvf/modules/tuning/audio_files/48khz目录下,播放 silence_2ch_48khz.wav 文件,开启Audacity路由10秒以上。
选择左声道,然后使用Analyze选项,分析Foreground音频即可算出平均功率,目前我们测试为0即系统默认设置1e-9这个值是合理的!

更多推荐


所有评论(0)