1.本技术涉及语音信号处理技术领域,具体涉及一种语音信号去混响方法及装置。
背景技术:2.通常在声音信号采集或录制的情况下,声音接收器除了接收到所需要的声源发射声波直接到达的部分外,还会接收声源发出的、经过其它途径传递到达的声波,以及所在环境其它声源产生的不需要的声波(即背景噪声)。在声学上,延迟时间达到约50ms以上的反射波称为回声,其余的反射波产生的效应称为混响。混响现象将对期望声音信号的接收效果产生影响,导致声学接收系统性能变差。例如,混响会导致语音识别系统性能显著下降。因此,如何减少混响对声音接收系统的影响,即去混响(dereverberation),是一个非常重要的课题。
3.随着麦克风阵列技术的不断推广,其广泛应用到语音处理设备中,去混响问题成为了多通道语音信号去混响。然而,现有的去混响技术方案大多针对各个通道单独进行混响成分估计,导致去混响效果较差。但由于多通道联合去混响算法复杂,计算量较大,导致多通道联合去混响算法受到应用场景的制约。因此,如何提高多通道语音信号的去混响是急需解决的技术问题。
技术实现要素:4.有鉴于此,本技术实施例提供一种语音信号去混响方法和装置,以实现充分利用多通道语音信号进行去混响,降低计算量,提高去混响效果。
5.为实现上述目的,本技术实施例提供的技术方案如下:
6.在本技术实施例第一方面,提供了一种语音信号去混响方法,所述方法包括:
7.针对任一时刻的多通道语音信号,获取第i时刻对应的第一多通道语音信号以及第i
‑
1时刻对应的第一滤波器系数,所述i=1,
…
,n,n为不小于1的正整数,所述第一多通道语音信号为m*1的矩阵,所述第一滤波系数为m*m的矩阵,所述m为麦克风个数;
8.根据更新步长、所述第一多通道语音信号以及所述第一滤波系数确定所述第i时刻对应的第二滤波系数;
9.根据所述第一多通道语音信号以及所述第二滤波系数获得去混响语音信号。
10.在一种具体的实现方式中,所述根据所述更新步长、所述第一多通道信号以及所述第一滤波系数确定所述第i时刻对应的第二滤波系数,包括:
11.获取第i时刻对应的更新步长,所述更新步长与i成负相关;
12.根据所述第一多通道语音信、滤波器的阶数以及滤波器的时延确定第二多通道语音信号;
13.将所述更新步长、所述第二多通道语音信号以及所述第二多通道语音信号的共轭转置相乘获得第一矩阵;
14.将所述更新步长、所述第二多通道语音信号以及所述第一多通道语音信号的共轭
转置相乘获得第二矩阵;
15.根据所述第一矩阵、所述第二矩阵以及所述第一滤波系数获得第二滤波系数。
16.在一种具体的实现方式中,所述根据所述第一矩阵、所述第二矩阵以及所述第一滤波系数获得第二滤波系数,包括:
17.将所述第一矩阵与单位矩阵相加获得第三矩阵;
18.将所述第三矩阵与所述第一滤波系数相乘再减去第二矩阵获得第二滤波系数。
19.在一种具体的实现方式中,所述根据所述第一多通道语音信号以及所述第二滤波系数获得去混响语音信号,包括:
20.根据所述第一多通道语音信号、滤波器的延时以及所述第二滤波系数相乘获得第三多通道信号;
21.将所述第一多通道信号与所述第三多通道信号的差值确定为去混响信号。
22.在一种具体的实现方式中,所述方法还包括:
23.将所述去混响信号输入补偿模型,获得补偿系数,所述补偿模型是根据训练样本训练获得的,所述训练样本包括待训练无混响语音信号以及待训练去混响语音信号;
24.根据所述补偿系数以及所述去混响语音信号获得补偿后的去混响语音信号。
25.在一种具体的实现方式中,所述根据所述补偿系数以及所述去混响语音信号获得补偿后的去混响语音信号,包括:
26.将所述补偿系数与所述去混响语音信号相乘获得补偿后的去混响语音信号。
27.在一种具体的实现方式中,在所述i=1时,第0时刻对应的第一滤波系数由单位矩阵以及随机对角矩阵确定。
28.在本技术实施例第二方面,提供了一种语音信号去混响装置,所述装置包括:
29.第一获取单元,用于针对任一时刻的多通道语音信号,获取第i时刻对应的第一多通道语音信号以及第i
‑
1时刻对应的第一滤波器系数,所述i=0,
…
,n,n为不小于1的正整数,所述第一多通道语音信号为m*1的矩阵,所述第一滤波系数为m*m的矩阵,所述m为麦克风个数;
30.确定单元,用于根据更新步长、所述第一多通道语音信号以及所述第一滤波系数确定所述第i时刻对应的第二滤波系数;
31.第二获取单元,用于根据所述第一多通道语音信号以及所述第二滤波系数获得去混响语音信号。
32.在本技术实施例第三方面,提供了一种语音设备,包括:处理器,存储器;
33.所述存储器,用于存储计算机可读指令或者计算机程序;
34.所述处理器,用于读取所述计算机可读指令或所述计算机程序,以使得所述设备实现第一方面所述的语音信号去混响方法。
35.在本技术实施例第四方面,提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上第一方面所述的语音信号去混响方法。
36.由此可见,本技术实施例具有如下有益效果:
37.本技术实施例在对某一时刻的语音信号进行去混响操作时,首先获取该时刻对应的第一多通道语音信号,以及相邻上一时刻对应的滤波器系数,即第一滤波器系数。根据更新步长、第一多通道语音信号以及第一滤波器系数确定当前时刻对应的第二滤波器系数。
其中,更新步长用于对第一滤波器系数进行更新,以获得第二滤波器系数。在获得第二滤波器系数后,利用第二滤波器系数对第一多通道语音信号进行去混响操作,获得去混响语音信号。可见,本技术实施例在对多通道语音信号进行去混响操作时,利用上一时刻的滤波器系数来确定当前时刻的滤波器系数,无需利用其它额外大量的参数,减少计算量,且实现对语音信号进行实时去混响,提高语音信号的质量。
附图说明
38.图1为本技术实施例提供的一种语音信号去混响方法流程图;
39.图2为本技术实施例提供的一种语音信号去混响装置结构图。
具体实施方式
40.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术实施例作进一步详细的说明。
41.为便于理解本技术实施例的技术方案,下面将先对本技术实施例涉及的技术名词进行说明。
42.麦克风阵列,由一定数目的声学传感器(一般是麦克风)组成,用来对声场的空间特性进行采样并处理的系统。多通道是指语音处理系统的多输入多输出(multiple input multiple output,mimo),即借助麦克风阵列实现多通道数据采集和处理。
43.混响是指声波在室内传播时,要被墙壁、天花板、地板等障碍物反射,当声源停止发声后,声波在室内要经过多次反射和吸收,最后才消失,这种现象称为混响。合适的混响会使得声音圆润动听、富有感染力。混响时间太长会使得声音含糊不清,听不清楚。过大的混响会带来音素的交叠掩蔽现象,严重影响语音识别效果,尤其是远距离语音识别。
44.发明人经过研究发现,传统的去混响技术大多针对各通道单独进行混响成分估计,进而实现去混响。而且由于将各通道的语音信号进行联合去混响需要较大的计算量,导致多通道联合去混响的方案无法实时应用。
45.基于此,本技术实施例提供的一种语音信号去混响方法,针对多通道语音信号,获取每个时刻对应的多通道语音信号,即第一多通道语音信号,以及相邻上一时刻对应的滤波器系数,即第一滤波器系数。该第一滤波器系数用于估计上一时刻的多通道语音信号中的混响成分,从而实现对上一时刻的多通道语音信号进行去混响。在获取到当前时刻对应的第一多通道语音信号以及上一时刻的第一滤波系数后,根据更新步长、第一多通道语音信号以及第一滤波器系数确定当前时刻对应的第二滤波器系数。在获取到第二滤波器系数后,利用该第二滤波器系数对第一多通道语音信号进行处理,以获得去混响语音信号。即,本技术实施例通过利用上一时刻的滤波器系数来计算当前时刻的滤波器系数,无需引入其他的计算量,提高计算速度,减小延时,进而可以对当前时刻的语音信号进行实时去混响,提升去混响的效果。
46.为便于理解,下面将结合附图对本技术实施例提供的一种语音信号去混响方法进行说明。
47.参见图1,该图为本技术实施例提供的一种语音信号去混响方法流程图,如图1所示,该方法可以包括:
48.s101:获取第i时刻对应的第一多通道语音信号以及第i
‑
1时刻对应的第一滤波器系数。
49.本实施例中,针对任一时刻的多通道语音信号,获取该时刻对应的多通道语音信号,以及相邻上一时刻对应的第一滤波器系数。其中,i=0,
…
,n,n为不小于1的正整数。也就是,预先设置n个观测点,针对每个观测点均进行去混响操作。其中,多通道语音信号为m*1的矩阵,第一滤波系数为m*m的矩阵,m为麦克风个数。为便于理解,以y(i)表示第i时刻对应的第一多通道信号。
50.其中,针对多通道语音信号的去混响滤波器系数阶数为l,则第i
‑
1时刻对应的滤波系数可以表示为:g
l
(i)=[g0(i),g1(i),.....,g
l
‑1(i)],g
l
(i)中l=0,...,l
‑
1,g
l
(i)为m
×
m的矩阵,第i
‑
1时刻对应的滤波系数可以表示g
l
(i
‑
1)=[g0(i
‑
1),g1(i
‑
1),.....,g
l
‑1(i
‑
1)]。
[0051]
s102:根据更新步长、第一多通道语音信号以及第一滤波器系数确定第i时刻对应的第二滤波器系数。
[0052]
本实施例中,在获得第i时刻对应的第一多通道语音信号以及第i
‑
1时刻对应的第一滤波器系数后,根据更新步长、第一多通道语音信号以及第一滤波器系数确定第i时刻对应的第二滤波器系数。其中,更新步长用于对第一滤波器系数进行更新,以获得第二滤波器系数。该更新步长可以根据实际应用情况进行设定,取值为(0,1)。
[0053]
具体地,更新步长还可以设置为与i相关的变量,随着i的变化而变化。其中,更新步长与i成负相关。例如,更新步长为α(i)=0.85/(i+1)。基于此,本实施例提供了一种确定第二滤波系数的方式,具体为:获取第i时刻的更新步长;根据第一多通道语音信号、滤波器的阶数以及滤波器的时延确定第二多通道语音信号;将更新步长、第二多通道语音信号以及第二多通道语音信号的共轭转置相乘获得第一矩阵;将更新步长、第二多通道语音信号以及第一多通道语音信号的共轭转置相乘获得第二矩阵;根据第一矩阵、第二矩阵以及第一滤波系数获得第二滤波系数。
[0054]
其中,根据第一矩阵、第二矩阵以及第一滤波系数获得第二滤波系数获得第二滤波系数,包括:将第一矩阵与单位矩阵相加获得第三矩阵;将第三矩阵与第一滤波系数相乘再减去第二矩阵获得第二滤波系数。
[0055]
为便于理解,参见公式(1):
[0056]
g
l
(i)=(i+α(i)*x
l
(i)*x
lh
(i))*g
l
(i
‑
1)
‑
α(i)*x
l
(i)*y
h
(i)
[0057]
其中,α(i)表示第i时刻的更新步长,x
l
(i)表示为第二多通道语音信号,g
l
(i
‑
1)表示为第i
‑
1时刻对应的滤波器系数,y(i)表示第i时刻的第一多通道语音信号,h表示矩阵的共轭转置。
[0058]
通过公式(1)可知,α(i)*x
l
(i)*x
lh
(i)表示第一矩阵,α(i)*x
l
(i)*y
h
(i)表示第二矩阵,i表示单位矩阵。
[0059]
其中,第二多通道语音信号x
l
(i)其可以表示为:
[0060]
x
l
(i)=[y(i
‑
τ)
t
,.....,y(i
‑
τ
‑
l+1)
t
]
t
[0061]
其中,τ表示滤波器的延时,t表示矩阵转置,l表示滤波器的阶数。需要说明的是,当i=1时,则第1时刻对应的第二滤波器系数为:
[0062]
g
l
(1)=(i+α(1)*x
l
(1)*x
lh
(1))*g
l
(0)
‑
α(1)*x
l
(1)*
yh
(1)
[0063]
其中,g
l
(0)经过初始化得到,其可以由单位矩阵以及随机矩阵确定。具体地,将单位矩阵与随机矩阵之和确定为第0时刻所对应的滤波系数。
[0064]
s103:根据第一多通道语音信号以及第二滤波器系数获得去混响语音信号。
[0065]
在通过上述步骤获得第i时刻对应的第二滤波系数后,利用第二滤波系数对第一多通道语音信号进行去混响获得去混响语音信号。
[0066]
具体地,根据第一多通道语音信号、滤波器的延时以及第二滤波器系数相乘获得第三多通道语音信号;将第一多通道语音信号与第三多通道语音信号的差值确定为去混响语音信号。其中,第三多通道语音信号即为混响估计,也就是,第一多通道语音信号中所掺杂的混响语音信号。具体地,可以参见公式(2):
[0067][0068]
其中,e(i)表示去混响信号,y(i)表示第一多通道语音信号,g
l
(i)表示第二滤波系数,y(i
‑
τ
‑
l)表示第一多通道语音信号经过滤波器时由于存在延时所对应的语音信号,表示为第三多通道语音信号。
[0069]
由于,滤波系数可以表示为:
[0070]
g
l
(i)=[g0(i)
t
,g1(i)
t
,.....,g
l
‑1(i)
t
]
t
[0071]
经过滤波器的语音信号可以表示为:
[0072]
x
l
(i)=[y(i
‑
τ)
t
,.....,y(i
‑
τ
‑
l+1)
t
]
t
[0073]
因此,去混响信号可以表示为:
[0074]
e(i)=y(i)
‑
g
l
(i)
h
*x
l
(i)
[0075]
可见,对于任意时刻的多通道语音信号,均可以利用上述公式(1)和公式(2)进行去混响操作,以获得去混响后的语音信号。
[0076]
需要说明的是,为进一步对所获得去混响语音信号进行去噪处理,以获得更加纯净的语音信号,还可以将去混响语音信号输入补偿模型,获得补偿系数;根据该补偿系数以及去混响语音信号获得补偿后的去混响语音信号。也就是,通过补偿系数来进一步地对去混响语音信号进行去混响处理。具体地,将补偿系数与去混响语音信号相乘获得补偿后的去混响语音信号。具体地,可以参见公式(3):
[0077]
e(i)=δ(i)*(y(i)
‑
g
l
(i)
h
*x
l
(i))
[0078]
其中,δ(i)表示补偿系数,e(i)表示去混响后的语音信号。
[0079]
其中,补偿模型是根据训练样本获得的,该训练样本包括待训练无混响语音信号以及待训练去混响语音信号。也就是,在训练时,获得大量的无混响的语音信号以及经过去混响后的语音信号,将二者输入初始网络模型,以获得该初始网络模型可以学习二者之间的对应关系,从而获得补偿模型。其中,该补偿模型可以为神经网络模型,例如长短期记忆神经网络(long
‑
short term memory,lstm。
[0080]
可见,通过本技术实施例提供的方法,在对某一时刻的语音信号进行去混响操作时,首先获取该时刻对应的第一多通道语音信号,以及相邻上一时刻对应的滤波器系数,即第一滤波器系数。根据更新步长、第一多通道语音信号以及第一滤波器系数确定当前时刻
对应的第二滤波器系数。其中,更新步长用于对第一滤波器系数进行更新,以获得第二滤波器系数。在获得第二滤波器系数后,利用第二滤波器系数对第一多通道语音信号进行去混响操作,获得去混响语音信号。可见,本技术实施例在对多通道语音信号进行去混响操作时,利用上一时刻的滤波器系数来确定当前时刻的滤波器系数,无需利用其它额外大量的参数,减少计算量,且实现对语音信号进行实时去混响,提高语音信号的质量。
[0081]
基于上述方法实施例,本技术实施例还提供了一种语音去混响装置,下面将结合附图对该装置进行说明。
[0082]
参见图2,该图为本技术实施例提供的一种语音去混响装置结构示意图,如图2所示,该装置可以包括:第一获取单元201、确定单元202和第二获取单元203。
[0083]
其中,第一获取单元201,用于针对任一时刻的多通道语音信号,获取第i时刻对应的第一多通道语音信号以及第i
‑
1时刻对应的第一滤波器系数,所述i=0,
…
,n,n为不小于1的正整数,所述第一多通道语音信号为m*1的矩阵,所述第一滤波系数为m*m的矩阵,所述m为麦克风个数;
[0084]
确定单元202,用于根据更新步长、所述第一多通道语音信号以及所述第一滤波系数确定所述第i时刻对应的第二滤波系数;
[0085]
第二获取单元203,用于根据所述第一多通道语音信号以及所述第二滤波系数获得去混响语音信号。
[0086]
在一种具体的实现方式中,确定单元202,具体用于获取第i时刻对应的更新步长,所述更新步长与i成负相关;根据所述第一多通道语音信、滤波器的阶数以及滤波器的时延确定第二多通道语音信号;将所述更新步长、所述第二多通道语音信号以及所述第二多通道语音信号的共轭转置相乘获得第一矩阵;将所述更新步长、所述第二多通道语音信号以及所述第一多通道语音信号的共轭转置相乘获得第二矩阵;根据所述第一矩阵、所述第二矩阵以及所述第一滤波系数获得第二滤波系数。
[0087]
在一种具体的实现方式中,确定单元202,具体用于将所述第一矩阵与单位矩阵相加获得第三矩阵;将所述第三矩阵与所述第一滤波系数相乘再减去第二矩阵获得第二滤波系数。
[0088]
在一种具体的实现方式中,第二获取单元203,具体用于根据将所述第一多通道语音信号、滤波器的延时以及与所述第二滤波系数相乘获得第三多通道信号;将所述第一多通道信号与所述第三多通道信号的差值确定为去混响信号。
[0089]
在一种具体的实施方式中,该装置还包括:第三获取单元和第四获取单元;
[0090]
第三获取单元,用于将所述去混响信号输入补偿模型,获得补偿系数,所述补偿模型是根据训练样本训练获得的,所述训练样本包括待训练无混响语音信号以及待训练去混响语音信号;
[0091]
第四获取单元,用于根据所述补偿系数以及所述去混响语音信号获得补偿后的去混响语音信号。
[0092]
在一种具体的实现方式中,所述第四获取单元,具体用于将所述补偿系数与所述去混响语音信号相乘获得补偿后的去混响语音信号。
[0093]
在一种具体的实现方式中,在所述i=1时,第0时刻对应的第一滤波系数由单位矩阵以及随机对角矩阵确定。
[0094]
需要说明的是,本实施例中各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。
[0095]
另外,本技术实施例还提供了一种语音设备,包括:处理器,存储器;
[0096]
所述存储器,用于存储计算机可读指令或者计算机程序;
[0097]
所述处理器,用于读取所述计算机可读指令或所述计算机程序,以使得所述设备实现如所述的语音信号去混响方法。
[0098]
本技术实施例提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上所述的语音信号去混响方法。
[0099]
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0100]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0101]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0102]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd
‑
rom、或技术领域内所公知的任意其它形式的存储介质中。
[0103]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。