297 lines
10 KiB
C
297 lines
10 KiB
C
#if ADT_CLIENT_BOARD == HT03_HYBRID_6G
|
|
const u8 ADT_TWS_MODE = 1;
|
|
//const u8 ADT_DET_VER = 2;
|
|
//const u8 ADT_PATH_CONFIG = 0;
|
|
const u8 ADT_DET_VER = 4;
|
|
const u8 ADT_PATH_CONFIG = ADT_PATH_DAC_SRC_EN;
|
|
const u8 ADT_EIN_VER = ADT_EIN_TWS_V0;
|
|
const float ref_gain_sel = 3;
|
|
const float err_gain_sel = 3;
|
|
u8 pnc_ref_pwr_thr = 160;
|
|
u8 pnc_err_pwr_thr = 100;
|
|
u8 tpc_ref_pwr_thr = 120;
|
|
u8 tpc_err_pwr_thr = 100;
|
|
u8 anc_ref_pwr_thr = 120;
|
|
u8 anc_err_pwr_thr = 100;
|
|
const float wat_pn_gain = 1;
|
|
const float wat_bypass_gain = 16;
|
|
const float wat_anc_gain = 1;
|
|
const u8 final_speech_even_thr = 4;
|
|
const float wdac_senc = 1;
|
|
const float wdac[8] = {1, 1, 0.92, 0.80, 0.67, 0.62, 0.7, 0.7};//播放一笑江湖DJ /100
|
|
const float wref[8] = {6.78, 3.66, 0.58, 0.37, 0.31, 0.29, 0.28, 0.27};//播放外部噪声
|
|
const float wref_tran[8] = {1.26, 1.06, 1.06, 1.00, 1.00, 1.18, 1.16, 1.03 };
|
|
const float wref_ancs[8] = {2.06, 2.00, 0.011, 0.006, 0.009, 0.012, 0.014, 0.018 };
|
|
const float fdac[8] = {0.18, 0.051, 0.02, 0.02, 0.02, 0.02, 0.02, 0.05};//播放一笑江湖DJ /1000
|
|
u8 icsd_get_ang_flag(float *_target_angle)
|
|
{
|
|
u8 af1 = _target_angle[1] > 15 || _target_angle[1] < -130;
|
|
u8 af2 = _target_angle[2] > 15 || _target_angle[2] < -130;
|
|
u8 af3 = _target_angle[3] > 15 || _target_angle[3] < -130;
|
|
u8 ang_flag = af1 && af2 && af3;
|
|
return ang_flag;
|
|
}
|
|
|
|
#elif ADT_CLIENT_BOARD == G96_HYBRID
|
|
const u8 ADT_TWS_MODE = 1;
|
|
//const u8 ADT_DET_VER = 5;
|
|
//const u8 ADT_PATH_CONFIG = 0;
|
|
const u8 ADT_DET_VER = 4;
|
|
const u8 ADT_PATH_CONFIG = ADT_PATH_DAC_SRC_EN;
|
|
const u8 ADT_EIN_VER = ADT_EIN_TWS_V0;
|
|
const float ref_gain_sel = 4;
|
|
const float err_gain_sel = 1;
|
|
u8 pnc_ref_pwr_thr = 160;
|
|
u8 pnc_err_pwr_thr = 100;
|
|
u8 tpc_ref_pwr_thr = 120;
|
|
u8 tpc_err_pwr_thr = 100;
|
|
u8 anc_ref_pwr_thr = 120;
|
|
u8 anc_err_pwr_thr = 135;
|
|
const float wat_pn_gain = 2.4;
|
|
const float wat_bypass_gain = 16;
|
|
const float wat_anc_gain = 2.5;
|
|
const u8 final_speech_even_thr = 4;
|
|
const float wdac_senc = 1;
|
|
const float wdac[8] = {2.98, 2.29, 1.94, 1.95, 1.76, 1.54, 1.44, 1.29};
|
|
const float wref[8] = {6.76, 1.98, 1.57, 1.50, 1.41, 1.32, 1.16, 1.02};
|
|
const float wref_tran[8] = {4.26, 2.36, 2.36, 2.79, 3.00, 3.18, 3.16, 3.03 };
|
|
const float wref_ancs[8] = {2.06, 2.00, 0.11, 0.06, 0.09, 0.12, 0.14, 0.18 };
|
|
const float fdac[8] = {0.008, 0.008, 0.008, 0.008, 0.01, 0.01, 0.01, 0.01};
|
|
u8 icsd_get_ang_flag(float *_target_angle)
|
|
{
|
|
u8 af1 = _target_angle[4] < 15 && _target_angle[4] > -150;
|
|
u8 af2 = _target_angle[2] < 15 && _target_angle[2] > -150;
|
|
u8 af3 = _target_angle[3] < 15 && _target_angle[3] > -150;
|
|
u8 ang_flag = af1 && af2 && af3;
|
|
return ang_flag;
|
|
}
|
|
|
|
#elif ADT_CLIENT_BOARD == G97_HYBRID
|
|
const u8 ADT_TWS_MODE = 1;
|
|
const u8 ADT_DET_VER = 3;
|
|
const u8 ADT_PATH_CONFIG = 0;
|
|
//const u8 ADT_DET_VER = 4;
|
|
//const u8 ADT_PATH_CONFIG = ADT_PATH_DAC_SRC_EN;
|
|
const u8 ADT_EIN_VER = ADT_EIN_UNSUPPORT;
|
|
const float ref_gain_sel = 2;
|
|
const float err_gain_sel = 1;
|
|
u8 pnc_ref_pwr_thr = 160;
|
|
u8 pnc_err_pwr_thr = 100;
|
|
u8 tpc_ref_pwr_thr = 120;
|
|
u8 tpc_err_pwr_thr = 100;
|
|
u8 anc_ref_pwr_thr = 120;
|
|
u8 anc_err_pwr_thr = 135;
|
|
const float wat_pn_gain = 2.88;
|
|
const float wat_bypass_gain = 19.2;
|
|
const float wat_anc_gain = 3;
|
|
const u8 final_speech_even_thr = 4;
|
|
const float wdac_senc = 1;
|
|
const float wdac[8] = {10.43, 4.85, 1.36, 1.09, 0.87, 0.71, 0.63, 0.59};
|
|
const float wref[8] = {7.31, 1.90, 0.43, 0.33, 0.28, 0.25, 0.22, 0.20};
|
|
const float wref_tran[8] = {8.23, 3.33, 1.72, 1.64, 1.48, 1.30, 1.12, 1.04};
|
|
const float wref_ancs[8] = {4.62, 1.32, 0.09, 0.06, 0.07, 0.10, 0.13, 0.15 };
|
|
const float fdac[8] = {0.18, 0.051, 0.02, 0.02, 0.02, 0.02, 0.02, 0.05};
|
|
u8 icsd_get_ang_flag(float *_target_angle)
|
|
{
|
|
u8 af1 = _target_angle[1] < -120 || _target_angle[1] > 20;
|
|
u8 af2 = _target_angle[2] < -120 || _target_angle[2] > 20;
|
|
u8 af3 = _target_angle[3] < -120 || _target_angle[3] > 20;
|
|
u8 ang_flag = af1 && af2 && af3;
|
|
|
|
printf("ang:%d %d %d af:%d %d %d\n", (int)_target_angle[1], (int)_target_angle[2], (int)_target_angle[3], af1, af2, af3);
|
|
return ang_flag;
|
|
}
|
|
|
|
#elif ADT_CLIENT_BOARD == H3_HYBRID
|
|
const u8 ADT_TWS_MODE = 0;
|
|
const u8 ADT_DET_VER = 1;
|
|
const u8 ADT_PATH_CONFIG = 0;
|
|
const u8 ADT_EIN_VER = ADT_EIN_HEADSET_V0;
|
|
const float ref_gain_sel = 3;
|
|
const float err_gain_sel = 3;
|
|
u8 pnc_ref_pwr_thr = 160;
|
|
u8 pnc_err_pwr_thr = 100;
|
|
u8 tpc_ref_pwr_thr = 120;
|
|
u8 tpc_err_pwr_thr = 100;
|
|
u8 anc_ref_pwr_thr = 120;
|
|
u8 anc_err_pwr_thr = 135;
|
|
const float wat_pn_gain = 1;
|
|
const float wat_bypass_gain = 16;
|
|
const float wat_anc_gain = 1;
|
|
const u8 final_speech_even_thr = 4;
|
|
const float wdac_senc = 1;
|
|
const float wref[8] = {6.78, 3.66, 0.58, 0.37, 0.31, 0.29, 0.28, 0.27};
|
|
const float wdac[8] = {1, 1, 0.92, 0.80, 0.67, 0.62, 0.7, 0.7};
|
|
const float wref_tran[8] = {4.26, 2.36, 2.36, 2.79, 3.00, 3.18, 3.16, 3.03 };
|
|
const float wref_ancs[8] = {2.06, 2.00, 0.011, 0.006, 0.009, 0.012, 0.014, 0.018 };
|
|
const float fdac[8] = {0.18, 0.051, 0.02, 0.02, 0.02, 0.02, 0.02, 0.05};
|
|
|
|
#elif ADT_CLIENT_BOARD == ANC05_HYBRID
|
|
const u8 ADT_TWS_MODE = 0;
|
|
const u8 ADT_DET_VER = 1;
|
|
const u8 ADT_PATH_CONFIG = 0;
|
|
const u8 ADT_EIN_VER = ADT_EIN_UNSUPPORT;
|
|
const float ref_gain_sel = 3;
|
|
const float err_gain_sel = 3;
|
|
u8 pnc_ref_pwr_thr = 160;
|
|
u8 pnc_err_pwr_thr = 100;
|
|
u8 tpc_ref_pwr_thr = 120;
|
|
u8 tpc_err_pwr_thr = 100;
|
|
u8 anc_ref_pwr_thr = 120;
|
|
u8 anc_err_pwr_thr = 135;
|
|
const float wat_pn_gain = 1;
|
|
const float wat_bypass_gain = 16;
|
|
const float wat_anc_gain = 1;
|
|
const u8 final_speech_even_thr = 4;
|
|
const float wdac_senc = 1;
|
|
const float wref[8] = {6.78, 3.66, 0.58, 0.37, 0.31, 0.29, 0.28, 0.27};
|
|
const float wdac[8] = {1, 1, 0.92, 0.80, 0.67, 0.62, 0.7, 0.7};
|
|
const float wref_tran[8] = {4.26, 2.36, 2.36, 2.79, 3.00, 3.18, 3.16, 3.03 };
|
|
const float wref_ancs[8] = {2.06, 2.00, 0.011, 0.006, 0.009, 0.012, 0.014, 0.018 };
|
|
const float fdac[8] = {0.18, 0.051, 0.02, 0.02, 0.02, 0.02, 0.02, 0.05};
|
|
|
|
#else
|
|
const float wdac_senc = 1;
|
|
const u8 ADT_TWS_MODE = 1;
|
|
const u8 ADT_DET_VER = 0;
|
|
const u8 ADT_PATH_CONFIG = 0;
|
|
const u8 ADT_EIN_VER = ADT_EIN_UNSUPPORT;
|
|
const float ref_gain_sel = 3;
|
|
const float err_gain_sel = 3;
|
|
u8 pnc_ref_pwr_thr = 160;
|
|
u8 pnc_err_pwr_thr = 100;
|
|
u8 tpc_ref_pwr_thr = 120;
|
|
u8 tpc_err_pwr_thr = 100;
|
|
u8 anc_ref_pwr_thr = 120;
|
|
u8 anc_err_pwr_thr = 135;
|
|
const float wat_pn_gain = 1;
|
|
const float wat_bypass_gain = 16;
|
|
const float wat_anc_gain = 1;
|
|
const u8 final_speech_even_thr = 4;
|
|
const float wref[8] = {6.78, 3.66, 0.58, 0.37, 0.31, 0.29, 0.28, 0.27};
|
|
const float wdac[8] = {1, 1, 0.92, 0.80, 0.67, 0.62, 0.7, 0.7};
|
|
const float wref_tran[8] = {4.26, 2.36, 2.36, 2.79, 3.00, 3.18, 3.16, 3.03 };
|
|
const float wref_ancs[8] = {2.06, 2.00, 0.011, 0.006, 0.009, 0.012, 0.014, 0.018 };
|
|
const float fdac[8] = {0.18, 0.051, 0.02, 0.02, 0.02, 0.02, 0.02, 0.05};
|
|
|
|
#endif
|
|
|
|
void icsd_adt_ein_parm_HT03(__icsd_adt_parm *_ADT_PARM)
|
|
{
|
|
_ADT_PARM->anc_in_pz_sum = -80;
|
|
_ADT_PARM->anc_out_pz_sum = 0;
|
|
_ADT_PARM->anc_in_sz_mean = 1;
|
|
_ADT_PARM->anc_out_sz_mean = -12;
|
|
_ADT_PARM->anc_in_fb_sum = 60;
|
|
_ADT_PARM->anc_out_fb_sum = 30;
|
|
|
|
_ADT_PARM->pnc_in_pz_sum = -80;
|
|
_ADT_PARM->pnc_out_pz_sum = 0;
|
|
_ADT_PARM->pnc_in_sz_mean = 1;
|
|
_ADT_PARM->pnc_out_sz_mean = -12;
|
|
_ADT_PARM->pnc_in_fb_sum = 60;
|
|
_ADT_PARM->pnc_out_fb_sum = 30;
|
|
|
|
_ADT_PARM->trans_in_pz_sum = 2;
|
|
_ADT_PARM->trans_out_pz_sum = 26;
|
|
_ADT_PARM->trans_in_sz_mean = 2;
|
|
_ADT_PARM->trans_out_sz_mean = -7;
|
|
_ADT_PARM->trans_in_fb_sum = 20;
|
|
_ADT_PARM->trans_out_fb_sum = -20;
|
|
}
|
|
|
|
void icsd_adt_ein_parm(__icsd_adt_parm *_ADT_PARM)
|
|
{
|
|
_ADT_PARM->anc_in_pz_sum = -80;
|
|
_ADT_PARM->anc_out_pz_sum = 0;
|
|
_ADT_PARM->anc_in_sz_mean = 1;
|
|
_ADT_PARM->anc_out_sz_mean = -12;
|
|
_ADT_PARM->anc_in_fb_sum = 60;
|
|
_ADT_PARM->anc_out_fb_sum = 30;
|
|
|
|
_ADT_PARM->pnc_in_pz_sum = -80;
|
|
_ADT_PARM->pnc_out_pz_sum = 0;
|
|
_ADT_PARM->pnc_in_sz_mean = 1;
|
|
_ADT_PARM->pnc_out_sz_mean = -12;
|
|
_ADT_PARM->pnc_in_fb_sum = 60;
|
|
_ADT_PARM->pnc_out_fb_sum = 30;
|
|
|
|
_ADT_PARM->trans_in_pz_sum = 2;
|
|
_ADT_PARM->trans_out_pz_sum = 26;
|
|
_ADT_PARM->trans_in_sz_mean = 2;
|
|
_ADT_PARM->trans_out_sz_mean = -7;
|
|
_ADT_PARM->trans_in_fb_sum = 20;
|
|
_ADT_PARM->trans_out_fb_sum = -20;
|
|
}
|
|
|
|
void icsd_adt_voice_board_data()
|
|
{
|
|
__icsd_adt_parm *ADT_PARM;
|
|
|
|
ADT_PARM = zalloc(sizeof(__icsd_adt_parm));
|
|
#if ADT_CLIENT_BOARD == HT03_HYBRID_6G
|
|
adt_printf("ADT HT03\n");
|
|
extern const float HT03_ADT_FLOAT_DATA[];
|
|
extern const float HT03_sz_out_data[28];
|
|
extern const float HT03_pz_out_data[28];
|
|
ADT_PARM->adt_float_data = (void *)HT03_ADT_FLOAT_DATA;
|
|
ADT_PARM->sz_inptr = (float *)HT03_sz_out_data;
|
|
ADT_PARM->pz_inptr = (float *)HT03_pz_out_data;
|
|
icsd_adt_ein_parm_HT03(ADT_PARM);
|
|
|
|
#elif ADT_CLIENT_BOARD == G96_HYBRID
|
|
adt_printf("ADT G96\n");
|
|
extern const float G96_ADT_FLOAT_DATA[];
|
|
extern const float G96_sz_out_data[28];
|
|
extern const float G96_pz_out_data[28];
|
|
ADT_PARM->adt_float_data = (void *)G96_ADT_FLOAT_DATA;
|
|
ADT_PARM->sz_inptr = (float *)G96_sz_out_data;
|
|
ADT_PARM->pz_inptr = (float *)G96_pz_out_data;
|
|
icsd_adt_ein_parm(ADT_PARM);
|
|
|
|
#elif ADT_CLIENT_BOARD == G97_HYBRID
|
|
adt_printf("ADT G97\n");
|
|
extern const float G97_ADT_FLOAT_DATA[];
|
|
extern const float G97_sz_out_data[28];
|
|
extern const float G97_pz_out_data[28];
|
|
ADT_PARM->adt_float_data = (void *)G97_ADT_FLOAT_DATA;
|
|
ADT_PARM->sz_inptr = (float *)G97_sz_out_data;
|
|
ADT_PARM->pz_inptr = (float *)G97_pz_out_data;
|
|
icsd_adt_ein_parm(ADT_PARM);
|
|
|
|
#elif ADT_CLIENT_BOARD == H3_HYBRID
|
|
adt_printf("ADT H3\n");
|
|
extern const float H3_ADT_FLOAT_DATA[];
|
|
extern const float H3_sz_out_data[28];
|
|
extern const float H3_pz_out_data[28];
|
|
ADT_PARM->adt_float_data = (void *)H3_ADT_FLOAT_DATA;
|
|
ADT_PARM->sz_inptr = (float *)H3_sz_out_data;
|
|
ADT_PARM->pz_inptr = (float *)H3_pz_out_data;
|
|
icsd_adt_ein_parm(ADT_PARM);
|
|
|
|
#elif ADT_CLIENT_BOARD == ANC05_HYBRID
|
|
adt_printf("ADT ANC05\n");
|
|
extern const float ANC05_ADT_FLOAT_DATA[];
|
|
extern const float ANC05_sz_out_data[28];
|
|
extern const float ANC05_pz_out_data[28];
|
|
ADT_PARM->adt_float_data = (void *)ANC05_ADT_FLOAT_DATA;
|
|
ADT_PARM->sz_inptr = (float *)ANC05_sz_out_data;
|
|
ADT_PARM->pz_inptr = (float *)ANC05_pz_out_data;
|
|
icsd_adt_ein_parm(ADT_PARM);
|
|
|
|
#else
|
|
adt_printf("ADT XXX\n");
|
|
#endif
|
|
|
|
icsd_adt_parm_set(ADT_PARM);
|
|
free(ADT_PARM);
|
|
|
|
icsd_adt_szout_init();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|