1.一种实时通信系统中的自动声反馈检测与消除方法,其特征在于,包括:
步骤1、采集音频数据,初始化历史啸叫估计信息;所述历史啸叫估计信息包括:可疑啸叫点队列、可疑啸叫点对应的计数器队列、可疑啸叫点对应的偏移量队列、可疑啸叫点对应的静音计数器队列;
步骤2、对每帧音频数据进行重叠、加窗、FFT变换,获得时域到频域的变换数据;
步骤3、计算频域数据的峰值功率比、峰值区间,获得峰值功率和峰值区间;所述峰值功率比为峰值功率与去掉M个峰值功率后的平均功率之比;所述峰值区间为以峰值为中心,左右各偏移2个频点;
步骤4、遍历分析所有的峰值信息,若FFT幅度大于设定阈值,且对应的峰值功率比大于设定阈值,则认为该峰值所处频点为当前帧的可疑啸叫频点,遍历完毕后即获得了当前帧可疑啸叫频点信息;
步骤5、利用峰值信息、当前帧可疑啸叫频点信息,更新历史啸叫估计信息;遍历当前帧所有的可疑啸叫点Hi,i=1,…,N;针对Hi,遍历历史可疑啸叫点查询Hi,如果找到Hi,则其对应的计数器加1,对应的偏移量不变,对应的静音计数器置为-1;否则将Hi加入历史可疑啸叫点队列,对应的计数器为1,对应的偏移量为0,对应的静音计数器为0;
所述峰值信息为峰值功率比、峰值区间及峰值功率;
遍历历史可疑啸叫点队列中的每个可疑啸叫点,如果其非当前帧中的可疑啸叫频点,则对该频点进行静音频点判定,如果为静音频点,其对应的静音计数器加1,其他信息不变;否则删除该可疑啸叫点;
所述其他信息为可疑啸叫点对应的偏移量和可疑啸叫点计数器;
所述静音频点判定的准则是,该频点在当前帧中的FFT幅度小于2000,或者其功率与平均功率比小于-10;
步骤6、分析更新后的历史啸叫点估计信息,完成当前帧啸叫点判定;
遍历更新的历史啸叫点估计信息,如果其中的可疑啸叫点对应的计数器大于5,偏移量小于2,静音计数器小于50,则该可疑啸叫点被判定为当前帧啸叫点;如果偏移量大于2或者静音计数器大于50,则移除该可疑啸叫点;
步骤7、根据当前帧啸叫点判定结果,生成对应的陷波器。
2.根据权利要求1所述的方法,其特征在于,
所述陷波器由啸叫点频率、增益、滤波带宽确定,采用2阶iir结构。
3.根据权利要求1所述的方法,其特征在于,所述步骤7进一步包括:
产生啸叫时立即启用陷波器滤波,并持续滤波时长;如果确认啸叫结束,则提前终止滤波。
4.根据权利要求3所述的方法,其特征在于,所述如果确认啸叫结束,则提前终止滤波进一步包括:
通过频域分析将信号分为静音帧、噪声帧、语音帧、语音+啸叫帧、啸叫帧、未知帧,如果检测到语音帧则立即提前终止滤波。