昂 晨,王 玫,罗丽燕,宋浠瑜,熊璐琦
(1.认知无线电与信息处理省部共建教育部重点实验室,广西 桂林 541004; 2.桂林电子科技大学 信息与通信学院,广西 桂林 541004)
由于GPS信号在室内环境下的定位效果不尽理想,因此急需一种高效、便捷和准确的室内定位技术来填补空白。近年来,随着嵌入式和移动终端的快速发展,智能手机等移动平台的CPU计算能力得到显著提高。同时,多种传感器内嵌其中,极大地丰富了智能手机的功能,使得音频的采集和处理成为可能[1]。智能手机的普及让智能手机获取代价降低,使它成为人们生活中不可缺少的一部分。利用智能手机能够在无需其他基础设备的条件下实现低代价、高响应速度的定位系统,达到符合使用要求的定位效果。
当前较成熟的有基于Wifi、蓝牙、红外线和超声波等室内定位技术。基于WiFi的定位技术基础设备易于安装,但易受其他信号干扰、功耗较高;基于蓝牙的定位技术功耗低、易集成,但定位距离短、稳定性较差、易受噪声干扰;基于红外的定位技术精度高,但不能穿越障碍,同时造价高、功耗较大;基于超声波的室内定位技术整体精度高、结构简单,但存在多径效应、衰减明显、易受温度影响、成本高[2]。基于背景声的室内定位技术无需其他基础设施,仅需手机录音,成本较低。同时背景声极易被获取,其识别率也不受多径效应的影响。背景声定位是基于指纹的定位技术,为了达到较高的识别率,需要提取鲁棒性高、稳定性好的特征。对于语音和音乐,特征提取的方式已经比较成熟。时域中有过零率[3]和短时能量[4]等;频域中常用傅里叶变换法和线性预测分析方法(LPC)[5]等;梅尔频率倒谱系数(MFCC)[6]作为倒谱域的特征使用最为广泛。由于室内背景声与语音在结构与特性上存在很大区别,因此用传统方法对背景声进行特征提取和识别会存在不足[7]。此外,建筑声学领域提出:房间的持续声音和房间的冲击响应相结合形成了每一间房间的独特背景声[8]。即使是人耳听觉相近的2个房间,由于房间结构所产生的持久化声音仍能较精确地区分2个不同的房间。
文献[9]结合智能手机的多传感器优势,采集WiFi、声音、视觉图像和加速度计数据作为指纹,其中声音指纹通过提取时域上声音的幅度得出。实验结果显示,此方法在51个不同房间中的匹配率达到87%。文献[10]提出了一种提取背景声频谱的方法,采用KNN学习算法,依靠背景声实现了房间级的室内定位系统,识别率达到69%。文献[11]提出了声音地标定位器(ALL),取功率谱的5帧移动平均作为声音指纹,学习算法采用RPROP后向神经网络,实现智能手机室内定位功能。
由此可见,对于声学背景声定位,如何对其特征指纹与学习算法进行深入学习并加以改进,实现更高的房间识别率成为研究热点和难点。因此,本文深入研究背景声谱(ABS)及其特征,利用RBF神经网络进行特征学习,系统性能得到进一步改进。
本文通过智能手机采集房间背景声作为训练样本,定位系统设计分为线下采集与线上定位2个阶段。
线下采集阶段需要采集足量的房间背景声数据,以此训练出房间背景声识别模型。由于声音序列整体非平稳,但局部平稳[12]。采集足够长时间的背景声,对这些声音序列进行特征提取,得到背景声指纹;另外,需要为每一个背景声指纹添加标记,背景声指纹与标记一起构成了背景声指纹库。
构建声音指纹库之后,通过学习算法训练出适用于背景声室内定位场景下的定位模型。此模型需要有较高的泛化能力,能较好地反映整个样本空间的特性。线下采集与训练过程如图1所示。
图1 背景声线下采集与训练过程
线上阶段同样用智能手机采集背景声,对背景声序列进行特征提取,提取出的数据作为测试集输入到训练的房间背景声定位模型中。将得到的输出与房间标记信息进行匹配,计算房间识别率。线上定位过程如图2所示。
图2 背景声线上定位过程
高精度识别背景声序列,特征的提取十分重要。提取出的特征在不同房间之间需要有较高的区分度;另外,在同一个场景下,不同时间的特征应该具有时间平稳性,对环境的改变具有鲁棒性和一般性。本文使用了室内环境声学特征——室内背景声谱(ABS)。
预处理过程首先将采集的背景声序列进行分帧操作,通过分帧得到短时平稳的背景声信号。帧长是进行分帧需要考虑的一个重要参数,长度越长特征越容易捕捉,长度越小音频失真度越小[13]。因此需要进行折中考虑,在分帧过程中要进行加窗,若不进行加窗操作,会忽略背景声信号的连续性和前后影响。常用的窗函数有汉明窗和矩形窗等。
汉明窗(Hamming Window)在主瓣宽度与矩形窗相同的情况下,旁瓣较窄,防频谱泄露能力更强。汉明窗函数为:
(1)
矩形窗加窗计算简单,窗函数为:
(2)
式中,N为窗口长度,即帧长。
将采集的背景声序列进行预处理,计算每帧的功率谱,步骤如下:① 将一系列声音信号做FFT变换;② 经过FFT变换之后,保留前一半的数据;③ 乘以留下元素的共轭复数,得到功率谱;④ 提取功率的第五百分列并取对数,即ABS。
ABS提取流程如图3所示。
图3 ABS提取流程
提取了背景声的特征指纹(ABS)之后,需要对特征指纹进行训练。不同的学习算法得出的定位模型会较大地影响房间识别精度。典型的几种学习算法包括贝叶斯决策论[14]、决策树[15]、神经网络和KNN等。本文采用KNN[16]、BP[17]神经网络以及RBF[18]神经网络进行仿真。
RBF神经网络是一种局部逼近的神经网络,其优化过程实质是高维空间中的曲面拟合过程[19]。RBF神经网络模拟了生物神经元互相覆盖、局部调整的特性,其学习过程就是在高维空间中拟合训练数据来寻找一个最佳曲面,可在构建好的模型中对测试数据进行插值以提高其泛化能力。RBF神经网络结构如图4所示。
图4 RBF神经网络结构
(3)
式中,网络第j个节点的中心向量为cj=[cj1,cj2,cj3,…,cjn]T,j=1,2,3…,n。设网络的基宽向量为:B=[b1,b2,b3,…,bn]T,bj为节点j的基宽参数,且为大于零的数。
RBF网络的权向量为:
W=[w1,w2,w3,…,wn]T。
(4)
RBF网络的输出为:
ym(k)=w1h1+w2h2+…+wnhn。
(5)
RBF网络的性能指标函数为:
(6)
式中,y(k)为测试数据的期望输出。由于本文采用监督学习算法对网络所有的参数进行训练。根据梯度下降法,输出权、节点基宽参数及节点中心矢量的迭代算法如下:
wj(k)=wj(k-1)+η(y(k)-ym(k))hj+
α(wj(k-1)-wj(k-2)),
(7)
(8)
bj(k)=bj(k-1)+ηΔbj+
α(bj(k-1)-bj(k-2)),
(9)
(10)
cji(k)=cji(k-1)+ηΔcji+
α(cji(k-1)-cji(k-2)),
(11)
式中,η为学习速率,η∈[0,1];α为动量因子,α∈[0,1]。
为了评估本文算法的定位性能,下面给出对基于该解决方案实现房间级定位性能进行测试的具体实验内容,并对实验结果进行分析。
选取桂林电子科技大学金鸡路校区第七与第八教学楼3层房间作为实验场地,整个实验场地大约有20个房间,包括教室、硬件实验室、软件实验室与储物室。选取其中15个房间(包含上述4类)利用华为荣耀7手机按上述特征提取方法得到各个房间的背景声指纹库。该实验场地部分房间如图5所示。
本文在Android4.4手机操作系统下编程实现了用于录制背景声数据的软件。采样频率设置为44.1 kHz。在每个房间的3个不同位置采集总时长1 h的背景声音频。
图5 桂电七教3层部分房间示意
本次实验对7 kHz以下相同房间的背景声指纹与不同房间的背景声指纹进行了仿真对比,实验结果如图6和图7所示。
图6 320房间7 kHz以下的5个背景声指纹样本
图7 7 kHz以下5个不同房间的背景声样本
由图6分析得出:在不同房间中提取出的背景声指纹样本在7 kHz以内其功率变化趋势有较大差别,且同频率下其指纹功率值相差基本在4 dB以上。因此,不同房间的背景声指纹具有较高的区分度。
由图7分析得出:在同一房间下提取出的背景声指纹样本在7 kHz以内其功率变化趋势差别较小,同频率下其指纹功率值相差基本在3 dB以内。因此,相同房间的背景声指纹具有时间平稳性。
图6与图7结果表明,使用ABS特征提取能较好地表征一个房间的背景声特征。
分别使用KNN、BP、RBF学习算法训练特征指纹集,得到各自的室内背景声定位模型。房间个数的变化对定位模型识别率与运行时间的影响如表1所示。房间个数与定位模型匹配率高低的直方图如图8所示。
表1房间个数与定位模型识别率和运行时间的比较
房间个数KNN识别率/%KNN计算时间/sBP识别率/%BP计算时间/sRBF识别率/%RBF计算时间/s281.9723.9378.7041.9286.8914.69379.1224.2468.6644.3487.9114.95474.4625.9869.6740.6679.3815.19571.3326.3164.3440.4275.3315.84675.5626.6765.0043.3278.3316.63870.9228.5253.0046.8377.5018.281069.3329.1351.3345.5375.9319.831268.7931.1645.3348.1275.6721.551567.3333.8542.6750.6575.3323.85
图8 房间个数与定位模型识别率直方图
实验结果表明:
① 定位模型的识别率随着房间个数的增加基本呈递减趋势,且RBF与kNN定位模型的识别率在房间个数为8时趋于稳定;
② RBF神经网络训练得出的定位模型具有更高的房间识别率。另外相较其它学习算法,RBF运算时间更短;
③ 由直方图可直观看出,存在个别房间数增加,房间识别率反而上升的情况,原因可能是房间的类型差别较大(即教室与实验室的背景声存在较大的区别)。
本文利用ABS特征提取方法提取背景声序列,以此建立鲁棒性高的背景声指纹数据库。利用KNN、BP、RBF三种机器学习算法依次构建背景声定位模型。通过对测试数据的识别率与计算时间的计算,可知RBF训练出的定位模型相较KNN、BP有良好的性能改善,更适用于室内背景声定位场景。下一步研究可在本场景尝试利用深度学习RNN算法进行建模,RNN对序列数据识别有着较好的效果,广泛应用于文本、语音等领域。但深度学习需要较大的数据量,因此后续还可考虑利用群智感知模式进行数据采集,以降低采集数据的时间成本。