1. 混响(echo)
混响(echo)音效一般用于普通扩音,可配置干湿音、回声等效果;一般需要与啸叫抑制算法一起使用。
1.1. 1 配置参数说明
- DOWN_S_FLAG:下采参数
1代表下采,0代表不下采;下采申请的buff会较小,但是回声部分高频会丢失;
- echo_work_buf_len:echo运算需要的buff大小
根据是否下采以及输入音频采样率决定,可通过ops->need_buf()接口获取大小;
图1 echo buff大小获取
1.2. 2 相关函数
1.2.1. 2.1 函数void *link_echo_sound(void *p_sound_out, void *p_dac_cbuf, void **pp_effect, u32 sr)
该函数为串联音频链路的标准接口,实现响应算法的启动,并添加到音频链路上,其中参数:
1、p_sound_out:当前算法的前级音频通道句柄; 2、② p_dac_cbuf:输出的音频buff; 3、pp_effect:存放当前音效算法控制句柄指针的指针; 4、sr:当前输入音频的采样率; 5、返回值:启动之后最新的音频通道句柄;
1.2.2. 2.2 函数void *echo_api(void *obuf, u32 sr, void **ppsound)
该函数用于初始化混响(echo)的相关参数,由函数link_echo_sound()调用即可,需要关注的其内部参数的初始化:
1、decayval:回升衰减比,范围:0~70; 2、delay:回声延时,范围:0~max_ms,超过max_ms会当场max_ms; 3、energy_vad_threshold:mute阈值,默认值为512;低于该能量值的声音输出静音; 扩音方案中可以用该方式降低底噪; 4、direct_sound_enable:干声叠加使能位; 5、max_ms:最大回声延时时间,最大值为100; 6、sr:输入音频的采样率,支持16K / 24K,会影响混响算法运算buff的大小; 7、wetgain:湿声增益,默认为3000; 8、drygain:干声增益,默认为4096,干声叠加使能为0时不起作用;