CN105005478A - 一种基于Android平台移动设备的音量测算方法 - Google Patents
一种基于Android平台移动设备的音量测算方法 Download PDFInfo
- Publication number
- CN105005478A CN105005478A CN201510449292.1A CN201510449292A CN105005478A CN 105005478 A CN105005478 A CN 105005478A CN 201510449292 A CN201510449292 A CN 201510449292A CN 105005478 A CN105005478 A CN 105005478A
- Authority
- CN
- China
- Prior art keywords
- volume
- value
- buffer
- audiorecord
- android platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Telephone Function (AREA)
Abstract
本发明公开的一种基于Android平台移动设备的音量测算方法,包括以下步骤:1)利用Android?AudioRecord?APIs获取音频数据;2)将存储音频数据的buffer内容取出,进行平方和运算;3)平方和再除以数据总长度,得出音量大小;4)将以上得到的音量大小与标准值进行比较。本发明的方法,使用的设备简单,可利用现有Android平台移动设备,比如手机、平板电脑等完成。测量过程也较简单,测量结果准确,能有效提供噪声警告。
Description
技术领域
本发明涉及音量测量技术领域,具体是一种基于Android平台移动设备的音量测算方法。
背景技术
噪声污染已经是现代社会环境的一大顽疾。无论是预防还是治理噪声污染,都必须首先测量音量大小。通过测量音量,为采取隔音或消音等措施提供依据。以往测量音量的设备都比较复杂和昂贵。
Android多媒体框架包括了对抓取和编码多种格式的音频的支持。在硬件支持的基础之上可以通过使用Android提供的AudioRecord APIs来获取音频数据。Android支持以下音频格式编解码:
发明内容
本发明要解决的问题是提供一种基于Android平台移动设备的音量测算方法,使用基于Android平台移动设备测算周围环境的音量,设备简单、成本低廉。
本发明的一种基于Android平台移动设备的音量测算方法,包括以下步骤:
1)利用Android AudioRecord APIs 获取音频数据;
2)将存储音频数据的buffer内容取出,进行平方和运算;
3)平方和再除以数据总长度,得出音量大小;
4)将以上得到的音量大小与标准值进行比较,音量大于或等于标准值时,发出警告。。
利用Android AudioRecord APIs 获取音频数据,优选的方法为:
11)新建一个AudioRecord对象:
111)声明并初始化Int型音频采样率基值SAMPLE_RATE_IN_HZ = 8000;
112)根据AudioRecord获取的存储音频数据的缓存空间值初始化Int型变量BUFFER_SIZE,此方法需要传入以下参数:音频采样率基值、声音通道格式、声音编码格式。
12)利用AudioRecord对象获取音频数据:
121)新建一个声音采集器对象,用于声源数据采集,需要传入以下参数:收录声音的设备说明、音频采样率基值、声音通道格式、声音编码格式、缓存空间大小值;
122)利用步骤112)的BUFFER_SIZE变量值作为数组长度新建一个数组结构的buffer缓冲池,用于存放音频数据;
123)声明并初始化一个Int型变量r,初始值为0;
124)利用步骤121)创建的声音采集器对象获取音频数据并赋给步骤123的Int型变量r。
所述步骤2)将存储音频数据的buffer内容取出,进行平方和运算的过程包括:
211)声明并初始化一个long型变量v,初始值为0;
212)遍历步骤122)的buffer缓冲池数据,并把每一位平方和相加后加到7步定义的变量v上,为v赋值。
所述步骤3)平方和再除以数据总长度,得出音量大小的过程为:
221)声明一个double型变量mean,并将变量v整除变量r后的值赋给变量mean;
222)声明一个double型变量volume,并把9步的变量mean进行10次方后取以10为底数的对数值赋给volume。
所述步骤4)中所采用的标准值为85分贝,低于85分贝为正常,等于或高于85分贝则为异常,异常时向使用者进行告警提醒。
本发明的基于Android平台移动设备的音量测算方法,使用的设备简单,可利用现有Android平台移动设备,比如手机、平板电脑等完成。测量过程也较简单,测量结果准确,能有效提供噪声警告。应用的领域广泛,比如,监测被监护人所处环境的音量值,反映出被监护人当前所处环境是否存在安全隐患,从而方便监护人及时采取措施最大可能的保证被监护人的健康安全,在保证对被监护人所处环境的分贝值有效监测的前提下,最大限度的节约成本。
具体实施方式
下面对本发明提出的一种基于Android平台移动设备的音量测算方法进行详细描述。
本发明的一种基于Android平台移动设备的音量测算方法,包括以下步骤:
第一步、利用Android AudioRecord APIs 获取音频数据:
11、新建一个AudioRecord对象。
新建一个AudioRecord对象包括以下过程:
111、声明并初始化Int型音频采样率基值SAMPLE_RATE_IN_HZ = 8000;
112、根据AudioRecord获取的存储音频数据的缓存空间值初始化Int型变量BUFFER_SIZE,此方法需要传入以下参数:音频采样率基值、声音通道格式、声音编码格式。
12、利用AudioRecord对象获取音频数据。
利用AudioRecord对象获取音频数据包括以下过程:
121、新建一个声音采集器对象,用于声源数据采集,需要传入以下参数:收录声音的设备说明、音频采样率基值、声音通道格式、声音编码格式、缓存空间大小值;
122、利用步骤112的BUFFER_SIZE变量值作为数组长度新建一个数组结构的buffer缓冲池,用于存放音频数据;
123、声明并初始化一个Int型变量r,初始值为0;
124、利用步骤121创建的声音采集器对象获取音频数据并赋给步骤123的Int型变量r。
实现利用Android AudioRecord APIs 获取音频数据的程序代码如下:
static final int SAMPLE_RATE_IN_HZ = 8000;
static final int BUFFER_SIZE = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_IN_DEFAULT, AudioFormat.ENCODING_PCM_16BIT);
(BUFFER_SIZE:用于存储收集的音频数据的缓存大小;
SAMPLE_RATE_IN_HZ:音频采样率,以赫兹为单位;
AudioFormat.CHANNEL_IN_DEFAULT:Android默认的audio channel;
AudioFormat.ENCODING_PCM_16BIT:对音频数据采用的编码格式。
AudioRecorder recorder = new AudioRecorder(MediaRecorder.AudioSource. MIC, SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_IN_DEFAULT, AudioFormat.ENCODING_PCM_16BIT, BUFFER_SIZE,);
MediaRecorder.AudioSource. MIC:麦克风
short[] buffer = new short[BUFFER_SIZE];
int r = 0;
r = mAudioRecord.read(buffer, 0, BUFFER_SIZE);
第二步、对音频数据进行处理:
21、将存储音频数据的buffer内容取出,进行平方和运算:
211、声明并初始化一个long型变量v,初始值为0;
212、遍历步骤122的buffer缓冲池数据,并把每一位平方和相加后加到7步定义的变量v上,为v赋值。
22、平方和再除以数据总长度,得出音量大小,单位为分贝:
221、声明一个double型变量mean,并将变量v整除变量r后的值赋给变量mean;
222、声明一个double型变量volume,并把9步的变量mean进行10次方后取以10为底数的对数值赋给volume。
实现第二步对音频数据进行处理的代码如下:
long v = 0;
for (int i = 0; i < buffer.length; i++) {
v += buffer[i] * buffer[i]}
double mean = v / (double) r;
double volume = 10 * Math.log10(mean);
第三步:将以上得到的音量大小与标准值进行比较
31、将步骤222得到的volume变量值与Int值85进行比较,若volume>85,则通知服务器告警,否则,继续进行测量。即本技术方案选择85分贝为标准值,低于85分贝为正常,等于或高于85分贝则为异常,此时将向使用者进行告警提醒。
所举例代码仅是实现上述方法的一种形式,还可以以其他代码实现上述方法。
使用程序代码实现本发明的方法的工作流程为:
一、 根据本发明方法编写应用程序;
二、 部署应用程序到Android设备;
三、 部署接收告警信息的服务器;
四、 运行服务器接收端,打开步骤二中Android设备上事先安装的应用程序;
五、 当步骤2)的设备测试到所处环境的音量值大于85时,反馈给服务器告警信息;
六、 服务器端根据告警信息做相应处理。
以上实施例仅用以说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种基于Android平台移动设备的音量测算方法,其特征在于,包括以下步骤:
1)利用Android AudioRecord APIs 获取音频数据;
2)将存储音频数据的buffer内容取出,进行平方和运算;
3)平方和再除以数据总长度,得出音量大小;
4)将以上得到的音量大小与标准值进行比较,音量大于或等于标准值时,发出警告。
2.根据权利要求1所述的基于Android平台移动设备的音量测算方法其特征在于,利用Android AudioRecord APIs 获取音频数据的过程为:
11)新建一个AudioRecord对象;
12)利用AudioRecord对象获取音频数据。
3.根据权利要求2所述的基于Android平台移动设备的音量测算方法其特征在于,所述步骤11)新建一个AudioRecord对象包括以下过程:
111)声明并初始化Int型音频采样率基值SAMPLE_RATE_IN_HZ = 8000;
112)根据AudioRecord获取的存储音频数据的缓存空间值初始化Int型变量BUFFER_SIZE,此方法需要传入以下参数:音频采样率基值、声音通道格式、声音编码格式。
4.根据权利要求1所述的基于Android平台移动设备的音量测算方法其特征在于,所述步骤12)利用AudioRecord对象获取音频数据包括以下过程:
121)新建一个声音采集器对象,用于声源数据采集,需要传入以下参数:收录声音的设备说明、音频采样率基值、声音通道格式、声音编码格式、缓存空间大小值;
122)利用步骤112)的BUFFER_SIZE变量值作为数组长度新建一个数组结构的buffer缓冲池,用于存放音频数据;
123)声明并初始化一个Int型变量r,初始值为0;
124)利用步骤121)创建的声音采集器对象获取音频数据并赋给步骤123的Int型变量r。
5.根据权利要求1所述的基于Android平台移动设备的音量测算方法其特征在于,所述步骤2)将存储音频数据的buffer内容取出,进行平方和运算的过程包括:
211)声明并初始化一个long型变量v,初始值为0;
212)遍历步骤122)的buffer缓冲池数据,并把每一位平方和相加后加到7步定义的变量v上,为v赋值。
6.根据权利要求1所述的基于Android平台移动设备的音量测算方法其特征在于,所述步骤3)平方和再除以数据总长度,得出音量大小的过程为:
221)声明一个double型变量mean,并将变量v整除变量r后的值赋给变量mean;
222)声明一个double型变量volume,并把9步的变量mean进行10次方后取以10为底数的对数值赋给volume。
7.根据权利要求1所述的基于Android平台移动设备的音量测算方法其特征在于,步骤4)中所采用的标准值为85分贝,低于85分贝为正常,等于或高于85分贝则为异常,异常时向使用者进行告警提醒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510449292.1A CN105005478A (zh) | 2015-07-28 | 2015-07-28 | 一种基于Android平台移动设备的音量测算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510449292.1A CN105005478A (zh) | 2015-07-28 | 2015-07-28 | 一种基于Android平台移动设备的音量测算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105005478A true CN105005478A (zh) | 2015-10-28 |
Family
ID=54378159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510449292.1A Pending CN105005478A (zh) | 2015-07-28 | 2015-07-28 | 一种基于Android平台移动设备的音量测算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105005478A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107743279A (zh) * | 2017-10-09 | 2018-02-27 | 维沃移动通信有限公司 | 一种耳机降噪方法、耳机及移动终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1575036A (zh) * | 2003-06-23 | 2005-02-02 | Lg电子株式会社 | 控制移动终端的扬声器音量的***和方法 |
CN1783786A (zh) * | 2004-11-30 | 2006-06-07 | 雅马哈株式会社 | 音乐传送装置和音乐再生装置 |
CN1830141A (zh) * | 2003-07-28 | 2006-09-06 | 皇家飞利浦电子股份有限公司 | 音频调节装置、方法和计算机程序产品 |
-
2015
- 2015-07-28 CN CN201510449292.1A patent/CN105005478A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1575036A (zh) * | 2003-06-23 | 2005-02-02 | Lg电子株式会社 | 控制移动终端的扬声器音量的***和方法 |
CN1830141A (zh) * | 2003-07-28 | 2006-09-06 | 皇家飞利浦电子股份有限公司 | 音频调节装置、方法和计算机程序产品 |
CN1783786A (zh) * | 2004-11-30 | 2006-06-07 | 雅马哈株式会社 | 音乐传送装置和音乐再生装置 |
Non-Patent Citations (2)
Title |
---|
JUNJIE: "Android中实时获取音量分贝值详解", 《脚本之家》 * |
小米的博客: "Android实时获取音量", 《CSDN》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107743279A (zh) * | 2017-10-09 | 2018-02-27 | 维沃移动通信有限公司 | 一种耳机降噪方法、耳机及移动终端 |
CN107743279B (zh) * | 2017-10-09 | 2019-11-19 | 维沃移动通信有限公司 | 一种耳机降噪方法、耳机及移动终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106164845B (zh) | 基于关注的动态音频水平调整 | |
CN110830437B (zh) | 高频业务数据的数据压缩方法、装置、设备及存储介质 | |
CN106448686B (zh) | 一种自适应音频空域隐写方法 | |
CN111903144B (zh) | 环境立体声空间音频的客观质量度量 | |
US10783884B2 (en) | Electronic device-awakening method and apparatus, device and computer-readable storage medium | |
CN111683317B (zh) | 一种应用于耳机的提示方法、装置、终端及存储介质 | |
CN106445451B (zh) | 一种音频音量增益方法和装置 | |
EP4235458A3 (en) | Systems and methods for identifying and providing information about semantic entities in audio signals | |
CN105005478A (zh) | 一种基于Android平台移动设备的音量测算方法 | |
CN115424629A (zh) | 一种基于车载娱乐***的车辆内外通话方法、***和车辆 | |
CN108701461A (zh) | 用于具有多个反射的声源的改进的立体混响编码器 | |
CN114063964A (zh) | 音量补偿优化方法、装置、电子设备及可读存储介质 | |
CN113111233B (zh) | 基于正则表达式的接处警文本居住地地址提取方法和装置 | |
US20220212108A1 (en) | Audio frequency signal processing method and apparatus, terminal and storage medium | |
CN112466337A (zh) | 音频数据情绪检测方法、装置、电子设备及存储介质 | |
WO2023025294A1 (zh) | 用于音频渲染的信号处理方法、装置和电子设备 | |
CN104835500B (zh) | 一种音频信息获取的方法及其装置 | |
CN107783866A (zh) | 一种多媒体设备的测试方法及装置 | |
Tatlas et al. | On the effect of compression on the complexity characteristics of wireless acoustic sensor network signals | |
CN110458743B (zh) | 基于大数据分析的社区治理方法、装置、设备及存储介质 | |
CN113111230B (zh) | 基于正则表达式的接处警文本户籍地地址提取方法和装置 | |
CN112423120B (zh) | 音频时延的检测方法及*** | |
CN106981034B (zh) | 生成住房使用信息的方法和装置 | |
CN110635966A (zh) | 一种流量数据的可视化展示***、方法、介质和电子设备 | |
CN117792547B (zh) | 一种应急广播终端安装的判定方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151028 |
|
RJ01 | Rejection of invention patent application after publication |