啸叫检测方法及装置和啸叫抑制方法及装置与流程

文档序号:14195861研发日期:2016年阅读:613来源:国知局
技术简介:
本专利针对传统啸叫检测中低频正常信号易被误判的问题,提出通过为每个候选频率点匹配参考频率点并计算功率比值的检测方法,结合动态滤波器更新的抑制策略,有效提升啸叫识别准确率与处理效率。
关键词:啸叫检测,动态滤波

本发明涉及音频信号处理技术领域,特别是涉及啸叫检测方法及装置和啸叫抑制方法及装置。



背景技术:

通常,在使用音响等扩音设备扩音时,尤其在室内且使用话筒作为拾音器的情况下,会经常产生啸叫。产生啸叫的原因在于:室内存在回声现象,当原始声音的反射声和所产生的回声通过话筒后,会再次被话筒拾到声音,从而使回声进入音响等扩音设备进行放大;且在回声和原始声音相位相同时两个声音会叠加加强,加强后的声音与再次产生的回声再次通过话筒并进入音响等扩音设备进行放大,从而回声被再次加强,如此周而复始,便产生了强烈的刺耳的啸叫。一般的,这种强烈的刺耳的啸叫往往会掩盖原始声音中的有效声音,从而导致扩音设备不能正常工作,破坏音响等扩音设备的稳定性,甚至还会损坏音响等扩音设备。可见,对啸叫进行检测、以及对检测到的啸叫进行抑制尤为重要。

现有技术中,在检测啸叫时,首先将所采集到的音频帧从时域空间中变换至频域空间内,从而可以得到多个频率点,接着根据各个频率点的功率值来计算全部频率点的平均功率,然后计算各个频率点的功率值与计算出的平均功率的比值,当该比值超过预设阈值的情况下,可以判定对应的频率点为啸叫频率点,从而检测到啸叫。

尽管上述方案能够实现啸叫检测,但是,由于音频中的低频部分的功率值高且高频部分的功率值低的特性,而且在整个音频频段中的低频部分所占比例较小,容易使计算得到的平均功率值偏低,因此,如果采用平均功率进行比较,容易导致低频部分的频率点的功率值与平均功率的比值超过预设阈值,从而将低频部分的正常频率点判断为啸叫频率点,使得啸叫检测的准确率低。



技术实现要素:

本发明实施例的目的在于提供啸叫检测方法及装置和啸叫抑制方法及装置,以提高啸叫检测的准确率。

为达到上述目的,本发明实施例公开了一种啸叫检测方法,所述方法包括:

获得待检测音频帧在频域空间内的候选频率点;其中,所述候选频率点为:从所述待检测音频帧由时域空间变换至频域空间后得到的各个频率点中,基于各个频率点的功率值选取出的频率点;

按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点;

分别计算每个候选频率点与其对应的各个参考频率点之间的功率比值;

基于相对应的功率比值,分别判断每个候选频率点是否为啸叫频率点;

当判断结果表明存在啸叫频率点时,确定所述待检测音频产生啸叫。

可选的,所述获得待检测音频帧在频域空间内的候选频率点,包括:

将待检测音频帧从时域空间转换至频域空间内,并获得多个频率点;

分别计算各个频率点的功率值;

判断计算出的各个功率值中的最大值是否大于预设功率阈值;

若大于,则按照功率值由大到小的顺序,依次从所述多个频率点中选取预设数量个候选频率点。

可选的,所述按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点,包括:

确定每个候选频率点所属的频率段;其中,所述频率段为基于音频特性预先从音频全频带中划分得到的频率范围;

获得确定出的频率段对应的至少一个预设参考因子;其中,所述预设参考因子为针对各个频率段且用于确定参考频率点而预先设定的系数;

根据每个候选频率点对应的频率值和所属频率段对应的预设参考因子,确定每个候选频率点各自对应的至少一个参考频率点。

可选的,所述根据每个候选频率点对应的频率值和所属频率段对应的预设参考因子,确定每个候选频率点各自对应的至少一个参考频率点,包括:

分别计算每个候选频率点对应的频率值和所属频率段对应的预设参考因子的乘积;

确定以所述乘积为频率值的频率点为参考频率点。

可选的,所述按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点,包括:

确定每个候选频率点所属的频率段;其中,所述频率段为基于音频特性预先从音频全频带中划分得到的频率范围;

检测所确定出的频率段是否存在至少一个预设参考因子;其中,所述预设参考因子为针对各个频率段且用于确定参考频率点而预先设定的系数;

当检测结果为存在时,根据第一候选频率点对应的频率值和所属频率段对应的预设参考因子,确定各个第一候选频率点各自对应的至少一个参考频率点,其中,所述第一候选频率点为属于对应有至少一个预设参考因子的频率段的候选频率点;

当检测结果为不存在时,将虚拟频率点确定为第二候选频率点所对应的参考频率点,其中,所述虚拟频率点的功率值为所述第二候选频率点所在频率段的平均功率,所述第二候选频率点为不属于对应有至少一个预设参考因子的频率段的候选频率点。

可选的,所述基于相对应的功率比值,分别判断每个候选频率点是否为啸叫频率点,包括:

针对每一候选频率点,判断各自对应的各个功率比值是否均大于预设比值,如果是,则判定该候选频率点为啸叫频率点。

可选的,所述基于相对应的功率比值,分别判断每个候选频率点是否为啸叫频率点,包括:

针对每一候选频率点,判断各自对应的各个功率比值是否均大于预设比值,如果是,则确定该候选频率点为疑似频率点,将上一音频帧中该候选频率点对应的统计值加1,并将加1后的值作为当前音频帧中该候选频率点对应的统计值,判断当前音频帧中该候选频率点对应的统计值是否大于预设次数,当判断结果为是时,判定该候选频率点为啸叫频率点,当判断结果为否时,将当前音频帧中该候选频率点对应的统计值清零;

其中,所述统计值为:用于统计该候选频率点被连续确定为疑似频率点的次数。

为达到上述目的,本发明实施例公开了一种啸叫抑制方法,所述方法包括:

当基于权利要求1所述的啸叫检测方法检测到音频帧产生啸叫时,确定所述音频帧的啸叫频率点;

判断所述啸叫频率点的频率值是否全部属于预设的滤波器组中已有滤波器对应的可用频率值;

如果是,则利用所述滤波器组中已有滤波器对各个啸叫频率点进行抑制处理;

如果否,则按照预设滤波器添加规则,在所述滤波器组中添加与各个目标频率值相对应的目标滤波器,并利用当前滤波器组中的滤波器对各个啸叫频率点进行抑制处理;其中,所述目标频率值为:所述啸叫频率点的频率值中除所述可用频率值外的频率值。

可选的,所述按照预设滤波器添加规则,在所述滤波器组中添加与各个目标频率值相对应的目标滤波器,包括:

获得所述目标频率值的数量m;

判断所述数量m与所述滤波器组中已有滤波器数量n之和,是否大于所述滤波器组所允许设置滤波器的最大数量k;

如果是,则从所述滤波器组中删除至少m+n-k个可删除滤波器,并在所述滤波器组中添加与各个目标频率值相对应的目标滤波器;其中,所述可删除滤波器为:与所述啸叫点的频率值不同的频率值所对应的滤波器;

如果否,则添加与各个目标频率值相对应的目标滤波器至所述滤波器组中。

可选的,所述从所述滤波器组中删除至少m+n-k个可删除滤波器,包括:

将所述滤波器组中已有滤波器按照滤波器添加时间的先后顺序进行排序;

从所述滤波器组中删除排序在前的至少m+n-k个可删除滤波器。

可选的,所述添加与各个目标频率值相对应的目标滤波器至所述滤波器组中,包括:

将所述滤波器组中已有滤波器按照滤波器添加时间的先后顺序进行排序;

从第n+1个位置开始,添加与各个目标频率值相对应的目标滤波器。

可选的,在对各个啸叫频率点进行抑制处理之后,还包括:

判断所述音频帧的啸叫频率点与前一音频帧的啸叫频率点是否一一对应;

如果是,则输出啸叫处理后的音频帧;

如果否,则按照预设的平滑处理规则对所述音频帧进行平滑处理,并输出平滑处理之后的音频帧。

为达到上述目的,本发明实施例公开了一种啸叫检测装置,所述装置包括:

候选点获得模块,用于获得待检测音频帧在频域空间内的候选频率点;其中,所述候选频率点为:从所述待检测音频帧由时域空间变换至频域空间后得到的各个频率点中,基于各个频率点的功率值选取出的频率点;

参考点确定模块,用于按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点;

功率比计算模块,用于分别计算每个候选频率点与其对应的各个参考频率点之间的功率比值;

啸叫点判断模块,用于基于相对应的功率比值,分别判断每个候选频率点是否为啸叫频率点;

啸叫检测模块,用于当判断结果表明存在啸叫频率点时,确定所述待检测音频产生啸叫。

可选的,所述候选点获得模块,包括:

频率点获得子模块,用于将待检测音频帧从时域空间转换至频域空间内,并获得多个频率点;

功率值计算子模块,用于分别计算各个频率点的功率值;

功率值判断子模块,用于判断计算出的各个功率值中的最大值是否大于预设功率阈值;

候选点选取子模块,用于在所述功率值判断子模块的判断结果为大于时,按照功率值由大到小的顺序,依次从所述多个频率点中选取预设数量个候选频率点。

可选的,所述参考点确定模块,包括:

频率段确定子模块,用于确定每个候选频率点所属的频率段;其中,所述频率段为基于音频特性预先从音频全频带中划分得到的频率范围;

参考因子获得子模块,用于获得确定出的频率段对应的至少一个预设参考因子;其中,所述预设参考因子为针对各个频率段且用于确定参考频率点而预先设定的系数;

第一参考点确定子模块,用于根据每个候选频率点对应的频率值和所属频率段对应的预设参考因子,确定每个候选频率点各自对应的至少一个参考频率点。

可选的,所述参考点确定子模块,具体用于:

分别计算每个候选频率点对应的频率值和相对应的预设参考因子的乘积;

确定以所述乘积为频率值的频率点为参考频率点。

可选的,所述参考点确定模块,包括:

频率段确定子模块,用于确定每个候选频率点所属的频率段;其中,所述频率段为基于音频特性预先从音频全频带中划分得到的频率范围;

参考因子检测模块,用于检测所确定出的频率段是否存在至少一个预设参考因子;其中,所述预设参考因子为针对各个频率段且用于确定参考频率点而预先设定的系数;

第二参考点确定子模块,用于在所述参考因子检测模块的检测结果为存在时,根据第一候选频率点对应的频率值和所属频率段对应的预设参考因子,确定各个第一候选频率点各自对应的至少一个参考频率点,其中,所述第一候选频率点为属于对应有至少一个预设参考因子的频率段的候选频率点;

第三参考点确定子模块,用于在所述参考因子检测模块的检测结果为不存在时,将虚拟频率点确定为第二候选频率点所对应的参考频率点,其中,所述虚拟频率点的功率值为所述第二候选频率点所在频率段的平均功率,所述第二候选频率点为不属于对应有至少一个预设参考因子的频率段的候选频率点。

可选的,所述啸叫点判断模块,具体用于:

针对每一候选频率点,判断各自对应的各个功率比值是否均大于预设比值,如果是,则判定该候选频率点为啸叫频率点。

可选的,所述啸叫点判断模块,具体用于:

针对每一候选频率点,判断各自对应的各个功率比值是否均大于预设比值,如果是,则确定该候选频率点为疑似频率点,将上一音频帧中该候选频率点对应的统计值加1,并将加1后的值作为当前音频帧中该候选频率点对应的统计值,判断当前音频帧中该候选频率点对应的统计值是否大于预设次数,当判断结果为是时,判定该候选频率点为啸叫频率点,当判断结果为否时,将当前音频帧中该候选频率点对应的统计值清零;

其中,所述统计值为:用于统计该候选频率点被连续确定为疑似频率点的次数。

为达到上述目的,本发明实施例公开了一种啸叫抑制装置,所述装置包括:

啸叫点确定模块,用于当基于权利要求13所述的啸叫检测装置检测到音频帧产生啸叫时,确定所述音频帧的啸叫频率点;

频率值判断模块,用于判断所述啸叫频率点的频率值是否全部属于预设的滤波器组中已有滤波器对应的可用频率值;

第一抑制模块,用于在所述频率值判断模块的判断结果为是时,利用所述滤波器组中已有滤波器对各个啸叫频率点进行抑制处理;

第二抑制模块,用于在所述频率值判断模块的判断结果为否时,按照预设滤波器添加规则,在所述滤波器组中添加与各个目标频率值相对应的目标滤波器,并利用当前滤波器组中的滤波器对各个啸叫频率点进行抑制处理;其中,所述目标频率值为:所述啸叫频率点的频率值中除所述可用频率值外的频率值。

可选的,所述第二抑制模块,包括:

数量获得子模块,用于获得所述目标频率值的数量m;

数量判断子模块,用于判断所述数量m与所述滤波器组中已有滤波器数量n之和,是否大于所述滤波器组所允许设置滤波器的最大数量k;

第一滤波器添加子模块,用于在所述数量判断子模块的判断结果为是时,从所述滤波器组中删除至少m+n-k个可删除滤波器,并在所述滤波器组中添加与各个目标频率值相对应的目标滤波器;其中,所述可删除滤波器为:与所述啸叫点的频率值不同的频率值所对应的滤波器;

第二滤波器添加子模块,用于在所述数量判断子模块的判断结果为否时,添加与各个目标频率值相对应的目标滤波器至所述滤波器组中;

啸叫抑制子模块,用于利用当前滤波器组中的滤波器对各个啸叫频率点进行抑制处理。

可选的,所述第一滤波器添加子模块,具体用于:

在所述数量判断子模块的判断结果为是时,将所述滤波器组中已有滤波器按照滤波器添加时间的先后顺序进行排序;

从所述滤波器组中删除排序在前的至少m+n-k个可删除滤波器;

在所述滤波器组中添加与各个目标频率值相对应的目标滤波器。

可选的,所述第二滤波器添加子模块,具体用于:

在所述数量判断子模块的判断结果为否时,将所述滤波器组中已有滤波器按照滤波器添加时间的先后顺序进行排序;

从第n+1个位置开始,添加与各个目标频率值相对应的目标滤波器。

可选的,还包括:

音频帧判断模块,用于在对各个啸叫频率点进行抑制处理之后,判断所述音频帧的啸叫频率点与前一音频帧的啸叫频率点是否一一对应;

第一输出模块,用于在所述音频帧判断模块的判断结果为是时,输出啸叫处理后的音频帧;

第二输出模块,用于在所述音频帧判断模块的判断结果为否时,按照预设的平滑处理规则对所述音频帧进行平滑处理,并输出平滑处理之后的音频帧。

本发明实施例提供的一种啸叫检测方法及装置,在进行啸叫检测时,首先获得待检测音频帧在频域空间内的候选频率点,接着分别确定每个候选频率点各自对应的至少一个参考频率点,然后分别计算每个候选频率点与其对应的各个参考频率点之间的功率比值,并基于相对应的功率比值,分别判断每个候选频率点是否为啸叫频率点,最后当判断结果表明存在啸叫频率点时,确定待检测音频产生啸叫。应用本发明实施例提供的方案进行啸叫检测时,能够针对每一候选频率点确定至少一个与其对应的参考频率点,然后计算每个候选频率点与其对应的各个参考频率点的功率比值,避免了采用平均功率进行比较时导致的将低频部分的正常频率点误判为啸叫频率点的问题,提高了啸叫检测的准确率。

另外,基于所提供的啸叫检测方法及装置,本发明实施例还提供了一种啸叫抑制方法及装置,以简化对音频帧的啸叫现象的抑制处理,进而提高抑制处理的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种啸叫检测方法的流程示意图;

图2为本发明实施例提供的一种获得候选频率点的流程示意图;

图3为本发明实施例提供的一种确定参考频率点的流程示意图;

图4为本发明实施例提供的另一种确定参考频率点的流程示意图;

图5为本发明实施例提供的一种啸叫检测装置的结构示意图;

图6为本发明实施例提供的一种啸叫抑制方法的流程示意图;

图7为本发明实施例提供的一种添加目标滤波器的方法的流程示意图;

图8为本发明实施例提供的另一种啸叫抑制方法的流程示意图;

图9为本发明实施例提供的另一种啸叫抑制装置的结构示意图;

图10为本发明实施例提供的另一种啸叫抑制装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了提高啸叫检测的准确率,本发明实施例提供了一种啸叫检测方法及装置。

下面首先对本发明实施例所提供的一种啸叫检测方法进行详细介绍。

需要说明的是,本发明实施例所提供的一种啸叫检测方法的执行主体可以为一种啸叫检测装置,该啸叫检测装置可以为专门的程序软件,也可以为现有音频处理软件的功能插件。

如图1所示,为本发明实施例提供的一种啸叫检测方法,可以包括以下步骤:

s101:获得待检测音频帧在频域空间内的候选频率点。

其中,候选频率点为:从待检测音频帧由时域空间变换至频域空间后得到的各个频率点中,基于各个频率点的功率值选取出的频率点。

对于待检测音频帧而言,可以理解为是由多个频率点对应的功率值叠加而来的,因而在将待检测音频帧从时域空间变换至频域空间后,便可以得到构成待检测音频帧的各个频率点。

其中,获得待检测音频帧在频域空间内的候选频率点的具体实现方式存在多种,为了布局清楚,后续进行举例介绍。

s102:按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点。

需要强调的是,这里的参考频率点是针对每一个候选频率点而言的,并且每个候选频率点所对应的参考频率点并不一定是同一个频率点;而现有技术中提到根据各个频率点的功率值来计算全部频率点的平均功率,可以理解为,每个候选频率点均对应于一个参考频率点,且该参考频率点是一个以平均功率为功率值的虚拟频率点。另外,由于音频中的低频部分的功率值高且高频部分的功率值低,可见,仅以一个参考频率点来进行后续啸叫频率点的判断,容易出现啸叫频率点的误判,导致音频帧啸叫检测的准确率不高。因此,为了提高啸叫检测的准确率,本发明实施例中,按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点。

需要说明的是,按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点的具体实现方式存在多种,为了方案布局清楚,后续进行举例介绍。

s103:分别计算每个候选频率点与其对应的各个参考频率点之间的功率比值。

在确定出每个候选频率点各自对应的各个参考频率点后,可以分别计算每个候选频率点与其对应的各个参考频率点之间的功率比值,进而通过功率比值来确定各个候选频率点是否为啸叫频率点。

s104:基于相对应的功率比值,分别判断每个候选频率点是否为啸叫频率点。

在计算得到功率比值后,可以基于相对应的功率比值,分别判断每个候选频率点是否为啸叫频率点。

具体的,可以通过以下方式判断是否为啸叫频率点:

方式一:

(a)针对每一候选频率点,判断各自对应的各个功率比值是否均大于预设比值,如果是,执行(b);

(b)判定该候选频率点为啸叫频率点。

方式二:

(a)针对每一候选频率点,判断各自对应的各个功率比值是否均大于预设比值,如果是,执行(c);

(c)确定该候选频率点为疑似频率点,将上一音频帧中该候选频率点对应的统计值加1,并将加1后的值作为当前音频帧中该候选频率点对应的统计值,判断当前音频帧中该候选频率点对应的统计值是否大于预设次数,当判断结果为是时,判定该候选频率点为啸叫频率点,当判断结果为否时,将当前音频帧中该候选频率点对应的统计值清零。

其中,统计值为:用于统计该候选频率点被连续确定为疑似频率点的次数。

由方式二可见,方式二还可以对频率点被判断为啸叫频率点的情况进行监测,具体的,当该频率段与参考频率点的各个功率比值是均大于预设比值时,并不是直接确定其为啸叫频率点,而只是将该频率点确定为疑似频率点,并结合该音频帧的上一音频帧或前n帧音频帧的判断情况来确定其是否为啸叫频率点,这样可以排除掉由非啸叫原因所引起的功率比值大于预设比值的情况,从而提高了啸叫频率点判断的准确性。

需要说明的是,根据步骤s104可以对每个候选频率点来进行判断其是否为啸叫频率点,也就是,可以确定出全部的啸叫频率点,这样有利于在经过后续啸叫抑制处理后输出一个音质较好的音频帧。

s105:当判断结果表明存在啸叫频率点时,确定待检测音频产生啸叫。

需要说明的是,当根据s104中对每个候选频率点进行啸叫频率点判断的判断结果中,存在被判断为是啸叫频率点的候选频率点时,可以确定该待检测音频帧为产生啸叫的音频帧。

应用本发明实施例提供的方案进行啸叫检测时,能够针对每一候选频率点确定至少一个与其对应的参考频率点,然后计算每个候选频率点与其对应的各个参考频率点的功率比值,避免了采用平均功率进行比较时导致的将低频部分的正常频率点误判为啸叫频率点的问题,提高了啸叫检测的准确率。

具体的,获得待检测音频帧在频域空间内的候选频率点的具体实现方式存在多种,下面进行举例介绍。

一种实现方式中,如图2所示,可以通过以下步骤获得候选频率点:

s1011:将待检测音频帧从时域空间转换至频域空间内,并获得多个频率点。

其中,将待检测音频帧从时域空间转换至频率空间的方法为现有技术,实际应用中,本领域内的技术人员可以采用现有技术中所公开的方法实现该转换。

s1012:分别计算各个频率点的功率值。

s1013:判断计算出的各个功率值中的最大值是否大于预设功率阈值,若大于,执行s1014。

具体的,当判断结果为大于预设功率阈值时,表明该待检测音频帧中有可能产生了啸叫现象,需要进行后续步骤的检测;而当判断结果为不大于预设功率阈值时,表明该待检测音频帧并未产生啸叫现象,因而,在这种情况下可以将该待检测音频帧直接输出。

s1014:按照功率值由大到小的顺序,依次从多个频率点中选取预设数量个候选频率点。

需要说明的是,当将待检测音频帧从时域空间变换至频域空间后,可以得到该待检测音频帧所对应的多个频率分量,而啸叫现象的产生往往是由其中的一部分频率点而引起的,因此,本发明实施例提供的方案仅仅是从中选取了一部分频率点进行了检测,这样可以减少啸叫检测过程的工作量,提高检测效率。

还需要说明的是,本发明实施例并不需要对所选取的候选频率点的具体数量进行限定,本领域内的技术人员需要根据实际应用中的具体情况进行合理的设置。需要强调的是,所选取的候选频率点的数量要适当,不宜过小或过大,若数量过小,容易导致后续啸叫频率点检测不全,影响后续对产生啸叫的音频帧的抑制处理,如抑制处理后的音频帧仍然为产生啸叫的音频帧;而若数量过大,则往往需要对大量并未引起啸叫的频率点进行检测,容易导致啸叫检测过程的工作量大,影响检测效率。

需要强调的是,上述的获得待检测音频帧在频域空间内的候选频率点的具体实现方式仅仅作为示例,并不应该构成对本发明实施例的限定。

具体的,按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点的具体实现方式存在多种,下面进行举例介绍。

一种实现方式中,如图3所示,可以通过以下步骤确定参考频率点:

s1021:确定每个候选频率点所属的频率段。

其中,频率段为基于音频特性预先从音频全频带中划分得到的频率范围。

具体的,可以根据音频特性将音频全频带划分为:1-1000赫兹、1000-4000赫兹和4000-8000赫兹三个频率段。需要说明的是,这里仅仅是列举了一种频率段的具体划分方式而已,当然还可以有其他可行的划分方式,本发明实施例并不需要对频率段的具体划分方式进行限定,本领域内的技术人员可以根据实际应用中的具体情况进行合理的划分。

s1022:获得确定出的频率段对应的至少一个预设参考因子。

其中,预设参考因子为针对各个频率段且用于确定参考频率点而预先设定的系数。

需要说明的是,本发明实施例并不需要对各个频率段对应的预设参考因子的数量进行限定,也不需要对每个预设参考因子的具体数值进行限定,本领域内的技术人员需要根据实际应用中的具体情况来设置其数量和数值。

s1023:根据每个候选频率点对应的频率值和所属频率段对应的预设参考因子,确定每个候选频率点各自对应的至少一个参考频率点。

具体的,可以通过以下方式确定每个候选频率点各自对应的至少一个参考频率点:

(1)分别计算每个候选频率点对应的频率值和所属频率段对应的预设参考因子的乘积;

(2)确定以乘积为频率值的频率点为参考频率点。

下面以上述列举的频率段划分方式为例,对参考频率点的确定过程进行介绍。假设候选频率点p的频率值为400,各频率段对应的预设参考因子分别为:1-1000赫兹频率段,2;1000-4000赫兹频率段,1/2;4000-8000赫兹频率段,3。

显然,候选频率点p属于1-1000赫兹频率段,而该频率段设置了一个预设参考因子2,计算候选频率点p的频率值和该频率段对应的预设参考因子2的乘积为800,所确定的参考频率点为:频率值为800的频率点。

另一种实现方式中,如图4所示,可以通过以下步骤确定参考频率点:

s1021:确定每个候选频率点所属的频率段。

其中,所述频率段为基于音频特性预先从音频全频带中划分得到的频率范围。

s1024:检测所确定出的频率段是否存在至少一个预设参考因子,当检测结果为存在时,执行s1025,当检测结果为不存在时,执行s1026。

其中,所述预设参考因子为针对各个频率段且用于确定参考频率点而预先设定的系数。

需要说明的是,从音频全频带整体来看,具有低频部分的功率值高且高频部分的功率值低的特性,而依据音频特性对音频全频带进行频率段划分后,对于有些频率段而言,该频率段内的频率点的功率值相差并不大,也就是说,只有产生啸叫时该频率段内的频率点的功率值才会明显高于本频率段内的其他频率点的功率值,对于这种频率点的功率值相差不大的频率段而言,可以为该频率段内的各个候选频率点设置一个参考频率点即可,而该参考频率点可以是一个以该频率段的平均功率为功率值的虚拟参考点,也就是说,这种频率段可以不用设定预设参考因子。

s1025:根据第一候选频率点对应的频率值和所属频率段对应的预设参考因子,确定各个第一候选频率点各自对应的至少一个参考频率点。

其中,所述第一候选频率点为属于对应有至少一个预设参考因子的频率段的候选频率点。

s1026:将虚拟频率点确定为第二候选频率点所对应的参考频率点。

其中,所述虚拟频率点的功率值为所述第二候选频率点所在频率段的平均功率,所述第二候选频率点为不属于对应有至少一个预设参考因子的频率段的候选频率点。

下面仍以上述列举的频率段划分方式为例,对各个频率段对应的预设参考因子的设定情况进行下说明。

(1)1-1000赫兹频率段:

人们语音成分中最复杂的部分通常是位于该频率段内的,且相应的频率点的功率值也相对较大,通常该频率段的频率点往往容易被误判为啸叫频率点,根据经验值,该频率段对应的预设参考因子k可以设定为2和3。

(2)1000-4000赫兹频率段:

相比1-1000赫兹频率段而言,该频率段内相应的频率点的功率值相对较小,通常只有啸叫频率点的功率值会高于1-1000赫兹频率段的谐波功率值,因此,根据经验值,该频率段对应的预设参考因子k可以设定为1/2和/1/3。

(3)4000-8000赫兹频率段:

一般的,当待检测音频帧未产生啸叫时,该频率段内相应频率点的功率值往往相差不大,而当待检测音频帧产生啸叫时,该频率段内的啸叫频率点的功率值会比本频率段内的其他频率点的功率值大很多,因此,该频率段可以设置一个虚拟频率点,且该频率点的功率值为4000-8000赫兹频率段的平均功率。

需要强调的是,上述所给出的确定参考频率点的具体实现方式仅仅作为示例,并不应该构成对本发明实施例的限定。

相应于上述的啸叫检测方法,本发明实施例还提供了一种啸叫检测装置。

下面再对本发明实施例提供的一种啸叫检测装置进行下介绍。

如图5所示,为本发明实施例提供的一种啸叫检测装置,该装置可以包括以下模块:

候选点获得模块210,用于获得待检测音频帧在频域空间内的候选频率点。

其中,候选频率点为:从待检测音频帧由时域空间变换至频域空间后得到的各个频率点中,基于各个频率点的功率值选取出的频率点。

参考点确定模块220,用于按照预设的参考频率点确定规则,分别确定每个候选频率点各自对应的至少一个参考频率点。

功率比计算模块230,用于分别计算每个候选频率点与其对应的各个参考频率点之间的功率比值。

啸叫点判断模块240,用于基于相对应的功率比值,分别判断每个候选频率点是否为啸叫频率点。

啸叫检测模块250,用于当判断结果表明存在啸叫频率点时,确定待检测音频产生啸叫。

应用本发明实施例提供的方案进行啸叫检测时,能够针对每一候选频率点确定至少一个与其对应的参考频率点,然后计算每个候选频率点与其对应的各个参考频率点的功率比值,避免了采用平均功率进行比较时导致的将低频部分的正常频率点误判为啸叫频率点的问题,提高了啸叫检测的准确率。

具体的,候选点获得模块210,包括:

频率点获得子模块,用于将待检测音频帧从时域空间转换至频域空间内,并获得多个频率点;

功率值计算子模块,用于分别计算各个频率点的功率值;

功率值判断子模块,用于判断计算出的各个功率值中的最大值是否大于预设功率阈值;

候选点选取子模块,用于在功率值判断子模块的判断结果为大于时,按照功率值由大到小的顺序,依次从多个频率点中选取预设数量个候选频率点。

具体的,参考点确定模块220,包括:

频率段确定子模块,用于确定每个候选频率点所属的频率段。

其中,频率段为基于音频特性预先从音频全频带中划分得到的频率范围。

参考因子获得子模块,用于获得确定出的频率段对应的至少一个预设参考因子。

其中,预设参考因子为针对各个频率段且用于确定参考频率点而预先设定的系数。

第一参考点确定子模块,用于根据每个候选频率点对应的频率值和所属频率段对应的预设参考因子,确定每个候选频率点各自对应的至少一个参考频率点。

具体的,第一参考点确定子模块,具体用于:

分别计算每个候选频率点对应的频率值和相对应的预设参考因子的乘积;

确定以乘积为频率值的频率点为参考频率点。

具体的,参考点确定模块220,包括:

频率段确定子模块,用于确定每个候选频率点所属的频率段。

其中,频率段为基于音频特性预先从音频全频带中划分得到的频率范围。

参考因子检测模块,用于检测所确定出的频率段是否存在至少一个预设参考因子。

其中,预设参考因子为针对各个频率段且用于确定参考频率点而预先设定的系数。

第二参考点确定子模块,用于在参考因子检测模块的检测结果为存在时,根据第一候选频率点对应的频率值和所属频率段对应的预设参考因子,确定各个第一候选频率点各自对应的至少一个参考频率点。

其中,第一候选频率点为属于对应有至少一个预设参考因子的频率段的候选频率点。

第三参考点确定子模块,用于在参考因子检测模块的检测结果为不存在时,将虚拟频率点确定为第二候选频率点所对应的参考频率点。

其中,虚拟频率点的功率值为第二候选频率点所在频率段的平均功率,第二候选频率点为不属于对应有至少一个预设参考因子的频率段的候选频率点。

具体的,啸叫点判断模块240,具体用于:

针对每一候选频率点,判断各自对应的各个功率比值是否均大于预设比值,如果是,则判定该候选频率点为啸叫频率点。

具体的,啸叫点判断模块240,具体用于:

针对每一候选频率点,判断各自对应的各个功率比值是否均大于预设比值,如果是,则确定该候选频率点为疑似频率点,将上一音频帧中该候选频率点对应的统计值加1,并将加1后的值作为当前音频帧中该候选频率点对应的统计值,判断当前音频帧中该候选频率点对应的统计值是否大于预设次数,当判断结果为是时,判定该候选频率点为啸叫频率点,当判断结果为否时,将当前音频帧中该候选频率点对应的统计值清零;

其中,统计值为:用于统计该候选频率点被连续确定为疑似频率点的次数。

另外,为了简化对音频帧的啸叫现象的抑制处理,进而提高抑制处理的效率,基于上述实施例所提供的啸叫检测方法及装置,本发明实施例还提供了一种啸叫抑制方法及装置。

下面首先对本发明实施例所提供的一种啸叫抑制方法进行介绍。

需要说明的是,本发明实施例所提供的一种啸叫抑制方法的执行主体可以为一种啸叫抑制装置,该啸叫抑制装置可以为专门的程序软件,也可以为现有音频处理软件的功能插件。

如图6所示,为本发明实施例提供的一种啸叫抑制方法,可以包括以下步骤:

s301:当检测到音频帧产生啸叫时,确定音频帧的啸叫频率点。

具体的,本实施例中,通过上述实施例中的啸叫检测方法检测到音频帧产生啸叫时,可以确定音频帧的啸叫频率点。

s302:判断啸叫频率点的频率值是否全部属于预设的滤波器组中已有滤波器对应的可用频率值,如果是,执行步骤s303,如果否,执行步骤s304。

其中,滤波器组是一个由若干个针对不同频率值的滤波器所组成的整体,滤波器组中的每一个滤波器能够对音频帧中的具有相应频率值的频率点进行抑制,从而实现对产生啸叫的音频帧的抑制。

s303:利用滤波器组中已有滤波器对各个啸叫频率点进行抑制处理。

s304:按照预设滤波器添加规则,在滤波器组中添加与各个目标频率值相对应的目标滤波器,并利用当前滤波器组中的滤波器对各个啸叫频率点进行抑制处理。

其中,目标频率值为:啸叫频率点的频率值中除可用频率值外的频率值。

另外,步骤s302-s304的目的在于:检测该滤波器组中是否存在与所确定的啸叫频率点相对应的滤波器,如果有,则可以直接利用已有的滤波器进行抑制处理,如果没有,则需要在该预设滤波器中添加相对应的滤波器。

一种实现方式中,如图7所示,可以通过以下步骤添加目标滤波器:

s3041:获得目标频率值的数量m。

需要说明的是,这里提及的目标频率值的数量m,其实也代表了需要在预设滤波器组中添加的滤波器的数量。

s3042:判断数量m与滤波器组中已有滤波器数量n之和,是否大于滤波器组所允许设置滤波器的最大数量k;如果是,执行步骤s3043,如果否,执行步骤s3044。

通常,在对音频帧进行抑制处理时,其实是将音频帧逐一输入至各个滤波器的,每个滤波器可以对该滤波器的频率值所对应的频率点进行抑制处理,可以理解的是,当滤波器组中的滤波器的数量越多,音频帧所需要通过的滤波器的数量也越多,相应的,音频帧啸叫抑制处理的时间也越长。

因此,为了保证音频帧抑制处理时的效率,通常需要对滤波器组所能够容纳的滤波器的数量进行限定,也就是该步骤中提到的滤波器组所允许设置滤波器的最大数量k。需要说明的是,本发明实施例并不需要对滤波器组所允许设置滤波器的最大数量k的具体数值进行限定,本领域内的技术人员可以根据实际应用中的具体情况进行合理的设置。

s3043:从滤波器组中删除至少m+n-k个可删除滤波器,并在滤波器组中添加与各个目标频率值相对应的目标滤波器。

其中,可删除滤波器为:与啸叫点的频率值不同的频率值所对应的滤波器。

举例而言,假设:目标频率值的数量m=8,滤波器组中已有滤波器数量n=10,而滤波器组所允许设置滤波器的最大数量k=15,根据步骤s3043可知,需要从滤波器组中删除至少(m+n-k)=(8+10-15)=3个可删除滤波器。

具体的,可以通过以下步骤从删除至少m+n-k个可删除滤波器:

(1)将滤波器组中已有滤波器按照滤波器添加时间的先后顺序进行排序。

(2)从滤波器组中删除排序在前的至少m+n-k个可删除滤波器。

需要说明的是,上述步骤(1)至(2)中提及的删除可删除滤波器的方式仅仅是举例说明,当然还可以有其他可行的实现方式,例如从可删除滤波器中随机删除至少m+n-k个也是可行的。

s3044:添加与各个目标频率值相对应的目标滤波器至滤波器组中。

具体的,可以通过以下步骤添加目标滤波器:

(1)将滤波器组中已有滤波器按照滤波器添加时间的先后顺序进行排序。

(2)从第n+1个位置开始,添加与各个目标频率值相对应的目标滤波器。

需要说明的是,上述步骤(1)至(2)中提及的添加目标滤波器的方式仅仅是举例说明,当然还可以有其他可行的实现方式,例如将目标滤波器随机添加至滤波器组中。

由以上可见,在应用本发明实施例提供方案进行啸叫抑制时,能够对用于进行啸叫抑制的滤波器进行动态的更新,从而使得滤波器组中的滤波器数量不至于太大,从而有利于提高音频帧啸叫抑制的效率。

如图8所示,在图5所示的啸叫抑制方法的基础之上,在对各个啸叫频率点进行抑制处理之后,还可以包括以下步骤:

s305:判断音频帧的啸叫频率点与前一音频帧的啸叫频率点是否一一对应,如果是,执行步骤s306,如果否,执行步骤s307。

举例而言,假设1:当前音频帧的啸叫频率点q的频率值为500,且前一音频帧中频率值为500的频率点也被判断为啸叫频率点,则表明当前音频帧的啸叫频率点q与前一音频帧的啸叫频率点是对应的;假设2:当前音频帧的啸叫频率点q的频率值为500,且前一音频帧中频率值为500的频率点未被判断为啸叫频率点,则表明当前音频帧的啸叫频率点q与前一音频帧的啸叫频率点是不对应的。

s306:输出啸叫处理后的音频帧。

s307:按照预设的平滑处理规则对音频帧进行平滑处理,并输出平滑处理之后的音频帧。

需要说明的是,一个音频数据流在经过采样之后可得到多个采样点,而通常,通常,按照音频帧所包含的采样点的数量,可以将一个音频流划分为多个音频帧,举例而言,音频数据流d经过采样后得到80个采样点,当一个音频帧包含40个采样点,该音频数据流d可以划分为两个音频帧v1和v2,且分别包含1-40、41-80个采样点。

相应的,假设音频帧v2为当前音频帧,在对音频帧v2进行平滑处理时,具体的,当对音频帧v2中的第i个采样点进行处理时,可以将采样点i之前的x个采样点的平均采样值来作为第i个采样点的采样值。例如,假设x为10,当对音频帧v2中的第1个采样点进行平滑时,可以采用音频帧v1中的第32-40个采样点和v2中的第1个采样点的平均采样值来作为音频帧v2中的第1个采样点的采样值;当对音频帧v2中的第5个采样点进行平滑时,可以采用音频帧v1中的第36-40个采样点和v2中的第1-5个采样点的平均采样值来作为音频帧v2中的第5个采样点的采样值。

为了提高音频帧处理速度,可以仅对音频帧中的第i个采样点之前的采样点进行平滑处理。还需要说明的是,本领域内的技术人员需要根据实际应用中的具体情况进行合理的设置。

还需要说明的是,在对当前音频帧进行平滑处理时还可以采用现有技术中已公开的平滑处理方法进行处理,本发明实施例并不需要对平滑处理的具体方式进行限定,任何可行的实现方式均可以应用于本发明。

需要说明的是,在音频帧的啸叫频率点与前一音频帧的啸叫频率点不是一一对应的情况下,当音频帧经过啸叫抑制处理后直接输出时,容易出现音频帧之间的数据不连续,当音频帧入耳时容易给人造成卡顿的感觉。因此,应用本发明实施例提供的啸叫抑制方法能够对音频帧进行帧间的平滑处理,从而达到提升音质的目的。

基于上述实施例所提供的啸叫抑制方法,本发明实施例所提供的啸叫抑制装置,如图9所述,可以包括以下模块:

啸叫点确定模块410,用于检测到音频帧产生啸叫时,确定音频帧的啸叫频率点。

具体的,本实施例中,通过上述实施例中的啸叫检测装置检测到音频帧产生啸叫时,可以确定音频帧的啸叫频率点。

频率值判断模块420,用于判断啸叫频率点的频率值是否全部属于预设滤波器组中已有滤波器对应的可用频率值。

第一抑制模块430,用于在频率值判断模块的判断结果为是时,利用滤波器组中已有滤波器对各个啸叫频率点进行抑制处理。

第二抑制模块440,用于在频率值判断模块的判断结果为否时,按照预设滤波器添加规则,在滤波器组中添加与各个目标频率值相对应的目标滤波器,并利用当前滤波器组中的滤波器对各个啸叫频率点进行抑制处理。

其中,目标频率值为:啸叫频率点的频率值中除可用频率值外的频率值。

由以上可见,在应用本发明实施例提供方案进行啸叫抑制时,能够对用于进行啸叫抑制的滤波器进行动态的更新,从而使得滤波器组中的滤波器数量不至于太大,从而有利于提高音频帧啸叫抑制的效率。

具体的,第二抑制模块440,包括:

数量获得子模块,用于获得目标频率值的数量m;

数量判断子模块,用于判断数量m与预设滤波器组中已有滤波器数量n之和,是否大于滤波器组所允许设置滤波器的最大数量k;

第一滤波器添加子模块,用于在数量判断子模块的判断结果为是时,从滤波器组中删除至少m+n-k个可删除滤波器,并在滤波器组中添加与各个目标频率值相对应的目标滤波器。

其中,可删除滤波器为:与啸叫点的频率值不同的频率值所对应的滤波器。

第二滤波器添加子模块,用于在数量判断子模块的判断结果为否时,添加与各个目标频率值相对应的目标滤波器至滤波器组中。

啸叫抑制子模块,用于利用当前滤波器组中的滤波器对各个啸叫频率点进行抑制处理。

具体的,第一滤波器添加子模块,具体用于:

在数量判断子模块的判断结果为是时,将滤波器组中已有滤波器按照滤波器添加时间的先后顺序进行排序;

从滤波器组中删除排序在前的至少m+n-k个可删除滤波器;

在滤波器组中添加与各个目标频率值相对应的目标滤波器。

具体的,第二滤波器添加子模块,具体用于:

在数量判断子模块的判断结果为否时,将滤波器组中已有滤波器按照滤波器添加时间的先后顺序进行排序;

从第n+1个位置开始,添加与各个目标频率值相对应的目标滤波器。

如图10所示,在图9所示的啸叫抑制装置的基础之上,还可以包括以下模块:

音频帧判断模块450,用于在对各个啸叫频率点进行抑制处理之后,判断音频帧的啸叫频率点与前一音频帧的啸叫频率点是否一一对应;

第一输出模块460,用于在音频帧判断模块的判断结果为是时,输出啸叫处理后的音频帧;

第二输出模块470,用于在音频帧判断模块的判断结果为否时,按照预设的平滑处理规则对频率值不对应的啸叫频率点进行平滑处理,并输出平滑处理之后的音频帧。

需要说明的是,在音频帧的啸叫频率点与前一音频帧的啸叫频率点不是一一对应的情况下,当音频帧经过啸叫抑制处理后直接输出时,容易出现音频帧之间的数据不连续,当音频帧入耳时容易给人造成卡顿的感觉。因此,应用本发明实施例提供的啸叫抑制方法能够对音频帧进行帧间的平滑处理,从而达到提升音质的目的

对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称的存储介质,如:rom/ram、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!