本发明涉及语音降噪技术领域,尤其涉及一种在高维空间中利用张量模型解决麦克风阵列信号的语音增强方法。
背景技术:
人们已经提出了若干单麦克风的语音降噪算法,包括谱减法、维纳滤波算法和卡尔曼滤波算法等,这些单麦克风降噪算法由于其简单快速并可以在一定程度上抑制噪声,而得到广泛的应用。与单麦克风的降噪算法相比,基于麦克风阵列的语音增强算法可以同时获得接收语音信号的时域和空域信息,算法上也能更加灵活的利用这样的多维信息提高降噪性能。近年来张量分析理论不断完善,实现了在高维空间中通过张量工具解决信号处理问题。基于张量分析的方法一般把接收的多路数据表示成张量形式,或者叫多维矩阵,每一维可以是基本物理量如时间、频率、宽度、高度和通道等。在研究中,多路数据被认为是一个不可分隔的张量整体,模型很自然需要用到多重线性代数这样的信号处理技术特别是张量分解和张量近似方法,这种理论尤其适合于处理多路麦克风语音信号,因此张量在阵列语音信号降噪系统中的应用也是一个值得研究的课题。在本文的麦克风阵列语音信号处理中,我们可以通过时间、频率和通道三个物理量把接收到的语音信号建模成一个三阶张量。
技术实现要素:
本发明的目的是提供一种应用于麦克风阵列的语音增强方法,与传统的波束形成方法相比,该算法利用到接收的多通道信号的时间、频率和通道三个物理量将其表示为一个三阶张量,因而能够更加明显地去除空间白噪声和特定的方向性噪声,并尽可能地无失真恢复出期望的干净语音。
本发明的目的是通过以下技术方案实现的:
一种应用于麦克风阵列的语音增强方法,包括:
步骤一、基于张量分析理论,将接收到的麦克风阵列多路语音数据信号表示成张量形式,利用到时间、频率和通道三个物理量把信号建模成一个三阶张量;
步骤二、采用张量分解方法获得对应的多模滤波器,通过时域、频域和空域三个滤波器分别对原始带噪的多路语音数据信号进行迭代滤波,恢复出期望的干净的多路语音数据信号,实现对语音数据信号的增强。
上述步骤一中,基于张量分析理论,将接收到的麦克风阵列多路语音数据信号表示成张量形式,利用时间、频率和通道三个物理量把信号建模成一个三阶张量;基于张量分析的信号处理方法扩展了低维空间的信号处理方法。假设原始的干净的多路语音数据信号用张量
也就是:
其中,f表示频率点个数,与物理量频率对应;n表示分段语音的帧数,与物理量时间对应;i表示麦克风数目,与物理量通道对应;y(f,n,i)表示第i个麦克风接收通道中的第n帧的第f个元素;因此在这个模型中,x和n分别代表目标语音部分和噪声部分,都是三阶的张量,这里的噪声可以是高斯白噪声,也可以是色噪声,也可以是两者的混合。
上述步骤二中,我们的目标就是用多维滤波器估计原始干净的多路语音数据信号x:
其中{hf,ht,hs}表示基矩阵,是各个模的重要成份组成,分别代表了频域滤波器、时域滤波器和空域滤波器,y表示带噪语音信号的复张量形式,×k,k=1,2,3表示mode-k张量积。具体地,
为了进一步提高多维滤波的效果,可以在上述步骤二中通过优化估计多模滤波器的准则进行。将多路语音数据信号作为是不可分隔的张量整体,根据最小化均方误差(meansquareerror,mse)准则选择最小化目标估计信号
minimize||x-y×1hf×2ht×3hs||2,
类似于传统的基于子空间语音增强算法,我们分别定义平均语音失真为:
jasd=e(||x-x×1hf×2ht×3hs||2),
定义平均噪声残留为:
janr=e(||n×1hf×2ht×3hs||2),
其中,e(·)表示期望,三个滤波器可以通过下式得到,
(ηf,ht,hs)=argmin(jasd+λ·janr);
上述目标函数表示我们最终的目标是最小化语音失真和残留噪声的线性组合,即最好的保留目标语音信号信息并将信号失真程度降到最小,λ是均衡残留噪声和语音失真的折衷因子。
该目标函数是一个非线性最优化问题,但涉及到的{hf,ht,hs}是相互耦合在一起的;
在张量计算中,一般采用分块坐标下降算法(blockcoordinatedescent,bcd)方法,其基本思想是交替最优化关于一组变量的子问题而其他变量保持固定,该过程迭代直到收敛。这种算法是成熟的交替最小二乘法的扩展。
在第m次迭代中,分别得到:
这里,需要注意考虑到语音信号的短时平稳特性,在滤波器的计算过程中,我们是分别对张量块进行处理的,此时待处理的带噪语音信号张量块定义为y=ρ(:,n-c:n+c,:),其中,n是帧数。我们先利用张量理论分析估计求得三个滤波器后,然后就可以通过{hf,ht,hs}分别对带噪语音信号进行频域-时域-空域的滤波处理,进而得到估计的干净的多路语音数据信号,也就是
为了改善该方法的性能,我们可以在上述步骤三中采用延迟-求和波束形成器对步骤二得到的多路语音数据信号进行进一步进行处理。
综上所述,本发明提出的技术方案,相比于传统的多通道语音增强算法,通过利用高阶张量表示实现多通道语音信号的增强,有以下几个优点。
首先,考虑到了语音增强处理过程中相位的重要性,并综合利用到了带噪语音信号时域-频域-空域三个维度的信息,可以通过理论和实验验证该技术的优越性。
其次,本发明利用张量分解技术将建立的三维模型投影在相对低维空间中,即分别通过三个二维的滤波器对带噪语音信号进行滤波,如图3所示,降低了计算复杂度,在保证最大限度降噪效果的同时将失真程度尽可能降低到最小。
此外,本发明进一步引入基于波束形成的后处理技术,以实现更大程度的降噪和更低程度的失真。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种应用于麦克风阵列的语音增强方法的流程图;
图2为本发明实施例提供的语音信号复张量表示形式的示意图。
图3为本发明实施例提供的多维滤波框架的示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1为本发明实施例提供的一种应用于麦克风阵列的语音增强方法的流程图。如图1所示,其主要包括如下步骤:
步骤s101、通过时间、频率和通道三个物理量,把麦克风接收到的带噪语音信号建模成一个三阶张量形式,如图2所示。
步骤s102、基于张量分析理论建立多模滤波器模型,根据最小均方误差准则对多模滤波器进行优化,选择合适的折衷因子使得均衡后的语音失真和噪声残留最小化,并且采用bcd法求解出时域-频域-空域三个滤波器。
步骤s103、对建立的带噪声语音张量模型进行三维滤波器滤波,然后对上述得到的信号进行逆短时傅里叶逆变换及叠接相加,从而恢复出期望的干净语音信号。
步骤s104、为了进一步提高该技术的性能,还可以对增强后的语音信号进行波束形成器后处理。
本发明上述方案,相比于传统的多通道语音增强算法,通过利用高阶张量表示实现多通道语音信号的增强,有以下几个优点。
首先,考虑到了语音增强处理过程中相位的重要性,并综合利用到了带噪语音信号时域-频域-空域三个维度的信息,可以通过理论和实验验证该技术的优越性。
其次,本发明利用张量分解技术将建立的三维模型投影在相对低维空间中,即分别通过三个二维的滤波器对带噪语音信号进行滤波,如图3所示,降低了计算复杂度,在保证最大限度降噪效果的同时将失真程度尽可能降低到最小。
此外,本发明进一步引入基于波束形成的后处理技术,以实现更大程度的降噪和更低程度的失真。
为了便于理解,下面针对上述两个步骤做详细的说明。
1、基于复张量表示的联合时域-频域-空域滤波模型
本发明实施例中,是利用到接收信号的时空频三维信息对带噪语音信号进行滤波等一系列处理。该多维滤波器技术是在帧内-帧间滤波器的模型上进行扩展延伸的,这个基础模型在时域上表示如下:
其中,sj(t),j=1,...,j表示在t时刻的第j个目标信号,cj(t)=[c1j(t),...,cij(t)]τ是指j个信号源分别经过i个麦克风接收记录的信号,aj(t,τ)=[a1j(t,τ),...,aij(t,τ)]τ表示第j个目标源对i个麦克风的声脉冲响应。
为了应用语音信号的短时频域的稀疏性,对上式做短时傅里叶变换,得到:
cj(n,f)=aj(n,f)sj(n,f).
其中,n∈{0,...,n-1}表示帧数,f∈{0,...,f-1}表示频率点,,每个时间点n对应着一帧信号cj(n,:),此处的f表示一个数值变量,一帧信号中包含有多个频率点数值。cj(n,f)=[c1j(n,f),...,cij(n,f]τ)、aj(n,f)=[a1j(n,f),...,aij(n,f)]τ和sj(n,f)分别对应着cj(t)=[c1j(t),...,cij(t)]τ、aj(t,τ)=[a1j(t,τ),...,aij(t,τ)]τ和sj(t)的短时傅里叶变换。当考虑到帧内信息和子带间的信息时,我们得到:
其中,aj(n′,f′,f)表示从频率点f到频率点f′的子带间滤波器,此滤波器利用到了频率维度的信息。n′是语音第n帧相邻的帧数,此参数的引入利用到了帧间的信息。基于子带滤波近似理论,上式可以化简为:
这里,我们仅仅考虑只有一个信号源的情况,也就是j=1,因此,为了方便,接下来我们就把上文中的信号源系数j都省略。c(n,f)在综合考虑到帧间,频率间,通道间的信息后可以被重新排列成三阶张量的形式,如图2所示的
2、基于联合时域-频域-空域滤波的语音增强方法
这里提出的联合时域-频域-空域的多维滤波框架,通过将接收到的多通道语音数据的短时傅里叶变换系数表示为三阶复张量形式,试图将时空频滤波整合到统一的框架中。假设观测到的多路语音数据的短时傅里叶变换系数可以表示为三阶复张量
其中,频域滤波器
这里,我们定义平均语音失真为:
jasd=e(||x-x×1hf×2ht×3hs||2),
平均噪声残留为:
janr=e(||n×1hf×2ht×3hs||2),
为了得到三维滤波器,我们应当优化下面目标函数:
(ηf,ht,hs)=argmin(jasd+λ·janr),
λ是均衡语音失真和噪声残留的折衷因子。
3、滤波器的求解方法
我们需要使用bcd方法去迭代更新求解时域、空域和频域滤波器。也就是说,当我们更新一个滤波器时,需要固定另外两个滤波器。这里,我们把这三个滤波器初始化为单位矩阵,在第m,(m≥1)次迭代中,这些滤波器更新如下:
通过若干次迭代,上述过程即可收敛得到结果。
下面,以空域滤波器hs的更新为例。为了表述方便,定义两个新的矩阵:
利用下面性质:
我们可以进一步把问题延伸为:
mine(||x(3)-hsx(3)sh||2)+λ·e(||hsn(3)sh||2),
接着,我们定义
综合上述关系,可以得到空域滤波器为:
接下来,我们对空域滤波器使用特征值分解。其中,c是e(x(3)x(3)h)的酉特征向量矩阵,x(3)=co,o是一个元素相互独立的随机加权矩阵,e(ooh)是e(x(3)x(3)h)的对角特征矩阵。类似地,λs=e(osoh)和λt=e(otoh)分别是rsx和rtx的对角特征矩阵。
综合上述内容,空域滤波器可以写成如下形式:
对于方差为δ2的空间白噪声,rtn是单位矩阵,上式可以写成:
在高斯色噪声情况下,例如噪声为方向性干扰时,空域滤波器可以表示成:
其中,diag(·)表示只保留对角线的元素。
想通过上述式子得到滤波器,还必须要知道λs,λt,c和噪声的统计特性。这里,δ2和rtn噪声特性是通过在带噪语音信号的静音区估计的。而λs,λt,c是分别通过对rsx和rtx进行特征值分解得到。其中,rsx和rtx又通过使用协方差减法得到:
rtx=rty-rtn,
rsx=rsy-rsn,
接下来,我们定义
因此,易知:
类似地,我们可以估计出来频域滤波器
求解出频域滤波器
我们可以得到增强后的语音信号,然后对上述得到的信号应为
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。