api_nr.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #ifndef _API_NR_H
  2. #define _API_NR_H
  3. typedef struct {
  4. u8 level; // 降噪量
  5. u8 min_range1; // 噪声谱更新系数
  6. u8 min_range2; // 噪声谱更新系数
  7. u8 min_range3; // 噪声谱更新系数
  8. u8 min_range4; // 噪声谱更新系数
  9. u8 anksnr_en; // 是否使能ank snr
  10. u16 nera_val; // anksnr_en为0时有效,alp1固定值
  11. u32 block_cnt;
  12. } peri_nr_cfg_t;
  13. typedef struct {
  14. u8 wind_en;
  15. u8 detect_thr;
  16. u16 nr_suppress;
  17. u32 enk1_thr;
  18. u32 enk2_thr;
  19. u32 enk2_thr2;
  20. } nr_wind_cfg_t;
  21. typedef struct {
  22. u8 enable;
  23. u8 mode;
  24. u8 level;
  25. u8 trumpet_en;
  26. u8 min_range1; // 噪声谱更新系数
  27. u8 min_range2; // 噪声谱更新系数
  28. u8 min_range3; // 噪声谱更新系数
  29. u8 min_range4; // 噪声谱更新系数
  30. } near_nr_cfg_t;
  31. typedef struct {
  32. u8 enable;
  33. u8 level;
  34. u8 prior_opt_idx;
  35. u8 ns_ps_rate;
  36. u8 low_fre_range_n2;
  37. u8 trumpet_en;
  38. } ains3_cb_t;
  39. typedef struct {
  40. //AEC
  41. u8 aec_en;
  42. u8 aec_echo_level;
  43. u16 aec_far_offset;
  44. u8 ef2df_copy_en;
  45. u8 nlp_monosig;
  46. u8 nlp_bypass;
  47. //ALC
  48. u8 alc_en;
  49. u8 alc_fade_in_step;
  50. u8 alc_fade_out_step;
  51. u8 alc_fade_in_delay;
  52. u8 alc_fade_out_delay;
  53. s32 alc_far_voice_thr;
  54. //near nr
  55. near_nr_cfg_t near_nr;
  56. nr_wind_cfg_t nr_wind;
  57. ains3_cb_t ains3_nr;
  58. //far nr
  59. peri_nr_cfg_t peri_nr;
  60. u8 far_nr_en;
  61. //other
  62. u8 hnltmp_level;
  63. u8 gain2_smooth_en;
  64. u8 resv[1];
  65. } bt_voice_cfg_t;
  66. extern volatile bt_voice_cfg_t *bt_voice_cfg;
  67. extern bt_voice_cfg_t bt_voice_cb;
  68. #define EQ_VAILD_LEN 180
  69. #define EQ_VAILD_END 210
  70. //dnn动态检测大噪声切换EQ控制
  71. typedef struct {
  72. u8 enable;
  73. u8 change_eq_idx;
  74. u8 cur_eq_idx;
  75. u8 status_eq;
  76. u16 eq_count;
  77. u16 no_eq_count;
  78. u16 eq_valid_len;
  79. u16 eq_valid_end;
  80. u32 noise_sum_sm;
  81. s32 dynamic_eq_thr;
  82. } nr_noise_dyn_cb_t;
  83. extern nr_noise_dyn_cb_t nr_noise_dyn_cb;
  84. extern uint8_t cfg_bt_sco_dump;
  85. extern uint8_t cfg_bt_sco_dnn_en;
  86. #endif // _API_NR_H