语音增强方法、装置、设备及存储介质转让专利

申请号 : CN201810967670.9

文献号 : CN110858485A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘章余涛

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本公开提出了一种语音增强方法、装置、设备及存储介质。将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出;将所述一阶差分输出与预定阈值进行比较;基于比较结果,确定各个频点的隐蔽值,其中,所述隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况;以及基于所述隐蔽值进行语音增强。本公开的基于差分mask实现的语音增强方案几乎没有延迟,且不受定向人声干扰的影响,可以有效提高地铁购票机等嘈杂场景中语音识别成功率。

权利要求 :

1.一种语音增强方法,包括:

将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出;

将所述一阶差分输出与预定阈值进行比较;

基于比较结果,确定各个频点的隐蔽值,其中,所述隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况;以及基于所述隐蔽值进行语音增强。

2.根据权利要求1所述的语音增强方法,其中,所述确定各个频点的隐蔽值的步骤包括:将所述一阶差分输出小于所述预定阈值时的频点的隐蔽值确定为1,并且将所述一阶差分输出大于或等于所述预定阈值时的频点的隐蔽值确定为0。

3.根据权利要求1所述的语音增强方法,其中,所述确定各个频点的隐蔽值的步骤包括:基于多个所述一阶差分输出分别与所述预定阈值进行比较的结果,确定每个所述一阶差分输出的隐蔽值估计结果;以及基于多个所述隐蔽值估计结果中对应同一频点的隐蔽值,确定该频点最终的隐蔽值。

4.根据权利要求3所述的语音增强方法,其中,所述确定该频点最终的隐蔽值的步骤包括:将所述多个所述隐蔽值估计结果中对应同一频点的隐蔽值的乘积,作为该频点最终的隐蔽值。

5.根据权利要求1所述的语音增强方法,其中,所述一阶差分输出等于滤波器系数与所述两个麦克风的时频域数据构成的矩阵的乘积。

6.根据权利要求5所述的语音增强方法,其中,所述滤波器系数为其中,h(ω)为滤波器系数,τ0是两个麦克风的距离除以声速,ω是角频率,α是用来调节差分零陷的方向的参数。

7.根据权利要求6所述的语音增强方法,还包括:基于说话人的声源位置信息,计算所述两个麦克风与所述说话人的相对角度;以及基于所述相对角度确定所述滤波器系数中的α。

8.根据权利要求7所述的语音增强方法,其中,所述计算所述两个麦克风与所述说话人的相对角度的步骤包括:确定所述两个麦克风的中心到所述说话人的第一方向向量;

确定所述两个麦克风中一个麦克风到另一个麦克风的第二方向向量;

基于所述第一方向向量和所述第二方向向量,计算所述相对角度。

9.根据权利要求1所述的种语音增强方法,其中,所述基于所述隐蔽值进行语音增强的步骤包括:基于所述隐蔽值,计算对应语音的第一相关矩阵和对应噪音的第二相关矩阵;以及基于所述第一相关矩阵和所述第二相关矩阵,利用波束形成算法进行语音增强。

10.根据权利要求9所述的语音增强方法,其中,所述第一相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应语音部分的协方差矩阵,所述第二相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应噪声部分的协方差矩阵。

11.一种语音增强装置,包括:

差分模块,用于将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出;

比较模块,用于将所述一阶差分输出与预定阈值进行比较;

确定模块,用于基于比较结果,确定各个频点的隐蔽值,其中,所述隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况;以及语音增强模块,用于基于所述隐蔽值进行语音增强。

12.一种支持语音交互功能的设备,包括:麦克风阵列,用于接收声音输入;以及

终端处理器,用于将所述麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出,将所述一阶差分输出与预定阈值进行比较,基于比较结果,确定各个频点的隐蔽值,并基于所述隐蔽值进行语音增强,其中,所述隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况。

13.根据权利要求12所述的设备,还包括:通信模块,用于将语音增强后的语音数据发送至服务器。

14.根据权利要求12所述的设备,其中,所述设备是以下任一种:购票机;

智能音箱;

机器人;

汽车。

15.一种计算设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-10中任何一项所述的方法。

16.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的方法。

说明书 :

语音增强方法、装置、设备及存储介质

技术领域

[0001] 本公开涉及语音增强领域,特别是涉及一种语音增强方法、装置、设备及存储介质。

背景技术

[0002] 随着人工智能语音技术的发展,很多传统设备对人机语音交互的需求愈加强烈,例如地铁购票机。但是,要在地铁购票机场景成功应用需要挑战高度嘈杂的噪声环境。这些噪声有:人群说话造成的泡沫噪声,购票人周围说话人造成的干扰噪声,人群移动产生噪声,地铁机车运动的机械噪声,高音喇叭的干扰音等。高度嘈杂的噪声给语音识别带来极大的挑战,由于现有声学模型技术无法有效克服泡沫噪声和人声干扰的影响,在高度嘈杂环境中,语音识别效果会急剧下降。
[0003] 因此,需要一种针对嘈杂场景下的语音增强方案。

发明内容

[0004] 本公开的一个目的在于提供一种能够提高语音增强效果的语音增强方案。
[0005] 根据本公开的第一个方面,提出了一种语音增强方法,包括:将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出;将一阶差分输出与预定阈值进行比较;基于比较结果,确定各个频点的隐蔽值,其中,隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况;以及基于隐蔽值进行语音增强。
[0006] 可选地,确定各个频点的隐蔽值的步骤包括:将一阶差分输出小于预定阈值时的频点的隐蔽值确定为1,并且将一阶差分输出大于或等于预定阈值时的频点的隐蔽值确定为0。
[0007] 可选地,确定各个频点的隐蔽值的步骤包括:基于多个一阶差分输出分别与预定阈值进行比较的结果,确定每个一阶差分输出的隐蔽值估计结果;以及基于多个隐蔽值估计结果中对应同一频点的隐蔽值,确定该频点最终的隐蔽值。
[0008] 可选地,确定该频点最终的隐蔽值的步骤包括:将多个所述隐蔽值估计结果中对应同一频点的隐蔽值的乘积,作为该频点最终的隐蔽值。
[0009] 可选地,一阶差分输出等于滤波器系数与两个麦克风的时频域数据构成的矩阵的乘积。
[0010] 可选地,滤波器系数为
[0011]
[0012] 其中,h(ω)为滤波器系数,τ0是两个麦克风的距离除以声速,ω是角频率,α是用来调节差分零陷的方向的参数。
[0013] 可选地,语音增强方法,还包括:基于说话人的声源位置信息,计算两个麦克风与说话人的相对角度;以及基于相对角度确定滤波器系数中的α。
[0014] 可选地,计算两个麦克风与说话人的相对角度的步骤包括:确定两个麦克风的中心到说话人的第一方向向量;确定两个麦克风中一个麦克风到另一个麦克风的第二方向向量;基于第一方向向量和第二方向向量,计算相对角度。
[0015] 可选地,基于所述隐蔽值进行语音增强的步骤包括:基于所述隐蔽值,计算对应语音的第一相关矩阵和对应噪音的第二相关矩阵;以及基于所述第一相关矩阵和所述第二相关矩阵,利用波束形成算法进行语音增强。
[0016] 可选地,所述第一相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应语音部分的协方差矩阵,所述第二相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应噪声部分的协方差矩阵。
[0017] 根据本公开的第二个方面,还提供了一种语音增强装置,包括:差分模块,用于将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出;比较模块,用于将一阶差分输出与预定阈值进行比较;确定模块,用于基于比较结果,确定各个频点的隐蔽值,其中,隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况;以及语音增强模块,用于基于所述隐蔽值进行语音增强。
[0018] 可选地,确定模块将一阶差分输出小于预定阈值时的频点的隐蔽值确定为1,并且将一阶差分输出大于或等于预定阈值时的频点的隐蔽值确定为0。
[0019] 可选地,确定模块基于多个一阶差分输出分别与预定阈值进行比较的结果,确定每个一阶差分输出的隐蔽值估计结果,并基于多个隐蔽值估计结果中对应同一频点的隐蔽值,确定该频点最终的隐蔽值。
[0020] 可选地,确定模块将多个所述隐蔽值估计结果中对应同一频点的隐蔽值的乘积,作为该频点最终的隐蔽值。
[0021] 可选地,一阶差分输出等于滤波器系数与两个麦克风的时频域数据构成的矩阵的乘积。
[0022] 可选地,滤波器系数为
[0023]
[0024] 其中,h(ω)为滤波器系数,τ0是两个麦克风的距离除以声速,ω是角频率,α是用来调节差分零陷的方向的参数。
[0025] 可选地,隐蔽值估计装置,还包括:角度计算模块,用于基于说话人的声源位置信息,计算两个麦克风与说话人的相对角度;以及系数确定模块,用于基于相对角度确定滤波器系数中的α。
[0026] 可选地,角度计算模块包括:第一方向向量确定模块,用于确定两个麦克风的中心到说话人的第一方向向量;第二方向向量确定模块,用于确定两个麦克风中一个麦克风到另一个麦克风的第二方向向量;计算子模块,用于基于第一方向向量和第二方向向量,计算相对角度。
[0027] 可选地,语音增强模块包括矩阵计算模块,用于基于隐蔽值,计算对应语音的第一相关矩阵和对应噪音的第二相关矩阵;以及波束形成模块,用于基于第一相关矩阵和第二相关矩阵,利用波束形成算法进行语音增强。
[0028] 可选地,所述第一相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应语音部分的协方差矩阵,所述第二相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应噪声部分的协方差矩阵。
[0029] 根据本公开的第三个方面,还提供了一种支持语音交互功能的设备,包括:麦克风阵列,用于接收声音输入;以及终端处理器,用于将所述麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出,将所述一阶差分输出与预定阈值进行比较,基于比较结果,确定各个频点的隐蔽值,并基于所述隐蔽值进行语音增强,其中,所述隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况。
[0030] 可选地,该设备还包括通信模块,用于将语音增强后的语音数据发送至服务器。
[0031] 可选地,该设备是以下任一种:购票机;智能音箱;机器人;汽车。
[0032] 根据本公开的第四个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本公开第一个方面述及的方法。
[0033] 根据本公开的第五个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本公开第一个方面述及的方法。
[0034] 本公开基于麦克风阵列的一阶差分输出进行mask估计,时间上仅依赖声源定位信息,可以做到无延或迟延迟很小。并且,不受定向人声干扰的影响。因此本公开的基于差分mask的语音增强方案,可以实现实时语音增强,有效提高地铁购票机等嘈杂场景中语音识别成功率。

附图说明

[0035] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0036] 图1是示出了由4个麦克风构成的麦克风阵列的示意图。
[0037] 图2是示出了根据本公开一实施例的语音增强方法的示意性流程图。
[0038] 图3是示出了根据本公开一实施例的支持语音交互功能的设备的结构框图。
[0039] 图4是示出了根据本公开一实施例的语音增强方案的整体流程图。
[0040] 图5是示出了根据本公开一实施例的语音增强装置的结构的示意性方框图。
[0041] 图6是示出了图5中的语音增强模块可以具有的功能模块的结构的示意性方框图。
[0042] 图7示出了根据本公开一实施例的计算设备的结构示意图。

具体实施方式

[0043] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0044] 【术语解释】
[0045] (1)语音增强
[0046] 语音增强是指当语音信号被各种各样的噪声干扰、甚至淹没后,从噪声背景中提取有用的语音信号,抑制、降低噪声干扰的技术。
[0047] (2)麦克风阵列
[0048] 麦克风阵列是一组位于空间不同位置的全向麦克风按一定的形状规则布置形成的阵列,是对空间传播声音信号进行空间采样的一种装置,采集到的信号包含了其空间位置信息。根据声源和麦克风阵列之间距离的远近,可将阵列分为近场模型和远场模型。根据麦克风阵列的拓扑结构,则可分为线性阵列、平面阵列、体阵列等。
[0049] (3)零陷
[0050] 波束方向图中的最低增益点。
[0051] (4)MVDR
[0052] MVDR(Minimum Variance Distortionless Response,最小方差无失真响应)是一种基于最大信噪比(SNR)准则的自适应波束形成算法。MVDR算法可以自适应地使阵列输出在期望方向上功率最小同时信噪比最大。
[0053] (5)mask
[0054] mask,可以翻译为隐蔽值(或掩蔽值),可以表征带噪语音中噪声对语音的遮蔽情况。一般来说,mask主要分为理想二值掩蔽(Ideal Binary Mask,IBM)和理想比值掩蔽(Ideal Ratio Mask,IRM)。本公开述及的mask可以视为IBM。
[0055] IBM是根据听觉感知特性,把音频信号分成不同的子带,根据每个时频单元上的信噪比,把对应的时频单元的能量设为0(噪音占主导的情况下)或者保持原样,也即把对应的时频单元的能量设为1(目标语音占主导的情况下)。
[0056] IRM同样对每个时频单元进行计算,但不同于IBM的“非0即1”,IRM中会计算语音信号和噪音之间的能量比,得到介于0到1之间的一个数,然后据此改变时频单元的能量大小。IRM是对IBM的演进,反映了各个时频单元上对噪声的抑制程度,可以进一步提高分离后语音的质量和可懂度。
[0057] 【方案概述】
[0058] 基于麦克风阵列信号处理的语音增强技术可以大幅度提高信噪比和语音识别的性能,因此可以通过在语音交互设备(如购票机)上安装麦克风阵列并通过有效的增强方案提高语音识别率。
[0059] 目前领先的语音增强方案采用mask(隐蔽值)估计架构,先估计目标频点的mask,然后采用beamforming(波束形成)方法进行空域滤波,以实现语音增强。常用的mask估计技术有基于聚类的CGMM(Complex Gaussian mixture model,复数混合高斯模型)和基于神经网络的nn-mask,但是这两种方案的缺点是无法实时估计mask并且无法解决定向人声干扰。
[0060] 有鉴于此,本公开提出了一种基于差分方法的mask估计方案,通过一组或多组差分麦克风组合可以获得可靠的mask估计值。基于获取的mask估计值,可以计算对应语音的相关矩阵以及噪音的相关矩阵,然后利用MVDR或者GEV(generalized eigenvector,广义特征向量)等波束形成方法进行空域滤波,以实现语音增强。
[0061] 下面就本公开涉及的各方面做进一步说明。
[0062] 【基于差分原理的mask估计方案】
[0063] A、一阶差分麦克风原理
[0064] 利用空间声压的差异性,两个全向麦克风输出相减可以得到一阶差分输出。一阶差分麦克风的滤波器系数可以表示为下式,
[0065]
[0066] 其中,τ0是两个麦克风的距离除以声速,ω是角频率,α是用来调节差分零陷的方向的参数。一阶差分滤波可以获得在所有频率一致的beam pattern(波束模式),波束模式可以由下式描述,
[0067]
[0068] 其中,θ是两个麦克风与说话人的相对角度,α用来调节差分零陷的方向。根据零陷的定义可知,当cosθ=α时,即是零陷角度。因此,本公开提出的一阶差分滤波是为了在指定的方向(θ,即两个麦克风相对于说话人的方向)上放置零陷,以便于获取差分mask。
[0069] 下面就一阶差分滤波器系数的计算公式的推导过程进行描述,对于其中涉及的为本领域所公知的细节,本公开不再赘述。
[0070] 差分阵列表现的是空间声压的差异性,声压的一阶差分可以由两个相近放置的全向麦克风输出相减得到,同理,N个麦克风可以最多可以获得声压的N-1阶差分。在设计一个差分阵列时,一个很重要的条件就是麦克风间距要小到麦克风间的有限差值输出能够估计实际声压场的差别,与声音信号波长相比,麦克风间距要远小于波长。
[0071] 一阶差分阵列中,需要两个麦克风,有两个约束条件:1.在目标方向无失真,即在说话人方向(即上文述及的θ,两个麦克风与说话人的相对方向)上gain(增益)=1;2.零点在区间0°<θ<180°内。
[0072] 这两个约束用数学表示如下:
[0073] dT(ω,cos 0°)h(ω)=dT(ω,1)h(ω)=1
[0074] dT(ω,α1,1)h(ω)=β1,1
[0075] 其中,h(ω)为滤波器系数,dT()h(ω)表示在括号内的条件下的滤波器系数,ω是角频率,α1,1是用来调节零点的方向的参数,α1,1=cosθ1,1,表示在目标方向上设置零点,因此β1,1=0。
[0076] 上式用矩阵可以表示如下:
[0077]
[0078] 该式可以进一步表示为范德蒙矩阵(Vandermonde matrix),
[0079]
[0080] 其中,τ0是两个麦克风的距离除以声速,对上述矩阵求解,可以得到一阶差分滤波器为,
[0081]
[0082] 当麦克风间距远小于信号波长时,可以作如下数学假设:ex≈1+x,将该数学假设应用到上式进行简化,可以得到一阶差分麦克风的滤波器系数的计算公式
[0083]
[0084] B、差分mask获取
[0085] 当差分麦克风的零陷对准指定方向时,可以屏蔽该方向的语音。利用这一原理可以在时频图上找到零陷方向的时频点,下面以图1所示的由4个麦克风构成的线性麦克风阵列为例描述差分mask的获取方法。应该知道,本公开的差分mask获取方法还可以适用于其他数量或形式的麦克风阵列。
[0086] 1、首先可以通过声源位置信息,计算mic1,mic2与说话人的相对角度,设mic1,mic2中心到说话人的方向向量为(xs,ys),mic2指向mic1的方向向量是(x12,y12),则将cos(θ1)直接带入A中公式的α可获得mic1,mic2的滤波器系数H12(ω)。同理可获得mic3,mic4的滤波器系数H34(ω)。
[0087] 2、设mic1,mic2,mic3,mic4的时频域数据分别为X1(t,ω),X2(t,ω),X3(t,ω),X4(t,ω),计算mic1,mic2的差分输出 计算mic3,mic4的差分输出
[0088] 3、如果频点(t,ω)来自mic1,mic2差分零陷,那么X12(t,ω)的模值理论上为零,会远远小于原始X1 (t ,ω) ,X2(t ,ω)的模值,因此可以设一阈值e ,当时,即可认为频点(t,ω)来自目标说话人。即在频点
(t,ω)的mask,M12(t,ω)=1,否则M12(t,ω)=0,其中,阈值e的具体数值可以根据实际经验确定。
[0089] 如图1中所示的beam pattern曲线,当零陷靠近一端时,靠近这一端方向的响应也会很小,这很容易导致估计错误。可以使用多组一阶差分麦克风克服该缺陷。
[0090] 具体地,同理可估得M34(t,ω)、M13(t,ω)、M23(t,ω)、M24(t,ω)等多组一阶差分麦克风的mask,最后的mask输出可以是多组一阶差分麦克风的mask的乘积。例如,最后的mask输出可表示为,M(t,ω)=M12(t,ω)·M34(t,ω)·M23(t,ω)·M13(t,ω)·M24(t,ω)。其中,M(t,ω)表示最后的mask输出结果,M12(t,ω)表示针对mic1、mic2得到的差分mask估计结果(也即下文述及的隐蔽值估计结果),M34(t,ω)表示针对mic3、mic4得到的差分mask估计结果,M23(t,ω)表示针对mic2、mic3得到的差分mask估计结果,M13(t,ω)表示针对mic1、mic3得到的差分mask估计结果,M24(t,ω)表示针对mic2、mic4得到的差分mask估计结果。
[0091] 【语音增强】
[0092] 在获取了语音mask信息后,就可以基于mask信息进行语音增强。如可以采用beamforming(波束形成)方法进行空域滤波,以实现语音增强。例如,可以基于子空间方法实现语音增强,子空间方法的基本思想是计算出信号的自相关矩阵或协方差矩阵,然后将带噪语音信号划分为有用信号子空间和噪声信号子空间,利用有用信号子空间对信号进行重构,从而得到增强后的信号。
[0093] 可见,子空间方法需要利用含噪语音信号构建协方差矩阵,然后对其进行分解以得到信号子空间和噪声子空间。在本公开中,可以根据基于差分mask获取方式得到的mask信息快速计算出语音的相关矩阵(如协方差矩阵)和噪声的相关矩阵(如协方差矩阵),其中,语音的相关矩阵可以表征语音对应的信号子空间,噪声的相关矩阵可以表征噪声对应的噪声子空间。因此,计算得到的相关矩阵可以应用于波束形成算法中,以实现语音增强。
[0094] 作为本公开的一个示例,语音的相关矩阵可以是基于获取的mask信息从麦克风阵列的输出的时频域数据中提取出的对应语音部分的协方差矩阵,噪音的相关矩阵可以是基于获取的mask信息从麦克风阵列的输出的时频域数据中提取出的对应噪声部分的协方差矩阵。例如,可以通过如下公式分别计算噪声和语音的相关矩阵,其中,噪音的相关矩阵计H算公式可以表示为,RNN=Et((1-M(t,ω))·(X(t,ω)X(t,ω) )),语音的相关矩阵计算公式可以表示为,RSS=Et(M(t,ω)·(X(t,ω)X(t,ω)H))。其中,RNN表示噪音的相关矩阵,RSS表示语音的相关矩阵,Et表示求期望,也可用平均统计量代替,M(t,ω)表示最终计算得到的各个频点(t,ω)的隐蔽值,X(t,ω)表示麦克风阵列输出的时频域数据,X(t,ω)H表示X(t,ω)的共轭转置。
[0095] 在得到语音和噪音的相关矩阵后,可以基于多种波束形成算法对语音做增强,例如,可以使用上文提及的MVDR、GEV等波束形成算法来实现语音增强。波束形成算法的具体实现过程此处不再赘述。
[0096] 至此,就本公开的基于差分原理的mask估计方案和基于mask的语音增强方案的实现原理做了简要说明。
[0097] 【语音增强方法】
[0098] 本公开可以实现为一种语音增强方法。图2是示出了根据本公开一实施例的语音增强方法的示意性流程图。
[0099] 参见图2,在步骤S210,将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出。
[0100] 麦克风阵列可以安装在语音交互设备(如购票机)上。可以利用空间声压的差异性,将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出。需要说明的是,此处可以针对麦克风阵列中任意一对麦克风,将该对麦克风的输出相减,以得到一个一阶差分输出,也可以针对麦克风阵列中的任意多对麦克风,将每对麦克风的输出相减,以得到多个一阶差分输出。
[0101] 在本实施例中,一阶差分输出可以等于滤波器系数与对应的两个麦克风的时频域数据构成的矩阵的乘积。以两个麦克风分别为mic1和mic2为例,mic1和mic2的一阶差分输出 其中,H12(ω)为mic1,mic2的滤波器系数,X1(t,ω)为mic1的时频数据,X2(t,ω)为mic2的时频数据。如上文所述,滤波器系数可以表示为[0102]
[0103] 其中,h(ω)为滤波器系数,τ0是两个麦克风的距离除以声速,ω是角频率,α是用来调节差分零陷的方向的参数。
[0104] 在本实施例中,还可以基于说话人的声源位置信息,计算两个麦克风与说话人的相对角度,基于相对角度确定滤波器系数中的α。例如,可以首先确定两个麦克风的中心到说话人的第一方向向量,然后确定两个麦克风中一个麦克风到另一个麦克风的第二方向向量,基于第一方向向量和第二方向向量,计算相对角度。其中,相对角度的具体计算过程可以参见上文相关说明,此处不再赘述。
[0105] 需要强调的是,波束模式可以描述为, 当cosθ=α时,是零陷角度,而cosθ则是滤波器系数对应的两个麦克风与说话人的相对角度的余弦。
[0106] 在步骤S220,将一阶差分输出与预定阈值进行比较。
[0107] 在步骤S230,基于比较结果,确定各个频点的隐蔽值。
[0108] 隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况。在本公开中,隐蔽值(mask)可以是指理想二值掩蔽(Ideal Binary Mask,IBM),关于IBM的描述可以参见上文说明,此处不再赘述。
[0109] 如波束模式的描述公式可知,当差分麦克风的零陷对准指定方向时,可以屏蔽该方向的语音,如果频点(t,ω)来自mic1,mic2差分零陷,那么X12(t,ω)的模值理论上为零,会远远小于原始X1(t,ω),X2(t,ω)的模值。因此,可以设置一个预定阈值,针对每个一阶差分输出,可以将该一阶差分输出与预定阈值进行比较,一阶差分输出小于预定阈值时的频点(t,ω)的隐蔽值为1,一阶差分输出大于预定阈值时的频点(t,ω)的隐蔽值为0。
[0110] 例如,可以设置一个阈值e,当 时,即可认为频点(t,ω)来自目标说话人,即在频点(t,ω)的mask,M12(t,ω)=1,否则M12(t,ω)=0,其中,阈值e的具体数值可以根据实际经验确定。
[0111] 如图1中所示的beam pattern曲线,当零陷靠近一端时,靠近这一端方向的响应也会很小,这很容易导致mask估计错误。为此,本公开提出,可以基于多个一阶差分输出分别与预定阈值进行比较的结果,确定每个一阶差分输出的隐蔽值估计结果,然后可以基于多个隐蔽值估计结果中对应同一频点的隐蔽值,确定该频点最终的隐蔽值,如可以将多个隐蔽值估计结果中对应同一频点的隐蔽值的乘积,作为该频点最终的隐蔽值。
[0112] 例如,假设麦克风阵列由mic1、mic2、mic3、mic4这4个麦克风构成,可以使用上述方法估算M12(t,ω)、M34(t,ω)、M13(t,ω)、M23(t,ω)、M24(t,ω)等多组一阶差分麦克风的隐蔽值估计结果,然后可以将计算得到的对应同一频点的隐蔽值的乘积,作为该频点的隐蔽值,也就是说,最后的mask输出可表示为M(t,ω),其中,M(t,ω)=M12(t,ω)·M34(t,ω)·M23(t,ω)·M13(t,ω)·M24(t,ω)。由此,可以克服零陷靠近某一端所造成的影响。
[0113] 在步骤S240,基于隐蔽值进行语音增强。
[0114] 基于确定的隐蔽值,可以利用MVDR或者GEV等波束形成算法进行空域滤波,以实现语音增强。具体的计算过程为本领域成熟技术,这里不再赘述。
[0115] 简要来说,可以首先基于隐蔽值,计算对应语音的第一相关矩阵和对应噪音的第二相关矩阵。其中,第一相关矩阵为基于隐蔽值从麦克风阵列输出的时频域数据中提取出的对应语音部分的协方差矩阵,第二相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应噪声部分的协方差矩阵。然后,基于第一相关矩阵和第二相关矩阵,利用波束形成算法进行语音增强。
[0116] 作为示例,第一相关矩阵RSS=Et(M(t,ω)·(X(t,ω)X(t,ω)H)),第二相关矩阵RNN=Et((1-M(t,ω))·(X(t,ω)X(t,ω)H)),其中,M(t,ω)表示时不同频点(t,ω)的隐蔽值,X(t,ω)表示麦克风阵列输出的时频域数据,Et表示数学期望,X(t,ω)H表示X(t,ω)的共轭转置。其中,X(t,ω)可以包括麦克风阵列中一个或多个麦克风的时频域数据。
[0117] 【应用场景及应用例】
[0118] 本公开的语音增强方案适用于嘈杂环境中的支持语音交互功能的设备,特别是与声源(说话人,也即发出语音指令的用户)的距离较远的设备,如Echo(智能音箱)、机器人、汽车、购票机等等。此处述及的嘈杂环境是指存在各种噪声影响的环境。以地铁购票机为例,地铁购票机经常设置在地铁站内人流较多的入口处,要在地铁购票机上成功应用语音识别技术,需要挑战高度嘈杂的噪声环境,这些噪声包括但不限于:人群说话造成的泡沫噪声、购票人周围说话人造成的干扰噪声、人群移动产生噪声、地铁运动的机械噪声、高音喇叭的干扰音等等。
[0119] 本公开的语音增强方案可以部署在这类应用于嘈杂环境中的支持语音交互功能的设备上,对目标语音进行增强,以提高语音识别性能。
[0120] 图3是示出了根据本公开一实施例的支持语音交互功能的设备的结构框图。其中,图3所示的设备可以是应用于嘈杂环境中的语音交互设备,可以是但不限于智能音箱、机器人、汽车、购票机等等。
[0121] 如图3所示,设备300包括麦克风阵列310和终端处理器320。
[0122] 麦克风阵列310用于接收声音输入,麦克风阵列310接收到的声音输入中可能既包括说话人的语音,也包括周围环境噪声。
[0123] 对于麦克风阵列310接收到的声音信号,终端处理器320可以首先对其进行模数转换,以得到声音数据,然后可以利用本公开的语音增强方案进行语音增强。简要来说,终端处理器320可以将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出,将一阶差分输出与预定阈值进行比较,基于比较结果,确定各个频点的隐蔽值,并基于隐蔽值进行语音增强,其中,隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况。关于终端处理器320执行语音增强方案的具体实现细节可以参见上文相关说明,此处不再赘述。
[0124] 另外,设备300还可以包括通信模块330。可以通过通信模块330将终端处理器320进行语音增强后的语音数据发送至服务器,由服务器进行后续的语音识别、指令下发等操作。
[0125] 图4是示出了图3所示的设备可以执行的语音增强方案的整体流程图。其中,图4中示出的VAD判断、差分mask估计、统计量计算、波束形成均可以由图3中的终端处理器执行。
[0126] 如图4所示,左侧的实心圆代表麦克风阵列,麦克风阵列采集原始声波信号通过ADC(模数转换)得到数字形式的声音数据后,可以根据语音活动检测结果(即VAD输入)进行VAD判断。其中,语音活动检测结果可以是基于现有的语音活动检测方式检测得到的结果信息,关于语音活动检测方式的原理及实现细节不是本公开的重点,此处不再赘述。
[0127] 根据VAD判断结果,可以确定是否将声音数据传给差分mask估计模块,或者直接传入统计量计算模块。例如,可以在VAD输入为存在语音活动的情况下,将经过模数转换后的声音数据传入差分mask估计模块,在VAD输入为不存在语音活动的情况下,可以将经过模数转换后的数字信号传入统计量计算模块。
[0128] 差分mask估计模块可以接受声源位置信息输入,并执行本公开的mask估计方案来获得带噪语音中对应目标语音的时频点。其中,声源位置信息可以是基于已知的任何定位方式确定的目标说话人的位置信息,例如可以通过多信号分类算法(Multiple Signal classification,MUSIC)确定声源位置信息,关于声源位置信息的具体确定方式不是本公开的关注点,因此关于声源位置信息的定位过程,本公开不再赘述。
[0129] 统计量计算模块可以接收原始音频数据以及差分mask估计模块估计得到的各个频点的mask信息,并计算对应语音的相关矩阵以及噪音的相关矩阵。波束形成模块可以通过输入语音和噪音的相关矩阵计算空域滤波器系数,并对原始音频做波束形成输出最后增强的语音。
[0130] 与基于聚类的CGMM和基于神经网络的mask估计方案相比,本公开的基于一阶差分输出的mask估计方案几乎没有延迟(时间上依赖声源定位信息,可以做到无延或迟延迟很小)。并且,对于定向的人声干扰,基于聚类的CGMM方法和基于神经网络的nn-mask无法解决,本公开的基于一阶差分输出的mask估计方案则不受定向人声干扰的影响。因此,本公开的基于差分mask的实时语音增强方案,可以有效提高地铁购票机等嘈杂场景中语音识别成功率。
[0131] 【语音增强装置】
[0132] 图5是示出了根据本公开一实施例的语音增强装置的结构的示意性方框图。其中,语音增强装置的功能模块可以由实现本公开原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图5所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
[0133] 下面就语音增强装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文结合图2的描述,这里不再赘述。
[0134] 参见图5,语音增强装置500包括差分模块510、比较模块520、确定模块530以及语音增强模块540。
[0135] 差分模块510用于将麦克风阵列中两个麦克风的输出相减,以得到一阶差分输出。比较模块520用于将一阶差分输出与预定阈值进行比较。确定模块530用于基于比较结果,确定各个频点的隐蔽值,语音增强模块540用于基于隐蔽值进行语音增强。其中,隐蔽值用于表征带噪语音中噪声对语音的遮蔽情况。其中,确定模块530可以将一阶差分输出小于预定阈值时的频点的隐蔽值确定为1,并且将一阶差分输出大于或等于预定阈值时的频点的隐蔽值确定为0。
[0136] 作为本公开的一个示例,确定模块530可以基于多个一阶差分输出分别与预定阈值进行比较的结果,确定每个一阶差分输出的隐蔽值估计结果,并基于多个隐蔽值估计结果中对应同一频点的隐蔽值,确定该频点最终的隐蔽值。
[0137] 在本实施例中,一阶差分输出可以等于滤波器系数与两个麦克风的时频域数据构成的矩阵的乘积。其中,滤波器系数为
[0138]
[0139] 其中,h(ω)为滤波器系数,τ0是两个麦克风的距离除以声速,ω是角频率,α是用来调节差分零陷的方向的参数。
[0140] 作为本公开的一个示例,隐蔽值估计装置500还可以包括角度计算模块和系数确定模块(图中未示出)。角度计算模块用于基于说话人的声源位置信息,计算两个麦克风与说话人的相对角度,系数确定模块用于基于相对角度确定滤波器系数中的α。
[0141] 可选地,角度计算模块可以包括:第一方向向量确定模块,用于确定两个麦克风的中心到说话人的第一方向向量;第二方向向量确定模块,用于确定两个麦克风中一个麦克风到另一个麦克风的第二方向向量;计算子模块,用于基于第一方向向量和第二方向向量,计算相对角度。
[0142] 如图6所示,语音增强模块540包括矩阵计算模块541和波束形成模块542。
[0143] 矩阵计算模块541用于基于隐蔽值,计算对应语音的第一相关矩阵和对应噪音的第二相关矩阵。其中,第一相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应语音部分的协方差矩阵,所述第二相关矩阵为基于所述隐蔽值从所述麦克风阵列输出的时频域数据中提取出的对应噪声部分的协方差矩阵。例如,第一相关矩阵RSS=Et(M(t,ω)·(X(t,ω)X(t,ω)H)),第二相关矩阵RNN=Et((1-M(t,ω))·(X(t,ω)X(t,ω)H)),其中,M(t,ω)表示不同频点(t,ω)的隐蔽值矩阵,X(t,ω)表示麦克风阵列输出的时频域数据,Et表示数学期望,X(t,ω)H表示X(t,ω)的共轭转置。
[0144] 波束形成模块542用于基于第一相关矩阵和第二相关矩阵,利用波束形成算法进行语音增强。例如,可以利用MVDR或者GEV等波束形成方法进行空域滤波,以实现语音增强。
[0145] 【计算设备】
[0146] 图7示出了根据本公开一实施例可用于实现上述语音增强方法的计算设备的结构示意图。
[0147] 参见图7,计算设备700包括存储器710和处理器720。
[0148] 处理器720可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器720可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器720可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
[0149] 存储器710可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器720或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器710可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器710可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
[0150] 存储器710上存储有可执行代码,当可执行代码被处理器720执行时,可以使处理器720执行上文述及的语音增强方法。
[0151] 上文中已经参考附图详细描述了根据本公开的语音增强方法、装置及设备。
[0152] 此外,根据本公开的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本公开的上述方法中限定的上述各步骤的计算机程序代码指令。
[0153] 或者,本公开还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本公开的上述方法的各个步骤。
[0154] 本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
[0155] 附图中的流程图和框图显示了根据本公开的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0156] 以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。