基于卷积神经网络和子带SRP-PHAT空间谱的声源定位方法

文档序号:25305208发布日期:2021-06-04 14:19阅读:217来源:国知局
基于卷积神经网络和子带SRP-PHAT空间谱的声源定位方法
基于卷积神经网络和子带srp

phat空间谱的声源定位方法
技术领域
1.本发明属于声源定位领域,具体涉及一种基于卷积神经网络和子带srp

phat空间谱的声源定位方法。


背景技术:

2.基于麦克风阵列的声源定位技术在语音识别、说话人识别、情感识别系统的前端处理中,以及视频会议、智能机器人、智能家居、智能车载设备、助听器等方面有着广泛的应用前景和潜在的经济价值。传统声源定位方法中以srp

phat(steered response power

phase transform)方法最为流行和常用,该方法通过检测空间谱的峰值实现声源定位,但噪声和混响常导致空间谱呈现多峰特性,尤其在强混响环境中,反射声产生的空间谱峰值可能大于直达声的峰值,导致声源位置检测错误。近年来,基于模型的声源定位方法被用来在复杂声学环境中进行定位,这类方法通过对空间特征参数建模,构建声源位置和空间特征参数之间的映射关系,从而实现声源定位,但目前该类算法对未知环境(噪声和混响)的泛化能力较低,性能还有待进一步提高。空间特征参数和建模方法是影响基于模型的声源定位方法性能的主要因素。


技术实现要素:

3.发明目的:为了克服现有技术中存在的问题,本发明公开了一种基于卷积神经网络和子带srp

phat空间谱的声源定位方法,采用子带srp

phat空间谱作为空间特征参数,采用卷积神经网络(convolutional neural network,cnn)对多种混响和噪声环境下的方向性语音数据的空间特征参数建模,可提高麦克风阵列在复杂声学环境下的声源定位性能,提高对声源空间结构、混响和噪声的泛化能力。
4.技术方案:为实现上述目的,本发明采用如下技术方案:一种基于卷积神经网络和子带srp

phat空间谱的声源定位方法,其特征在于,包括如下步骤:
5.s1、麦克风阵列采集语音信号,对采集的语音信号进行分帧和加窗的预处理得到单帧信号;
6.s2、计算每帧信号的子带srp

phat空间谱矩阵;
7.s3、将所有帧信号的子带srp

phat空间谱矩阵输入训练完成的卷积神经网络,输出语音信号属于每个方位角的概率,取概率最大的方位角作为该语音信号的声源方位角估计值。
8.优选地,步骤s2中,计算每帧信号的子带srp

phat空间谱矩阵包括如下步骤:
9.s21、对每帧信号进行离散傅里叶变换:
[0010][0011]
其中,x
m
(i,n)为麦克风阵列中第m个麦克风的第i帧信号,m=1,2,

,m,m为麦克风的数目,x
m
(i,k)是x
m
(i,n)的离散傅里叶变换,表示第m个麦克风第i帧的频域信号,k为频
率点,k为离散傅里叶变换的长度,n为帧长,k=2n,dft(
·
)表示离散傅里叶变换;
[0012]
s22、设计gammatone滤波器组的脉冲响应函数:
[0013][0014]
其中,j表示gammatone滤波器的序号;c是gammatone滤波器的增益;t表示连续时间;a为gammatone滤波器的阶数;表示相位;f
j
表示第j个gammatone滤波器的中心频率;b
j
表示第j个gammatone滤波器的衰减因子,b
j
计算公式为:
[0015]
b
j
=1.109erb(f
j
)
[0016]
erb(f
j
)=24.7(4.37f
j
/1000+1)
[0017]
对每个gammatone滤波器的脉冲响应函数进行离散傅里叶变换:
[0018][0019]
其中,g
j
(k)是第j个gammatone滤波器的频域表达式,k为频率点,k为离散傅里叶变换的长度,n为帧长,k=2n,f
s
表示信号采样率,dft(
·
)表示离散傅里叶变换;
[0020]
s23、计算每帧信号的子带srp

phat函数:
[0021][0022]
其中,p(i,j,r)表示波束方向为r时,第i帧信号的第j个子带srp

phat函数;m为麦克风阵列中麦克风的数目;τ
mn
(r)表示声波从波束方向r传播到第m个麦克风和第n个麦克风的时间差,其计算公式为:
[0023][0024]
其中,r表示波束方向的坐标,r
m
表示第m个麦克风的位置坐标,r
n
表示第n个麦克风的位置坐标,c为空气中的声速;
[0025]
s24、对每帧信号的子带srp

phat函数进行归一化处理:
[0026][0027]
s25、将同一帧信号的所有的子带srp

phat函数组合为矩阵形式,得到子带srp

phat空间谱矩阵:
[0028][0029]
其中,y(i)表示第i帧信号的子带srp

phat空间谱矩阵,j为子带个数,即gammatone滤波器的个数,l为波束方向的个数。
[0030]
优选地,步骤s23中,当设定声源与麦克风阵列处于同一水平面,声源位于麦克风
阵列的远场时,τ
mn
(r)的等价计算公式为:
[0031][0032]
其中,ξ=[cosθ,sinθ]
t
,θ为波束方向r的方位角。
[0033]
优选地,卷积神经网络包括依次连接的一个输入层、三个卷积

池化层、一个全连接层和一个输出层;
[0034]
卷积

池化层中,每个卷积层采用大小为3
×
3的卷积核,步长为1,三层卷积层的卷积核个数依次为24、48和96,每个卷积层进行卷积操作后,先进行批量归一化,再使用relu函数激活,卷积操作中采用补零的方式使得卷积前后的特征维度保持不变;池化层采用最大池化方式,池化大小为2
×
2,步长为2;
[0035]
卷积

池化层后,将特征数据拉直变形为一维向量特征数据;
[0036]
全连接层与一维向量特征数据的连接中加入dropout连接方式;
[0037]
输出层采用softmax分类器。
[0038]
优选地,卷积神经网络的训练步骤如下:
[0039]
s1、将纯净语音信号与不同方位角的房间脉冲响应卷积,并加上不同程度的噪声和混响,生成多个不同指定方位角的方向性语音信号:
[0040]
x
m
(t)=h
m
(t)*s(t)+v
m
(t),m=1,2,...,m
[0041]
其中,x
m
(t)表示麦克风阵列中第m个麦克风接收到的指定方位角的方向性语音信号;m为麦克风的序号,m=1,2,

,m,m为麦克风的数目;s(t)为纯净语音信号;h
m
(t)表示从指定方位角到第m个麦克风的房间脉冲响应;v
m
(t)表示噪声;
[0042]
s2、对所有方向性语音信号进行分帧和加窗的预处理得到单帧信号,并计算每帧信号的子带srp

phat空间谱矩阵;
[0043]
s3、将所有方向性语音信号的子带srp

phat空间谱矩阵作为训练样本,将所有方向性语音信号的指定方位角作为对应训练样本的类别标签,将训练样本和类别标签作为训练数据集,采用带动量的随机梯度下降算法最小化损失函数来对卷积神经网络进行训练。
[0044]
有益效果:本发明具有如下显著的有益效果:
[0045]
1、本发明可提高麦克风阵列在复杂声学环境下的声源定位性能,提高对声源空间结构、混响和噪声的泛化能力;
[0046]
2、本发明采用子带srp

phat空间谱作为空间特征参数,该参数不仅能表征整体声学环境信息,而且具有鲁棒性强的优点;采用卷积神经网络对多种混响和噪声环境下的方向性语音数据的空间特征参数建模,建立方位与空间特征参数的映射关系,将声源定位问题转化为多分类问题;
[0047]
3、本发明可离线完成卷积神经网络的训练过程,将训练好的卷积神经网络保存于内存中,测试时仅需要一帧信号就可以实现实时声源定位。
附图说明
[0048]
图1为本发明的算法流程图;
[0049]
图2为本发明中卷积神经网络的模型结构图;
[0050]
图3为在测试环境和训练环境一致且混响时间为0.5s时,本发明所述方法与传统srp

phat算法的定位成功率的对比图;
[0051]
图4为在测试环境和训练环境一致且混响时间为0.8s时,本发明所述方法与传统srp

phat算法的定位成功率的对比图;
[0052]
图5为在测试环境和训练环境的噪声环境不一致且混响时间均为0.5s时,本发明所述方法与传统srp

phat算法的定位成功率的对比图;
[0053]
图6为在测试环境和训练环境的噪声环境不一致且混响时间均为0.8s时,本发明所述方法与传统srp

phat算法的定位成功率的对比图;
[0054]
图7为在测试环境和训练环境的混响环境不一致且测试环境的混响时间为0.6s时,本发明所述方法与传统srp

phat算法的定位成功率的对比图;
[0055]
图8为在测试环境和训练环境的混响环境不一致且测试环境的混响时间为0.9s时,本发明所述方法与传统srp

phat算法的定位成功率的对比图。
具体实施方式
[0056]
下面结合附图对本发明作更进一步的说明。
[0057]
子带srp

phat空间谱表征了整体的声学环境空间信息,包括声源方位、房间尺寸和房间反射特征等,而且具有较强鲁棒性,可以作为定位系统中的空间特征参数。深度神经网络可以模拟神经系统信息处理的模式,能够描述空间特征参数之间的融合关系和结构信息,具有强大的表达和建模能力,与此同时,建模时无需对数据的分布性进行假设。其中,卷积神经网络是一种专门用来处理具有类似网络结构的数据的神经网络,在图像或时间序列的数据中得到应用。麦克风阵列采集的语音信号正是一种时间序列数据。
[0058]
因此,本发明提出了一种基于卷积神经网络和子带srp

phat空间谱的声源定位方法,如图1所示,包括如下步骤:
[0059]
步骤一:将纯净语音信号与不同方位角的房间脉冲响应卷积,并加上不同程度的噪声和混响,生成多个不同指定方位角的方向性语音信号,即麦克风阵列信号:
[0060]
x
m
(t)=h
m
(t)*s(t)+v
m
(t),m=1,2,...,m
[0061]
其中,x
m
(t)表示麦克风阵列中第m个麦克风接收到的指定方位角的方向性语音信号;m为麦克风的序号,m=1,2,

,m,m为麦克风的数目;s(t)为纯净语音信号;h
m
(t)表示从指定方位角到第m个麦克风的房间脉冲响应,h
m
(t)与声源方位、房间混响有关;v
m
(t)表示噪声。
[0062]
本实施例中设定麦克风阵列是由6个全向麦克风组成的均匀圆阵,阵列半径为0.1m。设定声源与麦克风阵列处于同一水平面,声源位于麦克风阵列的远场。定义水平面的正前方为90
°
,声源的方位角的范围为[0
°
,360
°
),间隔为10
°
,训练方位的个数标记为f,则f等于36。训练数据的混响时间包括0.5s和0.8s,由image算法产生不同混响时间下不同方位角的房间脉冲响应h
m
(t)。v
m
(t)为高斯白噪声,训练数据的信噪比包括0db、5db、10db、15db和20db。
[0063]
步骤二、将步骤一中得到的麦克风阵列信号进行预处理获得单帧信号。
[0064]
预处理包括分帧和加窗,其中:
[0065]
分帧方法为:采用预设分帧长度和帧移,将第m个麦克风的指定方位角的方向性语
音信号x
m
(t)划分为多个单帧信号x
m
(in+n),其中i为帧序号,n表示一帧内的采样序号,0≤n<n,n为分帧长度。本实施例中信号采样率f
s
为16khz,采取的分帧长度n为512(即32ms),帧移为0。
[0066]
加窗方法为:x
m
(i,n)=w
h
(n)x
m
(in+n),其中x
m
(i,n)为加窗处理后的第m个麦克风的第i帧信号,为汉明窗。
[0067]
步骤三、提取麦克风阵列信号的空间特征参数,即子带srp

phat空间谱矩阵。具体包括:
[0068]
(3

1)、对步骤二中得到的每帧信号进行离散傅里叶变换,将时域信号转换为频域信号。
[0069]
离散傅里叶变换计算公式为:
[0070][0071]
其中,x
m
(i,k)是x
m
(i,n)的离散傅里叶变换,表示第m个麦克风第i帧的频域信号,k为频率点,k为离散傅里叶变换的长度,k=2n,dft(
·
)表示离散傅里叶变换。本实施例中设定离散傅里叶变换的长度为1024。
[0072]
(3

2)、设计gammatone滤波器组。
[0073]
g
j
(t)为第j个gammatone滤波器的脉冲响应函数,其表达式为:
[0074][0075]
其中,j表示gammatone滤波器的序号;c是gammatone滤波器的增益;t表示连续时间;a为gammatone滤波器的阶数;表示相位;f
j
表示第j个gammatone滤波器的中心频率;b
j
表示第j个gammatone滤波器的衰减因子,b
j
计算公式为:
[0076]
b
j
=1.109erb(f
j
)
[0077]
erb(f
j
)=24.7(4.37f
j
/1000+1)
[0078]
本实施例中阶数a为4,相位设置为0,gammatone滤波器的个数为36,即j=1,2,

,36,gammatone滤波器的中心频率f
j
的范围为[200hz,8000hz]。
[0079]
对每个gammatone滤波器的脉冲响应函数进行离散傅里叶变换,得到其频域表达式:
[0080][0081]
其中,g
j
(k)是g
j
(n/f
s
)的离散傅里叶变换,表示第j个gammatone滤波器的频域表达式,k为频率点,k为离散傅里叶变换的长度,k=2n,dft(
·
)表示离散傅里叶变换,f
s
表示采样率。本实施例中设定离散傅里叶变换的长度为1024。
[0082]
(3

3)、计算每帧信号的子带srp

phat函数,计算公式如下:
[0083][0084]
其中,p(i,j,r)表示阵列的波束方向为r时,第i帧信号的第j个子带srp

phat函数;(
·
)
*
表示共轭;τ
mn
(r)表示声波从波束方向r传播到第m个麦克风和第n个麦克风的时间差,其计算公式为:
[0085][0086]
其中,r表示波束方向的坐标,r
m
表示第m个麦克风的位置坐标,r
n
表示第n个麦克风的位置坐标,c为空气中的声速,常温下约为342m/s,f
s
为信号采样率;||
·
||表示2范数。
[0087]
本实施例中设定声源与麦克风阵列处于同一水平面,声源位于麦克风阵列的远场,则τ
mn
(r)的等价计算公式为:
[0088][0089]
其中,ξ=[cosθ,sinθ]
t
,θ为波束方向r的方位角。τ
mn
(r)与接收信号无关,因而可以离线计算后保存于内存中。
[0090]
对子带srp

phat函数p(i,j,r)进行归一化处理,计算公式如下:
[0091][0092]
(3

4)、将同一帧信号的所有的子带srp

phat函数组合为矩阵形式,得到子带srp

phat空间谱矩阵:
[0093][0094]
其中,y(i)表示第i帧信号的空间特征参数,即子带srp

phat空间谱矩阵,j为子带个数,即gammatone滤波器的个数,本实施例中j=36。定义水平面的正前方为90
°
,本实施例中阵列的波束方向的方位范围为[0
°
,360
°
),间隔为5
°
,因此波束方向的个数l=72。通常取波束方向的个数l大于训练方位的个数f,因此能够提高信号的空间特征参数的精度,从而提高cnn模型的训练精度。
[0095]
步骤四、准备训练集:按照步骤一至步骤三,提取所有训练环境下(训练环境的实施设置详见步骤一)方向性语音信号的空间特征参数,将其作为cnn的训练样本,同时标记每个训练样本的对应的指定方位角,将其作为训练样本的类别标签。
[0096]
步骤五、构建cnn模型,将步骤四得到的训练样本和类别标签作为cnn的训练数据集,进行训练,从而得到cnn模型。具体包括:
[0097]
(5

1)、设定cnn模型结构。
[0098]
本发明采用的cnn结构如图2所示,包括一个输入层,其后紧跟三个卷积

池化层,然后是全连接层,最后是输出层。
[0099]
输入层的输入信号为j
×
l的二维子带srp

phat空间谱矩阵,即训练样本,本实施例中,j=36,l=72。
[0100]
输入层后紧跟着三个卷积

池化层,每个卷积层采用大小为3
×
3的卷积核,步长为1,卷积操作中采用补零的方式使得卷积前后的特征维度保持不变。第1、2、3个卷积层的卷积核个数分别为24、48和96。每个卷积层进行卷积操作后,先进行批量归一化,再使用relu函数激活。池化层采用最大池化方式,池化大小为2
×
2,步长为2。
[0101]
经过三个卷积

池化操作,36
×
72的二维子带srp

phat空间谱矩阵成为5
×9×
96特征数据,将其拉直变形为4320
×
1的一维向量特征数据。全连接层中的神经元连接到前一层中的所有特征数据,并加入dropout的连接方式防止过拟合,dropout率设置为0.5。
[0102]
输出层采用softmax分类器,softmax函数将全连接层的特征数据转化为语音信号相对于每个方位角的概率,取概率最大的方位角作为预测的声源方向。
[0103]
(5

2)、训练cnn模型的网络参数。
[0104]
cnn的训练过程包括前向传播和反向传播两个部分。
[0105]
前向传播是计算输入数据在当前网络参数下的输出,是特征的逐层传递过程,第d层中位置(u,v)处的前向传播表达式为:
[0106]
s
d
(u,v)=relu((s
d
‑1*w
d
)(u,v)+β
d
(u,v))
[0107]
其中,d表示层标识且第d层为卷积层,s
d
表示第d层的输出,s
d
‑1表示第d

1层的输出,*号表示卷积运算,w
d
表示第d层的卷积核权重,β
d
表示第d层的偏置,relu是激活函数。本发明采用的cnn结构中的层包括输入层、卷积

池化层中的卷积层和池化层、全连接层以及输出层。
[0108]
d表示输出层,则输出层的表达式为:
[0109]
s
d
=softmax((w
d
)
t
s
d
‑1+β
d
)
[0110]
其中,s
d
表示输出层的输出,s
d
‑1表示全连接层的输出,w
d
表示输出层的卷积核权重,β
d
表示输出层的偏置。
[0111]
反向传播阶段的目标是最小化交叉熵损失函数e(w,β):
[0112][0113]
其中,下标f表示第f个方位角,表示输出层在第f个方位角的期望输出,表示输出层在第f个方位角的实际输出。f表示训练方位的个数,本实施例中f=36。本发明采用带动量的随机梯度下降(stochastic gradient descent with momentum,sgdm)算法最小化损失函数,sgdm的相关参数为:动量参数momentum设置为0.9,l2正则化系数是0.0001,初始学习率设置为0.01,每6轮将学习率降低0.2倍,mini

batch设置为200。
[0114]
本发明在训练过程中采用7∶3交叉验证的方式。多次迭代训练,直至收敛。至此,cnn模型训练完成。
[0115]
步骤六、将测试信号按照步骤二、步骤三处理,得到单帧测试信号的空间特征参数,即子带srp

phat空间谱矩阵,将其作为测试样本。
[0116]
步骤七、将测试样本作为步骤四中训练完成的cnn模型的输入特征,cnn输出测试信号属于每个方位角的概率,取概率最大的方位作为该测试样本的声源方位角估计值。
[0117]
与现有技术相比,本发明方法包含训练和测试两个阶段。在训练阶段,对多种混响和噪声环境下的方向性语音信号提取空间特征参数,将其输入cnn进行训练,得到cnn模型。测试阶段,提取测试信号的空间特征参数,输入训练好的cnn模型,取概率最大的方位作为目标声源方位估计值。本发明可离线完成cnn的训练过程,将训练好的cnn模型保存于内存中,测试时仅需要一帧信号就可以实现实时声源定位。与传统srp

phat算法相比,本发明算法显著提高了复杂声学环境下的定位性能,并且对声源空间结构、混响和噪声都具有较好的泛化能力。
[0118]
图3和图4展示了测试环境和训练环境一致时,本发明所述方法与传统srp

phat算法的定位效果:图3中测试环境和训练环境的混响时间为0.5s,图4中测试环境和训练环境的混响时间为0.8s,分别研究测试环境和训练环境均在信噪比为0db、5db、10db、15db和20db下的定位效果,可以看出本发明方法的定位成功率远高于传统srp

phat算法。
[0119]
图5和图6展示了测试环境和训练环境的信噪比不一致时,本发明所述方法与传统srp

phat算法的定位效果:图5中测试环境和训练环境的混响时间均为0.5s,测试环境的信噪比与训练环境不同,图6中测试环境和训练环境的混响时间均为0.8s,测试环境的信噪比与训练环境不同,分别研究测试环境在信噪比为

2db、3db、8db、13db和18db下的定位效果,可以看出本发明方法的定位成功率远高于传统srp

phat算法。
[0120]
图7和8展示了测试环境和训练环境的混响时间不一致时,本发明所述方法与传统srp

phat算法的定位效果:图7中测试环境和训练环境的混响时间不同,测试环境的混响时间为0.6s,图8中测试环境和训练环境的混响时间不同,测试环境的混响时间为0.9s,分别研究测试环境和训练环境均在信噪比为0db、5db、10db、15db和20db下的定位效果,可以看出本发明方法的定位成功率远高于传统srp

phat算法。
[0121]
从图5至图8中可以看出,即使在非训练环境下,本发明方法的成功率依旧远高于传统srp

phat算法,说明了本发明方法对未知环境具有更好的鲁棒性和泛化能力。
[0122]
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1