SSD_语音对讲
常见问题说明
1. 调试流程¶
-
设置电脑IP和开发板在同一网段
-
创建共享目录share,并挂载到开发板/mnt用于抓取算法中间结果,IP为自己设置的IP
mount –t cifs –o username=”xxxxx”,password=”xxxxx” //192.168.1.203/share /mnt/
-
查看音频参数(运行时才能查看)
cat /proc/mi_modules/mi_ao/mi_aox cat /proc/mi_modules/mi_ai/mi_aix
-
抓取中间pcm,首先设置AI/AO dump目录(可以将下列代码写入/customer/demo.sh中)
export MI_AI_DUMP_PATH=xxx export MI_AO_DUMP_PATH=xxx
然后将对应算法的dump设为1
export MI_AI_DUMP_AEC_ENABLE=1 export MI_AI_DUMP_VQE_ENABLE=1 export MI_AO_DUMP_VQE_ENABLE=1
2. 常见问题及解决方案¶
这里给出常见问题的解法仅供参考,调试过程中请以实际情况为准。
出现问题 | 现象 | 原因 | 解法 |
---|---|---|---|
通话存在底噪消不掉问题 | 语音间出现较大噪声,随后又被压下去 | 持续的噪声,但语音间隔短,导致NR收敛慢 | 开启AEC的舒适噪声辅助NR收敛 |
语音间会有一点回声(“吱吱吱的噪声”) | 主机AEC消不干净留下尾音 | 抓音档分析,若频率固定,则使用AO端EQ/HPF来消掉。若频率不固定则使用AO端AGC,设置noise gate来砍掉主机消不干净的回声 | |
单向对讲问题 | 明显回声 | 分机AEC消不干净 | 主机听到回声:则为分机AEC消不干净,抓出分机的音档分析 1. 调节分机AEC的频段划分和消除强度。 2. 减小分机mic/speaker的增益 3. 测试分机的气密性,排除结构原因 4. 若回声为固定频段,用AI的EQ砍 5. 减小主机的mic增益 |
主机AEC消不干净 | 分机听到回声:则为主机AEC消不干净。 1. 减小主机mic/speaker的增益 2. 测试主机的气密性,排除结构原因 3. 减小分机的mic增益 4. 若主机传过来的回声是固定频段,则可以使用分机AO端的EQ来砍 |
||
双方同时说话 | 声音忽大忽小 | 分机到主机的声音忽大忽小 | 抓出分机端的AI音档分析 1. 可能分机AEC开得太强,调整AEC强度 2. 若分机speaker端有开启AGC,则看是否为AGC参数没有调好,调整AGC参数 3. 若分机端的信号没问题,则可能为主机端speaker开启了AGC/EQ等算法,把信号处理出问题了,这里最好的处理方法是解主机。(从分机解需要分机去猜主机的行为) |
主机到分机的声音忽大忽小 | 抓出分机AO端的音档分析。 若主机过来的声音本来就是这样,则可能是主机mic端的AEC/AGC处理的问题。 1. 可能是主机AEC消得太干净。(这里可能尝试将主机mic/speaker、分机mic的增益减小来确认是否是主机AEC的问题) 2. 可能是主机AGC砍掉。(可以将主机的mic增益加大来实验,看是否为主机端AGC砍掉) 若主机过来的声音没有问题,则确认是否为分机AO端算法处理的问题还是分机结构/speaker的原因。 1. 若分机AO端有开启AGC,则检测是否为AGC参数没有调好导致的。 2. 可能为结构或speaker的原因导致某些频段信号打不出来 |
||
漏字(全消没了) | AEC开得太强 | 1. 调整AEC强度 2. 减小mic/speaker端或对方mic的增益 |
|
Speaker端有打开AGC/EQ等算法 | 调整相应的算法参数 | ||
响度小 | 1. 调整speaker端的增益或对方mic的增益 2.结构问题 |
||
喇叭声音失真、破音、颤音 | 1. 调整speaker端的增益 2. 调整对方的mic端的增益 3. 检查结构问题 |
注意:
-
通过分析中间抓取的PCM确定原因
-
根据声谱图确定频带影响,计算噪声出现的频带(sr*T/128 = fs,sr为采样可以取到的最大频率,T为bin的序号,fs为bin对应的频率),然后设置对应参数,消掉对应频带
-
关闭所有算法来确定音频问题原因
-
堵住板子的麦克风确定音频问题原因
-
关闭喇叭确定音频问题原因
-
涉及到算法更新,建议先备份原有算法库