Indoor Intercom Debugging Introduction


1. Debug Procedure

  • Set the computer IP and development board on the same network

  • Create a directory named share, and hang to the development board(/mnt) to grab the intermediate results of the algorithm, and set the IP by yourself

    mount –t cifs –o username=”xxxxx”,password=”xxxxx” //192.168.1.203/share /mnt/
    
  • Check audio parameters(only be checked when running)

    cat /proc/mi_modules/mi_ao/mi_aox
    
    cat /proc/mi_modules/mi_ai/mi_aix
    
  • Set the AI/AO dump directory before grabbing the intermediate pcm (the following code can be written into /customer/demo.sh)

    export MI_AI_DUMP_PATH=xxx
    
    export MI_AO_DUMP_PATH=xxx
    

    Then set the dump of the corresponding algorithm to 1.

    export MI_AI_DUMP_AEC_ENABLE=1
    
    export MI_AI_DUMP_VQE_ENABLE=1
    
    export MI_AO_DUMP_VQE_ENABLE=1
    

2. Problems And Solutions

The solutions to common problems given here are for reference only, please refer to the actual situation during debugging.

Problem Phenomenon Cause Solution
a bottom noise during a call that cannot be eliminated A great noise occurred between words and then be suppressed Continuous noise, but short speech interval, resulting in slow NR convergence Enable AEC's comfort noise to assist NR convergence
A little echo between the voices("Like a squeak") Incomplete elimination of AEC in host, leaving a tail Grab audio file to analyze. If the frequency is fixed, use AO's EQ/HPF to eliminate it. If not, use AO's AGC to set the noise gate to delete it.
One-way intercom problem Obvious echo Incomplete elimination of AEC in slave the echo heard in host: Incomplete elimination of AEC in slave, which can be analyzed by the grabbed file.
1. Adjust the AEC frequency band division and elimination intensity of the slave.
2. Reduce the mic\`s and speaker\`s gain of the slave
3. Test the airtightness of the slave and eliminate structural reasons
4. If the echo frequency band is fixed, use AI\`s EQ in host to delete
5. Reduce the mic\`s gain of the host
Incomplete elimination of AEC in host the echo heard in slave: Incomplete elimination of AEC in host.
1. Reduce the mic\`s and speaker\`s gain of the host
2. Test the airtightness of the host and eliminate structural reasons
3. Reduce the mic\`s gain of the slave.
4. If the echo frequency band is fixed, use AI\`s EQ in slave to delete
Speaking simultaneously voice fluctuation time to time voice fluctuation from slave to host grab the file from slave to analyze
1. Maybe the AEC of the slave is too strong, adjust the AEC intensity.
2. If AGC is enabled on the speaker of the slave, check whether the AGC parameters have not been adjusted properly
3. If the signal of the slave is okay, the algorithms such as AGC/EQ may be Enabled for the speaker of the host, by which was incorrect handling, the best way is to deal with host issues.(Processing from the slave requires guessing the behavior of the host)
voice fluctuation from host to slave grab the file from AO in slave to analyze, if it was like this, the problem may be in the AEC/AGC processing of the host's mic.
1. May be completely eliminated by the host AEC.(Try to reduce the gain of the host's mic/speaker and slave's mic to confirm whether the problem is from AEC of host)
2. Maybe the data is attenuated by the AGC of the host. You can increase the mic gain of the host to verify it.
If there is no problem with the sound, you need to confirm whether it is the problem of the slave's AO algorithm or the structure/speaker.
1. If the AO of the slave has AGC enabled, check whether the AGC parameters are not adjusted properly.
2. Due to structure or speaker, some frequency band signals cannot be delivered.
Words missing(All disappeared) AEC intensity is too heavy 1. Adjust AEC intensity
2. Reduce the gain of mic/speaker or the mic\`s gain from other side.
AGC/EQ or others were enabled by Speaker Adjust the corresponding algorithm parameter
Low loudness 1. Adjust the speaker\`s gain of our side or the mic\`s gain of other side.
2.结构问题
Speaker distortion, broken sound, vibrato 1. Adjust the speaker\`s gain
2. Adjust the mic\`s gain of other side
3. Check for structure

Note:

  • Confirm the cause by analyzing the PCM grabbed in the middle.

  • Confirm the frequency band influence according to the spectrogram, and calculate the frequency band where the noise appears(sr*T/128 = fs, sr is the maximum sampling frequency, T is the serial number of bin, fs is the frequency corresponding to bin), then set the parameter to eliminate the frequency band.

  • Disable all algorithms to confirm the cause.

  • Block the board's microphone to confirm the cause.

  • Turn off the horn to confirm the cause.

  • It involves algorithm update, recommend to back up the original algorithm library first.