分贝电子应用 基于Android的手机分贝仪设计与实现

小编 2024-10-12 论坛 23 0

基于Android的手机分贝仪设计与实现

李金林,代品宣,李震 (江苏科技大学 电子信息学院,江苏 镇江 212003)

摘要: 为了提高室内外环境中噪声监测的便捷性,针对Android平台,设计手机分贝仪软件。研究Android系统音频架构和录音原理,实时处理麦克风采集到的PCM编码的音频流,使用声压级公式计算分贝值大小。按照软件开发流程,对手机分贝仪进行需求分析、界面设计、模块设计、数据库设计,最终编码实现。详细介绍了Android平台上音频采集、仪表盘、噪声值曲线的实现方法。测试结果表明,手机分贝仪软件基本达到普通声级计精度要求,有效降低了噪声监测工作的成本。

随着现代工业、建筑业和交通运输业的迅速发展,噪声污染日益严重,它影响和破坏了人们的正常生活和工作,危害人体健康,已成为当今社会四大公害之一。声级计是声学测量中常用的基本仪器,可广泛用于环境噪声、机器噪声、车辆噪声以及其他各种噪声的测量[1]。随着现代数字信号处理和芯片技术的进步,电子音频技术已经广泛应用到移动终端中,把手机作为声级计,是计算机技术与声学领域的有益结合。

Android是Google公司推出的一款专门为移动平台定制的、到目前为止最热门的嵌入式手机操作系统 [2]。2015年上半年中国智能手机市场分析报告中指出,Android机型关注量高达71.9%。为了提高室内外环境中噪声监测的便捷性,在Android上进行音频信号处理相关的研究与开发成为一种必要。本文以Android移动终端为平台,设计手机分贝仪软件。

Android设备的音频系统[35]由ALSA框架实现,该框架在Linux内核中为声卡提供了OSS驱动组件,输入/输出组件负责播放PCM声音输出和从外部获取的PCM声音,用Java层管理声音设备和对应的属性设置。ALSA自上而下由Audio应用程序、Audio Java框架层、Audio本地框架层、Audio Flinger、Audio硬件抽象层、ALSALIB和底层Audio驱动组成。

Android录音工作亦通过分层的方法实现,如图1所示,每层向上提供对应的调用接口,并调用下层提供的接口,保证了Android音频系统的健壮性和稳定性。

Android使用录音功能时,先设置输入源、采样格式等参数,然后建立音轨,获得服务代理端。

在Android音频相关类中,Audio Record和Audio Track分别完成音频数据的采集和输出。

Audio Track提供两种数据加载模式,即流模式和静态模式,及多种音频流类型,如Alarm等,通过共享内存方式完成与Audio Flinger之间的数据传递。

而Audio Flinger是Audio系统的核心,它处理各种数据并最终写入Audio的硬件抽象层。Audio Flinger包含Duplicating Thread、Record Thread、Direct Output Thread三个内部类和一些外部类(如Mixer Thread、Client等)。Audio Flinger驻留于Media Server。

Audio Policy Service是控制Audio系统的,包括HAL对象Audio Policy Interface,它与硬件相关,提供一切设备切换管理和音量控制接口。

Android音频录入系统动建立过程如图2所示。

1.2音频格式

音频流的数据经过编码后对应的音频文件分别为AMR格式和PCM格式,前者数据是被压缩的,后者可以直接读取音频数据。WAV文件(*.wav)中存放的就是PCM数据。文件格式分为3个部分:Riff块描述、FMT子块、Data子块。MP3文件(*.mp3)由3部分组成:TAG_V2(ID3V2),Frame,TAG_VI(ID3V1)。这3部分顺序存放在文件,但并不是所有的MP3文件都同时具有这3部分。

2分贝仪原理

噪声测量技术中直接测量噪声的声强是比较困难的,而声压则是比较容易测量的物理量[1]。

人耳是对声压产生反应的,同时声波的传输规律也主要是由声压的变化规律来描述。

一般的声压测量系统由传声器、声级计、示波器、数据记录仪、信号分析仪组成。传声器将声压信号转换为电压信号;声级计将电压信号放大、加权、倍频程滤波、均方根检波和对数转换,最后给出噪声的声压级、计权声压级或倍频声压级;示波分仪器则将声压测量结果可视化,并有效存储和管理[6]。

声压级的定义为,均方根声压与基准声压之比的以10为底的对数乘以20,以分贝(dB)表示[7]。对于空气中的声音传播,基准声压量通常定为20 μPa,即0 dB。

时间计权的定义是规定时间常数的时间指数函数,该函数是针对瞬时声压的平方而进行计算[8]。对于任何瞬时时间上的A计权和时间计权声级用LAτ(t)表示:

式(1)表明,声学测量的声压级是交变声压的有效值,有效值指的是一段时间内信号的均方值根。

对于起伏的或者是不连续的噪声,很难确定A声级的大小,为此可用能量平均的方法来评价噪声对人的影响。以一个A声级表示间歇变化出现的A声级,即:

在公式(2)中,LA是变化的A声级瞬时值,单位为dB;T是某段时间内的总量。

在电子线路中可以采用积分电路对信号进行一段时间内的平均。但是实际测量噪声时,是通过不连续的采样进行测量[8]。在计算机系统中,采样时间间隔相等,则:

在公式(3)中:N是测量的声级总个数。本文设计的分贝仪软件通过等效声压级公式计算出分贝值。将声音缓存中的数据取出,用平方和除以总数据长度,得到分贝值大小。

3手机分贝仪设计

3.1界面设计

分贝仪的功能包括:分贝值、仪表盘、环境判别、噪声曲线。页面分为3部分,上部为仪表盘,中部为文字,下部为曲线图。中部的左半部分为实时数值显示,中部的右半部分为当前环境的判别显示结果。

3.2音频采集

在Eclipse中, DB Activity.java对应db_screen.xml视图。在清单文件中加入RECORD _AUDIO 、RESTART_PACKAGE等权限,同时声明最低SDK版本、硬件支持和音频转换所需的函数库。

DB Activity初始化后,调用getNoiseLevel函数。函数中不断循环地启动mAudioRecord线程,使用getMinBufferSize方法创建音频数据缓冲区,该对象的3个参数分别为采样频率、声道设置和编码制式。根据公式(3),将buffer中内存取出,进行平方和运算,把实时分贝值赋值给公共变量DB Value。延时100 ms后,结束mAudioRecord线程。

3.3仪表盘设计

手机分贝仪的仪表盘使用needle图片作为指针、panel图片作为背景表盘,它们在db_screen.xml视图上中心位置重合在一起。在DB Activity初始化后,同时启动一个定时器,设置进度表为100 ms,在这个子线程中发送数据消息给handler,就在handle中配合主线程更新分贝仪的UI。本文使用的仪表盘的最大角度是172°,而仪表盘实际刻度是从0到100均匀的,因此把公共变量DB Value乘以1.72赋值角度变量Degree,然后使用旋转RotateAnimation方法更新needleview视图,最终实现实时分贝值在仪表盘上的精确显示。

3.4环境判定

根据实际测得的分贝值,对一般噪声的危险接触级别进行划分,进而判定用户所处噪音环境,比如0~20 dB是非常安静,20~40 dB是低语等,在仪表盘所依赖的定时器中,用if…else进行判定,并使用SpannableString Builder方法高亮显字文本字段。实时分贝值也是在这一线程更新到分贝仪UI中的TextView上。

3.5噪声值曲线

在仪表盘功能实现所依赖的定时器中,实现噪声值曲线的绘制功能。在DB Activity中定义DBValueChart数组,使用移位方法进行数据更新。把该数组中的内容赋给PathViewChart,调整好线、点、文字、连接线的类型以及间隔、比例尺后,在Canvas上绘制横轴、纵轴和曲线实现曲线图。噪声值曲线的定时器每隔100 ms自动更新一次,从而实现曲线的快速动态变化。

3.6数据库设计

为便于离线分析,在手机分贝仪中建立采集结果SQLite数据库。以当前天数为表名, 将实时采集分贝数值存入表中。因为数据采集量大,全部存入会导致内存溢出,所以设计按键,长按时,音频才会保存。

4APK生成与测试

将工程文件导出,生成APK安装包,安装到HTC M7手机上,将手机分贝仪和TES52A噪音计进行对比测试。以较大的声音说话,检测到声压大小为61 dB,指针指到仪表盘61刻度的位置上,环境判别部分60~70 dB这一行文本高亮显示,同时,下方也留下分贝值轨迹曲线。经过吹气、咳嗽、鼓掌、敲玻璃、说话等操作,得到的噪音测量对比测试结果如表1所示。

5校园环境噪声监测系统

近年来,交通行驶、校园活动等所引起的环境噪声污染严重影响了高校教职工及学生们的学习、工作和生活。

噪声污染具有即时性和随机性,传统的人工监测方式易受到非技术因素的干扰,实时性和准确性较差。而传统的有线方式则存在布网困难、成本高、易被破坏等问题[9]。针对上述问题,将该手机分贝仪用于校园环境噪声监控系统,如图3所示。

校园环境噪声检测系统能够实现对各个位置站点进行7×24小时的实时监测,手机监测终端通过3G/4G网络接入到服务器机房,客户端采用Web方式实时查询、统计分析,以及对监测终端进行管理[10]。当出现长时间的噪声超标或者设备故障时,系统能够自动进行告警操作,如发送短信至噪声排放单位责任人的另一部手机上,从而达到监测区域噪声防护的目的。

依据需求,对Android分贝仪作如下拓展:

(1)结合Baidu Maps,使用Location Manager函数获取当前测量区域的经纬度位置[11],然后添加MAC地址和实时分贝值数据,将所有的数据类型转换为XSD格式,以待上报至服务器。

(2)通过Web Service实现监测数据的上传功能。通过SOAP协议将监测数据封装后,发送到网络服务器、应用服务器,服务器根据上层的用户设置返回消息到Android手机监测终端。终端根据下发的指令提示责任人采取降噪措施。

使用JavaEE + JBoss + MySQL构建校园环境噪声监测系统的服务器端,经过部署,得到某时刻东校区的部分地点的环境噪声分布如图4所示。此时,正门口的梦溪路的噪声分贝值为79 dB,电信学院大厅为61 dB,自习教室为47 db,篮球场上噪音分贝值为50 dB。

中华人民共和国城市区域环境噪声标准规定[12],居住、文教机关为主的区域,白天噪音不得超过55 dB,夜间不超过45 dB。根据上述测量结果,应在梦溪路上采取禁止鸣笛、安装隔音板等措施,以降低教学环境中的交通噪音污染。

6结论

本文基于Android平台设计与实现手机分贝仪。首先介绍Android音频系统的分层结构和录音原理,接着分析APP实现的理论基础及声压级计算公式,然后进行需求分析、模块设计、界面设计、数据存储设计,最后详细叙述了分贝值仪表盘和分贝值曲线的实现方法并生成APK安装包。

本文将Android分贝仪与TES52A噪音计对比使用,达到了普通声级计的精度要求。Android分贝仪的便捷性、广泛性、普适性远远高于普通声级计。

本文对Android分贝仪的位置获取、网络传输、阈值告警的功能进行扩展,应用到校园环境噪声监控系统。试验结果表明,本方案能有效减低环境噪声监测工作的成本。

参考文献

[1] 张绍栋. 声级计的原理和应用[M]. 北京:计量出版社,1986.

[2] EVERY S V. Android多媒体开发高级编程[M]. 巢文涵,译.北京:清华大学出版社,2012.

[3] Song Maoqiang, Xiong Wenkuo, Fu Xiangling. Research on architecture of multimedia and its design based on android[C].Internet Technology and Applications, IEEE, 2010: 14.

[4] 林东海.基于ALSA的Android音频系统设计与实现[D].厦门:厦门大学,2013.

[5] 李宁. Android深度探索[M].北京:人民邮电出版社,2015.

[6] 杨昌棋, 秦树人. 虚拟式噪声分析仪的数字计权与开发[J]. 重庆大学学报(自然科学版), 2001, 24(5): 5961.

[7] DUMOULIN R, VOIX J. On the use of smartphones for occupational noise monitoring: instrumentation[J]. Canadian Acoustics, 2012, 40(3): 5253.

[8] MENNITT D J, FRISTRUP K M. Obtaining calibrated sound pressure levels from consumer digital audio recorders[J]. Applied Acoustics, 2012, 73(11): 11381145.

[9] 王一.室内真实噪声环境下声音事件在线检测与识别[D].北京:北京大学,2013.

[10] 赵大磊, 张正平, 贺松,等. 基于Android的移动互联网健康监测系统的研究[J]. 微型机与应用, 2014, 33(8):1012.

[11] 代品宣,李震,卢超,等. 基于Android的校园导游和定位系统设计与实现[J]. 江苏科技大学学报(自然科学版),2015,29(4):378381.

[12] 中华人民共和国城市区域环境噪声标准[J]. 环境保护,1996(12):7.

分贝通发布自定义BI,助力企业实现“量体裁衣式”降本

● 财务数据分散,更新缓慢

● 数据口径不一,计算逻辑混乱

● 表格多,分析少,异常数据难以定位

● 数据量大,权限分散,分享困难

● 业务数据与支出数据难以结合分析......

在如今数据驱动的世界,企业面临着数据管理的多重挑战。分贝通自定义BI是一款在线BI工具,满足企业自身数据和分贝通数据的自定义融合分析,配合内置的海量应用模版,帮助企业快速搭建自己的个性化看板应用,以解决报表“最后一公里”的问题。

从多维度数据归集、自定义分析看板到全方位关键问题分析,分贝通自定义BI能够充分帮助企业洞察数据背后的真相,激发企业数据资产的最大化价值,真正实现“量体裁衣式”降本。

01轻松玩转支出数据 “想怎么分析,就怎么分析”

长久以来,业财经营分析困于业财数据散、权限混乱、分析维度不统一等问题。针对这类难点,分贝通自定义BI开发数据接口,企业可轻松上传业务数据,与在分贝通平台沉淀的所有消费数据进行深度融合。这意味着,企业可以根据自己的需求,自由选择数据源和分析维度,实现“想怎么分析,就怎么分析”的灵活性。

● 内置分贝通数据源,数据T+1自动更新

● 搭配标准Open API,支持企业自主上传自有业务数据

● 采用“一客一库”的数据管理方式,确保数据安全

● 企业可以自定义新增字段和指标,一次新增永久复用

无论是销售数据、客户信息还是其他业务数据,与分贝通已有消费数据做深度融合分析,为企业决策提供全面的数据支持。

02海量模版及组件即拿即用 快速、个性化搭建透视看板

数据准备到位了,分析可能又是下一个卡点。企业财务总被认为喜欢各种报表,但表格多并不代表着分析结果,更需要结合自身情况完成数据分析的配置。

分贝通提供了近百种图表组件及丰富的分析模版,支持拖拉拽式的可视化编辑,为千人千面的分析提供可能。

● 模版覆盖了预算分析、酒店差旅分析、用车异常订单、销售管理、费用节省等

● 报表控件则覆盖图表、展示类(图片&文本)、功能类(筛选器&按钮)等控件

● 同一报表支持团队多人协作、共同编辑

企业可以根据自己的需求,快速搭建多种透视看板,实现自定义的数据多维度展示和分析,确保报表上线效率。

03全方位穿透分析 道破支出管理真相

分贝通自定义BI,支持企业从业务视角出发,通过自定义数据上传和穿透分析,深入挖掘支出管理的真相。

● 数据明细后台实时抓取,自动生成总览和图表

● 支持下钻查询,快速定位关联信息

● 支持多角色和部门、项目可设置数据隔离,保证不同人看到不同数据

● 支持多角色均可快速获取所需的数据视图,提升决策效率

分贝通自定义BI在实际应用中,帮助企业通过自定义报表,做销售过程管理,提升销售ROI。例如,某SaaS企业通过自定义报表,考核考勤的出勤质量,重视每一个客户拜访的商机转化,最后去复盘每一个销售的费用支出和销售回款带来的ROI。

这样一来,预算可以根据客户不同旅程阶段,阶段性按项目或人员维度释放,从而降低单个项目费用的成本以及人均费用成本;另一方面,找到绩优销售人员做作为标杆进行人员培训,同时以此作为销售招聘画像的参考。

分贝通自定义BI不仅仅是一个数据分析工具,更是帮助企业推行“量体裁衣式”降本的抓手。通过解决数据分散、口径不一、分析困难等痛点,分贝通帮助企业实现了数据的集中管理、深度分析和快速决策。在这个数据驱动的时代,分贝通自定义BI将持续依托数据价值自定义、最大化,帮助企业挖掘增收方法,降低不合理的支出。

相关问答

手机 分贝 检测软件有哪些-ZOL问答

手机分贝检测软件推荐,相信很多人在生活中都会去使用检测分贝大小的软件,不少人不知道在手机上有哪些好用的分贝和噪音检测软件,下面跟着小编一起来看看吧。1...

手机上下载的 分贝 测试仪怎么使用?

以下是使用手机上下载的分贝测试仪的步骤:1.打开分贝测试仪应用程序。2.将手机的麦克风靠近你要测量噪声的源头,例如喇叭、人声等。3.点击开始测试按钮...

手机能测 分贝 吗?

这个是不一定的,有些手机有测分贝的功能,而有些手机没有这个功能。主要看手机里面有没有配置这个app。如果手机里面没有的话,可以专门下载一个此类的APP,这样...

分贝 是什么意思?

分贝是用来衡量声音强度的单位,简称dB。它是根据人耳对声音强度的感知进行的量化,其基准点为人耳可接受的最小声音,即0dB。每增加10dB,声音强度就增加了10...

有可以测室内声音有多少 分贝 的手机软件吗或者电脑软件?

使用手机测声音分贝的软件叫做SoundMeter,具体测试声音分贝的方式如下:1、打开任意手机,在手机主界面中点击“应用商店”APP。2、在随后打开的应用商店界面...

...有dB仅仅代表 分贝 吗?在通信工程里有着很广泛的运用啊,_作业帮

[最佳回答]QoSQoS的英文全称为"QualityofService",中文名为"服务质量".QoS是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术.在...

1 分贝 等于多少瓦?

(Decibel,分贝)为两种电或声功率之比的一种单位,它等于功率比的常用对数的10倍,与瓦数不能直接相等。dB是一个纯计数单位,本意是表示两个量的比值大小,没有...

有什么软件可以测自己手机声音 分贝 有多高?

使用手机测声音分贝的软件叫做SoundMeter,具体测试声音分贝的方式如下:1、打开任意手机,在手机主界面中点击“应用商店”APP。2、在随后打开的应用商店界面...

分贝 测试是什么?

分贝测试是一种测试声音强度的方法,用来测量声音的音量大小和质量等参数。分贝测试是通过测量声音压力水平来完成的,它可以帮助人们了解在不同环境下声音的强...

分贝 的计算方法kb和db?

在音频工程和通信领域中,分贝(dB)和千比特每秒(kbps)是用于描述音频信号强度和带宽的单位。它们的计算方法如下:1.分贝(dB)的计算方法:-对于功率信...在...