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。

...