3. 移频啸叫抑制(pitchshifter_howling)

AD16N 和 AW30N SDK均提供自适应 移频啸叫抑制(pitchshifter_howling)音效,该功能由 app_modules_h.c 里的 PITCHSHIFT_HOWLING_EN 宏控制开关。

移频啸叫抑制目前与陷波啸叫抑制共同使用,移频啸叫抑制的抑制效果由变量FRESHIFT_SPEED_MODE_QUALITY控制,可配为2至8其中一个等级,等级越高,抑制效果越好,但对速度要求越高。


3.1. 配置参数说明

  • FRESHIFT_SPEED_MODE_QUALITY:滤波器音阶数

    滤波器音阶数配置范围[2, 8],音阶数越大,运算量越大;

  • howling_work_buf:移频啸叫抑制运算需要的buff

    根据移频方式和滤波器音阶数决定buff大小,可通过ops->need_buf()接口获取大小;

"图1 移频啸叫抑制参数配置"

图1 移频啸叫抑制参数配置


3.2. 相关函数

3.2.2. 函数void *pitchshift_howling_api(void *obuf, u32 sr, void **ppsound)

该函数用于初始化移频抑制啸叫(pitchshifter_howling)的相关参数,由函数link_pitchshift_howling_sound()调用即可,需要关注的其内部参数的初始化:

1、effect_v:移频方式,可选EFFECT_HOWLING_PS或EFFECT_HOWLING_FS;
2、ps_parm:等比移频,建议范围[-350, 350],归一化系数为8192,effect_v置上EFFECT_HOWLING_PS有效;
3、fs_parm:线性移频,建议范围[-10, 10](Hz),effect_v置上EFFECT_HOWLING_FS有效;