#ifndef __MIC_EFFECT_H__ #define __MIC_EFFECT_H__ #include "system/includes.h" #include "audio_mic/effect_reg.h" #include "audio_mic/effect_parm.h" #include "app_config.h" #include "application/audio_pemafrow.h" /* enum { */ // MIC_EQ_MODE_SHOUT_WHEAT = 0x0, // MIC_EQ_MODE_LOW_SOUND, // MIC_EQ_MODE_HIGH_SOUND, /* }; */ void switch_mic_effect_mode(void); // void set_mic_reverb_mode(void); void switch_mic_agc(void); /*----------------------------------------------------------------------------*/ /**@brief (mic数据流)混响打开接口 @param @return true - 成功, false - 失败. @note */ /*----------------------------------------------------------------------------*/ bool mic_effect_start(void); /*----------------------------------------------------------------------------*/ /**@brief (mic数据流)混响关闭接口 @param @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_stop(void); /*----------------------------------------------------------------------------*/ /**@brief (mic数据流)混响暂停接口(数据置0) @param mark :1 暂停 0:恢复 @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_pause(u8 mark); /*----------------------------------------------------------------------------*/ /**@brief (mic数据流)混响暂停输出到DAC(数据流后级不写入DAC) @param mark :1 暂停 0:恢复 @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_dac_pause(u8 mark); /*----------------------------------------------------------------------------*/ /**@brief (mic数据流)混响状态获取接口 @param @return true - 运行, false - 未启动 @note */ /*----------------------------------------------------------------------------*/ u8 mic_effect_get_status(void); /*----------------------------------------------------------------------------*/ /**@brief 数字音量调节接口 @param vol 待设置的音量值[0,31] @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_set_dvol(u8 vol); /*----------------------------------------------------------------------------*/ /**@brief 获取数字音量接口 @param @return 当前数字数字音量等级 @note */ /*----------------------------------------------------------------------------*/ u8 mic_effect_get_dvol(void); /*----------------------------------------------------------------------------*/ /**@brief 获取默认mic增益 @param @return 默认mic增益值 @note */ /*----------------------------------------------------------------------------*/ u8 mic_effect_get_micgain(void); /*----------------------------------------------------------------------------*/ /**@brief 设置reverb 湿声增益 @param 待设增益值[0,300] @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_set_reverb_wet(int wet); /*----------------------------------------------------------------------------*/ /**@brief 获取当前reverb混响湿声增益值 @param @return 当前增益值[0,300] @note */ /*----------------------------------------------------------------------------*/ int mic_effect_get_reverb_wet(void); /*----------------------------------------------------------------------------*/ /**@brief 设置reverb 干声增益 @param 待设增益值[0,200] @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_set_reverb_dry(int wet); /*----------------------------------------------------------------------------*/ /**@brief 获取当前reverb混响干声增益值 @param @return 当前增益值[0,200] @note */ /*----------------------------------------------------------------------------*/ int mic_effect_get_reverb_dry(void); /*----------------------------------------------------------------------------*/ /**@brief 设置echo 回声延时 @param delay 回声延时[0,max_ms] @return @note 默认max_ms = 200 */ /*----------------------------------------------------------------------------*/ void mic_effect_set_echo_delay(u32 delay); /*----------------------------------------------------------------------------*/ /**@brief 获取当前 echo 回声延时值 @param @return 当前回声延时delay值 @note */ /*----------------------------------------------------------------------------*/ u32 mic_effect_get_echo_delay(void); /*----------------------------------------------------------------------------*/ /**@brief 设置echo 回声衰减系数 @param decay 衰减系数值%[0,90] @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_set_echo_decay(u32 decay); /*----------------------------------------------------------------------------*/ /**@brief 获取echo 回声衰减系数 @param @return 当前衰减系数值 @note */ /*----------------------------------------------------------------------------*/ u32 mic_effect_get_echo_decay(void); /*----------------------------------------------------------------------------*/ /**@brief 设置echo 回声wetgain参数 @param wetgain 湿声增益系数%[0,200] @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_set_echo_wetgain(u32 wetgain); /*----------------------------------------------------------------------------*/ /**@brief 获取echo 回声wetgain参数 @param wetgain 湿声增益系数%[0,200] @return @note */ /*----------------------------------------------------------------------------*/ u32 mic_effect_get_echo_wetgain(void); /*----------------------------------------------------------------------------*/ /**@brief 设置echo 回声drygain参数 @param drygain 干声增益系数%[0,100] @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_set_echo_drygain(u32 drygain); /*----------------------------------------------------------------------------*/ /**@brief 获取echo 回声drygain参数 @param drygain 干声增益系数%[0,100] @return @note */ /*----------------------------------------------------------------------------*/ u32 mic_effect_get_echo_drygain(void); /*----------------------------------------------------------------------------*/ /**@brief mic数据流参数更新 @param parm 新参数, @return @note 暂未使用 */ /*----------------------------------------------------------------------------*/ void mic_effect_set_mic_parm(struct __mic_stream_parm *parm); /*----------------------------------------------------------------------------*/ /**@brief 设置变声模式 @param shiftv: 变声模式 sr :数据采样率 effect:变调比例[40,230] formant_shift:共振峰偏移比例 [40,230] @return @note 模式配置说明: 1.EFFECT_PITCH_SHIFT 移频,变调不变速,shiftv调节有效,formant_shift调节无效 2.EFFECT_VOICECHANGE_KIN0 变声,可以调节不同的 shiftv 跟 formant_shift ,调出更多的声音效果 3.EFFECT_VOICECHANGE_KIN1 变声,同EFFECT_VOICECHANGE_KIN0类似的,但是2者由于运算的不同,会有区别。 4.EFFECT_ROBORT 机器音效果,类似 喜马拉雅那样的 5.EFFECT_AUTOTUNE 电音效果 */ /*----------------------------------------------------------------------------*/ // void set_pitch_para(u32 shiftv, u32 sr, u8 effect, u32 formant_shift); /*----------------------------------------------------------------------------*/ /**@brief 设置音效模式 @param mode 模式索引 @return @note 模式与工具调试出的效果文件对应 模式在effect_reg_echo.c和effect_reg_reverb.c中定义 */ /*----------------------------------------------------------------------------*/ void mic_effect_change_mode(u16 mode); /*----------------------------------------------------------------------------*/ /**@brief 获取音效模式 @param @return 模式索引 @note 未使用效果文件时无效 */ /*----------------------------------------------------------------------------*/ u16 mic_effect_get_cur_mode(void); /*----------------------------------------------------------------------------*/ /**@brief 能量检测运行过程,是否触发闪避 @param @return @note */ /*----------------------------------------------------------------------------*/ void mic_dodge_ctr(void); /*----------------------------------------------------------------------------*/ /**@brief 能量检测运行过程,是否触发闪避 @param @return @note */ /*----------------------------------------------------------------------------*/ u8 mic_dodge_get_status(void); /*----------------------------------------------------------------------------*/ /**@brief mic eq信息获取接口 @param index:获取第几段eq @return 返回struct eq_seg_info结构体 @note */ /*----------------------------------------------------------------------------*/ // struct eq_seg_info *mic_eq_get_info(u16 index); /*----------------------------------------------------------------------------*/ /**@brief mic eq设置接口 @param 详见struct eq_seg_info结构体 @return @note */ /*----------------------------------------------------------------------------*/ // int mic_eq_set_info(struct eq_seg_info *info); // // /*----------------------------------------------------------------------------*/ /**@brief 变声音调重置为原声音调 @param NULL @return @note */ /*----------------------------------------------------------------------------*/ void mic_pitchv_reset_parm(void); /*----------------------------------------------------------------------------*/ /**@brief 变声音调递增 @param NULL @return @note */ /*----------------------------------------------------------------------------*/ void mic_pitchv_up(void); /*----------------------------------------------------------------------------*/ /**@brief 变声音调递减 @param NULL @return @note */ /*----------------------------------------------------------------------------*/ void mic_pitchv_down(void); /*----------------------------------------------------------------------------*/ /**@brief 变声音效循环切换 @param NULL @return @note */ /*----------------------------------------------------------------------------*/ void mic_voicechange_loop(void); /*----------------------------------------------------------------------------*/ /**@brief 变声音效指定模式切换 @param eff_mode 模式索引 @return @note */ /*----------------------------------------------------------------------------*/ void mic_voicechange_switch(u8 eff_mode); /*----------------------------------------------------------------------------*/ /**@brief 混响mic数据到USB mic 开关 @param mark : true 开 false 关 @return @note */ /*----------------------------------------------------------------------------*/ void mic_effect_to_usbmic_onoff(u8 mark); #endif// __MIC_EFFECT_H__