## ACA服务功能
静音
、过载
、反相
、噪音
、一致性
状态数据采集
和数据计算
部分,数据采集是录音线程类
,录音并做初步处理,数据计算是计算线程类
,创建对比项线程后,由对比项线程创建和管理各个计算线程类。录音间隔33ms是为了对应计算音量值所需的数据大小,1秒大概33个音量值
线程类 | 功能 |
---|---|
RecordThread | 录制原始音频的线程,33ms获取一次 |
AssignSrcDataThread | 分派数据线程,这个线程可以合并到录音线程中,分派数据只需要几百us |
CreateWAVThread | 创建一致性对比需要的wav文件,分离左右声道数据给噪音检测线程 |
CreateRecordFileThread | 录制长音频文件,录制报警文件 |
CreateDBThread | 计算1秒的音量包,给计算静音、过载、反相的线程使用,计算实时音量包给对比项线程使用,发送实时音量包 |
RTPOneRoadThread | 客户端登陆后,实时发送原始音频数据给客户端 |
计算线程在计算出报警后,将开启CreateRecordFileThread
的报警录音,报警结束后通知CreateRecordFileThread
线程结束录音,报警结束后通过ThreadWriteDBManager
线程将报警信息写入数据库
线程类 | 功能 |
---|---|
CompareItemThread | 对比项线程类,从这个类中集合静音 、过载 、反相 、噪音 、一致性 检测的结果和音量数据,组合成音量包发送到MQTT |
CalculateDBThread | 计算静音 、过载 、反相 的报警 |
ConsistencyCompareThread | 计算一致性 数据 |
NoiseDetectThread | 计算噪音 报警 |
RTPOneRoadThread
,RTPOneRoadThread
接收到客户端信息后开始接收分派数据线程发送的数据,然后通过UDP将音频数据发送给客户端### 其他线程功能
线程功能类 | 说明 |
---|---|
ThreadManager | 录音线程管理类 |
ThreadCompareItemManager | 对比项管理线程类 |
ThreadWriteDBManager | 写数据库线程类 |
录音线程管理线程类ThreadManager
,录音线程的创建和销毁由这个线程管理,对比项线程通过这个线程开始录音通道
比项管理线程类ThreadCompareItemManager
,定时获取数据库中对比项信息,管理对比项的开启和销毁,同时向MQTT中发送对比项信息
写数据库线程类ThreadWriteDBManager
,所有的报警信息,录音文件信息都由这个线程写入数据库,单独搞这一个线程为了防止网络状态差,会阻塞计算线程。这个线程还有一个功能是根据设置的时间定时清理数据库中的日志和录音文件,报警文件