一种基于改进功率差噪声估计算法的双麦克风语音增强方法与流程

文档序号:22969179发布日期:2020-11-19 21:48阅读:298来源:国知局
本发明属于语音信号处理
技术领域
,特别是一种基于改进功率差噪声估计算法的双麦克风语音增强方法。
背景技术
:语音增强与麦克风阵列是语音信号处理的重要分支,多应用于实际的噪声环境中。尤其在语音通信方面,基于双麦克风降噪的语音增强技术得到了广泛的应用。在噪声环境下,很多手机都有综合的算法来提升通话质量,目前主要分为单麦克风语音增强和双麦克风语音增强两种。单麦克风语音增强技术对加性噪声能有不错的降噪效果,但是对于一些较为复杂的噪声环境,其效果并不理想。所以目前双麦克风降噪也是一种较为主流的语音增强的算法。双麦克风语音增强主要分为基于相关函数、基于相位差以及基于功率差三大类,而其中基于功率差的算法使用尤为广泛。目前,基于功率差的算法通过对噪声功率谱密度的估计,在语音增强上的改进已取得良好的效果。现有技术在基于功率差(pld)的基础上,提出了一种功率水平差噪声估计器(pldne),算法框图如图1所示。通过定义的噪声估计器,能够在短时间内粗略估算出两个麦克风的噪声信号的自功率谱密度,然后结合噪声一致性,通过两个麦克风之间的距离来进一步估计麦克风噪声信号的互功率谱密度。现有技术存在如下缺点:1、对于基于相位差的语音增强的算法,当两个麦克风分布距离过近时,两个麦克风的相位差很小,很难精确的估计相位差。在实际的生活中,对于移动通讯设备要求两个麦克风的距离不能过长,所以并不能运用到移动通讯设备中。2、对于基于相关函数的语音增强算法,主要处理的是非相干的噪声信号,对一般环境效果较好,但是当噪声瞬变时效果一般。3、对于噪声功率的估计不够精确,当较强的相关噪声信号来自不同的方向时,由于该算法在粗略估计噪声成分的互功率谱密度时,假设了噪声信号源与两个麦克风处于一条直线,然后通过两个麦克风之间的距离来确定噪声成分的互功率谱密度会使得两个麦克风的噪声信号的互功率谱密度的计算出现一定的误差。4、算法的复杂度高,延时长,算法无法在较短的时间内快速的收敛,容易引起听者的不适。技术实现要素:本发明针对现有技术的缺陷,提出一种基于改进功率差噪声估计算法的双麦克风语音增强方法,该方法对基于功率差的语音增强算法改进,能够有效地抑制对于来自不同方向的相关噪声信号,同时确保尽量的减少语音失真的出现,在实际的运用中,算法复杂度降低,延时变短,能够在较短的时间内快速的收敛,从而避免听者的不适。本发明的目的在于提供一种基于改进功率差噪声估计算法的双麦克风语音增强方法,包括:步骤1,设置两个麦克风来接收声音信号,其中一个为主麦克风x1用于接收较强的语音信号,另外一个为副麦克风x2用于接收有明显功率衰减的语音信号;步骤2,计算两个麦克风的自功率谱密度差;步骤3,对于主麦克风x1的噪声信号采用改进功率差噪声估计法进行噪声功率谱密度估计,通过迭代计算噪声自功率谱密度pn(n,k),并通过迭代估计噪声互功率谱密度pn1n2(n,k);步骤4,估计语音信号传递函数h12(n,k);步骤5,获取降噪后的语音信号从而达到双麦克风语音增强的效果。优选的,所述步骤1包括:步骤11,假设两个麦克风接收到的信号为:x1(m)=h1(m)*s(m)+n1(m),x2(m)=h2(m)*s(m)+n2(m)(1)其中h1(m)和h2(m)为信号源到两个麦克风的传递函数,n1(m)和n2(m)为麦克风接收到的噪声信号,s(m)为理想的语音信号;步骤12,对两个麦克风接收到的信号进行傅里叶变换:x1(n,k)=s1(n,k)+n1(n,k),x2(m)=h12(n,k)s1(n,k)+n2(n,k)(2)其中s1(n,k)为主麦克风x1接收到的语音信号,h12(n,k)为两个麦克风接收到的语音信号之间的传递函数;步骤13,根据傅里叶变换结果计算两个麦克的自功率谱密度:px1(n,k)=ps1(n,k)+pn1(n,k),px2(n,k)=|h12(n,k)|2ps1(n,k)+pn2(n,k)(3)其中pn1(n,k)为主麦克风x1接收到的噪声信号的自功率谱密度,pn2(n,k)为副麦克风x2接收到的噪声信号的自功率谱密度;h12(n,k)为语音信号传递函数,ps1(n,k)为纯净语音信号的自功率谱密度。优选的,所述步骤2包括:对于散射场中的远场声源,假设两个麦克风的噪声功率近似相等,所述两个麦克风的功率差为(3)中两式相减:|δpx(n,k)|=|(1-|h12(n,k)|2)|ps1(n,k)(4)优选的,所述步骤3包括:步骤31,对于间距较小的两个麦克风,假设两个麦克风接收到的远场噪声功率谱密度相等,即pn=pn1=pn2,而且两个麦克风的纯净语音信号会有一个大于10db的明显衰减;步骤32,计算两个麦克风的归一化功率谱密度差:从而0<δppldne(n,k)<1;步骤33,根据公式(8)通过迭代计算噪声自功率谱密度pn(n,k);步骤34,根据公式(8)在迭代计算pn(n,k)的同时,迭代计算互功率谱密度pn1n2(n,k),以应对不同方向的噪声以及相干噪声;其中噪声功率谱密度pn(n,k)和互功率谱密度pn1n2(n,k)的迭代计算公式(8)为:优选的,在理想环境下,当只存在背景噪声时,两个麦克风功率谱密度近似相等,即δppldne(n,k)≈0,当只存在目标语音信号时,由于假设两个麦克风之间有明显的语音衰减,所以两个麦克风之间的功率谱密度差近似等于主麦克风的功率谱密度,即δppldne(n,k)≈1,根据先验知识定义两个阈值pmin和pmax归一化功率谱密度差,当δppldne(n,k)<pmin时,只存在背景噪声,直接采用主麦克风的信号进行更新计算噪声功率谱密度,当δppldne(n,k)>pmax时,则此时存在目标语音信号,暂停对噪声功率谱密度的迭代更新,为了加快噪声功率谱密度的估计,当pmin<δppldne(n,k)<pmax时,用副麦克风的信号更新计算噪声功率谱密度。优选的,所述步骤4包括:步骤41,根据式(2)获得两个麦克风的互功率谱密度:px1x2(n,k)=h12(n,k)ps1(n,k)+pn1n2(n,k)(9)步骤42,根据步骤34获得的互功率谱密度以及步骤41获得的两个麦克风的胡功率谱密度计算传递函数h12(n,k)。优选的,所述步骤42包括:由于ps1(n,k)=px1(n,k)-pn1(n,k),由式(9)获得传递函数h12(n,k)表示为:式(8)中麦克风x1的噪声部分的自功率谱密度pn1(n,k)和互功率谱密度pn1n2(n,k)已经进行估计,仅需计算麦克风x1的自功率谱px1(n,k)和两个麦克风的互功率谱密度px1x2(n,k),而麦克风x1和麦克风x2的信号已知,所以可以直接求得麦克风x1的自功率谱密度px1(n,k)和两个麦克风的互功率谱密度px1x2(n,k),带入即可得到h12(n,k)。优选的,所述步骤5包括:步骤51,定义δppld(n,k)δpx(n,k)为两个麦克风接收到的功率谱密度差,即:δpx(n,k)=px1(n,k)-px2(n,k)(11)步骤52,将所述步骤3和4计算得到的pn1(n,k)和h12(n,k)与理想的维纳滤波器hw(n,k)函数关联获得实际的维纳滤波器gδp1(n,k)的相关参数,从而获得降噪后麦克风x1的语音信号,所述理想的维纳滤波器hw(n,k)为:其中pn1(n,k)为主麦克风x1接收到的噪声信号的自功率谱密度,将(5)中分子分母同乘|(1-|h12(n,k)|2)|,得到所述实际的维纳滤波器gδp1(n,k):优选的,所述步骤52包括将pn1(n,k)和h12(n,k)带入式(6)即可得到如式(12)所示g(n,k),其中γ为噪声过估因子,当噪声发生突变时,可以保证该算法的稳定性:优选的,所述方法还包括:定义两项指标以比较降噪效果以及语音增强的效果,其中一个是噪声衰减与语音衰减差na-sa,其中na表示语音增强前后噪声能量的衰减值,sa表示语音增强前后语音信号能量的衰减值,na-sa即为两者的差值,其值越大表明噪声的衰减相比于语音的衰减越明显,语音增强的效果更好;另外一个是语音质量评估pesq,设定纯粹的语音信号为参考的语音信号,对降噪后的语音信号进行评估,得分在0~5分之间,分值越高表示语音质量越好。本发明的有益效果:本发明在大多数声学环境下,对来自不同方向的远场相干噪声时,能够较为精确的还原出近场声源的语音信号,对于任意方向的噪声均能够实现较为理想的降噪效果,且计算时间较短,达到语音增强的效果。本发明采用以上算法方案与传统算法相比,具有以下技术优势:(1)本方法在两个麦克风距离较短时依然能够有很好的效果。(2)本方法在瞬变噪声下,依然能够有稳定的增强效果。(3)本方法在计算两个麦克风的噪声互功率谱密度时进行了优化,优化了对噪声的互功率谱密度估计,能够应对来自不同方向的噪声以及背景相干噪声的降噪效果(4)方法中定义的噪声衰减与语音衰减差,能够反应出一定的语音增强的效果,证明发明的可行性。根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。附图说明后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:图1为根据现有技术的基于pld的双麦克语音增强算法;图2为根据本发明实施例的基于pld的语音增强示意图;图3为根据本发明实施例的用于验证方法的试验装置布局图;图4为根据本发明实施例的仿真结果曲线图;图5为根据本发明实施例的不同信噪比(snr)下性能比较示意图。具体实施方式下面结合附图对本发明的具体实施方式进行详细说明,但并不用来限制本发明的保护范围。以下为对本实施例的基于改进功率差算法的双麦克风语音增强方法算法基础、算法实现以及性能验证的详细说明。1、算法基础在传统常见的移动通讯设备中,通常使用了两个麦克风来接收声音信号,其中一个为主麦克风x1,位于手机正面的底部,用于接收较强的语音信号。另外一个为副麦克风x2,位于手机的背部顶端用于接收有明显功率衰减的语音信号。在此基础上提出了一种基于功率差(pld)的算法,估计噪声的自功率谱密度(psd)并增强语音信号。首先,假设两个麦克风接收到的信号为:x1(m)=h1(m)*s(m)+n1(m),x2(m)=h2(m)*s(m)+n2(m)(1)其中h1(m)和h2(m)为信号源到两个麦克风的传递函数,n1(m)和n2(m)为麦克风接收到的噪声信号。对其进行傅里叶变换:x1(n,k)=s1(n,k)+n1(n,k),x2(m)=h12(n,k)s1(n,k)+n2(n,k)(2)其中s1(n,k)为主麦克风x1接收到的语音信号,h12(n,k)为两个麦克风接收到的语音信号的传递函数,通过(2)式求两个麦克的自功率谱密度:px1(n,k)=ps1(n,k)+pn1(n,k),px2(n,k)=|h12(n,k)|2ps1(n,k)+pn2(n,k)(3)对于散射场中的远场声源,两个麦克风的噪声功率近似相等,那么两个麦克风的功率差为(3)中两式相减:δpx(n,k)=|(1-|h12(n,k)|2)|ps1(n,k)(4)对于主麦克风x1,为了得到理想的语音信号,需要一个理想的维纳滤波器:其中pn1(n,k)为主麦克风x1接收到的噪声信号的自功率谱密度。将(5)中分子分母同乘|(1-|h12(n,k)|2)|,可以得到滤波器gδp1(n,k):所以,为了能够得到主麦克风x1中的语音信号,需要快速并精确的估计式(6)中h12(n,k)和pn1(n,k)。2、噪声功率谱密度估计对于主麦克风x1的噪声信号采用功率差噪声估计法(pldne)。首先,由于两个麦克风间距较小,可假设两个麦克风接收到的远场噪声功率谱密度相等,即pn=pn1=pn2,而且两个麦克风的纯净的语音信号会有一个明显的衰减(大于10db)。然后计算两个麦克风的归一化功率谱密度差:那么有0<δppldne(n,k)<1。在理想环境下,当只有纯粹的噪声存在时,δppldne(n,k)=0,定义阈值pmin,δppldne(n,k)<pmin时,可以直接用x1估计噪声的功率谱密度pn(n,k)。相反在无噪声的情况,x1的自功率谱密度会远远大于x2的自功率谱密度,所以δppldne(n,k)将会趋近于1;同理定义阈值pmax,当δppldne(n,k)>pmax时,会暂停对pn(n,k)的估计。为了加快噪声功率谱密度的估计,当pmin<δppldne(n,k)<pmax时,可以用副麦克风的信号更新计算噪声功率谱密度。通过迭代可以得到pldne计算噪声功率谱密度pn(n,k),具体公式见式(8)。而对于互功率谱密度pn1n2(n,k)的估计,结合噪声的一致性来估计。但在估计时,假设了噪声源与两个麦克风在一条直线,然后通过两个麦克风之间的距离来计算噪声互功率谱密度pn1n2(n,k),但是在大多数情况下,噪声是从多个方向传递过来的,所以此方法在有些时候并没有理想的效果。本专利的算法在迭代计算pn(n,k)的同时,迭代计算pn1n2(n,k),这样能够更好的应对不同方向的噪声以及相干噪声。当δppldne(n,k)<pmax时,可以直接通过x1与x2来计算互功率谱密度函数pn1n2(n,k),当δppldne(n,k)>pmax时,会暂停对pn1n2(n,k)的估计。结合[2]中更新噪声自功率谱密度的方法,pn(n,k)和pn1n2(n,k)的迭代计算的式子如(8)所示。3、语音信号传递函数h12(n,k)的估计由式(2)可得到两个麦克风的互功率谱密度:px1x2(n,k)=h12(n,k)ps1(n,k)+pn1n2(n,k)(9)由于ps1(n,k)=px1(n,k)-pn1(n,k),所以由(9)知传递函数h12(n,k)可以表示为:式(10)中麦克风x1的噪声部分的自功率谱密度pn1(n,k)和互功率谱密度pn1n2(n,k)已经在步骤2中估计,所以式(10)仅需计算麦克风x1的自功率谱密度px1(n,k)和两个麦克风的互功率谱密度px1x2(n,k)。而麦克风x1和麦克风x2的信号已知,所以可以直接求得,带入即可得到h12(n,k)。4、降噪后的语音信号的获取定义δppld(n,k)为两个麦克风接收到的功率谱密度差,即:δppld(n,k)=px1(n,k)-px2(n,k)(11)将步骤2和3中计算得到的pn1(n,k)和h12(n,k)带入式(6)即可得到g(n,k),如式(12)所示,其中γ为噪声过估因子,当噪声发生突变时,可以保证该算法的稳定性。整体流程如图2所示。5、算法实现以及性能估计(1)实验环境实验装置的分布如图3所示。其中两个麦克风之间的距离为10cm,在距离主麦克风x110cm出有一个语音信号源,距离两个麦克风约40cm出有一个噪声信号源。噪声源输入一个截止频率为2khz的高斯白噪声,语音信号为一段人声信号,主要频率段在150~1000hz。(2)降噪性能测试语音信号与噪声信号同时发声,两个麦克风同时采集信号。本发明实施例通过matlab来仿真算法的结果,一些主要的参数设置如表1。表1.主要参数的设定采样频率fs=192khz帧率n=19200(0.1ms)平滑因子α10.9平滑因子α20.8平滑因子α30.9pldne阈值pmin=0.3,pmax=0.8噪声过估因子γ=4通过实测的数据进行仿真分析,得到较为理想的语音增强降噪效果,如图4所示。图(a)为时域语音增强前后,明显发现语音以外的噪声被滤除。图(b)为降噪前后以及原始语音信号的功率谱密度波形图,发现语音的频率范围语音增强后波形与语音信号能量几乎一致,而噪声存在的频率能量有有明显的衰减。(c)和(d)为噪声成分的降噪效果,(c)为时域波形图,(d)为功率谱波形图,从图中可以看出,本实施例的方法能够明显的衰减噪声的能量,能够在保留语音信号的同时衰减噪声信号能量,实现语音增强。为了对比与传统pld算法的性能比较,定义一个噪声功率谱密度估计误差分析的式子,如式(13)、(14)所示,数值越大表明噪声功率谱密度的估计误差越大。pn(n,k)和pn1n2(n,k)为实际实测的麦克风之间的噪声自功率谱密度以及噪声的互功率谱密度。和为算法迭代计算得到的麦克风之间的噪声自功率谱密度以及噪声的互功率谱密度。除此之外,还需要另外两项指标来直接比较降噪效果以及语音增强的效果。其中一个是噪声衰减与语音衰减差(na-sa),na表示语音增强前后噪声能量的衰减值,sa表示语音增强前后语音信号能量的衰减值,na-sa即为两者的差值。其值越大表明噪声的衰减相比于语音的衰减越明显,语音增强的效果更好。另外一个是语音质量评估(pesq)。pesq是itu提出的用于语音质量评估的一种方法,设定纯粹的语音信号为参考的语音信号,对降噪后的语音信号进行评估,得分在0~5分之间,分值越高表示语音质量越好。具体的性能比较见图5。通过图5发现,本方法在估计噪声的互功率谱密度时能够有明显的改进,当两个麦克风的噪声互相关性较强时能够有明显的改善,从而使得其在语音增强的性能上也更优。本实施例在大多数声学环境下,对来自不同方向的远场相干噪声时,能够较为精确的还原出近场声源的语音信号,对于任意方向的噪声均能够实现较为理想的降噪效果,且计算时间较短,达到语音增强的效果。本实施例算法方案与传统算法相比,具有以下技术优势:(1)在两个麦克风距离较短时依然能够有很好的效果。(2)在瞬变噪声下,依然能够有稳定的增强效果。(3)在计算两个麦克风的噪声互功率谱密度时进行了优化,优化了对噪声的互功率谱密度估计,能够应对来自不同方向的噪声以及背景相干噪声的降噪效果(4)方法中定义的噪声衰减与语音衰减差,能够反应出一定的语音增强的效果,证明发明的可行性。以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时本领域的一般技术人员,根据本发明的实施例,在具体实施方式以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!