9. 音频降噪算法(ANS)
AD14 / AD24 / AD23 支持音频降噪算法。
SDK默认关闭音频降噪算法(缩写:ANS),用户需在app_modules.h打开。
- 使用音频降噪算法(缩写:ANS)需要注意以下配置:
输入给降噪算法数据的采样率(最好为16k采样率)
运行降噪算法时的系统时钟需要在107M以上
在链接文件里(app_ld.c)降噪算法使用的ans_data段与其他功能的复用,确认在使用降噪算法时,该空间不会被其他功能干扰。
![]()
音频降噪宏
音频降噪算法(缩写:ANS)的使用可以参考下方gitee链接:
9.1. 涉及文件
- 源文件:
ans_api.c- 头文件:
ans_api.hNoiseSuppressLib.h- 库文件:
libNoiseSuppress_pi32v2_OnChip.alib_SW_FFT_pi32v2_OnChip.a- 链接文件:
app_ld.C 或 app_ld_overlay_custom.c 文件
![]()
降噪算法在链接文件复用位置
SDK在录音模式已加入音频降噪算法。用户可作参考。
![]()
录音模式串联音频降噪
9.2. 相关参数
采样率:
降噪算法只支持8k和16k采样率。建议使用16k采样率。![]()
音频降噪采样率配置
系统时钟:
降噪算法需要较高的系统时钟。AD14N经测试最低需要96MHz时钟。AD24N经测试最低需要107MHz时钟。
9.3. 相关函数
9.3.1. 函数void *link_ans_sound(void *p_sound_out, void *p_ans_obuf, void **pp_effect, u32 sr)
该函数为LINK音频降噪算法,实现算法的启动,申请算法需要的资源,并添加到音频链路上,其中参数:
1、p_sound_out:当前算法的前级音频通道句柄; 2、p_ans_obuf:输出的音频buff; 3、pp_effect:存放当前音效算法控制句柄指针的指针; 4、sr:当前输入音频的采样率; 5、返回值:启动之后最新的音频通道句柄;
9.3.2. 函数int ans_run(void *hld, short *inbuf, int len)
该函数为降噪算法数据处理流程。
该降噪算法固定输入128个样点,经(NoiseSuppress_Process)处理后输出。
9.3.3. 函数void ans_release(void **ppeffect)
该函数用于释放音效申请的资源。适用于带有MMU的芯片(如AD23N)
1、ppeffect:存放当前音效算法控制句柄指针的指针,即link时传入的指针;
9.4. ans算法和MMU的联动情况
对于支持MMU的芯片(如AD23),ANS算法有一部分资源可以通过malloc获取,另一部分只能保留在overlay
![]()
ans降噪算法资源情况介绍