基于MP 和ARM的发动机声音识别
基于MP 和ARM的发动机声音识别
姜 愉 钦州学院数学与计算机科学学院 广西钦州 535000
基金项目:钦州学院青年基金项目(基于MatchingPursuits
算法的机车声音识别研究)2013XJKY-52Q
【文章摘要】
随着人民生活水平的提高,汽车普及率越来越高,智能交通的要求也越来越高。发动机声音识别对于机车识别具备较高的参考价值,基于嵌入式的发动机声音识别系统体积小移动方便,适合收费站、停车场、事故高发路段使用,尤其在大雾阴雨天气时,相对于视频设备受雨雾影响较大的缺点,发动机声音识别系统可较好的实现雨雾天气识别。本文结合发动机声音的特点,通过与MFCC 等特征参数进行仿真实验对比,选择采用发动机声音的MP 稀疏分解方法,采用Gabor 原子对声音信号的分解及重构后发现重构后的信号能较好的反映了原声音信号的特征,因此本文选用Gabor 原子做为识别特征。本实验在matlab 仿真模拟的基础上,编写相应的C 程序,下载到ARM版中进行实时识别,识别效果较好,有较好的实用价值及参考价值。
【关键词】
MP 稀疏分解;BP ;嵌入式
中图分类号:TN911 文献标识码:A
0 引言
随着智能交通的发展,机车识别对于交通事故认定、停车场及高速公路自动收费、交通管制等都有着重要的意义。本文针对发动机声音的特点,在matlab 理论仿真研究的基础上,采用ARM9 芯片和嵌入式Linux 系统实现发动机声音的实时识别,识别准确率较高,具有较好的参考价值。
1 发动机识别仿真理研究
1.1 声音预处理及声音标本选取
本研究所用声音样本为高速公路收费站附近平稳车辆声音作为测试识别样本,雨天声音多为中雨天气机车声音。
发动机声音采集后经预处理:采样、模数转换、分帧、加窗、端点检测。本文中采样频率采用16KHZ,量化精度为16 位。由于发动机声音信号相对平稳,帧长选择2048 点,帧移采用600 点。本系统采用哈明窗,端点检测采用双门限法,即通过过零率和短时能量进行检测。
1.2 特征参数选取
本实验采用MP(MatchingPursuits)稀疏分解方法做为特征识别方法,MP 稀疏分解方法通过发动机声音信号在过完备库中的分解,用来表示信号的基会根据信号的特点进行自适应选取,分解所得的信号的表示方法,基被称为信号稀疏分解表示。信号稀疏分解后所得原子可有效的反应信号特征,信号稀疏分解方法已被应用到信号去噪、信号识别等很多方面。
MP 稀疏分解方法即采用迭代的方法,不断跌出与待分解信号最为匹配的原子,对于信号的残余继续采用迭代的方法迭出最为匹配的原子,最终完成采用少数的原子就可以表示信号的主要成分。
其中为分解所得的时频原子,为分解的原子个数, 为分解系数, 为残余信号。
本实验采用Gabor 原子进行分解重构,采用时频原子中的时频参数作为特征参数。采用时频参数作为特征参数与声音识别中常用的Mel 频率倒谱系数等特征参数进行对比,发现信号Gabor 分解后的时频参数作为特征参数识别效果更好,更能反映发动机声音相对平稳的特征。
1.3 识别方法选取
由于本实验所研究发动机声音信号频率相对平稳,采用BP 神经网络模型可有效的进行识别,BP 识别模型也称误差反向传播模型,本实验采用BP(Back Propagation)神经网络模型做为训练识别模型,采用三层网络,即输入层、隐含层、输出层,经实验选择输入层为20 个,即声音分解为20 个原子作为输入,隐含层70 个,输出层4 个,分别代表小汽车(1,0,0, 0),面包车(0,1,0,0),公交车(0,0,1,0), 重型汽车(0,0,0,1)。经试验选择动量因子为0.9,学习速率为0.08。
1.4 雨中和非雨中识别仿真分析
本实验首先在matlab 中进行仿真, 实验所用数据源为高速公路收费站附近车速相对较慢机车声音,在天气晴朗情况下小汽车、面包车、公交车、重型汽车声音各采集400 个。在下雨情况下四类机车声音各采集400 个,由于雨天采集到的发动机声音接近于发动机本身信号与雨声的叠加,并且与天气情况是的识别结果又明显不同,因此雨天应单独采用模型进行识别。由于雨天时时频监控设备受雨雾等影响较大,因此阴雨情况下发动机声音识别系统可以更好的为车辆识别,智能交通服务。
根据实验结果看出,针对不同天气采用不同的识别模型可以很好的完成发动机声音的识别,识别效果较好。由于雨天相当于发动机声音与雨声的叠加,不同种类机车同时叠加了同样的雨声信号,不同机车的独立性收到一定影响,雨天识别结果略低于晴天。
2 ARM 相关硬件平台实现
2.1 识别系统硬件原理
考虑整个系统对实时性的要求,以及识别所用网络采用仿真时获得的网络参数,所以对硬件要求并非很高。本系统实验采用FS2410 开发板进行实现,FS2410 核心为三星的一款基于ARM920T 内核﹑主频203MHz ﹑16/32 位的精简指令集计算机(RISC)嵌入式微处理器,内部包含8 通道的10 位AD 控制器、UDA1341TS 作为音频芯片用于采集声音信号,可满足整个系统实时识别需要。系统硬件结构如图1 所示。
电子制作
2.2 程序实现流程
整个发动机声音识别算法采用C 语言编写。具体流程如图2 所示:
图2 发动机声音识别程序流程
2.3 识别系统的硬件实现步骤
针对Linux 系统特点,将编写好的C 语言识别程序进行如下步骤:
(1)通过交叉编译器arm-linux-gcc 进行编译。
(2)将识别程序加载到根文件系统中。
(3)音频系统的加载,将音频驱动程序加载到内核中。
(4)移植。依次用USB 工具烧写Bootloader 引导代码、内核代码、根文件系统进入FS2410 开发板。
(5)启动linux 系统,在命令提示符下输入程序名称进行实验。
3 识别结果分析
本实验所用数据源为正常天气下高速公路收费站附近速度相对平稳机车声音,以及中雨天气下速度相对平稳机车声音进行实验。正常天气下和雨天声音数据库各800 个,轿车、面包车、客车、重型汽车各200 个,其中一半做为训练集,另一半做为测试集。
由于matlab 仿真实验时已形成BP 神经网络,本实验程序采用C 语言完成,将发动机声音特征参数直接通过仿真实验时已形成的网络进行识别,较大的提高了识别速度。表1 为正常天气下识别结果, 表2 为雨天识别结果。
通过表1 表2 的实验结果可以知道采用发动机声音MP 做为特征参数,BP 神经网络做为识别机可以较好的实现发动机声音识别;雨天的识别结果相对于正常天气下识别率略微偏低,主要是由于雨天的雨声相对于正常机车声音信号进行了叠加干扰,但对于所有机车声音的干扰相对稳定,因此识别结果相对较好。
4 结论
采用基于Gabor 原子进行MP 稀疏分解所得原子可以较好的反映发动机声音信号特征,结合BP 神经网络进行识别效果较好。在嵌入式系统中进行实时识别效果较好,可充分发挥实时性要求,整个系统鲁棒性较强,具备较好的参考价值和实用价值。
【参考文献】
[1]XieHongdo, ChenWeiting,HeWeiting, e
t a l . C o m p l e x i t y a n a l y s i s o f t h e biomedical signal using
fuzzy entropy measurement [J].Applied Soft Computing, 2011,11(2)2871-2879.
[2]SaeediNE,AlmasganjF,TorabinejadF.
Support vector wavelet adaptation for pathological voice assessment [J]. Comput
BiolMed,2011,41(9):822-828.
[3] 胡志军、游东睿、王军.MATLAB 与VC ++混合编程实现齿轮箱的故障诊断[J]. 咸阳师范学院学报: 2011,26(4)
:60 -63
[4] 雷伟敏. 基于信号稀疏分解的毫米波主动探测[J].
信息化研究: 2012,38(3) :38-41
[5] 唐承志,张葛祥,荣海娜. 基于级联原子库的时频原子分解[J]. 重庆邮电大学学报:自然科学版.2011, 05:530-535
[6] 高显忠,候中喜. 基于改进MP 稀疏分解的语音识别方法[J]. 计算机应用,2009 年6 月:1572-1574
[7] 李雨昕,尹忠科,王建英.MP 稀疏分解快速算法及其在语音识别中的应用[M],2010,46(1):122-124
[8] 姜愉. 基于BP 和ARM 的发动机声音识别系统[J]. 黑龙江科技学院学报,2012(9):533-536.
[9] 孙新贺, 王晓辉,于月森. 一种嵌入式Linux 操作系统的构造方法[J]. 工业控制计算机.2011,24(1): 69-71
[10] 周德荣. 嵌入式Linux 中触摸屏驱动的设计与实现[J]. 制造业自动化.2010,12(2):144-146
【作者简介】
姜愉(1982-),男,黑龙江省克山人,
钦州学院数学与计算机科学学院, 硕士,讲师,研究方向,信号处理、嵌入式应用。
表1 正常天气发动机声音识别结果