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对应的频率),然后设置对应参数,消掉对应频带

  • 关闭所有算法来确定音频问题原因

  • 堵住板子的麦克风确定音频问题原因

  • 关闭喇叭确定音频问题原因

  • 涉及到算法更新,建议先备份原有算法库