一种目标声源锁定和提取的方法与流程
2021-01-28 12:01:14|399|起点商标网
[0001]
本发明涉及一种目标声源锁定和提取的方法,尤其涉及一种强非稳态干扰环境下基于多通道声源分离和端点检测的目标声源锁定和提取的方法。
背景技术:
[0002]
语音作为新一代的人机交互方式正在越来越多的被用在嵌入式设备中,如汽车中的车机和家用电器,融入到人们的日常生活中。然而这些带语音识别交互功能的嵌入式设备所在的环境通常包含了非稳态的干扰源。虽然近年来的降噪算法发展迅速,且越来越多的使用dnn(神经网络)的建模方式。但是当干扰源和目标声源的声学特征具有很强的共性时,传统语音增强算法的工作流通常无法从这种强非稳态干扰源中区分出目标声源,如具有高保真音响的电视播放的新闻节目等。而输入语音识别系统的理想信号应该是在目标声源和干扰声源重叠部分提取出目标声源信号,且在无目标声源段没有干扰声源输入语音识别系统。
[0003]
传统的语音增强算法流程中,降噪算法虽然已经可以比较好的能应对一些与人声区别较大的日常噪声。但是对于和人声声学特征非常相似的干扰声源,降噪算法没有能力去区分目标声源。而单纯的多通道声源bss(盲分离)算法虽然可以应对多个声源的情况,但是由于是盲分离,其无法锁定目标声源,并且在实际语音交互环境下由于混响和其他信号失真的影响,会留下大量纯干扰声源。
[0004]
本发明主要目为在语音交互场景下,将含有多个声源的多路语音信号进行声源分离,并自适应地锁定目标声源从而提取出目标声源段,且同时大幅减少纯干扰声源信号段的能量水平,从而使语音识别系统在强非稳态干扰源下能够正常识别目标声源的有效语音。并且系统足够轻量级从而能够部署在大部分嵌入式系统中。
技术实现要素:
[0005]
本发明为解决上述技术问题而采用的技术方案是提供一种目标声源锁定和提取的方法,使用分离声源的snr和语音识别反馈来自动锁定目标声源。
[0006]
其中,具体技术方案为:
[0007]
1)使用基于辅助函数的窗移独立向量分析;
[0008]
2)在分离后的多通道声源中选择目标声源;
[0009]
3)基于分离后声源相对空间信息的纯干扰声源段检测和消除;
[0010]
4)使用基于dnn的vad算法进行最终目标声源语音段提取。
[0011]
上述的一种目标声源锁定和提取的方法,其中,1)使用基于辅助函数的窗移独立向量分析,具体为:
[0012]
步骤1)将m个麦克风采集到的包含m个源信号的混合信号x
m
(n),1≤m≤m进行短时傅里叶变换,得到其频域表示x(ω,τ),其中ω和τ分别为频率和时间索引,总的频段数为k;并初始化盲分离矩阵w(ω,τ);
[0013]
步骤2)累积得到l
b
帧混合信号的频域表示x(ω,τ),并使用w(ω,τ)对其进行分离,得到估计的包含m个源的信号y(ω,τ),即y(ω,τ)=x(ω,τ)w(ω,τ),y(ω,τ)为mx1的向量;
[0014]
步骤3)依据公式(1)和公式(2)更新辅助函数v
m
(ω;τ);
[0015][0016][0017]
式(1)中,α(0≤α≤1)是遗忘因子,l
b
为块大小;
[0018]
步骤4)依据公式(3)和公式(4)更新盲分离矩阵w(ω,τ),式(3)中e
k
表示一个列向量,其中第k个元素为1,其余为0;
[0019]
w
m
(ω;τ)
←
(w(ω;τ)v
m
(ω;τ))-1
e
m
ꢀꢀꢀꢀꢀ
(3)
[0020][0021]
步骤2)、3)和4)按算法1所示进行迭代计算w(ω,τ)和分离m路声源得到最终的y(ω,τ)。
[0022]
算法1:block-online的auxiva更新规则;
[0023]
for τ=1 to nτ do;
[0024]
更新源分离矩阵:w(ω;τ)=w(ω;τ-1);
[0025]
for n=1 to n do;
[0026]
for m=1 to m do:
[0027]
公式(1)更新r
k
(τ)(如步骤3));
[0028]
for ω=1 to n
ω do;
[0029]
更新辅助变量v
k
(ω;τ)(如步骤3))和盲矩阵更新(如步骤4));
[0030]
end for
[0031]
end for
[0032]
end for
[0033]
end for。
[0034]
上述的一种目标声源锁定和提取的方法,其中,2)在分离后的多通道声源中选择目标声源,具体为:
[0035]
步骤6)对于每一个分离的声源s
m
(ω,τ)=y(ω,τ)[m],做一个大时间窗t帧的滑动统计,又将这个大时间窗切割成n个时长为1帧的小时间窗;用公式(5)计算每个分离声源的小时间窗能量,其中i为小时间窗的索引:
[0036][0037]
步骤7)对于当前大时间窗,对于每个分离的声源s
m
获取最大/最小的小时间窗累积能量,见公式(6)(7):
[0038]
e_max
m
=max{e
m
[i]},i=0,1,2...n-1
[0039]
(6)
[0040]
e_min
m
=min{e
m
[i]},i=0,1,2...n-1
[0041]
(7)
[0042]
使用当前大时间窗每个声源统计得到的最大/最小值去分别更新信号/噪声的能量统计,其中α为平滑参数,t为大时间窗的索引,见公式(8)(9):
[0043]
speech
m
(t)=α x e_max
m
+(1-α)x speech
m
(t-1)
ꢀꢀ
(8)
[0044]
noise
m
(t)=α x e_max
m
+(1-α)x noise
m
(t-1)
ꢀꢀ
(9)
[0045]
步骤8)使用语音识别系统反馈进一步提升声源锁定准确率:在语音交互中,语音识别系统既作为声学处理的下游任务,反过来给予声学处理模块以信息反馈;
[0046]
当语音交互被触发,触发点的前t
target
帧被认为是极大概率存在有效语音的,对这一段时间的最大值进行统计,增强对于信噪比计算中的语音信号的估计准确度,从而影响snr
mt
的计算,具体操作上,当有语音交互被触发时,同样将t
target
帧切分成为1帧的小时间窗,使用类似公式(5)进行语音信号的统计,见公式(10)(11):
[0047][0048]
e_max_target
m
=max(e_target
m
[i]),i=0,1,2...n-1
ꢀꢀꢀ
(11)
[0049]
使用公式(12)对目标区域内的最大值去和当前语音信号的统计做加权:
[0050]
speech
m
(t)=γ x e_max_target
m
+(1-γ)x speech
m
(t)
ꢀꢀꢀ
(12)
[0051]
步骤9)最后更新信号噪声比,β为平滑系数:
[0052][0053]
对于每个大时间窗,做一次判决,取信噪比snr
m
(t)最大的一路分离声源作为目标声源s
target
(ω,τ)。
[0054]
上述的一种目标声源锁定和提取的方法,其中,3)基于分离后声源相对空间信息的纯干扰声源段检测和消除,具体为:
[0055]
步骤10)进一步利用目标声源和干扰声源的空间相关信息,从而判断当前block是否是纯干扰噪声源,是,则将当前窗进行静音;多通道盲分离方法本质上是让多路输入信号通过多个空间滤波器,每个空间滤波器接收多路信号,将这多路信号中的同一声源信号提取到同一路输出中,则每个空间滤波器的作用就是提取目标声源信号,且滤出其他声源信号,则目标声源对应的空间滤波器sf
target
输出s
target
(ω,τ)和其他声源(干扰噪声源)对应的空间滤波器sf
in
输出s
in
(ω,τ)存在比例关系可以用来区分当前窗是否为纯干扰噪声。
[0056]
上述的一种目标声源锁定和提取的方法,其中,分析如下:
[0057]
假设x为多路接收到的信号,且假设盲源分离对于各个源头的分离效果是均衡的,则在语音交互中存在两种情况:
[0058]
情况一计算空间滤波器输出比r:
[0059]
x(ω,τ)=s+n,其中s为理想纯目标语音信号,n为理想纯干扰噪声源;当snr>>0时,该r值>>1,当snr=0时,该r值会接近于1;
[0060][0061]
情况二计算空间滤波器输出比r:
[0062]
x=n,接收到的是纯干扰噪声源。则在任意信噪比情况下啊,r值都会小于1。
[0063][0064]
由以上分析,由于aux-iva是以l
b
帧为基础单位进行迭代,纯干扰噪声源的判决也可以l
b
帧为基础单位进行迭代,可得r值计算公式(16):
[0065][0066]
步骤11)利用情况二的突出特征来判断当前窗是否是纯干扰噪声,使用固定阈值或者长窗平滑r值作为阈值,即当有阈值r_thresh:
[0067]
r<r_thresh:当前窗为纯干扰噪声段;
[0068]
r≥r_thresh:当前窗存在语音信号;
[0069]
根据以上r值的判断对纯干扰噪声段进行静音处理得到s
target_trim
(ω,τ)。
[0070]
上述的一种目标声源锁定和提取的方法,其中,4)使用基于dnn的vad算法进行最终目标声源语音段提取,具体为:
[0071]
步骤12)vad系统采用基于神经网络的算法得分和基于能量的算法得分的双门限法来区分音频帧的属性:语音帧和非语音帧;考虑到实际应用场景的复杂性,神经网络模型训练数据准备阶段,在基础数据集中加入了充分的远场模拟数据,并混入了不同类型、不同信噪比的噪声数据;依据神经网络的强大学习能力,从不同的数据集中学习到有效语音的特征,从而获得比较的强语音区分能力;
[0072]
具体为,dnn接收处理过后的目标声源信号s
target_trim
(ω,τ)作为输入,对于每一帧τ都得到一个0-1的dnn_score(τ)=dnn(s
target_trim
(ω,τ));
[0073]
步骤13)语音识别系统反馈进行端点检测算法的鲁棒性提升:处理后的目标声源信号s
target_trim
(ω,τ)的信噪比一般为0db以上,所以估计有效语音段的能量即可获得当前环境音频的最大能量;充分利用整个系统框架的结构优势,根据语音识别系统的反馈的时间位置信息,系统能够获取到当前环境音频能量的最大值e_bg;在系统的运行期间,首先,使用公式(17)计算s
target_trim
(ω,τ)每一帧τ的能量e(τ);
[0074][0075]
步骤14)更新背景音频能量的时候,系统中存储宽口大小为n的的能量窗,并在语音识别系统反馈的时间点,取能量窗中最大的能量值作为当前待更新的能量值e_bg_curr,使用平滑算法从而能够有效的估计环境不同时段的音频能量水平,具体见公式(19)其中αv为平滑参数。
[0076]
e_bg_curr=max[e(τ
i
)],i=0,1,2...n-1
[0077]
(18)
[0078]
e_bg=αv
×
e_bg+(1-αv)
×
e_bg_curr
[0079]
(19)
[0080]
步骤15)根据当前帧的能量e(τ)和环境能量e_bg,依据公式(20)计算得到当前帧的能量得分;
[0081]
energy_score(τ)=e(τ)/e_bg
ꢀꢀꢀꢀꢀꢀꢀ
(20)
[0082]
步骤16)根据当前帧的dnn得分dnn_score(τ)和能量得分energy_score(τ),公式(21)计算得到当前帧的最终得分score(τ),其中βv为能量权重。当score(τ)大于语音判定阈值speech_thres,判定当前帧为语音帧,否则为非语音帧;
[0083]
在获取当前帧得分过程中,动态估计了系统工作环境的能量水平,使得能量得分的获取具有一定的自适应能力,从而提高了vad系统的鲁棒性;
[0084]
score(τ)=βv
×
energy_score(τ)+(1-βv)
×
dnn_score(τ)
ꢀꢀꢀꢀ
(21)
[0085]
步骤17)根据得到的score(τ),当score(τ)>=vad阈值vad_threshold时,判定第τ帧为存在语音信号,否则判定为语音不存在,从而提取最终目标声源的有效语音段。
[0086]
本发明相对于现有技术具有如下有益效果:
[0087]
本发明所设计的目标声源提取系统,首先通过多通道bss算法aux-iva(基于辅助函数的独立向量分析)提取出多个声源,再通过基于snr(信噪比)和语音识别系统反馈的自适应目标声源锁定进行声源选择。在此基础上,再通过声源分离中的不同声源相对的空间信息判断纯干扰声源段,并进行消除。最后使用基于dnn的vad端点检测)算法提取最终的目标声源有效语音段,语音识别系统的反馈同样作用于vad算法。
[0088]
1、基于时间窗的aux-iva算法,总体算法收敛迭代次数所需少,更加轻量级。
[0089]
2、使用分离声源的snr和语音识别反馈来自动锁定目标声源。
[0090]
3、结合不同声源的相对空间信息来判断纯干扰声源段,从而对纯干扰声源信号段进行增益控制和消除。
[0091]
4、基于远场模拟和噪声增强数据训练的基于dnn的vad算法,具有对噪声的识别能力和远场语音的vad能力。
[0092]
5、将语音识别系统反馈加入到vad算法中。
[0093]
6、该系统对于麦克风阵列的拓扑结构没有先验要求,可以使用大于等于2个麦克风数量的的任意拓扑结构麦克风阵列作为算法硬件基础。
附图说明
[0094]
图1为目标声源语音提取框图。
[0095]
图2为语音识别反馈的示意图。
[0096]
图3为端点检测框图的示意图。
具体实施方式
[0097]
下面结合附图和实施例对本发明作进一步的描述。
[0098]
本发明的总体系统执行框图如图1描述,图1是目标声源语音提取框图。
[0099]
具体操作流程具体描述如下:
[0100]
1、使用基于辅助函数的窗移独立向量分析。
[0101]
步骤1)将m个麦克风采集到的包含m个源信号的混合信号x
m
(n),1≤m≤m进行短时傅里叶变换,得到其频域表示x(ω,τ),其中ω和τ分别为频率和时间索引,总的频段数为k。并初始化盲分离矩阵w(ω,τ);
[0102]
步骤2)累积得到l
b
帧混合信号的频域表示x(ω,τ),并使用w(ω,τ)对其进行分
离,得到估计的包含m个源的信号y((ω,τ),即y(ω,τ)=x(ω,τ)w(ω,τ),y(ω,τ)为mx1的向量;
[0103]
步骤3)依据公式(1)和公式(2)更新辅助函数v
m
(ω;τ);
[0104][0105][0106]
式(1)中,α(0≤α≤1)是遗忘因子,l
b
为块大小;
[0107]
步骤4)依据公式(3)和公式(4)更新盲分离矩阵w(ω,τ),式(3)中e
k
表示一个列向量,其中第k个元素为1,其余为0;
[0108]
w
m
(ω;τ)
←
(w(ω;τ)v
m
(ω;τ))-1
e
m
ꢀꢀꢀꢀꢀꢀ
(3)
[0109][0110]
步骤2),3)和4)按算法1所示进行迭代计算w(ω,τ)和分离m路声源得到最终的y(ω,τ)。
[0111]
算法1:block-online的auxiva更新规则。
[0112]
for τ=1 to n
τ do
[0113]
更新源分离矩阵:w(ω;τ)=w(ω;τ-1);
[0114]
forn=1 to n do
[0115]
for m=1 to m do
[0116]
公式(1)更新r
k
(τ)(如步骤3));
[0117]
forω=1to n
ω do
[0118]
更新辅助变量v
k
(ω;τ)(如步骤3))和盲矩阵更新(如步骤4));
[0119]
end for
[0120]
end for
[0121]
end for
[0122]
end for
[0123]
2、在分离后的多通道声源中选择目标声源。
[0124]
步骤6)对于每一个分离的声源s
m
(ω,τ)=y(ω,τ)[m],做一个大时间窗t帧的滑动统计,又将这个大时间窗切割成n个时长为1帧的小时间窗。用公式(5)计算每个分离声源的小时间窗能量,其中i为小时间窗的索引:
[0125][0126]
步骤7)对于当前大时间窗,对于每个分离的声源s
m
获取最大/最小的小时间窗累积能量,见公式(6)(7):
[0127]
e_max
m
=max{e
m
[i]},i=0,1,2...n-1
[0128]
(6)
[0129]
e_min
m
=min{e
m
[i]},i=0,1,2...n-1
[0130]
(7)
[0131]
使用当前大时间窗每个声源统计得到的最大/最小值去分别更新信号/噪声的能量统计,其中α为平滑参数,t为大时间窗的索引,见公式(8)(9):
[0132]
speech
m
(t)=α x e_max
m
+(1-α)x speech
m
(t-1)
ꢀꢀ
(8)
[0133]
noise
m
(t)=α x e_max
m
+(1-α)x noise
m
(t-1)
ꢀꢀ
(9)
[0134]
步骤8)使用语音识别系统反馈进一步提升声源锁定准确率:在语音交互中,语音识别系统既可以作为声学处理的下游任务,又可以反过来给予声学处理模块以信息反馈。本发明结合了这样一种语音识别系统反馈机制,从而帮助信噪比统计时对语音信号的精确定位。如图2所示,当语音交互被触发,触发点的前t
target
帧可以被认为是极大概率存在有效语音的,对这一段时间的最大值进行统计,可以增强对于信噪比计算中的语音信号的估计准确度,从而影响snr
m,t
的计算。具体操作上,当有语音交互被触发时,同样将t
target
帧切分成为1帧的小时间窗,使用类似公式(5)进行语音信号的统计,见公式(10)(11):
[0135][0136]
e_max_target
m
=max(e_target
m
[i]),i=0,1,2...n-1
[0137]
(11)
[0138]
使用公式(12)对目标区域内的最大值去和当前语音信号的统计做加权:
[0139]
speech
m
(t)=γ x e_max_target
m
+(1-γ) x speech
m
(t)
ꢀꢀ
(12)
[0140]
步骤9)最后更新信号噪声比,β为平滑系数:
[0141][0142]
对于每个大时间窗,做一次判决,取信噪比snr
m
(t)最大的一路分离声源作为目标声源s
target
(ω,τ)。
[0143]
3、基于分离后声源相对空间信息的纯干扰声源段检测和消除
[0144]
步骤10)进一步利用目标声源和干扰声源的空间相关信息,从而判断当前block是否是纯干扰噪声源,如果是,则可以将当前窗进行静音。多通道盲分离方法本质上是让多路输入信号通过多个空间滤波器,每个空间滤波器接收多路信号,将这多路信号中的同一声源信号提取到同一路输出中。则每个空间滤波器的作用就是提取目标声源信号,且滤出其他声源信号。则目标声源(语音信号)对应的空间滤波器sf
target
输出s
target
(ω,τ)和其他声源(干扰噪声源)对应的空间滤波器sf
in
输出s
in
(ω,τ)存在比例关系可以用来区分当前窗是否为纯干扰噪声。
[0145]
分析如下:
[0146]
假设x为多路接收到的信号,且假设盲源分离对于各个源头的分离效果是均衡的,则在语音交互中存在两种情况:
[0147]
情况一计算空间滤波器输出比r:
[0148]
x(ω,τ)=s+n,其中s为理想纯目标语音信号,n为理想纯干扰噪声源(可以是多个噪声源叠加)。当snr>>0时,该r值>>1,当snr=0时,该r值会接近于1。
[0149][0150]
情况二计算空间滤波器输出比r:
[0151]
x=n,接收到的是纯干扰噪声源。则在任意信噪比情况下啊,r值都会小于1。
[0152][0153]
由以上分析,由于aux-iva是以l
b
帧为基础单位进行迭代,纯干扰噪声源的判决也可以l
b
帧为基础单位进行迭代,可得r值计算公式(16):
[0154][0155]
步骤11)我们可以利用情况二的突出特征来判断当前窗是否是纯干扰噪声:使用固定阈值或者长窗平滑r值作为阈值都可以取得较好效果。即当有阈值r_thresh:
[0156]
r<r_thresh:当前窗为纯干扰噪声段;
[0157]
r>=r_thresh:当前窗存在语音信号;
[0158]
根据以上r值的判断对纯干扰噪声段进行静音处理得到s
target_trim
(ω,τ)。
[0159]
4、使用基于dnn的vad算法进行最终目标声源语音段提取
[0160]
一般而言,语音识别系统需要声学前端提供包含有效语音片段的语音信号,而vad定义为从连续音频信号中检测出实际语音片段的起始点和终止点,从而提取出有效的语音片段,可以为语音识别系统去除不必要的非语音片段,减少了后续语音处理系统的计算压力,有利于提高系统的响应速度。
[0161]
一般来说,在高信噪比条件下,vad任务相对容易,传统基于能量或谱熵的检测方法即可得到较高的检测精度。目标声源信号s
target_trim
(ω,τ)虽然已去除了空间上的干扰噪声,信号,但是有可能残留一些稳态或者伪稳态的空间不想干的残留噪声。因此,本发明设计了一种噪声鲁棒且支持混响语音的vad算法,见图3。图3为端点检测框图。
[0162]
步骤12)vad系统采用基于神经网络的算法得分和基于能量的算法得分的双门限法来区分音频帧的属性:语音帧和非语音帧。考虑到实际应用场景的复杂性(远场拾音和噪声环境),神经网络模型训练数据准备阶段,在基础数据集中加入了充分的远场模拟数据,并混入了不同类型、不同信噪比的噪声数据;依据神经网络的强大学习能力,从不同的数据集中学习到有效语音的特征,从而获得比较的强语音区分能力。具体来讲,dnn接收处理过后的目标声源信号s
target_trim
(ω,τ)作为输入,对于每一帧τ都得到一个0-1的dnn_score(τ)=dnn(s
target_trim
(ω,τ))。
[0163]
步骤13)语音识别系统反馈进行端点检测算法的鲁棒性提升:处理后的目标声源信号s
target_trim
(ω,τ)的信噪比一般为0db以上,所以估计有效语音段的能量即可获得当前环境音频的最大能量。充分利用整个系统框架的结构优势,根据语音识别系统的反馈的时间位置信息,系统能够获取到当前环境音频能量的最大值e_bg。在系统的运行期间,首先,使用公式(17)计算s
target_trim
(ω,τ)每一帧τ的能量e(τ)。
[0164][0165]
步骤14)更新背景音频能量的时候,系统中存储宽口大小为n的的能量窗,并在语音识别系统反馈的时间点,取能量窗中最大的能量值作为当前待更新的能量值e_bg_curr,使用平滑算法从而能够有效的估计环境不同时段的音频能量水平,具体见公式(19)其中αv
为平滑参数。
[0166]
e_bg_curr=max[e(τ
i
)],i=0,1,2...n-1
[0167]
(18)
[0168]
e_bg=αv
×
e_bg+(1-αv)
×
e_bg_curr
[0169]
(19)
[0170]
步骤15)根据当前帧的能量e(τ)和环境能量e_bg,依据公式(20)计算得到当前帧的能量得分。
[0171]
energy_score(τ)=e(τ)/e_bg
ꢀꢀꢀꢀꢀꢀꢀ
(20)
[0172]
步骤16)根据当前帧的dnn得分dnn_score(τ)和能量得分energy_score(τ),公式(21)计算得到当前帧的最终得分score(τ),其中βv为能量权重。当score(τ)大于语音判定阈值speech_thres,判定当前帧为语音帧,否则为非语音帧。在获取当前帧得分过程中,动态估计了系统工作环境的能量水平,使得能量得分的获取具有一定的自适应能力,从而提高了vad系统的鲁棒性。
[0173]
score(τ)=βv
×
energy_score(τ)+(1-βv)
×
dnn_score(τ)
ꢀꢀꢀꢀꢀ
(21)
[0174]
步骤17)根据得到的score(τ),当score(τ)>=vad阈值vad_threshold时,判定第τ帧为存在语音信号,否则判定为语音不存在,从而提取最终目标声源的有效语音段。
[0175]
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除
热门咨询
tips