1 #ifndef TRIPLE_MIC_DENOISE3_H 2 #define TRIPLE_MIC_DENOISE3_H 3 4 #include <stdint.h> 5 #include "speech_config.h" 6 7 typedef struct 8 { 9 int32_t bypass; 10 int32_t endfire_enable; 11 int32_t broadside_enable; 12 13 // endfire beamforming config 14 float delay_taps; 15 int32_t freq_smooth_enable; 16 int32_t wnr_enable; 17 18 // broadsize beamforming config 19 } TripleMicDenoise3Config; 20 21 struct TripleMicDenoise3State_; 22 23 typedef struct TripleMicDenoise3State_ TripleMicDenoise3State; 24 25 TripleMicDenoise3State *triple_mic_denoise3_init(int32_t sample_rate, int32_t frame_size, const TripleMicDenoise3Config *cfg); 26 27 void triple_mic_denoise3_destroy(TripleMicDenoise3State *st); 28 29 // accept 3 channel interleaved pcm stream, ch0 is main mic, ch1 is endfire reference mic, ch2 is broadside reference mic 30 int32_t triple_mic_denoise3_process(TripleMicDenoise3State *st, speech_data_t *pcm_buf, int32_t pcm_len, speech_data_t *out_buf); 31 32 float triple_mic_denoise3_get_required_mips(TripleMicDenoise3State *st); 33 34 #endif