语音信号中冲激性噪声的去除方法与流程

文档序号:18457977发布日期:2019-08-17 01:46阅读:750来源:国知局
语音信号中冲激性噪声的去除方法与流程

本发明涉及语音去噪技术,具体涉及语音信号中冲激性噪声的去除方法。



背景技术:

无线电电磁频谱管控是经济生产及安全防范中的重要内容,由于无线电广播技术自身的开放性,所有有发射需求的用户,只需要占据特定的频段,即可通过发射信号进行广播。因此,时常有出于不同目的用户,在批准发射的频率之外,擅自占据频段进行广播发射,俗称“黑广播”。黑广播主要以售卖假冒伪劣产品居多,严重扰乱经济秩序;或者是扰乱正常电子通讯的运转;某些情况下甚至会干扰关键性通讯设备,引发严重的安全隐患。因此,进行有效的无线电电磁频谱管控,是一件意义重大的课题。传统的无线电电磁频谱管控,主要是基于人工收听并识别的方法,具有成本高、效率低、操作人员疲劳易引发失误等缺点;随着人工智能的发展,采用人工智能技术来识别黑广播的方法也开始进入研究,但是,由于广播通常对音质没有过高要求,所以广播录音通常噪声很大,比如电流杂音、外界环境声音、说话者语气词等。对广播录音进行关键词的识别得到的结果准确率很低、误识率较高。

在去除录音信号中的冲激性噪声方面,传统的中值滤波的做法是在滑动窗口内对中心值和周围的其他所有值进行排序,得到一个中间值,以该中位数直接来替换掉原中心值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。但是如果语音中某一段内出现高密度脉冲干扰,这样在该区域滑动窗口内的中位数会受到污染,进而导致滤波不够彻底,导致广播录音信号中的冲激性噪声不能被彻底的去除。



技术实现要素:

本发明目的在于解决语音中某一段内出现高密度脉冲干扰时,传统中值滤波法滤波过程中滑动窗口内的中位数会受到污染,进而导致滤波不够彻底的问题,提供了语音信号中冲激性噪声的去除方法,通过先检测用来替换的中位数是否受到污染,如受到污染用左临近值代替受脉冲干扰污染后中位数的方法;可以更有效的去除语音段中的冲激性噪声。

本发明通过下述技术方案实现:

语音信号中冲激性噪声的去除方法,包括以下步骤:

步骤一、对含有普通话的待处理语音段进行分帧,得到分帧后的语音时域序列yi(n),i=0,1,2,…n-1,n表示帧数;

步骤二、根据步骤一中分帧后的待处理语音段建立滑动窗口s(z),z=0、1、2…、z,z为窗口大小;

步骤三、将该滑动窗口s(z)沿步骤一得到的语音时域序列yi(n)方向进行滑动;初始时z值为0,每移动一次滑动窗口s(z),z值加1;

步骤四、每次移动后,定义当前窗口内的语音时域序列段为yi,j(n),对窗口内语音时域序列段yi,j(n)求差分序列gi,j(n);i表示在第i帧内,j表示在该帧的第j个采样点;

步骤五、找到各个窗口的差分序列gi,j(n),通过差分序列gi,j(n)找到含有离群点的窗口并求出这些窗口内的离群点gi,out;

步骤六、分别对含有离群点窗口中的各个离群点gi,out进行排序,找出各自窗口中离群点gi,out的绝对值最大的点max{gi,out},用各自窗口中的绝对值最大离群点max{gi,out}与原语音时域序列yi(n)对应位置相加即可求出其对应窗口中该点的语音时域序列值yi,maxout(n),即语音冲激值;

步骤七、针对含有离群点的窗口,求出各自窗口内所有点的语音时域序列值yi,out(n)并进行排序,求各自窗口内语音时域序列值yi,out(n)的中位数yi,med(n),在各自窗口内比较冲激值yi,maxout(n)与中位数yi,med(n)的大小;

若语音冲激值yi,maxout(n)大于中位数yi,med(n)则中位数yi,med(n)可靠,用该中位数yi,med(n)替换该窗口内的中心值;

若语音冲激值yi,maxout(n)小于中位数yi,med(n)则中位数yi,med(n)不可靠,用中位数yi,med(n)的左临近值yi,medleft(n)替换该窗口内的中心值;

得到新的语音时域序列yi(n)'。

在去除录音信号中的冲激性噪声方面,传统的中值滤波的做法是在滑动窗口内对中心值和周围的其他所有值进行排序,得到一个中间值(中位数),以该中位数直接来替换掉原中心值,它是一种非线性的平滑法,对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。但是如果语音中某一段内出现高密度脉冲干扰,这样在该区域滑动窗口内的中位数会受到污染,进而导致滤波不够彻底,导致广播录音信号中的冲激性噪声不能被彻底的去除。发明人根据传统的中值滤波法所存在的缺点出发,针对上述问题提出了一种新的去除冲激性噪声的方法:主要是通过检测语音差分序列的离群点来判断脉冲干扰点存在的位置,再通过比较中位数与脉冲干扰点的能量值大小来判定中位数是否可靠,当判定中位数受脉冲干扰污染后便舍弃该中位数,用它的左临近值代替中位数;当判定中位数符合要求时便用来替换该滑动窗口内原中心值。因为对于一段广播录音,由于其具有不同的状态,含中文普通话、各种噪声、背景音乐等几种不同声音类别,所以不能一概而论,要在去噪前要先对其进行分段处理,再判定语音段是否含有普通话;由于我们去噪的目的是进行后续的关键词识别,因此我们只需要对含普通话语音段做去噪处理,不含普通话语音段则不做处理;由于分段后一段语音信号整体上看不是平稳的,但是在局部上可以看作是平稳的,在后期的语音处理中需要输入的是平稳信号,所以要对整段语音信号分帧,也就是将含普通话语音段切分成很多的小段,每个小段中的信号可以看成是平稳的,对每个小段进行一定频率的采样,通常为8jhz、16jhz等,再将该小段中的所有采样点集合成一个观测单位,称为帧,语音去噪的单位就是帧,这里定义该小段中采样点的个数为n;通常情况下n的值为256或512,涵盖的时间约为20-30ns,所以不同的程序中一帧的长度不一样。由于分帧后,每一帧的起始段和末尾端会出现不连续的地方,所以分帧越多与原始信号的误差也就越大,加窗就是为了解决这个问题,使分帧后的信号变得连续,每一帧就会表现出周期函数的特征,加窗的目的就是一次仅处理窗中的数据,因为实际的语音信号是很长的,我们不能也不必对非常长的数据进行一次性处理,故而在语音信号处理中采用了加汉明窗的方式,因为加上汉明窗,只有中间的数据体现出来了,两边的数据信息丢失了,所以在移窗时,移动1/3或1/2窗,这样被前一帧或二帧丢失的数据又重新得到了体现;在进行完上述准备工作之后便着手于去除冲激性噪声了,在传统的中值滤波法的基础上,增加了步骤五、步骤六和步骤七,通过检测语音时域序列yi(n)中的离群点来判断脉冲干扰点存在的位置,再通过比较中位数与脉冲干扰点的能量值大小来判定中位数是否可靠,当判定中位数受脉冲干扰污染后便舍弃该中位数,用它的左临近值代替中位数;当判定中位数符合要求时便用来替换该滑动窗口内原中心值。发明人通过对比处理前后该语音段的波形图发现,原始带噪语音含有很多尖峰脉冲,即冲激性噪声,经由步骤一至步骤七处理后,波形图更加平滑了,尖峰脉冲被平滑掉了,语音质量有了较大提升,语音信噪比也大大提高,从而得知经本方法滤波后,有效的去除了该语音段中的冲激性噪声。

进一步的,步骤五中通过差分序列gi,j(n)找到含有离群点的窗口并求出这些窗口内的离群点gi,out的具体步骤如下:

步骤5.1、求出各个窗口内的差分序列gi,j(n)并进行排序组成整体差分序列gi(n),计算整体差分序列gi(n)的上四分位数q1、下四分位数q3和四分位极差q3-q1,得到差分序列的非离群点允许分布的范围为:[q1-δ(q3-q1),q3+δ(q3-q1)],记为ωi;

步骤5.2、判断每个窗口内的差分序列gi,j(n)中各个点的差分序列值gi,j(n)'是否位于差分序列的非离群点允许分布的范围ωi内,若超出该范围,则该点离群点gi,out;该筛选过程如下:

其中,gi,j(n)'表示各点的差分序列值。

这里为了减小本方法的时间损耗,加快去噪效率,我们采用了统一排序的方法来求各四分位数,代替了直接使用库函数的方法,加快了处理效率,减少了处理时间。已知四分位数的取法与元素的个数有关,元素个数除以四得到商的整数部分和余数部分,余数有四种可能,对应四种不同的四分位规则。这里求各四分位数的方法是:窗口大小决定差分序列的元素个数,因此对各个窗口内求得的差分序列gi,j(n)进行排序,通过对差分序列进行排序,组成整体差分序列gi(n),通过四分位数,得到差分序列的非离群点允许分布的范围,通过判断各个窗口中的差分序列值gi,j(n)'是否位于非离群点允许分布的范围,进而筛选出超出范围的离群点,方便后续对中位数的判定。

进一步的,还包括步骤八:

步骤八、将步骤二中的滑动窗口s(z)沿步骤七得到的语音时域序列yi(n)'方向按语音时间序列进行逐帧移动,并在移动过程中依时间顺序对窗口内的所有采样点做算术平均值,得到语音时域序列yi(n)″。在对经过步骤七处理后得到的语音时域序列yi(n)进行分析时,使得到的语音时域序列yi(n)″更加平滑。

进一步的,语音信号中冲激性噪声的去除方法,还包括如下步骤:

步骤九、将步骤八得到的语音时域序列yi(n)″与步骤一中的语音时域序列yi(n)进行对比,求出残差序列ci(n);

步骤十、对所述残差序列ci(n)执行步骤四至步骤七,得到新的残差序列ci(n)″。

步骤十一、将所述残差序列ci(n)″与经过步骤八处理后的语音时域序列yi(n)″求和,并补偿语音时域序列yi(n)″中,得到新的语音时域序列wi(n)。

由于初始信号有许多冲激性噪声,经过步骤三至步骤七平滑处理后被平滑掉了,故该频段对应的残差往往很大,所以再将残差进行中位数平滑和线性平滑处理,这样得到一组“正常”“干净”的残差。以此残差序列ci(n)″去修正语音时域序列yi(n)″,可以的得到更加接近原值的语音时域序列wi(n)。通过残差修正后使波形更加接近原始波形,与原始波形的吻合度高,失真率小。

本发明与现有技术相比,具有如下的优点和有益效果:

1、通过用左临近值代替受脉冲干扰污染后中位数的方法,有效的去除了语音段中的冲激性噪声;

2、通过残差序列ci(n)″去修正语音时域序列yi(n)″,可以的得到更加接近原值的语音时域序列wi(n),使得残差修正后的波形更加接近原始波形,与原始波形的吻合度高,失真率小。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1为本发明的步骤一至步骤八的信号处理流程图;

图2为本发明的步骤九至步骤十一的信号处理流程图;

图3为待处理语音段的局部原始波形图;

图4为待处理语音段经过步骤一至步骤八处理之后的局部波形图;

图5为待处理语音段经过步骤一至步骤十一处理之后的局部波形图;

图6为去除冲激噪声之前的整体波形图;

图7为去除冲激噪声之后的整体波形图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

实施例

如图1至图7所示;语音信号中冲激性噪声的去除方法,包括以下步骤:

步骤一、对含有普通话的待处理语音段进行分帧,得到分帧后的语音时域序列yi(n),i=0,1,2,…n-1,n表示帧数;

步骤二、根据步骤一中分帧后的待处理语音段建立滑动窗口s(z),z=0、1、2…、z,z为窗口大小;

步骤三、将该滑动窗口s(z)沿步骤一得到的语音时域序列yi(n)方向进行滑动;初始时z值为0,每移动一次滑动窗口s(z),z值加1;

步骤四、每次移动后,定义当前窗口内的语音时域序列段为yi,j(n),对窗口内语音时域序列段yi,j(n)求差分序列gi,j(n);i表示在第i帧内,j表示在该帧的第j个采样点;

步骤五、找到各个窗口的差分序列gi,j(n),通过差分序列gi,j(n)找到含有离群点的窗口并求出这些窗口内的离群点gi,out;

步骤六、分别对含有离群点窗口中的各个离群点gi,out进行排序,找出各自窗口中离群点gi,out的绝对值最大的点max{gi,out},用各自窗口中的绝对值最大离群点max{gi,out}与原语音时域序列yi(n)对应位置相加即可求出其对应窗口中该点的语音时域序列值yi,maxout(n),即语音冲激值;

步骤七、针对含有离群点的窗口,求出各自窗口内所有点的语音时域序列值yi,out(n)并进行排序,求各自窗口内语音时域序列值yi,out(n)的中位数yi,med(n),在各自窗口内比较冲激值yi,maxout(n)与中位数yi,med(n)的大小;

若语音冲激值yi,maxout(n)大于中位数yi,med(n)则中位数yi,med(n)可靠,用该中位数yi,med(n)替换该窗口内的中心值;

若语音冲激值yi,maxout(n)小于中位数yi,med(n)则中位数yi,med(n)不可靠,用中位数yi,med(n)的左临近值yi,medleft(n)替换该窗口内的中心值;

得到新的语音时域序列yi(n)'。

本实施例的步骤五中通过差分序列gi,j(n)找到含有离群点的窗口并求出这些窗口内的离群点gi,out的具体步骤如下:

步骤5.1、求出各个窗口内的差分序列gi,j(n)并进行排序组成整体差分序列gi(n),计算整体差分序列gi(n)的上四分位数q1、下四分位数q3和四分位极差q3-q1,得到差分序列的非离群点允许分布的范围为:[q1-δ(q3-q1),q3+δ(q3-q1)],记为ωi;

步骤5.2、判断每个窗口内的差分序列gi,j(n)中各个点的差分序列值gi,j(n)'是否位于差分序列的非离群点允许分布的范围ωi内,若超出该范围,则该点离群点gi,out;该筛选过程如下:

其中,gi,j(n)'表示各点的差分序列值。

这里为了减小本方法的时间损耗,加快去噪效率,我们采用了统一排序的方法来求各四分位数,代替了直接使用库函数的方法,加快了处理效率,减少了处理时间。

为进一步的使得到的语音信号更加接近原始信号,同时还较为平滑,本实施例中还增设了如下步骤:

步骤八、将步骤二中的滑动窗口s(z)沿步骤七得到的语音时域序列yi(n)'方向按语音时间序列进行逐帧移动,并在移动过程中依时间顺序对窗口内的所有采样点做算术平均值,得到语音时域序列yi(n)″。

步骤九、将步骤八得到的语音时域序列yi(n)″与步骤一中的语音时域序列yi(n)进行对比,求出残差序列ci(n);

步骤十、对所述出残差序列ci(n)执行步骤四至步骤七,得到新的残差序列ci(n)″。

步骤十一、将所述残差序列ci(n)″与经过步骤八处理后的语音时域序列yi(n)″求和,并补偿语音时域序列yi(n)″中,得到新的语音时域序列wi(n)。

传统的中值滤波的做法是在滑动窗口内对中心值和周围的其他所有值进行排序,得到一个中间值(中位数),以该中位数直接来替换掉原中心值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。但是如果语音中某一段内出现高密度脉冲干扰,这样在该区域滑动窗口内的中位数会受到污染,进而导致滤波不够彻底,导致广播录音信号中的冲激性噪声不能被彻底的去除。本实施例在传统的中值滤波法的基础上,增加了步骤五、步骤六和步骤七,通过检测语音时域序列yi(n)中的离群点来判断脉冲干扰点存在的位置,再通过比较中位数与脉冲干扰点的能量值大小来判定中位数是否可靠,当判定中位数受脉冲干扰污染后便舍弃该中位数,用它的左临近值代替中位数;当判定中位数符合要求时便用来替换该滑动窗口内原中心值。

现在我们对比几个阶段之间的波形图,图3为待处理语音段的原始波形图;从波形图可以看出待处理语音段中存在很多的尖峰脉冲,这个尖峰脉冲就是冲激性噪声,在经过步骤一至步骤七之后我们发现,如图4所示,尖峰脉冲没有了,但是波形呈现锯齿状,说明当前的语音信号之间的连续性较差,且其中有一段完全偏离了原始波形图,所以需要经过步骤八对其进行平滑处理,但是由于平滑过程中会存在失真问题,所以本实施例中,还增加了步骤九至步骤十一,通过残差补偿竟可能的使还原的语音信息准确,如图5所示,在增加了平滑和残差修订之后,波形图变得平滑,且与原始波形图走势相吻合,说明本方法有效的去除了待处理语音段中的冲激性噪声,对比去除冲激噪声前后的整体波形图,如图6和图7所示,可以看出去除冲激噪声后,波形图变得干净,大部分不规律的“尖刺”即冲激性噪声消失了,具有显著的进步。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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