首页 > 乐器声学 专利正文
一种指向信息引导的实时语音分离方法和装置与流程

时间:2022-02-24 阅读: 作者:专利查询

一种指向信息引导的实时语音分离方法和装置与流程

1.本发明属于信息处理的领域,具体涉及一种指向信息引导的实时语音分离方法和装置。


背景技术:

2.目前,麦克风阵列波束形成技术广泛应用于在线会议系统、车载人机交互、智能家居等领域。实际环境中,存在显著的噪声、竞争说话人等干扰,会显著降低会议通讯的听感和后续语音识别的准确率。基于麦克风阵列多阵元进行波束生成是降低信号噪声、提高通讯质量最常用的方法。如何有针对性的提取某一个方向的语音信号,同时显著压制其他噪声,对提升会议通讯质量、提升语音识别率等有重要意义。
3.基于独立矢量分析(independent vector analysis,iva)是目前最常用的语音分离/拾取技术。首先把所有阵元拾取的时域信号通过短时傅里叶变化转化到时频域,随后基于分离语音互熵最小的原则构建优化函数,基于该优化函数迭代更新分离矩阵,估计出分离矩阵之后,可以得到目标信号的频域估计,最后基于傅里叶逆变换得到时域估计。最新的一些iva方法中,通过增加了分离矩阵与目标方向导向矢量的距离约束,使得iva分离结果可以实时提取目标方语音。
4.现有技术的主要缺点如下:
5.1)现有的方向性iva通过直接增加分离矩阵与导向矢量距离的约束,由于导向矢量在混响场景下准确度大大下降,导致在混响场景下性能显著不足。
6.2)方向性iva技术在初始估计上不做约束,导致收敛时间过长,如果环境发生变化,比如干扰说话人在走动,会导致iva分离矩阵收敛速度跟不上声学环境变化的速度。
7.有鉴于此,特提出本发明。


技术实现要素:

8.本发明的目的是提供一种指向信息引导的实时语音分离方法和装置,其基于超指向滤波器构建实时iva的初始估计,并且修正iva的优化函数,保证分离算法可以快速收敛,并且准确提取目标方语音信号。
9.为了实现上述目的,本发明提供的一种指向信息引导的实时语音分离方法,应用于基于麦克风阵列的系统,包括以下步骤:
10.s1:对每个麦克风的时域信号进行导向矢量与指向滤波器初始化;
11.s2:对初始化后的信号进行时频分解,完成从时域信号到时频域信号的变换;
12.s3:对时频域信号进行分离滤波器计算,获取用于分离目标语音与剩余信号的滤波器;
13.s4:根据获取的滤波器,得到目标语音的时频域信号,进而得到目标语音时域信号。
14.进一步地,所述步骤s1之前还包括:获取每个麦克风的时域信号x
m
(n);
15.所述步骤s1中,进行导向矢量的方法如下:对每个频带k,计算导向矢量u(k),
[0016][0017][0018]
q(θ)=[cos(θ),sin(θ)]
[0019]
其中,f
k
为第k个频带的频率,k=1,2,...k;c为声速,c=340m/s;d
m
为第m个麦克风的二维坐标值;q(θ)为方向矢量,ω
k
为频带圆频率;
[0020]
进行指向滤波器初始化的方法如下:对每个频带k计算超指向滤波器h(k):
[0021][0022]
其中,r(k)代表均匀散射场的各个麦克风关于拾取信号归一化的自相关系数。
[0023]
进一步地,所述步骤s2包括:
[0024]
s201:对时域信号x
m
(n)进行短时傅里叶变换得到时频域表达:
[0025][0026]
其中,n为帧长,n=512;w(n)为长度512的汉明窗,l为时间帧序号,k为频率序号。x
m
(l,k)为第m个麦克风信号,在第l帧,第k个频带的频谱;
[0027]
s202:对每一个频带k,构建一个频域原始向量x(l,k):
[0028]
x(l,k)=[x1(l,k),x2(l,k),...,x
m
(l,k)]
t

[0029]
进一步地,所述步骤s3包括:
[0030]
s301:计算帧级别分离引导因子:
[0031][0032][0033]
其中,r1(l)和r2(l)分别用于引导目标方语音与剩余信号;
[0034]
s302:计算每一个频带的分离引导矩阵:
[0035]
ψ1(k)=αψ1(k)+(1

α)r1(l)x(l,k)x
h
(l,k)
[0036]
ψ2(k)=αψ1(k)+(1

α)r1(l)x(l,k)x
h
(l,k)
[0037]
其中,ψ1(k)和ψ2(k)分别代表目标语音与剩余信号的引导矩阵;α为平滑因子,取值范围为0到1;
[0038]
s303:为分离目标语音与剩余信号的滤波器构建新的优化函数,优化函数如下:
[0039][0040]
其中,g1(k)和g2(k)分别为分离目标语音与剩余信号的滤波器
[0041]
s304:最小化优化函数,得到最优的滤波器。
[0042]
所述最小化优化函数的过程为求解以下方程:
[0043]
ψ(k)g(k)=ρ(k)
[0044]
其中,
[0045][0046][0047]
最优的滤波器g(k)可以求解为:
[0048]
g(k)=ψ
‑1(k)ρ(k)。
[0049]
进一步地,所述步骤s4包括:
[0050]
s401:根据求解得到的最优滤波器,进而得到目标语音的频域估计:
[0051][0052]
s402:进行傅里叶逆变换得到目标语音时域估计:
[0053][0054]
本发明还提供了一种指向信息引导的实时语音分离装置,应用于基于麦克风阵列的系统,包括初始化模块、信号分解模块、分离滤波器计算模块和目标语音估计模块:
[0055]
初始化模块用于对每个麦克风的时域信号进行导向矢量与指向滤波器初始化;
[0056]
信号分解模块用于对初始化后的信号进行时频分解,完成从时域信号到时频域信号的变换;
[0057]
分离滤波器计算模块用于对时频域信号进行分离滤波器计算,获取用于分离目标语音与剩余信号的滤波器;
[0058]
目标语音估计模块用于根据获取的滤波器,得到目标语音的时频域信号,进而得到目标语音时域信号。
[0059]
进一步地,所述初始化模块还用于获取每个麦克风的时域信号x
m
(n);
[0060]
所述信号分解模块用于进行导向矢量的方法如下:对每个频带k,计算导向矢量u(k),
[0061][0062][0063]
q(θ)=[cos(θ),sin(θ)]
[0064]
其中,f
k
为第k个频带的频率,k=1,2,...k;c为声速,c=340m/s;d
m
为第m个麦克风的二维坐标值;q(θ)为方向矢量,ω
k
为频带圆频率;
[0065]
所述信号分解模块用于进行指向滤波器初始化的方法如下:对每个频带k计算超指向滤波器h(k):
[0066][0067]
其中,r(k)代表均匀散射场的各个麦克风关于拾取信号归一化的自相关系数。
[0068]
进一步地,所述信号分解模块的操作步骤如下:
[0069]
首先,对时域信号x
m
(n)进行短时傅里叶变换得到时频域表达:
[0070][0071]
其中,n为帧长,n=512;w(n)为长度512的汉明窗,l为时间帧序号,k为频率序号。x
m
(l,k)为第m个麦克风信号,在第l帧,第k个频带的频谱;
[0072]
其次,对每一个频带k,构建一个频域原始向量x(l,k):
[0073]
x(l,k)=[x1(l,k),x2(l,k),...,x
m
(l,k)]
t

[0074]
进一步地,所述分离滤波器计算模块操作步骤如下:
[0075]
首先,计算帧级别分离引导因子:
[0076][0077][0078]
其中,r1(l)和r2(l)分别用于引导目标语音与剩余信号;
[0079]
其次,计算每一个频带的分离引导矩阵:
[0080]
ψ1(k)=αψ1(k)+(1

α)r1(l)x(l,k)x
h
(l,k)
[0081]
ψ2(k)=αψ1(k)+(1

α)r1(l)x(l,k)x
h
(l,k)
[0082]
其中,ψ1(k)和ψ2(k)分别代表目标语音与剩余信号的引导矩阵;α为平滑因子,取值范围为0到1;
[0083]
之后,为分离目标语音与剩余信号的滤波器构建新的优化函数,优化函数如下:
[0084][0085]
其中,g1(k)和g2(k)分别为分离目标语音与剩余信号的滤波器
[0086]
最后,最小化优化函数,得到最优的滤波器。
[0087]
所述最小化优化函数的过程为求解以下方程:
[0088]
ψ(k)g(k)=ρ(k)
[0089]
其中,
[0090][0091]
[0092]
最优的滤波器g(k)可以求解为:
[0093]
g(k)=ψ
‑1(k)ρ(k)。
[0094]
更进一步地,所述语音估计模块的操作步骤如下:
[0095]
首先,根据求解得到的最优滤波器,进而得到目标语音的频域估计:
[0096][0097]
其次,进行傅里叶逆变换得到目标语音时域估计:
[0098][0099]
本发明提供的一种指向信息引导的实时语音分离方法和装置,具有如下有益效果:
[0100]
1、相比于传统iva,本发明用超指向滤波器计算引导因子,因此收敛性更快,可以适应声学环境变化的场景。
[0101]
2、本项发明所设计的目标函数,既考虑到了信号之间的差异性,又增加了歧义性约束,可以得到解析最优解,不需要迭代,因此鲁棒性更强,分离效果更稳定、可靠。
附图说明
[0102]
图1为本具体实施方式中的指向信息引导的实时语音分离方法的流程图。
[0103]
图2为本具体实施方式中的使用的汉明窗函数的示意图。
[0104]
图3为本具体实施方式中的指向信息引导的实时语音分离装置的示意图。
具体实施方式
[0105]
为了使本技术领域的人员更好地理解本发明方案,下面结合具体实施方式对本发明作进一步的详细说明。
[0106]
如图1所示,本发明的一实施方式为一种指向信息引导的实时语音分离方法,其能够应用于基于麦克风阵列的系统,例如语音会议系统、车载语音通讯系统及人机交互系统,可以实时提取目标语音信号,有助于提升在线语音会议通讯质量,也可以提高后续语音识别的准确性。
[0107]
具体包括以下四个实施步骤:
[0108]
s1:对每个麦克风的时域信号进行导向矢量与指向滤波器初始化。
[0109]
在步骤s1之前,还包括获取每个麦克风的语音信号,获取的语音信号如下:假设x
m
(n)代表m个麦克风阵元实时拾取的原始时域信号,其中,m代表麦克风序号标签,其取值从1到m,n代表时间标签,目标语音相对麦克风阵列的方向为θ。
[0110]
其中,目标语音是指对应目标方向的语音信号,对于语音分离任务而言,目标方向是根据所提取的信号提前知晓的,比如对于大屏语音通讯设备,希望分离的是90度方位的语音信号。
[0111]
具体地,进行导向矢量的方法如下:
[0112]
对每个频带k,计算导向矢量u(k),其中,频带是指某个频率对应的信号分量:
[0113][0114][0115]
q(θ)=[cos(θ),sin(θ)]
[0116]
其中,f
k
为第k个频带的频率,k=1,2,...k,其中k的取值是根据后续傅里叶变换来确定,如果帧长为512,那么k的取值为帧长的一半;c为声速,c=340m/s;d
m
为第m个麦克风的二维坐标值;上标h代表共轭转置算符;j代表虚数单位q(θ)为方向矢量,ω
k
为频带圆频率。
[0117]
进行指向滤波器初始化的方法如下:
[0118]
对每个频带k计算超指向滤波器h(k):
[0119][0120]
其中,r(k)代表均匀散射场的各个麦克风关于拾取信号归一化的自相关系数,其上标

1代表矩阵的逆。
[0121]
通过上述两个步骤完成了对滤波器的初始化,用以计算后续空间区分性信息。
[0122]
s2:对初始化后的信号进行时频分解,完成从时域信号到时频域信号的变换。
[0123]
具体地,包括以下步骤:
[0124]
s201:对时域信号x
m
(n)进行短时傅里叶变换得到时频域表达:
[0125][0126]
其中,n为帧长,n=512;w(n)为长度512的汉明窗,其中,n代表时间上的序号,因此w(n)代表每一个对应时间序号n上的值;l为时间帧序号,以帧为单位;k为频率序号。x
m
(l,k)为第m个麦克风信号,在第l帧,第k个频带的频谱。本发明中,使用的汉明窗函数如图2所示。
[0127]
s202:对每一个频带k,构建一个频域原始向量x(l,k):
[0128]
x(l,k)=[x1(l,k),x2(l,k),...,x
m
(l,k)]
t
[0129]
其中,上标t代表转置运算符,得到该原始向量为m维度列向量。
[0130]
通过上述步骤能够完成从时域信号到时频域的变换。
[0131]
s3:对时频域信号进行分离滤波器计算,获取用于分离目标语音与剩余信号的滤波器。
[0132]
具体地,包括以下步骤:
[0133]
s301:计算帧级别分离引导因子:
[0134][0135]
[0136]
其中,|.|代表取复数的模,r1(l)和r2(l)分别用于引导目标语音与剩余信号。目标方向是指,对于用户感兴趣的方向,目标语音就是来自这一方向的语音信号;剩余信号则是指,除目标语音信号之外,来自于其他方位的声音和环境噪声,剩余信号可以理解为麦克风获取的全部信号减去目标语音信号,则是剩余信号。该步骤用以下一步骤计算引导矩阵,提供先验。
[0137]
s302:计算每一个频带的分离引导矩阵:
[0138]
ψ1(k)=αψ1(k)+(1

α)r1(l)x(l,k)x
h
(l,k)
[0139]
ψ2(k)=αψ1(k)+(1

α)r1(l)x(l,k)x
h
(l,k)
[0140]
其中,ψ1(k)和ψ2(k)分别代表目标语音与剩余信号的引导矩阵;α为平滑因子,取值范围为0到1,优选的本发明采用取值为α=0.85,采用该取值可以避免对历史信息的过度依赖,也可以充分挖掘信号的空间信息。
[0141]
通过该步骤引导矩阵的计算,直接用以后续分离滤波器的更新。
[0142]
s303:为分离目标语音与剩余信号的滤波器构建新的优化函数,优化函数如下:
[0143][0144]
其中,g1(k)和g2(k)分别为分离目标语音与剩余信号的滤波器。
[0145]
该优化函数的第一项最大化分离信号之间的差异,第二项可以避免滤波器估计出现歧义,保证分离结果之和和麦克风信号的值尽可能一致。
[0146]
s304:最小化上述优化函数,得到最优的滤波器。
[0147]
该最小化过程等价于求解以下方程:
[0148]
ψ(k)g(k)=ρ(k)
[0149]
其中,
[0150][0151][0152]
上标*代表取共轭算符。
[0153]
最优的滤波器g(k)可以求解为:
[0154]
g(k)=ψ
‑1(k)ρ(k)。
[0155]
求解得到g(k)之后,根据向量的对应关系,即得到分离目标语音与剩余信号的滤波器g1(k)和g2(k)。
[0156]
在步骤s301中,采用超指向滤波器计算语音分离引导因子;在步骤s302中,基于上述引导因子,计算分离引导矩阵;在步骤s303中,所设计的语音分离优化函数;在步骤s304中,所采用的公式为所发明的最优分离滤波器计算方法,其采用了最小均方误差的原理,由公式ψ*g=ρ得出,最小均方误差的解就是g=ψ
‑1*ρ,进而保证了所定义j的最小化。
[0157]
因此,步骤s3能够实现频域分离滤波器的计算。
[0158]
s4:根据获取的滤波器,得到目标语音的时频域信号,进而得到目标语音时域信
号。
[0159]
具体包括以下步骤:
[0160]
s401:根据求解得到的最优滤波器,进而得到目标语音的频域估计:
[0161][0162]
s402:进行傅里叶逆变换得到目标语音时域估计,进而得到目标语音时域信号:
[0163][0164]
该步骤实现了目标语音时域信号的获取。
[0165]
通过本发明的上述步骤,可以实现麦克风矩阵信号的初始化、信号分解、分离滤波器计算和目标语音估计。
[0166]
如图3所示,本发明的一实施方式为一种指向信息引导的实时语音分离装置,应用于基于麦克风阵列的系统,其包括初始化模块1、信号分解模块2、分离滤波器计算模块3和目标语音估计模块4。
[0167]
初始化模块1用于对每个麦克风的语音信号进行导向矢量与指向滤波器初始化。
[0168]
初始化模块1还能够用于获取每个麦克风的语音信号,获取的语音信号如下:假设x
m
(n)代表m个麦克风阵元实时拾取的原始信号,其中,m代表麦克风序号标签,其取值从1到m,n代表时间标签,目标语音相对麦克风阵列的方向为θ。
[0169]
具体地,进行导向矢量的方法如下:
[0170]
对每个频带k,计算导向矢量u(k),其中,频带是指某个频率对应的信号分量:
[0171][0172][0173]
q(θ)=[cos(θ),sin(θ)]
[0174]
其中,f
k
为第k个频带的频率,k=1,2,...k;c为声速,c=340m/s;d
m
为第m个麦克风的二维坐标值;上标h代表共轭转置算符;j代表虚数单位q(θ)为方向矢量,ω
k
为频带圆频率。
[0175]
进行指向滤波器初始化的方法如下:
[0176]
对每个频带k计算超指向滤波器h(k):
[0177][0178]
其中,r(k)代表均匀散射场的各个麦克风关于拾取信号归一化的自相关系数,其上标

1代表矩阵的逆。
[0179]
通过上述两个步骤完成了对滤波器的初始化,用以计算后续空间区分性信息。
[0180]
信号分解模块2用于对初始化后的信号进行时频分解,完成从时域信号到时频域信号的变换。
[0181]
具体地,信号分解模块2的操作步骤如下:
[0182]
首先,对时域信号
x
m(n)进行短时傅里叶变换得到时频域表达:
[0183][0184]
其中,n为帧长,n=512;w(n)为长度512的汉明窗,l为时间帧序号,k为频率序号。x
m
(l,k)为第m个麦克风信号,在第l帧,第k个频带的频谱。汉明窗函数如图2所示。
[0185]
其次,对每一个频带k,构建一个频域原始向量x(l,k):
[0186]
x(l,k)=[x1(l,k),x2(l,k),...,x
m
(l,k)]
t
[0187]
其中,上标t代表转置运算符,得到该原始向量为m维度列向量。
[0188]
通过上述步骤能够完成从时域信号到时频域的变换。
[0189]
分离滤波器计算模块3用于对时频域信号进行分离滤波器计算,获取用于分离目标语音与剩余信号的滤波器。
[0190]
具体地,分离滤波器计算模块3的操作步骤如下:
[0191]
首先,计算帧级别分离引导因子:
[0192][0193][0194]
其中,|.|代表取复数的模,r1(l)和r2(l)分别引导目标语音与剩余信号。上述操作用以下一步骤计算引导矩阵,提供先验。
[0195]
其次,计算每一个频带的分离引导矩阵:
[0196]
ψ1(k)=αψ1(k)+(1

α)r1(l)x(l,k)x
h
(l,k)
[0197]
ψ2(k)=αψ1(k)+(1

α)r1(l)x(l,k)x
h
(l,k)
[0198]
其中,ψ1(k)和ψ2(k)分别代表目标语音与剩余信号的引导矩阵;α为平滑因子,取值范围为0到1,优选的本发明采用取值为α=0.85,采用该取值可以避免对历史信息的过度依赖,也可以充分挖掘信号的空间信息。
[0199]
通过该操作引导矩阵的计算,直接用以后续分离滤波器的更新。
[0200]
之后,为分离目标语音与剩余信号的滤波器构建新的优化函数,优化函数如下:
[0201][0202]
其中,g1(k)和g2(k)分别为分离目标语音与剩余信号的滤波器。
[0203]
该优化函数的第一项最大化分离信号之间的差异,第二项可以避免滤波器估计出现歧义,保证分离结果之和和麦克风信号的值尽可能一致。
[0204]
最后,最小化上述优化函数,得到最优的滤波器。
[0205]
该最小化过程等价于求解如下方程:
[0206]
ψ(k)g(k)=ρ(k)
[0207]
其中,
[0208][0209][0210]
上标*代表取共轭算符。
[0211]
最优的滤波器g(k)可以求解为:
[0212]
g(k)=ψ
‑1(k)ρ(k)
[0213]
通过上述操作能够实现频域分离滤波器的计算。
[0214]
目标语音估计模块4,用于根据获取的滤波器,得到目标语音的时频域信号,进而得到目标语音时域信号。
[0215]
具体地,目标语音估计模块4的操作步骤如下:
[0216]
首先,根据求解得到的最优滤波器,进而得到目标语音的频域估计:
[0217][0218]
其次,进行傅里叶逆变换得到目标语音时域估计:
[0219][0220]
目标语音估计模块4能够实现目标语音时域信号的获取。
[0221]
上述实施方式中,括初始化模块1、信号分解模块2、分离滤波器计算模块3和目标语音估计模块4的这4个模块缺一不可,任一模块的缺失,都会导致目标语音无法提取。
[0222]
本文中应用了具体个例对发明构思进行了详细阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离该发明构思的前提下,所做的任何显而易见的修改、等同替换或其他改进,均应包含在本发明的保护范围之内。