MIC(AI通道)串音问题
Q1: 将麦克风接到MIC0上,运行测试程序,channel0/1上都有Mic0的音频?
用Adobe Audition打开录制的wav文件发现channel 0 有削顶失真, 幅度已经超过0db.
意味着输入幅度已经超过了ADC的最大幅度3.3V。我们的AI api中有两个增益可以调节,模拟增益太大会导致出现削顶失真的现象:
MI_S32 MI_AI_SetChnParam(MI_AUDIO_DEV AiDevId, MI_AI_CHN AiChn, MI_AI_ChnParam_t *pstChnParam); typedef struct MI_AI_ChnParam_s { MI_AI_ChnGainConfig_t stChnGain; MI_U32 u32Reserved; } MI_AI_ChnParam_t; typedef struct MI_AI_ChnGainConfig_s { MI_BOOL bEnableGainSet; MI_S16 s16FrontGain; MI_S16 s16RearGain; } MI_AI_ChnGainConfig_t;
参数 | 说明 | 注意 |
---|---|---|
bEnableGainSet | 是否设置增益 | 当此标志为TRUE,才会将增益进行设置 |
s16FrontGain | 前级增益 | 对于Amic/Linein来说,前级增益即模拟增益。对于其他AI设备来说,前级增益即AI设备的增益 |
s16RearGain | 后级增益 | 对于Amic/Linein来说,后级增益即数字增益。对于其他AI设备来说,不起作用 |
解决办法:在实际应用(接linein)时,s16FrontGain设置为0,调节增益尽量使用s16RearGain。
...