AEC(回声消除)
支持的芯片
概述
回声消除是 AFE 的功能之一,用于消除麦克风拾取的设备自身播放的声音,即回声。
在支持打断唤醒、打断对话等功能的产品中,需要开启回声消除。
算法说明
AIVoice 中的完整回声消除算法包括线性回声消除(AEC)和残留回声抑制(RES)两个子模块:
AEC(回声消除)
RES(残留回声抑制)
配置
完整的 AFE 配置文件为 ${aivoice_lib_dir}/include/aivoice_afe_config.h
,其中 AEC 相关配置为:
int ref_num; // 参考通道数量,必须为 0 或 1。若 ref_num=0 则禁用 AEC
afe_mode_e afe_mode; // AFE 模式,用于 ASR(语音识别)或语音通话。
bool enable_aec; // AEC(声学回声消除)模块开关
// AEC 模块参数
afe_aec_mode_e aec_mode; // AEC 模式,传统信号处理或神经网络。当前版本不支持神经网络
int aec_enable_threshold; // AEC 的参考信号幅度阈值,取值范围[0, 100]。
// 数值越大表示使能 AEC 的最小回声量越大
bool enable_res; // AEC 残余回声抑制模块开关
afe_aec_filter_tap_e aec_cost; // 资源消耗模式,消耗越高滤波器长度越长,回声消除效果越好
afe_aec_res_aggressive_mode_e res_aggressive_mode; // AEC 强度,强度越高残余回声抑制越强,但失真也越大
备注
当不需要 AEC 功能时, 相关参数应配置为:enable_aec = false, ref_num = 0。