com.awareframework.ios.sensor.ambientnoise 0.5.0

com.awareframework.ios.sensor.ambientnoise 0.5.0

tetujinyuuki.nishiyama 维护。



  • Yuuki Nishiyama

AWARE: 环境噪声

CI Status Version License Platform

环境噪声传感器允许我们通过手机的麦克风按周期收集环境噪声信息。数据包含RMS、频率(Hz)和分贝(dB)。作为一个音频处理单元,此传感器使用EZAudio,这是MIT许可证的开源音频感应框架。

要求

iOS 10或更高版本

安装

com.aware.ios.sensor.ambientnoise通过CocoaPods提供。

  1. 要安装它,只需将以下行添加到您的Podfile
pod 'com.awareframework.ios.sensor.ambientnoise'
  1. 将com_aware_ios_sensor_ambientnoise库添加到您的源代码中。
import com_awareframework_ios_sensor_ambientnoise
  1. NSMicrophoneUsageDescription添加到Info.plist中

公共函数

环境噪声传感器

  • init(config:AmbientNoiseSensor.Config?) : 使用可选配置初始化环境噪声传感器。
  • start(): 使用可选配置启动环境噪声传感器。
  • stop(): 停止服务。

AmbientNoiseSensor.Config

用于保存传感器配置的类。

字段

  • sensorObserver: AmbientNoiseObserver: 实时数据更新的回调。
  • interval: Int: 以分钟为单位的采样间隔。(默认 = 5)
  • samples: Int:每分钟收集的数据样本数。(默认 = 30)
  • silenceThreshold: Double:确定静音与否的RMS阈值。(默认 = 50)
  • enabled: Boolean 传感器是否启用。 (默认 = false
  • debug: Boolean 启用/禁用日志记录到Xcode控制台。 (默认 = false
  • label: String 数据的标签。 (默认 = "")
  • deviceId: String 将与事件和传感器关联的设备的ID。 (默认 = "")
  • dbEncryptionKey 数据库的加密密钥。 (默认 = null
  • dbType: Engine 用于保存数据的数据库引擎。 (默认 = Engine.DatabaseType.NONE
  • dbPath: String 数据库的路径。 (默认 = "aware_ambientnoise")
  • dbHost: String 同步数据库的主机。 (默认 = null

广播

已触发的广播

  • AmbientNoiseSensor.ACTION_AWARE_AMBIENTNOISE 事件在周期结束后将环境噪声保存到数据库时触发。

接收到的广播

  • AmbientNoiseSensor.ACTION_AWARE_AMBIENTNOISE_START:接收启动传感器的广播。
  • AmbientNoiseSensor.ACTION_AWARE_AMBIENTNOISE_STOP:接收停止传感器的广播。
  • AmbientNoiseSensor.ACTION_AWARE_AMBIENTNOISE_SYNC:接收发送同步尝试到主机的广播。
  • AmbientNoiseSensor.ACTION_AWARE_AMBIENTNOISE_SET_LABEL:接收设置数据标签的广播。标签预期在intent extras的AmbientNoiseSensor.EXTRA_LABEL字段中。

数据表示

环境噪声数据

包含原始传感器数据。

字段 类型 描述
frequency Double Hz频率的声波
decibels Double dB声波分贝
rms Double 声波RMS
isSilent Boolean 0 = 非静音 1 = 静音
silenceThreshold Double 在分类静音与非静音时使用的阈值
label String 自定义标签。对于数据校准或追溯很有用
deviceId String AWARE 设备 UUID
label String 自定义标签。对于数据校准或追溯很有用
timestamp Int64 自1970年以来的 Unixtime 毫秒数
timezone Int 设备的时区
os String 设备的操作系统(例如 ios)

示例使用

var sensor = AmbientNoiseSensor(AmbientNoiseSensor.Config().apply{config in
    config.debug = true
    config.dbType = .REALM
    config.sensorObserver = Observer()
})
sensor.start()
class Observer:AmbientNoiseObserver{
    func onAmbientNoiseChanged(data: AmbientNoiseData) {
        // code here..
    }
}

作者

Yuuki Nishiyama,[email protected]

依赖库

音频感应和处理模块基于由MIT许可证发布的EZAudio

许可证

版权所有(c)2018 AWARE移动上下文仪器中介件/框架(《http://www.awareframework.com》)

遵循Apache许可证第2版(“许可证”);除非遵守许可证规定,否则不得使用本文件。您可以在以下位置获取许可证的副本:

https://apache.ac.cn/licenses/LICENSE-2.0除非法律规定或书面同意,否则在许可证下分发的软件是以“现状”为基础分发的,不提供任何形式的明示或暗示保证。有关许可证下管理许可和限制的具体条款,请参阅许可证。