应用于双麦克风小型手持设备的语音降噪方法
技术领域
本发明涉及语音降噪技术领域,尤其涉及一种应用于双麦克风小型手持设备的语音降噪方法。
背景技术
在现有的小型手持设备中,常采用双麦克风以及三麦克风。现有技术利用主麦克风接收期望语音及背景噪声,次麦克风接收背景噪声,并且假设这两个麦克风接收到的背景噪声是一致的,从而利用两个麦克风接收信号的差值作为期望信号输出。
这种方法在背景噪声不一致的情况下会产生音乐噪声,并且当次麦克风包含期望语音成分的时候会产生语音失真。此外,利用相位差(时延估计)的双通道滤波技术会残留音乐噪声,且由相位差计算声源方向的可行性是建立在远场条件下的,并不适用于手持近场的环境。
发明内容
本发明的目的是提供一种应用于双麦克风小型手持设备的语音降噪方法,可以尽可能无失真地提取出期望语音,消除背景噪声。
本发明的目的是通过以下技术方案实现的:
一种应用于双麦克风小型手持设备的语音降噪方法,其特征在于,包括:
接收双麦克风的语音信号,并进行通话模式的判别;
若当前为手持通话模式,则采用基于双麦克风功率水平差异的语音降噪方法来获取降噪后的语音信号;
若当前为扬声器通话模式,则采用基于双麦克风之间相干性的语音降噪方法来获取降噪后的语音信号。
2、根据权利要求1所述的方法,其特征在于,所述采用基于双麦克风功率水平差异的语音降噪方法来获取降噪后的语音信号包括:
主麦克风与次麦克风接收到的语音信号如下:
x1(m)=h1(m)*s(m)+n1(m);
x2(m)=h2(m)*s(m)+n2(m);
其中,m为采样点,x1(m)为主麦克风接收到的语音信号,x2(m)为次麦克风接收到的语音信号;hi(m)为声波传播模型冲击响应,ni(m)为噪声,i=1,2;s(m)为目标语音,*为卷积操作;
对主麦克风与次麦克风接受到的语音信号分别做短时傅里叶变换,得到:
X1(n,k)=H1(n,k)S(n,k)+N1(n,k);
X2(n,k)=H2(n,k)S(n,k)+N2(n,k);
其中,n和k分别表示时间点和频率点;将上述两个式子改写为:
X1(n,k)=S1(n,k)+N1(n,k);
X2(n,k)=H12(n,k)S1(n,k)+N2(n,k);
其中,S1(n,k)表示H1(n,k)S(n,k),从而有根据短时傅里叶变换结果分别计算主麦克风与次麦克风带噪音的功率谱密度PSD,得到:
 
 
将与相减得到:
 
令其中ΔPN≈0,则有:
 
利用估计的语音信号PSD和噪声信号PSD可以构造维纳滤波器GΔP(n,k);其中利用估计的主麦克风语音信号PSD和噪声信号PSD进行构造时:
 
其中,GΔP(n,k)的下标ΔP表示该滤波器是基于功率水平差得到的;将|ΔPX(n,k)|表达式带入上式,得到:
 
在上式中加入一个自由参数α,则有:
 
其中,主麦克风噪声的PSD采用语音信号开始的T纯噪声帧计算,公式如下:
 
式中,λN为噪声遗忘因子;X1(n,k)表示主麦克风接收信号的时频域值;
主麦克风与次麦克风带噪音的互功率谱密度CPSD为:
 
其中为两个麦克风接收噪声信号的CPSD,通过下式进行估计:
 
通过主麦克风接收信号PSD与估计噪声PSD的差值进行估计:
 
从而得到估计的冲击响应函数H12(n,k):
 
两个麦克风接收信号的PSD和CPSD,即和采用如下的递归平均方法来估计:
 
 
其中λX为带噪语音遗忘因子。将主麦克风以及次麦克风做短时傅里叶变换后的语音信号与维纳滤波器相乘,并做离散傅里叶逆变换处理及叠接相加,从而得到降噪之后的时域语音信号。
3、根据权利要求1所述的方法,其特征在于,所述采用基于双麦克风之间相干性的语音降噪方法来获取降噪后的语音信号包括:
主麦克风与次麦克风接收到的语音信号如下:
xi(m)=si(m)+ni(m),i=1,2
其中,m为采样点,x1(m)为主麦克风接收到的语音信号,x2(m)为次麦克风接收到的语音信号,ni(m)为噪声,si(m)为目标语音;
进行短时傅里叶变换后得到:
Xi(n,k)=Si(n,k)+Ni(n,k),i=1,2;
其中,n和k分别表示时间点和频率点;
定义主麦克风与次麦克风接收到的语音信号的相干性函数为:
 
式中,与分别为主麦克风与次麦克风带噪音的功率谱密度PSD,为主麦克风与次麦克风带噪语音的互功率谱密度;
相干性函数与主麦克风与次麦克风局部信噪比SNR1和SNR2有如下关系:
 
其中,和分别表示两个麦克风接收的目标语音相干性函数和噪声相干性函数;令则上式改写为:
 
当使用扬声器通话模式时,假设目标语音信号源在双麦克的正前方,选取两麦克风位置的中心作为阵列参考点,则目标语音方向即为0°,背景噪声信号源等效为从θ方向入射,则主麦克风与次麦克风接收到的信号U1和U2之间的相干性为:
 
式中,fs是采样率,d是主麦克风与次麦克风的间距,c为声速;U1和U2表示主麦克风与次麦克风接收到的语音信号或者噪声信号;
将上面两个表达式相结合,得到:
 
其中,τ=fs(d/c),分别取出实部和虚部:
 
 
其中,α=ωτsinθ,分别对实部和虚部表达式变型,得到:
 
 
由于上述两式相等,则有:
Icosα=(R-1)sinα+I;
根据cos2α+sin2α=1,得到:
(I2+(1-R)2)sin2α+2I(R-1)sinα=0;
其根为:
 
其中,sinα=0是平凡解,忽略;则:
 
求得sinα后,可求得:
 
从而构建非限制维纳滤波器Gcoh(n,k):
 
将主麦克风以及次麦克风做短时傅里叶变换后的语音信号与维纳滤波器相乘,并做离散傅里叶逆变换处理及叠接相加,从而得到降噪之后的时域语音信号。
由上述本发明提供的技术方案可以看出,可以根据用户所使用模式的不同来选取对应的降噪方法;在正常手持通话模式下,基于功率水平差异的方法适用于该模式下的近场信号模型,且能有效利用主次麦克风接收语音信号在能量上的较大差异信息;在使用扬声器模式下,利用基于双麦克风之间相关性的方法不需要进行噪声功率谱的估计,且能够避免两个麦克风接收噪声不一致对于基于功率水平差异方法的影响;此外,相比于传统的基于功率水平差异的方法,本发明通过构造的维纳滤波能有效避免噪声功率谱估计错误导致的音乐噪声。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种应用于双麦克风小型手持设备的语音降噪方法的流程图;
图2为本发明实施例提供的基于双麦克风功率水平差异的语音降噪方法的流程图;
图3为本发明实施例提供的基于双麦克风之间相干性的语音降噪方法的流程图;
图4为本发明实施例提供的基于双麦克风之间相干性的语音降噪技术信号模型。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
如图1所示,为本发明实施例提供的一种应用于双麦克风小型手持设备的语音降噪方法的流程图,其主要包括如下步骤:
步骤11、接收双麦克风的语音信号,并进行通话模式的判别;
步骤12、若当前为手持通话模式,则采用基于双麦克风功率水平差异的语音降噪方法来获取降噪后的语音信号;
步骤13、若当前为扬声器通话模式,则采用基于双麦克风之间相干性的语音降噪方法来获取降噪后的语音信号。
本发明实施例中,根据用户所使用模式的不同来选取对应的降噪方法。在正常手持通话模式下,基于功率水平差异的方法适用于该模式下的近场信号模型,且能有效利用主次麦克风接收语音信号在能量上的较大差异信息;在使用扬声器模式下,利用基于双麦克风之间相关性的方法不需要进行噪声功率谱的估计,且能够避免两个麦克风接收噪声不一致对于基于功率水平差异方法的影响。
下面主要针对基于双麦克风功率水平差异的语音降噪方法以及基于双麦克风之间相干性的语音降噪方法进行详细的介绍。
1、基于双麦克风功率水平差异的语音降噪方法。
在正常的手持通话模式下,我们默认的是双麦克风与说话人嘴巴构成一个近场环境。在该环境下的声波模型为球形波,传统的基于相位的降噪技术并不适用这一模型。而利用功率水平差异(Power Level Difference,PLD),则避免了这一问题。
其具体的处理流程如图2所示,主要为:
主麦克风与次麦克风接收到的语音信号如下:
x1(m)=h1(m)*s(m)+n1(m);
x2(m)=h2(m)*s(m)+n2(m);
其中,m为采样点,x1(m)为主麦克风接收到的语音信号,x2(m)为次麦克风接收到的语音信号;hi(m)为声波传播模型冲击响应,ni(m)为噪声,i=1,2;s(m)为目标语音,*为卷积操作;
对主麦克风与次麦克风接受到的语音信号分别做短时傅里叶变换将其转换到时频域,得到:
X1(n,k)=H1(n,k)S(n,k)+N1(n,k);
X2(n,k)=H2(n,k)S(n,k)+N2(n,k);
其中,n和k分别表示时间点和频率点;不失一般性,将上述两个式子改写为:
X1(n,k)=S1(n,k)+N1(n,k);
X2(n,k)=H12(n,k)S1(n,k)+N2(n,k);
其中,S1(n,k)表示H1(n,k)S(n,k),从而有根据短时傅里叶变换结果分别计算主麦克风与次麦克风带噪音的功率谱密度(PSD),得到:
 
 
其中,表示主麦克风接收到的语音信号的PSD,表示主麦克风接收到的噪声信号的PSD,表示次麦克风接收到的噪声信号的PSD。
将与相减得到:
 
令另外,一般假设两个麦克风接收到的背景噪声可以认为差异不大,故ΔPN可以忽略不计,即ΔPN≈0,则有:
 
利用估计的语音信号PSD和噪声信号PSD可以构造维纳滤波器GΔP(n,k),这里我们利用估计的主麦克风语音信号PSD和噪声信号PSD进行构造:
 
其中,GΔP(n,k)的下标ΔP表示该滤波器是基于功率水平差得到的。不能直接估计得到,故可将|ΔPX(n,k)|表达式带入上式,得到:
 
为了不使语音产生太大失真,在上式中加入一个自由参数α,则有GΔP(n,k)的估计式:
 
其中,主麦克风噪声的PSD采用语音信号开始的T纯噪声帧计算,公式如下:
 
式中,λN为噪声遗忘因子,由经验值设定;X1(n,k)表示主麦克风接收信号的时频域值;
则现在GΔP(n,k)估计式中仅有冲击响应函数H12(n,k)为未知的;考虑互功率谱密度(CPSD),主麦克风与次麦克风接收信号的CPSD为:
 
其中,为两个麦克风接收噪声信号的CPSD,类似于的计算,可以通过下式进行估计:
 
可以通过主麦克风接收信号PSD与估计噪声PSD的差值进行估计:
 
从而得到估计的冲击响应函数
 
本发明实施例中,两个麦克风接收信号的PSD和CPSD(即和)我们采用如下的递归平均方法来估计:
 
 
其中λX为带噪语音遗忘因子。此时GΔP(n,k)表达式中的参数均求出,则获得了用于增强语音的维纳滤波器,将主麦克风以及次麦克风做短时傅里叶变换后的语音信号与维纳滤波器相乘,并做离散傅里叶逆变换处理(IFFT)及叠接相加,从而得到降噪之后的时域语音信号
2、基于双麦克风之间相干性的语音降噪方法。
在使用扬声器通话的模式下,可以认为两个麦克风与说话人嘴巴构成一个远场环境。此时,本发明采用基于双麦克风接收信号相干性的语音降噪技术。这个方法不需要进行噪声功率谱的估计,且能够避免两个麦克风接收噪声不一致对于基于功率水平差异方法的影响。
在双麦克风条件下,两个麦克风接收到的语音信号之间是有相干性的。这个相干性可以用来估计带噪语音信号的每个时频点的SNR,从而利用维纳滤波的思想就能达到语音降噪的目的。
其具体的处理流程如图3所示,主要为:
主麦克风与次麦克风接收到的语音信号如下:
xi(m)=si(m)+ni(m),i=1,2
其中,m为采样点,x1(m)为主麦克风接收到的语音信号,x2(m)为次麦克风接收到的语音信号,ni(m)为噪声,si(m)为目标语音;
进行短时傅里叶变换后得到:
Xi(n,k)=Si(n,k)+Ni(n,k),i=1,2;
其中,n和k分别表示时间点和频率点;
定义主麦克风与次麦克风接收到的语音信号的相干性函数为:
 
式中,与分别为主麦克风与次麦克风带噪音的功率谱密度PSD,为主麦克风与次麦克风带噪语音的互功率谱密度;同样可以采用前文所述的递归平均方法求得。
相干性函数与主麦克风与次麦克风局部信噪比SNR1和SNR2有如下关系:
 
其中,和分别表示两个麦克风接收的目标语音相干性函数和噪声相干性函数。如果两个麦克风非常接近(例如2cm),则SNR1≈SNR2成立,但是如果两个麦克风相隔比较远(例如15cm),则上述假设不一定成立。但是可以认为在两个麦克风处,(或)是相等的。
则令则上式改写为:
 
如图4所示,当使用扬声器通话模式时,假设目标语音信号源在双麦克的正前方,选取两麦克风位置的中心作为阵列参考点,则目标语音方向即为0°,背景噪声信号源等效为从θ方向入射。根据阵列信号处理理论,对于两个同源信号U1和U2(同一个目标语音或噪声分别被两个麦克风接收的信号),主麦克风与次麦克风接收到的信号之间的相干性可以表示为:
 
式中,fs是采样率,d是主麦克风与次麦克风的间距,c为声速;
将上面两个表达式相结合,得到:
 
其中,τ=fs(d/c),分别取出实部和虚部:
 
 
其中,α=ωτsinθ,分别对实部和虚部表达式变型,得到:
 
 
由于上述两式相等,则有:
Icosα=(R-1)sinα+I;
根据cos2α+sin2α=1,得到:
(I2+(1-R)2)sin2α+2I(R-1)sinα=0;
其根为:
 
其中,sinα=0是平凡解,忽略;则:
 
求得sinα后,可求得:
 
从而构建非限制维纳滤波器Gcoh(n,k)(下标coh表示该滤波器是基于相干性得到的):
 
将主麦克风以及次麦克风做短时傅里叶变换后的语音信号与维纳滤波器相乘,并做离散傅里叶逆变换处理及叠接相加,从而得到降噪之后的时域目标语音信号
本发明实施例上述方案,相比于传统的手持设备双麦克风语音降噪技术,可以根据用户所使用模式的不同来选取对应的降噪方法。在正常手持通话模式下,利用基于功率水平差异的方法能避免近场效应的影响;在使用扬声器模式下,利用基于双麦克风之间相关性的方法不需要进行噪声功率谱的估计,且能够避免两个麦克风接收噪声不一致对于基于功率水平差异方法的影响。此外,相比于传统的基于功率水平差异的方法,通过构造的维纳滤波能有效避免噪声功率谱估计错误导致的音乐噪声。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

应用于双麦克风小型手持设备的语音降噪方法相关推荐

  1. 远场语音降噪方法及系统、终端以及计算机可读存储介质

    远场语音降噪方法及系统.终端以及计算机可读存储介质 技术领域 本发明涉及通信技术领域,尤其涉及一种远场语音降噪方法及系统.终端以及计算机可读存储介质. 背景技术 远场语音识别,即远距离语音识别,在以智 ...

  2. 深度学习语音降噪方法对比_人工智能-关于深度学习的基础方法

    深度学习概述 深度学习的一些简介,其要点如下: 深度学习实际上是基于具有多个隐藏层的神经网络的学习: 深度学习的思想来源于人类处理视觉信息的方式: 深度学习的发展得益于数据的井喷和计算力的飙升: 深度 ...

  3. 双麦克风语音增强之ANF 自适应零点形成

    概述 ANF(Adaptive Null-Forming,自适应零点形成)是双麦克风阵列处理中实现语音增强的一种方法.ANF算法适用的场景是目标信号来自于端射(endfire)方向,比如通话时的蓝牙耳 ...

  4. C语言LMS双麦克风消噪算法,基于两个时域LMS算法双麦克风系统分析.doc

    基于两个时域LMS算法双麦克风系统分析 基于两个时域LMS算法双麦克风系统分析 [摘要] 本文介绍了基于两个时域LMS算法的双麦克风系统结构以及性能分析.本文提出一种采用两个时域LMS的算法,并将此算 ...

  5. AI降噪软件的出现,不仅仅要终结手机双麦克风时代

    从诺基亚到iPhone X,手机在这些年产生了天翻地覆的变化.按键消失了.边框消失了.连耳机孔都消失了,屏幕越来越大.摄像头也越来越清晰-- 不过人们很难感知到的一点变化是,通话中的噪声变得越来越小了 ...

  6. 人声抑制 深度学习_一种融合骨振动传感器和麦克风信号的深度学习语音提取和降噪方法与流程...

    本发明涉及电子设备语音降噪技术领域,更具体地说,涉及一种融合骨振动传感器和麦克风信号的深度学习降噪方法. 背景技术: 语音降噪技术是指从带噪语音信号中分离出语音信号,该技术拥有广泛的应用,通常有单麦克 ...

  7. 双麦阵列拾音束降噪模块A-68连接应用说明和强噪音下测试效果

    上一篇讲了A-68的双麦阵列拾音束原理,有兴趣的朋友可以到我的空间主题查看上一篇,这一次我们来讲一下A-68模块的功能和应用连接,由于论坛不支持音视频格式,所以文章末尾附上A-68在强噪音下测试的效果 ...

  8. C语言LMS双麦克风消噪算法,芯片内部的噪声抑制算法,语音芯片来说也是一样(双麦克风降噪理念)...

    因此,为了尽可能满足人们的需求,现在设计了双麦克风--即双麦克风降噪,当然,在使用这种降噪方法时需要注意两点.若将两个麦克风放在一起,或将两个麦克风分开,则距离较远.该芯片内的算法将根据两个麦克风接收 ...

  9. C语言LMS双麦克风消噪算法,详解双麦克风实时自适应噪声消减技术

    近年来,智能手机和笔记本电脑等移动/便携设备市场持续快速发展.这些产品在不断集成更多新功能以增强用户体验的同时,在基本语音通信功能的用户体验方面仍有充足提升空间,特别是在嘈杂环境下提升语音清晰度,同时 ...

最新文章

  1. 2021年大数据Spark(三十二):SparkSQL的External DataSource
  2. centos 重启网络服务的方法
  3. 2.5 学习词嵌入-深度学习第五课《序列模型》-Stanford吴恩达教授
  4. 【已解决】如何干干净净的卸载MySQL数据库
  5. JQuery中的全选择器(通配符)
  6. SAP Spartacus里的不同种类的CMS Component type
  7. Spring和JSF集成:MVC螺母和螺栓
  8. 笔记本如何选择修复计算机,如何处理旧的笔记本电脑?这些操作必不可少!
  9. 开放式系统编程技术_使用开放式硬件构建更好的辅助技术
  10. Eclipse内置Tomcat的配置
  11. 微信红包订单存储架构变迁的最佳实践
  12. java webservice接口开发实例_Webservice 接口开发简单例子
  13. 延迟队列DelayQueue研究
  14. python把数据生成图表_python从Oracle读取数据生成图表
  15. linux查看映射文件关系,Linux磁盘映射DM
  16. 【蜂口 | AI人工智能】人脸美颜——龙鹏 深度学习与人脸图像应用连载(八)
  17. 数据库方言(Dialect)
  18. 网页收藏栏小图标_如何设置在网页地址栏中的小图标
  19. U-Net: Convolutional Networks for Biomedical Image Segmentation论文翻译
  20. id nil Nil SET IMP 等概念

热门文章

  1. 使用opencv从mp4视频中抽帧并保存
  2. 突发!incaseformat蠕虫病毒来袭,警惕文件遭删除
  3. 用 Python 写一个天天酷跑 | 内附源码
  4. 微博URL短地址lua生成算法
  5. 用于Arduino的S4A图形化编程图文详解
  6. internet time
  7. Storm Trident API实践
  8. anasys hpc集群_ANSYS HPC高性能计算与Wiseteam高端图形工作站方案
  9. Java:文件写入读取操作和工具类
  10. orchestrator_配置IBM Cloud Orchestrator以配置到SoftLayer