基于移频和自适应陷波器的啸叫抑制算法

2022-04-28 00:23薛建清
电声技术 2022年3期
关键词:频带频点扬声器

薛建清

(福建星网智慧科技有限公司,福建 福州 530002)

1 移频算法概述

在扩声场景下,麦克风和扬声器会形成扬声器-功率放大器-扬声器闭环回路[1],某些频点被不断加强,从而引发啸叫。啸叫发生时,会损坏扬声器,损害听力,严重影响体验。针对上述问题,需要使用啸叫抑制算法进行声反馈抑制。常用的啸叫抑制算法有移频、移相、陷波器以及自适应啸叫抑制算法等。

移频是信号频谱的整体频移,破坏了闭环中的频率叠加效应,从而达到抑制啸叫的目的[2]。

本文所提的算法移频模块采用Weaver 移频算法[3-4],使得整体频谱向上移动5 Hz,算法框架如图1 所示。

图1 Weaver 算法框架

该算法被称作生成单边带信号的第三种方法[5-6]。其特点是以固定频率生成正交信号。本文采用4 kHz 作为固定频率。移频算法依赖于低通滤波器的选择。常用的带通滤波器有巴特沃斯和切比雪夫滤波器。两种滤波器的频响对比如图2所示。从图2 可以看出,巴特沃斯滤波器过渡带长,切比雪夫滤波器的过渡带小。两种滤波器局部放大的频响曲线如图3、图4 所示。从图3、图4 可看出,巴特沃斯滤波器的通带波动小,切比雪夫滤波器的通带有波动。

图2 巴特沃斯和切比雪夫滤波器频响对比

图3 巴特沃斯滤波器频响曲线局部放大

图4 切比雪夫滤波器频响曲线局部放大

2 自适应陷波器算法

本文提出的自适应陷波器算法框架如图5 所示。将信号划分为8 个子频带,每个子频带分别提取频谱峰度特征,若大于上限阈值,则判定该子带存在啸叫频点,使用陷波器处理子频带中最高啸叫频点。

图5 自适应陷波器算法框架

频谱峰度度量(SPM)指的是用1 减去带功率谱的几何平均值与带功率谱的算术平均值之间的比率,计算式为:

式中:X(k,l)表示频带索引k的频谱幅度,l表示帧的索引,K表示频带的数量。进一步地,SPM 度量按照如下公式进行平滑,得到当前帧各个子带频谱峰度特征。若大于上限阈值,则判定该子带存在啸叫频点,使用陷波器处理子频带中最高啸叫:

由于陷波器的作用,信号能量会降低,所以需要增益补偿改善声压损失[8]。本文采用动态范围控制器,信号先通过噪声门限器,对低于噪声门限阈值的信号进行抑制,接着通过指定动态范围内的信号做增益补偿,弥补声压的损失。

3 仿真分析

3.1 实时性

在移动设备(处理器为4 核Cortex-A17)外接拾音器和扬声器(间距1.5 m),对着拾音器说话,经固定延时150 ms 从扬声器播放出来。本文提出的啸叫抑制方案可以有效地抑制啸叫的发生。具体耗时为处理10 ms 数据耗时242 μs,满足实时性要求。

3.2 录音测试

含有啸叫的信号波形和语谱如图6(a)所示,啸叫信号在波形上振幅大能量集中,语谱图上为持续的单频强信号。经啸叫抑制后的信号波形图和语谱图如图6(b)所示,可以看出,经算法处理后,啸叫信号的波形被明显抑制,从语谱图上可以看出,单频强信号被抑制明显,同时没有明显损伤语音信号;啸叫状态的终止比较精准,减小了语音的损伤。同时,啸叫状态的检测存在延时,为0.5~1.0 s,可以在较短时间内结束啸叫,避免引发更坏的影响。

图6 信号处理前后的波形图和语谱图

4 结语

本文通过结合移频和自适应陷波器算法,针对会议扩音场景下的啸叫问题,将麦克风采集信号先进行微量移频,破坏啸叫的产生条件,接着将信号划分8 个子频带,每个子频带提取频谱峰度特征判断是否啸叫,对啸叫频点做陷波处理,最后通过增益补偿弥补损失的声压,达到抑制啸叫、提高扬声器增益的目的。

在实际会议室场景录音数据上测试发现,本文提出的基于移频和自适应陷波器的啸叫抑制算法可以提供10~18 dB 的附加增益,能有效预防声反馈发生,具体取决于声学环境。同时,可以根据不同场景和需求,微调参数即可完成适配,操作简单,具有较好的使用价值。下一步拟改善啸叫检测的速度,改善啸叫自激阶段的体验。

猜你喜欢
频带频点扬声器
基于小波变换的输电线路故障类型识别方法研究
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
搭载革命性Uni-Core技术 KEF宣布推出KC62超低音扬声器
浅谈雄安新区某酒店WLAN建设方案
Wi-Fi网络中5G和2.4G是什么?有何区别?
基于能量检测的认知无线电频谱感知算法研究
泉州大剧院选用L-ACOUStiCS、DiGiCo
安恒利为浙江卫视跨年演唱会无线系统保驾护航
超材料吸收器设计方法的研究进展
800M LTE网络≠关闭C网