4. 均衡器(PCM_EQ)
AD14N / AC104N可以使用杰理EQ 工具进行离线EQ 调试,将需要的频段增益抬高或者压低,使音质感受更佳。
4.1. 1 配置参数说明
- eq_filt_32000:PCM_EQ处理32K采样率音频的运算数据
该数据由EQ工具生成,最多可以有10段EQ数据(seg0~seg9),详情请见EQ工具使用说明章节,不同采样率拥有各自的eq_filt表;
- g_work_buf:PCM_EQ运算需要的buff
根据EQ使用的频点数(段数)决定buff大小,可通过pcm_eq_buf_len()接口获取大小;
图1 pcm_eq buff大小获取
4.2. 2 相关函数
4.2.1. 2.1 函数void *link_pcm_eq_sound(void *p_sound_out, void *p_dac_cbuf, void **pp_effect, u32 sr, u32 channel)
该函数为串联音频链路的标准接口,实现响应算法的启动,并添加到音频链路上,其中参数:
1、p_sound_out:当前算法的前级音频通道句柄; 2、② p_dac_cbuf:输出的音频buff; 3、pp_effect:存放当前音效算法控制句柄指针的指针; 4、sr:当前输入音频的采样率; 5、channel:声道数,ad14n和ac104n只有单声道,传1即可; 6、返回值:启动之后最新的音频通道句柄;
4.2.2. 2.2 函数void *pcm_eq_api(void *obuf, u32 sr, u32 channel, void **ppsound)
该函数用于初始化PCM_EQ的相关参数,由函数link_pcm_eq_sound()调用即可,需要关注的其内部参数的初始化:
1、nSection:EQ频点数(段数),不可超过各采样率的eq_filt表中的段数,范围[1, 10]; 2、channal:陷波器带宽,该值越小防啸叫效果越好,但发声啸叫频点误检时音质会更差;
4.3. 3 EQ工具使用
AD14N / AC104N可以使用杰理EQ工具进行离线EQ调试,调试完成后可以导出当前的EQ配置,并加载到程序中验证效果。工具下载地址:
4.3.1. 3.1 EQ工具使用介绍
1、打开“EQ-3.1.7-beta-20200516.2.exe”工具并选择固件“AC695X”; 2、选择需要的频点数,对于不需要的频点可以点击下方频率行对应跑按钮使其变灰; 3、拉动EQ曲线进行粗调; 4、粗调结束后,可在下方参数框对EQ曲线进行细调,可设置准确的中心频率、增益、Q值以及滤波器类型;
5、EQ调节结束后,点击右边“保存界面参数”按钮对编辑的EQ界面进行保存; 6、保存后,再点击“导出固件配置”按钮,工具根目录会生成新的“hw_eq_table.h”文件;
4.3.2. 3.2 SDK配置说明
1、SDK工程中导入pcm_eq相关文件;
2、打开pcm_eq_api.c文件,并将EQ工具生成的hw_eq_table.h文件中的eq数据覆盖原本的eq数据;
3、打开pcm_eq_api.c文件,根据EQ工具选择的频点数调整nSection值,并根据buf_size打印调整g_work_buf[]大小;
4、打开decoder_api.c文件,将EQ串入音频解码链路中,运行测试效果;需要注意eq所用的ram是否与其他资源复用了,建议不要同时开启多种音效;