一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种语音啸叫检测算法

2022-08-02 23:25:25 来源:中国专利 TAG:


1.本发明涉及电子信息领域,涉及到一种新的语音啸叫检测算法,通过图像处理的方法精准检测语音中的啸叫频率,以便后续啸叫信号的去除。


背景技术:

2.声音信号首先从麦克风处拾入,经过扩声系统将声音放大后由扬声器放出,经过各种障碍物的反射后又重新被麦克风收入,形成一个闭合的环路。当传声器对某些频率点的拾音灵敏度过高时,声音在这些频点的增益就为正值,即是一个正反馈过程。当经过多次这样的循环时,声音信号不断放大,在某些频点的声音强度超过了增益上限,使其发生自激振荡,从而形成啸叫。严重的话会影响声音的质量和清晰度,所以对于啸叫的抑制是必要的。
3.啸叫信号也有自身的特点,由于啸叫信号的幅值很大,所以从时域谱中很难看出其特征。但事实上啸叫信号是一个纯净的正弦波,所以如果分析其时频关系图就能发现,在图像中可以用人眼清晰地区分出来。所以对啸叫信号的检测又有了一个新的想法,是否可以通过图像处理的方法将啸叫信号频率点检测出来。本发明提出一种声音转图像的方法将啸叫信号转换成时频关系图后,用图像的方法检测啸叫频率点。精准检测到啸叫频率后,后续可以通过陷波滤波器对其进行去除,得到无啸叫的语音,提升语音质量。实验表明,该方法实现简单,有良好的应用推广价值。


技术实现要素:

4.为了解决上述技术问题,本发明提供一种新的语音啸叫检测算法,首先从对讲机麦克风采集到的语音信号进行短时傅里叶变换得到时频关系图,其次通过图像处理的方法检测到语音中的啸叫频率。
5.一种语音啸叫检测算法,其特征在于:
6.(1)获取语音。
7.读取对讲机的麦克风信号,将此信号作为待测信号,目的为检测出此信号中混有的啸叫信号,以提升语音质量。
8.(2)语音信号向图像的转化
9.对音频数据做分帧加窗的预处理操作,随后对其作短时傅里叶变换得到其时频关系图像,在图像中可以清晰地看出啸叫信号存在的位置,所有可以通过图像处理的方法检测啸叫信号。
10.(3)图像处理
11.对(2)中的图像首先进行灰度化处理,其次进行二值化处理,接着对二值化图像进行形态学的闭运算处理,然后对图像再进行细化处理。最后获取图像中直线的纵坐标来得到啸叫频率值,可通过端点检测的方法找到图像中每条直线的端点,此端点的纵坐标即为啸叫点的坐标。
12.更具体的,步骤1:灰度化。根据时频关系图可以得出,图像中能量的颜色以绿色g和蓝色b为主,但是当能量过大时,能量中的黄色也是必须的,黄颜色是红色r和绿色调配而成。所以本文求灰度的方法采取平均值法。平均值法为计算彩色图像每个像素点三通道的三个值的平均值作为该像素点的灰度值gray,数学表达式如下:
13.gray=(r g b)/3
14.图像灰度化后,由于需要获得精确的坐标信息,所以要去除图像中的题目、坐标轴、坐标轴代表的值及其单位、坐标轴刻度、能量刻度,只保留有用的图像信息。
15.步骤2:二值化。图像二值化方法采用了固定阈值q的方式,图像中像素灰度值超过q时,将其像素值取1,说明像素为白色,为有用信息。图像中像素灰度值未超过q时,将其像素值取0,说明像素为黑色,为无用信息。阈值q根据多次测试,最终设置为180。
16.步骤3:形态学闭运算。先膨胀运算,再腐蚀运算。首先设置一个3x3的结构元素,其中第二行第二个元素为结构元素的中心点,将中心点及其相邻的上下左右四个元素的值置为1,剩下元素值置为0。首先进行膨胀操作,将结构元素的中心点依次放到图像中每一个非零元素的像素点上,若原图的某个位置也被结构元素覆盖,而且此像素值不与中心点相同,那么就会将此像素值修改为中心点对应点的像素值。腐蚀操作和膨胀操作是一个相反的过程,将结构元素的中心点依次放到图像中的每一个非零值像素的位置,若此时结构元素不为0的部分所覆盖的原图像像素值都不为0,则保留中心点对应的图像像素,否则将此像素的值置为0。
17.步骤4:图像细化。图像细化的算法选用zhang并行细化算法。zhang并行细化方法如下:
18.①
使用8-邻域的定义方式,设有一个3x3的邻域,按照从左到右的顺序标记为:第一行:p9、p2、p3;第二行:p8、p1、p4;第三行:p7、p6、p5。
19.②
将此邻域的中心p1覆盖在图像中的非零像素点上,进行第一次是否删除p1像素的判断。需要满足4个条件:
20.i:p1像素8-邻域内p2-p9像素值为0的数目n满足2≤n≤6;
21.ii:p1像素的8-邻域内p2-p9按顺时针顺序前后两个像素值为1和0的对数a满足a(p1)=1;
22.iii:p2*p4*p6=0;p2、p4、p6三个像素值的乘积为0。
23.iv:p4*p6*p8=0。p4、p6、p8三个像素值的乘积为0。
24.如果满足上述条件,图像中此点就为待删除点。随后遍历全部的白色像素点,统一将这些满足的像素点的值置为0。
25.③
进行第二次是否删除p1像素的判断。同样需要4个条件,其中两个条件和

中i,ii相同。其余两个条件如下:
26.i:p2*p4*p8=0;即p2、p4、p8三个像素值的乘积为0。
27.ii:p2*p6*p8=0。即p2、p6、p8三个像素值的乘积为0。
28.遍历全部的白色像素点,随后将满足条件的点统一删除。
29.④
重复
②③
两个操作,直到所有满足条件的白色像素点去除。
30.步骤5:端点检测。得到细化图像后首先需要建立一个圆形的邻域,半径设置为r,r的取值有很多种,但是取大了会使误差增大,取小了会使得端点和非端点的差异不明显,不
方便区分,所以r的取值一般为3或4。接着遍历图像中像素值为1的点,找到此类像素点后,将圆形邻域的中心与该像素点重合,统计圆形邻域覆盖的图像中像素值为1的像素点个数。当总个数的值低于r时,就会认为此点为端点。最后将所有符合条件的点标记出来,并记录这些点的纵坐标。
31.(4)计算啸叫频率
32.由于一般人发声的最高频率为4000hz,在通信设备中混有的啸叫频率也不会超过此值,所以图像中纵轴的最大值为4000。所以通过端点检测得到的纵坐标y,根据轴的比例可求出具体的啸叫频率值,数学表达式如下:
[0033][0034]
其中:f
howling
为求得的啸叫频率,height为图像的高度,y为端点纵坐标。
[0035]
本方法将设备麦克风采集的信号送入算法进行分析,对信号进行短时傅里叶变换,得到语音的时频关系图,再对图像通过图像处理的方法检测到语音中混有的啸叫频率点,为了后续的去除,提升语音质量。使用c 语言编写并成功实现了啸叫频率点检测。
附图说明
[0036]
图1:本发明的流程图;
[0037]
图2:8-邻域定义方式。
具体实施方式
[0038]
(1)获取语音信号模块。
[0039]
此模块主要为读取对讲机的麦克风信号,将此信号作为待测信号,目的为检测出此信号中混有的啸叫信号,以提升语音质量。
[0040]
(2)语音转图像模块
[0041]
此模块主要将获取到的语音信号通过短时傅里叶变换,得到时频关系图。从时频关系图中可以获取到啸叫信号的特征,从而使得后续可更精准检测到啸叫频率。
[0042]
(3)图像处理模块
[0043]
本模块经过一系列的图像操作:灰度化、二值化、形态学闭运算、细化、端点检测,从最初的时频关系图最终得到啸叫频率所对应的频率点。
[0044]
更具体的,步骤1:图像灰度化选择平均值法,公式如下:
[0045]
gray=(r g b)/3
[0046]
将图像中的像素全转化为了0-255之间的数值。
[0047]
步骤2:图像二值化方法采用了固定阈值q的方式,图像中像素灰度值超过q时,将其像素值取1,说明像素为白色,为有用信息。图像中像素灰度值未超过q时,将其像素值取0,说明像素为黑色,为无用信息。阈值q根据多次测试,最终设置为180。
[0048]
步骤3:闭运算操作是先对图像进行膨胀操作,再进行腐蚀操作。先膨胀运算,再腐蚀运算。首先设置一个3x3的结构元素,其中第二行第二个元素为结构元素的中心点,将中心点及其相邻的上下左右四个元素的值置为1,剩下元素值置为0。首先进行膨胀操作,将结构元素的中心点依次放到图像中每一个非零元素的像素点上,若原图的某个位置也被结构
元素覆盖,而且此像素值不与中心点相同,那么就会将此像素值修改为中心点对应点的像素值。腐蚀操作和膨胀操作是一个相反的过程,将结构元素的中心点依次放到图像中的每一个非零值像素的位置,若此时结构元素不为0的部分所覆盖的原图像像素值都不为0,则保留中心点对应的图像像素,否则将此像素的值置为0。
[0049]
步骤4:此步骤是将图像中的每个线条的宽度从之前的多像素变为单像素的一个过程。使用到了zhang并行细化算法。算法如下:
[0050]

使用8-邻域的定义方式,设有一个3x3的邻域,按照从左到右的顺序标记为:第一行:p9、p2、p3;第二行:p8、p1、p4;第三行:p7、p6、p5。
[0051]

将此邻域的中心p1覆盖在图像中的非零像素点上,进行第一次是否删除p1像素的判断。需要满足4个条件:
[0052]
i:p1像素8-邻域内p2-p9像素值为0的数目n满足2≤n≤6;
[0053]
ii:p1像素的8-邻域内p2-p9按顺时针顺序前后两个像素值为1和0的对数a满足a(p1)=1;
[0054]
iii:p2*p4*p6=0;即p2、p4、p6三个像素值的乘积为0。
[0055]
iv:p4*p6*p8=0。即p4、p6、p8三个像素值的乘积为0。
[0056]
如果满足上述条件,图像中此点就为待删除点。随后遍历全部的白色像素点,统一将这些满足的像素点的值置为0。
[0057]

进行第二次是否删除p1像素的判断。同样需要4个条件,其中两个条件和

中i,ii相同。其余两个条件如下:
[0058]
i:p2*p4*p8=0;即p2、p4、p8三个像素值的乘积为0。
[0059]
ii:p2*p6*p8=0。即p2、p6、p8三个像素值的乘积为0。
[0060]
遍历全部的白色像素点,随后将满足条件的点统一删除。
[0061]

重复
②③
两个操作,直到所有满足条件的白色像素点去除。
[0062]
步骤5:端点检测。得到细化图像后首先需要建立一个圆形的邻域,半径设置为r,r的取值有很多种,但是取大了会使误差增大,取小了会使得端点和非端点的差异不明显,不方便区分,所以r的取值一般为3或4。接着遍历图像中像素值为1的点,找到此类像素点后,将圆形邻域的中心与该像素点重合,统计圆形邻域覆盖的图像中像素值为1的像素点个数。当总个数的值低于r时,就会认为此点为端点。最后将所有符合条件的点标记出来,并记录这些点的纵坐标。
[0063]
(4)计算啸叫频率
[0064]
由于一般人发声的最高频率为4000hz,在通信设备中混有的啸叫频率也不会超过此值,所以图像中纵轴的最大值为4000。所以通过端点检测得到的纵坐标y,根据轴的比例可求出具体的啸叫频率值,数学表达式如下:
[0065][0066]
其中:f
howling
为求得的啸叫频率,height为图像的高度,y为端点纵坐标。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献