技术领域
[0001] 本
发明涉及一种基于分布式麦克风阵列的声源定位系统。涉及
专利分类号G物理G01测量;测试G01S无线电定向;无线电导航;采用
无线电波测距或测速;采用无线电波的反射或再
辐射的定位或存在检测;采用其他波的类似装置G01S5/00通过确定两个或更多个方向或
位置线的配合来定位;通过确定两个或更多个距离的配合进行定位。
背景技术
[0002] 近年来,
人工智能话题异常火热,已呈现出在人们的生活中无处不在的趋势。在“
物联网时代”,语音在
人机交互中扮演着举足轻重的
角色。几年来,基于分布式麦克风阵列的语音
信号处理方法逐渐成为一个新的研究热点,而到了“声控时代”,这项技术的重要性显得尤为突出。其中声源定位系统研究是分布式麦克风阵列
语音信号处理的一个重要研究分支,并具有广泛的应用场景,例如视频会议、智能交通、安防监控、雷达等。
[0003] 在现有声源定位系统中,基于时延(声源到达不同麦克风的时间差)的定位方法较简单,易于实现。该方法通过广义互相关法估计时延,然后根据时延进行声源定位。
[0004] R.Parisi等提出采用广义互相关法进行时延估计。该方法主要根据麦克风对接收语音信号的时延进行声源定位。根据麦克风接收语音信号的模型,采用广义互相关法计算麦克风对接收语音信号的相关函数,根据相关函数峰值对应的点确定时延。
[0005] 实际语音环境比较复杂,背景噪声和混响干扰有时候会比较严重,上述方案提出的时延估计方法对背景噪声和混响比较敏感,时延估计
精度会受语音环境的影响,进而影响整个定位系统的性能。
[0006] Sergei Astapov等采用
相位变换加权可控响应功率(SRP-PHAT)定位方法进行声源定位。传统的SPR-PHAT定位方法需要搜索所有的候选声源位置,其中,声源位置为可控响应功率最大的点。该定位方法计算量大,不能实现实时定位。该方案采用随机区域压缩方法缩小空间搜索范围减小计算量,并提出了减小SRC初始搜索范围。通过两种方法实现减小SRC初始搜索范围:(1)根据声源到达麦克风的角度DOA;(2)根据多点定位方法。
[0007] 该方案提出的定位方法,在环境背景噪声和混响干扰不严重时,定位性能和传统SRP-PHAT定位方法相当,并且降低了计算量。但是该方法受限于麦克风阵列的拓扑结构。减小SRC初始搜索范围的方法和麦克风阵列的结构有关。
发明内容
[0008] 本发明针对以上问题,提出的一种基于分布式麦克风阵列的声源定位系统,包括:
[0009] 预处理单元,该单元包括:
[0010] 根据麦克风子阵列采集到的初始
音频信号,对该信号进行
帧划分,生成音频帧序列的帧划分模
块;
[0011] 分析计算每一帧音频信号的短时
能量,得出音频帧序列中的噪声帧和语音帧;根据噪声帧和语音帧得出所述音频帧序列的
信噪比计算模块;
[0012] 子阵列选择单元,该单元分析所述麦克风阵列中每个子阵列接收信号的直混比DRR,选取直混比DRR超过
阈值的麦克风子阵列参与声源定位;
[0013] 时延计算单元,该单元计算声源
信号传输至所述麦克风子阵列中不同麦克风之间的时间差,作为参与声源定位的麦克风子阵列中每个麦克风对的时延;
[0014] 声源定位单元,该单元包括
[0015] 根据所述每个麦克风对的时延,对声源位置进行预估,得到声源空间U的粗定位模块;
[0016] 精确定位模块:在所述的声源空间U中进行搜索,得到所述声源空间U中的改进的可控响应功率的最大点;分析多个麦克风子阵列的定位结果,经过一致性处理,最终确定声源位置,完成声源的定位搜索。
[0017] 作为优选的实施方式,所述的帧划分模块将接收到的音频信号划分成每帧时长为30毫秒的信号帧。
[0018] 更进一步的,所述信噪比计算模块分析计算所述音频帧序列信噪比过程如下:
[0019] 计算帧序列中每一帧信号的短时能量:
[0020]
[0021] 其中,xm(t)是麦克风子阵列中第m个麦克风接收的语音信号,xml(t)表示第l帧信号,t0是第l帧信号的起始时刻,t0+0.03(秒)是第l帧信号的截止时刻;
[0022] 计算所有信号帧短时能量的最小值Hmin,若H(l)>pHmin,第l帧信号为语音帧,否则为噪声帧;
[0023] 第l帧的先验信噪比SNRp(l),
[0024]
[0025] 其中,H(l)为第l帧的短时能量,H'为距离第l帧最近一帧噪声帧的短时能量,lg表示以10为底的常用对数。
[0026] 更进一步的,得到所述信噪比后,对信噪比进行平滑;
[0027] SNR(l)=λSNR(l-1)+(1-λ)SNRp(l) (3)
[0028] 其中,SNR(l)为估计的第l帧的信噪比,SNR(l-1)为前一帧语音信号的信噪比,λ是平滑因子本发明中λ取0.7。
[0029] 作为优选的实施方式,所述的子阵列选择单元的工作过程如下:
[0030] 定义最终参与定位的麦克风子阵列集合为G,G的初值为空,即G={φ};
[0031] 采用如下公式估计麦克风子阵列的直混比,其中第i个麦克风子阵列的直混比用DRRi表示;
[0032]
[0033]
[0034]
[0035] 其中,ω表示角
频率, 和 分别表示xml(t)和xnl(t)的自
功率谱密度, 表示xml(t)和xnl(t)的互功率谱
密度,dmic表示麦克风子阵列中第m个麦克风和第n个麦克风之间的距离,c表示声音传播速度,Re(·)表示取复数的
实部;
[0036] 计算中所有麦克风子阵列直混比的最大值DRRmax,DRRmax=max{DRR1,...,DRRi,DRRE},若DRRi>aDRRmax,则i∈G,其中,E表示麦克风子阵列的个数,a为判断阈值,a取0.8,max{…}表示求一组数中的最大值。
[0037] 作为优选的实施方式,所述的时延计算单元的计算过程如下:
[0038] 在PHAT加权函数中引入和信噪比有关的一个非线性参数β,得到β-PHAT加权函数[0039]
[0040]
[0041] 其中,Xm(ω)和Xn(ω)分别表示xml(t)和xnl(t)的傅里叶变换;
[0042] 引入一个和直混比有关的参数α,把ML加权和β-PHAT加权结果融合为 加权函数。
[0043]
[0044]
[0045]
[0046] 其中, 和 分别表示xml(t)和xnl(t)的自功率谱密度,表示xml(t)和xnl(t)的互功率谱密度;
[0047] 本发明提出的时延估计方法的广义相关函数为
[0048]
[0049] 其中, 指频域加权函数,Xm(ω)和Xn(ω)分别表示信号xml(t)和xnl(t)的傅里叶变换,(·)*表示取复共轭, j是虚数单位;
[0050] 取最大值时所对应的τ值即为两麦克风接收信号之间的时延τmn。
[0051] 更进一步的,得到所述时延后,根据如下过程剔除异常时延;
[0052] 定义参数
[0053]
[0054] 其中,τmax=dmic/c,dmic表示麦克风子阵列中第m个麦克风和第n个麦克风之间的距离,c表示声音传播速度;
[0055]
[0056] 如果 满足一定的约束条件则认为该时延估计是可靠的,约束条件为
[0057]
[0058] 其中,表示所有 的平均值,b是阈值,b取0.9。
[0059] 作为优选的实施方式,所述粗定位模块的计算过程如下:
[0060] Ag=f (16)
[0061] 其中
[0062]
[0063] g=[xs ys zs rs]T
[0064]
[0065] A是麦克风的坐标位置和距离差构成的矩阵,g是声源位置矩阵,f是系数矩阵;其中,(xk,yk,zk)表示第k个麦克风的坐标,(xs,ys,zs)表示声源坐标,rs表示声源和坐标原点的距离,Rk表示第k个麦克风到坐标原点的距离, 表示声源到第k个麦克风和第0个麦克风的距离差,M取4;
[0066] 通过最小二乘法估计式(16)的解g即可得到声源坐标(xs,ys,zs),则声源空间U为:
[0067]
[0068] 更进一步的,所述精确定位模块的计算过程如下:
[0069] x和y保持不变,z在(zs-0.5,zs+0.5)范围内以0.02米为步长进行搜索;
[0070] x保持不变,y在(ys-0.5,ys+0.5)范围内以0.02米为步长进行搜索,同时对z按(zs-0.5,zs+0.5)范围内以0.02米为步长进行搜索;
[0071] x在(xs-0.5,xs+0.5)范围内以0.02米为步长进行搜索,同时按照前述步骤对z和y进行搜索;
[0072] 改进后的可控响应功率的计算过程如下:
[0073]
[0074] 其中,当 满足式(14)的约束条件,vmn取1;否则取0,s是声源位置矢量,表示式(12)取τ=τmn(s)的值。
[0075] 更进一步的,所述一致性处理过程如下:
[0076] 将所述麦克风子阵列e的定位结果 发送给所有邻域子阵列e',e'∈Ne;
[0077] 所述麦克风子阵列e接收邻域子阵列e'的定位结果 e'∈Ne;根据下式[0078]
[0080] 各 个 子 阵 列 e 的 定 位 结 果 最 终 收 敛 于 全 局 平 均 即即为最终估计的声源位置。
附图说明
[0081] 为了更清楚的说明本发明的
实施例或
现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0082] 图1为本发明系统模块图
[0083] 图2为本发明麦克风阵列及麦克风子阵列的分布示意图
[0084] 图3为本发明预处理单元的模块图
[0085] 图4为本发明时延计算单元的原理图
[0086] 图5为本发明声源定位单元的模块图
[0087] 图6为本发明图定位误差曲线与混响时间的关系图
[0088] 图7为本发明定位误差曲线与信噪比的关系图
具体实施方式
[0089] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述:
[0090] 本发明中采用的英文缩略语和关键术语定义如下:
[0091] DRR:Direct to Reverberation Ratio,直混比
[0092] TDOA:Time Difference of Arrival,到达时延差
[0093] GCC:Generalized Cross-Correlation,广义互相关
[0094] ML:Maximum Likelihood,最大似然加权
[0095] PHAT:Phase Transform,相位变换加权
[0096] SRP:Steered Response Power,可控响应功率
[0097] SRC:Stochastic Region Contraction,随机区域压缩
[0098] DOA:Direction of Arrival,到达角度
[0099] 如图1-5所示:基于分布式麦克风阵列的声源定位系统,主要包括:
[0100] 本发明提出的定位方法考虑了环境噪声和混响的影响,能有效的抑制噪声和混响影响,提高整个系统的定位性能。该定位方法的
流程图如图1所示。主要包括四个单元,包括预处理单元、麦克风子阵列选择单元、时延计算单元以及声源定位单元。
[0101] 本发明以采用8个麦克风子阵列为例作为说明,每个子阵列中包括4个麦克风。分布式麦克风阵列
中子阵列的分布如图2所示。
[0102] 预处理单元
[0103] 预处理包括包括帧划分模块和信噪比计算模块分别对麦克风子阵列接收的信号分帧、判断语音帧和噪声帧以及估计信噪比,其
框图如图3所示。
[0104] xm(t)和xn(t)是麦克风子阵列中第m个麦克风和第n个麦克风接收的语音信号,把信号分成每帧长30毫秒的信号帧,xml(t)和xnl(t)表示第l帧信号。
[0105] 麦克风接收的信号包括语音帧和噪声帧,语音帧的能量比噪声帧大,根据能量的大小区分语音帧和噪声帧。第l帧信号的短时能量为
[0106]
[0107] 其中,t0是第l帧信号的起始时刻,t0+0.03是第l帧信号的截止时刻。
[0108] 本发明采用短时能量法判断该帧信号是语音帧还是噪声帧,语音帧噪声帧判断具体步骤如下:
[0109] 步骤1、计算200帧信号(持续6秒)的短时能量,第l帧信号的短时能量用H(l)表示。
[0110] 步骤2、计算步骤1中所有信号帧短时能量的最小值Hmin,若H(l)>pHmin,第l帧信号为语音帧,否则为噪声帧。其中,Hmin=min{H(1),...,H(l),H(200)},本发明中p取50,min{…}表示求一组数中的最小值。
[0111] 估计第l帧信号信噪比的具体步骤如下:
[0112] 步骤1、计算第l帧的先验信噪比SNRp(l),
[0113]
[0114] 其中,H(l)为第l帧的短时能量,H'为距离第l帧最近一帧噪声帧的短时能量,lg表示以10为底的常用对数。
[0115] 平滑信噪比
[0116] 为了得到相对精确的信噪比,对信噪比进行平滑,其定义为
[0117] SNR(l)=λSNR(l-1)+(1-λ)SNRp(l) (3)
[0118] 其中,SNR(l)为估计的第l帧的信噪比,SNR(l-1)为前一帧语音信号的信噪比,λ是平滑因子本发明中λ取0.7。
[0119] 麦克风子阵列选择单元
[0120] 麦克风子阵列选择模块通过估计麦克风子阵列接收信号的DRR选择合适的麦克风子阵列。DRR越大表示麦克风接收信号
质量越好。
[0121] 本发明采用下面的方法估计麦克风子阵列的直混比(DRR)。
[0122]
[0123]
[0124]
[0125] 其中,ω表示角频率, 和 分别表示xml(t)和xnl(t)的自功率谱密度, 表示xml(t)和xnl(t)的互功率谱密度,dmic表示麦克风子阵列中第m个麦克风和第n个麦克风之间的距离,c表示声音传播速度,Re(·)表示取复数的实部。
[0126] 麦克风阵列选择的具体步骤如下:
[0127] 步骤1、定义最终参与定位的麦克风子阵列集合为G,G的初值为空,即G={φ}。
[0128] 步骤2、根据式(4)~式(6)估计每个麦克风子阵列接收语音信号的直混比,其中第i个麦克风子阵列的直混比用DRRi表示。
[0129] 步骤3、计算步骤2中所有麦克风子阵列直混比的最大值DRRmax,DRRmax=max{DRR1,...,DRRi,DRRE},若DRRi>aDRRmax,则i∈G。其中,E表示麦克风子阵列的个数,a为判断阈值,本发明a取0.8,max{…}表示求一组数中的最大值。
[0130] 时延计算单元
[0131] 时延是指声源信号到达一对麦克风中两个麦克风之间的时间差。时延估计模块的原理如图4所示。
[0132] 在PHAT加权函数中引入和信噪比有关的一个非线性参数β,得到β-PHAT加权函数[0133]
[0134]
[0135] 其中,Xm(ω)和Xn(ω)分别表示xml(t)和xnl(t)的傅里叶变换。
[0136] 单元306中引入一个和直混比有关的参数α,把ML加权和β-PHAT加权结果融合为加权函数。
[0137]
[0138]
[0139]
[0140] 其中, 和 分别表示xml(t)和xnl(t)的自功率谱密度,表示xml(t)和xnl(t)的互功率谱密度。
[0141] 本发明提出的时延估计方法的广义相关函数为
[0142]
[0143] 其中, 指频域加权函数,Xm(ω)和Xn(ω)分别表示信号xml(t)和xnl(t)的傅里叶变换,(·)*表示取复共轭, j是虚数单位。
[0144] 取最大值时所对应的τ值即为两麦克风接收信号之间的时延τmn。
[0145] 声源定位模块单元
[0146] 在分布式麦克风阵列中,每个麦克风接收的信号质量相差很大,一个麦克风对的时延估计常出现异常值。本发明提出一种方法剔除异常时延估计,可改进已有的可控响应功率定位方法性能。
[0147] 为了有效剔除时延估计异常值的方法,定义一个参数
[0148]
[0149] 其中,τmax=dmic/c,dmic表示麦克风子阵列中第m个麦克风和第n个麦克风之间的距离,c表示声音传播速度, 如果 满足一定的约束条件则认为该时延估计是可靠的,约束条件为
[0150]
[0151] 其中, 表示所有 的平均值,b是阈值。本发明中b取0.9。
[0152] 改进后的可控响应功率表达式为
[0153]
[0154] 其中,当 满足式(14)的约束条件,vmn取1;否则取0。s是声源位置矢量,表示式(12)取τ=τmn(s)的值。本发明称以式(15)为核心的方法为SRP-αβ-v定位方法。
[0155] 本发明提出基于SRP-αβ-v的混合定位方法。
[0156] 首先,采用几何定位方法对声源粗定位得到声源的大致位置,然后采用SRP-αβ-v方法进行细定位得到声源的精确位置。声源定位单元的框图如图5所示。
[0157] 粗定位模块的几何定位通过最小二乘法估计声源大致位置,得到声源坐标(xs,ys,zs),确定声源空间U。
[0158] Ag=f (16)
[0159] 其中
[0160]
[0161] g=[xs ys zs rs]T
[0162]
[0163] A是麦克风的坐标位置和距离差构成的矩阵,g是声源位置矩阵,f是系数矩阵;其中,(xk,yk,zk)表示第k个麦克风的坐标,(xs,ys,zs)表示声源坐标,rs表示声源和坐标原点的距离,Rk表示第k个麦克风到坐标原点的距离, 表示声源到第k个麦克风和第0个麦克风的距离差,M取4。
[0164] 通过最小二乘法估计式(16)的解g即可得到声源坐标(xs,ys,zs),则声源空间U为[0165]
[0166] 精确定位模块,采用SRP-αβ-v定位方法进行细定位,在声源空间U内进行搜索,声源位置为改进后可控响应功率最大值对应的空间点。
[0167] 具体搜索步骤如下:
[0168] 步骤1、x和y保持不变,z在(zs-0.5,zs+0.5)范围内以0.02米为步长进行搜索。
[0169] 步骤2、x保持不变,y在(ys-0.5,ys+0.5)范围内以0.02米为步长进行搜索,同时对z按步骤1进行搜索。
[0170] 步骤3、x在(xs-0.5,xs+0.5)范围内以0.02米为步长进行搜索,同时按步骤1和2对z和y进行搜索。
[0171] 本发明采用平均一致性
算法对各个子阵列的定位结果进行一致性处理。分布式麦克风阵列中子阵列e∈G在u时刻的定位结果用向量ze,u表示,平均一致性算法通过分布式迭代的方式计算各个子阵列定位结果的平均值,即 F表示参与定位的子阵列的个数。子阵列e的迭代公式为
[0172]
[0173] 其中,为一致性迭代索引,Wee'表示子阵列e和e'的一致性权重,G表示所有参与定位的子阵列的集合,Ne表示e在通信半径范围内的邻域子阵列集合。一致性权重矩阵W需要满足式(19)的约束条件。
[0174] ITW=IT,WI=I,
[0175] 其中,I是单位矩阵,ρ(·)表示矩阵的谱半径(绝对值最大的特征值)。本发明中采用Metropolis权重矩阵[5],其定义为
[0176]
[0177] 其中,de和de’表示子阵列e和e'的度,max{xx,yy}表示求两个数xx、yy中的最大值。
[0178] 利用平均一致性方法对各个子阵列进行数据融合的详细步骤如下:
[0179] 步骤1、把子阵列e的定位结果 发送给所有邻域子阵列e',e'∈Ne。
[0180] 步骤2、子阵列e接收邻域子阵列e'的定位结果
[0181] 步骤3、根据式(18)迭代更新子阵列e的定位结果
[0182] 步骤4、各个子阵列e的定位结果 都会收敛于全局平均 即即为最终估计的声源位置。
[0183] 实施例1
[0184] 为了验证本发明提出声源定位方法的可靠性,进行
软件仿真实验,分析其定位性能。用Matlab 2014a软件平台仿真实现本文提出定位方法、SRP-PHAT定位方法和几何定位方法。
[0185] 模拟房间大小为11×7×3㎡,随意放置8个麦克分子阵列构成分布式系统。用Image模型模拟房间脉冲响应,用来模拟语音信号的房间混响。其中,声速取值为1个标准
大气压、20℃条件下的大小,声速为343米/秒。
[0186] 从仿真结果看声源的估计位置和实际位置有一定的偏差,该定位误差为[0187]
[0188] 其中,(x',y',z')表示声源的真实位置, 表示声源估计位置。
[0189] 分析不同定位方法下定位误差与信噪比和混响的关系。本发明提出的定位方法和SRP-PHAT定位方法指标比较如表1所示。
[0190] 表1定位方法比较
[0191]
[0192] 本发明模拟11×7×3米的房间,搜索步长是0.02米,如果全部搜索一次需要288750次,本发明提出的基于SRP-αβ-v的混合定位方法只需在1×1×1米的空间内搜索,搜索次数为15625,大约是SRP-PHAT的1/20。
[0193] 以上所述,仅为本发明的一种具体实施方式,但本发明的保护范围并不局限于此,任何熟悉
本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。