1.智能手机交互式噪声自先验感知分析系统,其特征在于,面向环境感知基于智能手机对噪声交互式分析,把自先验感知应用到交互式感知系统当中,通过对智能手机端和服务器端的设计开发,实现噪声数据的采集、处理与压缩传输,在系统中参与者通过热力地图的形式直观的获得自己所关心区域的噪声分布情况,实现交互式自先验感知噪声检测系统;
第一,交互式自先验感知的数据采集与重建,包括:一是交互式噪声数据采集,二是自适应噪声数据压缩,三是噪声自先验重建;
在采集噪声数据前,提出采用一种粗粒度音频模态动态评估方法对参与者在感知任务过程中的应用场景进行推测,提高采集数据的精确度;基于交互式感知系统中噪声数据冗余多、处理过程能耗大的问题,提出把自先验感知融入交互式感知噪声检测系统,利用少量的噪声数据来重建出整个环境噪声数据信息,减少数据采集量;
第二,设计并实现一个环境噪声交互式感知系统,一是系统总体设计,二是客户端系统设计,包括传感器数据获取、地图服务板块设计、噪声地图的生成,三是服务端系统设计;
客户端使用搭载智能操作系统的智能手机,完成噪声数据的采集和压缩,并把数据发送到服务端,参与者在手机端查看噪声地图;服务端采用基于REST架构的Web服务方式,接收从客户端发送过来的数据,并把数据进行处理和重建,实现对交互式感知数据的处理以及对参与者状态的推测,最后把重建结果反馈到客户端。
2.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,交互式噪声数据采集:对智能手机的使用场景和使用方式进行粗粒度音频模态动态评估,根据参与者的运动状态,将参与者分为静态型和动态型,根据参与者的手机所处空间,分为封闭空间和开放空间,将手机放置于室内的抽屉内,则认定是静止状态下的封闭空间,手机采集到的噪音数据相对偏小,不能真实反映实时噪声数据,在此种状态下数据可靠性较低;当参与者处在运动状态下,手机暴露在室外,参与者如果采用高采集频率,能较好反映出时空特性的噪声数据,避免离散不间断的采集区域出现;
在判别手机是处于何种运动状态时,采用手机中的加速度传感器,手机加速度传感器获取手机三个移动方向的加速度数据变化,其中X轴表示左右移动方向的加速度,Y轴表示前后移动方向的加速度,Z轴表示垂直移动方向的加速度;当携带有智能移动终端设备的参与者处于运动状态时,三个轴的加速度都有一定变化,但变化规律不明显,并且当运动的姿态不同时每个轴的加速度变化规律都不一样,如果分析每个轴上的加速度变化势必增加算法复杂度,本申请引入一个新的加速度强度合向量CNU作为特征量:ax,ay,az分别是三个方向上的加速度,利用CNU特征量避免分析三个轴上的加速度带来的复杂性,不管是何种运动状态,CNU的值都会有较大变化,用CNU作为运动状态判断依据;
当参与者处在某运动状态时,CNU有一个最小值到最大值的变化过程,当参与者处于静止状态时,CNU区域平稳,其大小在一个重力加速度g之间,本申请设置1.1g为判别临界值,计算感知任务开始后3秒参与者的平均CNU判定:当CNU<1.1g时,参与者处于平稳状态;当CNU≥1.1g时,参与者处于运动状态;
在判别手机是否处于封闭空间时,采用光脉冲近距离传感器所读取的数据判断手机所处的空间,采用values[0]获取参数,当距离小于1.6cm时,values[0]值为0,当距离大于等于1.5cm时,values[0]值为5;
对通过加速度传感器和光脉冲近距离传感器所采集的数据进行分析,粗粒度推测参与者的使用场景,并以此为依据筛选参与者提供的噪声数据;
噪音量的评估通过手机端完成,当启动客户端软件时,通过手机端麦克风感知周围的声音大小,并计算分贝值,同时,软件通过定位获取当前位置信息,即经纬度,并获取当前时间截,即获得了一个三元组(时间戳,经纬度,分贝值),把这个三元组存入手机,得到一条噪声数据记录,在手机端只测量周围噪声数据的大小而不录制参与者周围的声音,对录音文件不保存,保护参与者隐私;
采集噪声信息时是基于参与者位置采集的,选取一块目标区域G,把区域G划分成有N个部分,每一个部分为一个噪声测量单位,把每一个噪声测量单位内的所获取的数据信息xi(i∈{1,2,3,…,N})转化为向量形式,表示在这个目标区域内的噪声污染情况:T
x=(x1,x2,...xN) 式2
x为数据全集,根据不完整的、随意的测量数据重建出初始数据x。
3.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,自适应噪声数据压缩:在某一时间段T内,参与者在感知任务要求的区域内采集噪声数据,参与者采集到一串数据vs,vs仅包含部分噪声测量数据,即噪声分贝值、位置数据信息、时间截信息,首先把vs编码成M维的向量ys,ys=Bsvs,其中观测矩阵中Bs的设定:Bs中是一个M×Ls的观测矩阵,只含‑1,0,1三个元素,k’≈100:观测矩阵Bs在每个参与者的手机上通过一个伪随机数生成器生成,参与者的手机端通过生成的观测矩阵实现对所采集数据的降维,只有通过降维后的向量被发送到服务端,减少传输的流量,在重建时,服务端只需要和手机端相同的伪随机数生成器,观测矩阵就能够在服务器段生成且与手机端一致;
* * * *
将所有n个参与者所获取的数据叠加起来,则有y=Bx ,其中x是所有vs的叠加:*
B是一个P×Q的稀疏采样矩阵,P=M*n x’中有数据重合和缺失,为还原初始的*x,按照x中元素的顺序对B进行重建,使得:
y=CE=BGx 式6其中,C是感知矩阵,E是x在离散余弦变换矩阵G上的稀疏表示。
4.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,噪声自先验重建具体步骤如下:定义:输入:观测基B,观测噪声y,稀疏度k,
输出:x的k稀疏度重建的噪声信号s;
n n‑1
初始化:观测噪声的残差余量r0=y,重建信号s0=0,索引集T =T ∪{k},迭代次数n=0;
n T n‑1
第一步:计算观测噪声的残差余量和观测基B的每一列的内积g=Br ;
n n
第二步:找出g中的最大元素,j=argmax|g[i]|;
n n‑1
第三步:更新索引集T=T Y[j]以及索引观测基BT,Y[*]为索引更新函数;
n T ‑1 T
第四步:采用最小二乘法求的近似解x=(BT ,BT) BTy;
n n
第五步:更新观测噪声的残差余量,r=y‑Gs,其中迭代次数n=n+1,G为离散余弦变换矩阵;
r n n r n
第六步:如果n>k,而且满足收敛条件,则停止迭代,s=s ,r=r,输出s ,s ,否则转向第一步;
给出一个离散的K稀疏信号X,其中信号X的长度N变化,每条曲线代表不同的N值,取N=
50,100,500,噪声信号X的归一化稀疏度s=k/n=0.1,过采样率c为噪声测量数量M与噪声信号稀疏度k的比值,观测矩阵采用随机高斯矩阵。
5.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,系统总体设计:智能手机端获取噪声分贝值、位置信息和时间信息,三者通过通信模块上传至服务器端,同时,对参与者所获取的噪声信息实时显示,在参与者发出请求后,服务器端将采集的噪声数据反馈给参与者,在客户端以噪声地图的形式显示,服务器端通过通信模块收发数据,通过数据管理模块进行数据处理;
基于智能手机,通过内嵌的传感器获取噪声数据并完成噪声数据的可视化,服务器端作为系统的数据处理中心,其主要是进行数据接收、存储以及其它在服务器端进行的必要处理,参与者采集的数据集中在服务器端进行噪声自先验重建,服务器采用数据管理模块与MySQL集群进行通信。
6.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,客户端系统设计:采用智能手机完成数据的采集、存储、上传,客户端主要包括:一是感知数据的采集,包括噪声信息、定位信息、加速度传感器信息、近距离传感器信息、时间戳信息;二是与服务器端通信,客户端把获取到的数据信息发送到服务器端,并接收服务器端的反馈结果;
三是数据的可视化,通过热力地图的方式,将服务器端反馈到客户端的噪声数据实现可视化,使参与者直观观测周围的噪声分布情况;
智能手机提供对设备传感器的使用支持,提供驱动程序管理传感器硬件,通过监听器方式监听传感器硬件感知到的外部环境的变化,智能传感器开发具体步骤如下:第1步:获取传感器服务:参与者点击“开始采集”按钮触发采集过程,应用初始化Sensor Manager;
第2步:获取指定类型传感器:选定将要采用的传感器,采用Sensor Manager获取指定的待监听传感器并添加;
第3步:注册监听器:获取到传感器之后,采用Sensor Manager为目标传感器添加注册监听器,当传感器感知到环境的变化时,监听器将传感器数值返回,同时在监听器中,设定传感器采集的频率;
第4步:数据计算存储:得到传感器数据之后,对传感器数据进行处理,并进行持久化存储;
客户端的噪声检测利用手机中的麦克风传感器,声音强度的单位是dB,噪声强度数据获取计算式如下:Prms是测量值的声压,Pref是参考值的声压;
在噪声检测系统客户端获取参与者位置信息采用第三方地图API,具体经纬度信息获取流程:
1)下载第三方地图SDK并进行XML配置相关准备工作:
2)设置定位条件,setOpengps是否打开定位、返回值的坐标类型setCoorType;
3)注册监听器registerLocationListener;
4)采用StringBuffer存放获取的数据,getTime获取时间、getLatitude获取纬度、getLongitude获取经度;
5)发出请求,监听器工作,获取时间及经纬度数据;
采用第三方地图包含的热力地图来表示噪声分布情况,噪声信息热力图方式显示实现如下:
1)采用setMapStatus()设置地图状态;
2)在addHeatMap()中添加热力图获取数据List及热力图构造方法publicHeat Map.Builderdata():
3)采用ListgetLocations()方法获取JSONArray中的数据,此方法在addHeatMap()中等待被调用;
4)手机端向服务器端发出请求;
5)手机端显示噪声地图;
6)删除热力图的方法:heatmap.removeHeatMap()。
7.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,传感器数据获取:核心传感器数据采集模块是Sensor Data Collection,近距离传感器、加速度计、采用Sensor Event Listener监听接口实现传感器实时数据获取,采用第三方地图的Location Listener监听接口实现实时地理位置的信息获取,采用d BSensor类录制声音获取最大振幅;
(1)初始化SensorManager通过get System Service(Context.SENSOR_SERVICE)获取;
(2)通过get Default Sensor(Scnsor.TYPE_ACCELEROMETER)获取加速度传感器数据;
(3)注册监听器实时获取数据,register Listener(listener,sensor,Sensor Manager.SENSOR_DELAY_NORMAL);
(4)复写on Sensor Changed(Sensor Event event)方法获得传感器数据,返回的数据结构为event.values[]数组;
(5)传感器对象使用结束后,采用stop()方法释放传感器资源,同时注销传感器监听服务,sensor Manager.unregister Listener(Sensor Event Listener listener);
获取噪声强度的代码实现过程:采用MediaRecorderDemo的startRecord()方法实现噪声录制,stopRecordO方法结束噪声获取,具体流程如下:
1)实例化MediaRecorder对象;
2)对音频进行设置:采用setAudioSource()设置音频源,采用setOutputFormat()设置音频输出格式,采用setAudioEncoder()设置输出编码方式,采用setOutputFile()设置输出文件的位置;
3)prepare()准备录制;
4)start()正式开始录制;
5)调用updateMicStatus()进行计算具体音频强度,通过handler.sendMessage()发送数值,postDelayed()进行间断延时发送;
流程5)中updateMicStatus()计算代码如下:db=(int)((20×Math.log1O(ratio))×
0.7),其中,乘0.7降低极端噪音对数据的影响,采用类型强制转换将double类型转换成int类型;
采用Message将message.what和message.obj数据传送给handler,前者包含传送的代码标识,后者是噪声强度的具体数值,在MainActivity中采用handleMessage进行数据接收,其中,switch(msg.what)对msg.what标识进行判断,判断正确后采用setText(msg.obj.toString())将msg.obj中的具体数值转换成string类型后显示,采用Runnable()接口和handler.postDelayed()实现定时器功能,间断的运行整个updateMicStatus(),实现数据定时的更新。
8.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,地图服务板块设计:地图信息获取的具体流程:
1)第三方地图使用环境搭建:首先在第三方地图开发者中注册,然后获取密钥,并下载相应采用功能的jar包,将jar包放到软件的lib文件中,在软件中执行更新导入,然后在manifest.XML中添加相应的权限和密钥即可完成开发环境搭建;
2)建立LocationService.java设置第三方调用相关方法:其中包含registerListener()和unregisterListener()进行第三方地图的注册和取消注册,以及start()和stop()方法来实现定位的委托;
3)建立LocationApplication.java初始化定位并作为调用地图的初始入口;
4)主界面噪声检测,采用setOnClickListener()对其进行监听,按下时进行地图定位,再次按下时停止定位;
在ManActivtyjava中新建BDLocationListener,在其中采用onReceiveLocation()进行定位信息的接收,接收用string类型的缓存器StringBuffer,然后采用location.getTime()获取定位时间,location.getLatude()和location.getLongtitude()获取经纬度,采用location.getAddStr()获取位置信息,获取定位时间和经纬度信息在进行本地存储后等待发送到服务器,定位时间和定位位置信息进行界面实时显示。
9.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,噪声地图的生成:噪声地图采用第三方地图提供的热力地图API,通过自定义热力地图的方式让噪声以热力地图的方式显示,采用HeatMap.Builder构造器完成自定义任务,实现噪声数据的可视化,以下为生成自定义热力地图的流程:
1)通过List
2)新建addHeatMap()方法加入Thread(),并采用接口run()调用getLocations()获取服务器数据,并采用热力地图构造器HeatMap.Builder设置需要绘制的数据,采用List
3)在完成设置后采用build()构造热力地图并采用sendEmptyMessage(0)发送数值给builder中的handleMessage(Messagemsg),handleMessage确认接收0后采用addHeatMap(heatmap)添加热力地图,完成热力地图添加和显示。
10.根据权利要求1所述智能手机交互式噪声自先验感知分析系统,其特征在于,服务端系统设计:服务器端作为数据处理中心,完成参与者使用场景的分析和移动终端进行数据通信,完成数据接收、存储及需要在服务器端进行的必要处理,服务器端采用REST架构,服务器端接口采用URL作为资源标识与客户端通信;
采用MySQL作为系统数据库,信息数据层由两部分构成:数据库、数据库访问层,数据库访问层进行数据存储、修改、删除操作时遵守JPA规范;
Web服务器端的业务层由服务接口、实现以及实体层构成,Web层由两部分构成,第一部分是服务门户层,第二部分是Web服务层,前者负责接口、后者针对移动客户端的数据请求;
服务器端参与者使用场景推测,考虑智能手机在参与者采集行为过程中的运动状态和物理位置,采用近距离感应器、线性加速度传感器,采用加速度传感器进行参与者运动状态的判别方法和采用近距离传感器对与手机所处状态判别。