基于语音监控的车内防误锁装置设计

2018-06-12 01:56彭育强张薇琳
自动化仪表 2018年6期
关键词:报警语音单片机

彭育强,张薇琳

(广东交通职业技术学院轨道交通学院,广东 广州 510650)

0 引言

近年来,由于驾驶员的粗心而引起儿童误留在私家车、校车内,导致车内儿童高温烧伤甚至是死亡等事故层出不穷。根据美国的一项研究调查结论,如果室外的温度超过35 ℃,置于室外的汽车室内温度可高达65 ℃。比成年人被误锁于车内更为严重的是,在同样的生存环境条件下,儿童的求救能力要比成年人弱得多,且儿童的体温升高速度要比成人快3~5倍[1]。而目前的汽车工业还未对防止人员误锁于车内的相关监测设备进行研究。本文针对误留车内人员所发出求救声音信号进行研究,通过单片机技术结合语音模块实现对车内人员语音信号的监测及报警,从而避免人员因误锁而产生的伤亡事故。

1 监测系统方案设计

本系统以Stc10L08xe为控制器,结合LD3320语音识别芯片,设计了一种车内安全监控器。该控制器能够在人员(特别是婴幼儿)被误锁在车内时,及时报警通知驾驶员。系统应用预存的语音特征库与被监测人员发出的求救声(包括婴儿的哭闹声音),来判定车内是否存在人员发出的求救声音。如监测到与特征库相匹配的声音则判断车内有人被误锁,监测器将向用户发送报警信息。报警方式设置为三个等级,在不同的营救时间点采用不同的报警方式,从而确保被误锁人员不会错过最佳的营救时间点。

系统主要由5个模块组成:电源模块、单片机控制模块、语音模块、GSM模块以及报警模块。单片机模块使用深圳宏晶公司生产的Stc10L08xe型号单片机。Stc10L08xe是新一代单片机,它具备代码指令完全兼容8051且运行速度快的特点,特别适用于对语音识别实时性要求较高的场合。语音信号处理模块选用了ICRoute公司研发的LD3320语音处理芯片,LD3320语音处理芯片集成有处理器以及A/D转换器、D/A转换器、麦克风接口、语音输出接口等,无需外接其他辅助芯片,即可实现语音识别、控制、人机对话等功能[1]。GSM模块选取了技术成熟的西门子TC35。TC35市场使用度较广,且具有功耗低、结构小巧等优点,与Stc10L08xe单片机通过串口相连。报警模块一方面使用GSM进行短信、手机电话报警;另一方面在监控器上安装有扩音器进行现场车身报警,用于在车主手机短信、电话未接通情况下,通过车辆内部发出警报声,吸引车辆周围群众及时发现被误锁于车内的人员。系统结构模块如图1所示。

图1 系统结构模块图Fig.1 Modules of the system structure

2 系统硬件设计

2.1 控制器模块设计

本监控器选用Stc10L08xe作为系统的核心控制器。该控制器是一款运算速度快、功耗低、抗干扰能力强的新一代单片机。其指令代码兼容传统的8051单片机,适用于通信速度要求高、人工智能化控制、强干扰等较为复杂的应用环境。本系统中使用P0口与语音芯片并行相连方式,语音芯片的复位信号由P3.3输出控制,而Stc10L08xe的中断则由语音芯片发出,并由P1.2控制GSM芯片的IGT点火管脚以及串口相连。

2.2 语音模块设计

本系统中选取LD3320作为语音信号采集芯片。LD3320芯片是一种基于非特定人语音识别技术的语音识别芯片。它的额定工作电压为3.3 V,除了集成有语音识别处理器之外,还自带基本的外部电路,包括语音输入接口、语音输出接口、ADC(模数转换)、DAC(数模转换)等,免去了Flash、RAM等其他辅助芯片[2]。对LD3320的操作必须通过对寄存器的操作来完成。本项目利用Stc10L08xe,实现对LD3320芯片寄存器的操作。控制器与LD3320控制连接方式为:中断、控制线、复位信号分别与P3.2、P1.2、P4.7管脚连接,车身报警喇叭采用0.5 W小喇叭进行仿真试验[2]。

2.3 通信报警模块设计

考虑到系统的安全性、稳定性,在此选用快速、安全、可靠的TC35模块作为GSM网络模块。其具有语音、数据、传真和短信功能。TC35模块主要由GSM基带处理模块、射频模块、电源和Flash组成,共有40个引脚,通过TC35 ZIF连接器引出。其管脚可以分为:电源引脚、数据输入和输出引脚、SIM卡引脚、音频接口与控制接口5种类型。其中:SIM卡引脚是24~29引脚,分别为CCIN、CCRST、CCIO、CCCLK、CCVCC和CCGND;第15号引脚IGT为点火引脚,GSM模块上电后,必须启动芯片IGT引脚的一段长于100 ms的低电平信号,经过该低电平信号的驱动后,该模块才能正常运行。在本系统中,IGT引脚连接了核心控制器的P1.2接口[3]。TC35与单片机连接电路如图2所示。

图2 TC35与单片机连接电路图Fig.2 Connections circuit between TC35 and singlechip

3 监控模块系统设计

3.1 系统程序流程设计

STC单片机对LD3320语音芯片采集的语音信号进行分析、判断处理和存储。事先可通过麦克风向语音模块控制器建立识别特征库,用于识别判断人员(特别是婴幼儿)被误锁于车内时的语句。待判断出车内有人员呼喊与语音特征库相匹配的声音时,监控系统采用三级报警方式向用户端进行报警。根据营救时间等级,警报方式分别为:发送手机短信(可扩展至微信信息)、拨打用户电话以及车身报警。语音识别流程如图3所示。

图3 语音识别流程图Fig.3 Flowchart of speech recognition

用户泊车后,监控系统启动,对车内声音进行监听。当监听到声音信号后,LD3320语音识别芯片将监测到的声音信号转化为拼音串的形式,通过串口传送至核心控制器Stc10L08xe单片机中。此时,控制器将接收到的拼音串与识别特征库的关键字进行匹配,并根据对比程度判断是否为车内人员发出的求救声音。

Stc10L08xe核心控制器程序流程设计如下。

①建立语音识别特征库。识别特征库主要由关键词组成,在此通过麦克风录入“救命”、婴幼儿的哭声(“啊啊”、“呜呜”)等关键词。在设定好要识别的关键词后,为减小外来噪声对系统监听的干扰,可以在识别特征库内添加一些其他常见的干扰词汇,以减少误识别。

②通用初始化。用户关上车门后,系统立即启动。首先,对Stc10L08xe单片机内各寄存器进行初始化设置,并对LD3320、GSM模块进行复位处理等。

③系统监听。语音输入寄存器ADC增益写入,初始化芯片状态,中断开启,准备识别车内语音状况。

④车内存在报警声音。当麦克风接收到增益范围内的语音信号时,语音芯片将通知Stc10L08xe单片机产生中断并进行语音识别。通过与识别特征库的关键词进行比对,若监听到的关键词与特征库里的关键词相匹配,则系统程序跳出至输出报警部分执行报警动作;如与特征库关键词不匹配,则继续监听。

⑤报警及复位输出。如车内监测到的语音信号与特征库匹配成功,则Stc10L08xe单片机进行报警。根据营救时间,将报警分为三个级别:短信、电话、车载喇叭报警。监听到车内存在人员发出求救声音时,控制器首先向用户手机发送报警短信,用户向系统回复一条“收到”信息,用于系统判断用户是否接收到报警信息。如系统接收到用户回复的“收到”信息,则认为用户已得知报警情况,不再进行第二级报警;如系统发送报警信息5 min后仍没收到用户反馈信息,则进行第二级报警。第二级报警为向用户拨打电话,用户接通该电话则表示用户得知报警信息,5 min内未接通电话则判断为用户未接到报警电话,进行第三级报警。第三级报警为在车辆内部发出警报声,用于吸引车辆周围人群的注意,使车内误锁人员能被及时发现。车载报警时,可通过系统复位按键进行复位处理。

3.2 特征库建立

语音命令结构如图4所示。

图4 语音命令结构图Fig.4 Voice command structure

系统初始化判断是否建立有语音特征库。如未建立特征库,则系统先进行语音训练,建立所需的语音识别特征库。根据车内监控环境要求,训练过程分为求救信号和噪声信号两种。每条命令训练两次,训练顺序如下。第一组的触发名称为准备,命令设为求救、噪声、复位;第二组的触发名称为求救,命令设为“救命”、“啊啊”、“呜呜”或其他声音;第三组的触发名称为噪声,命令设为汽车喇叭鸣笛、车内发动机响声等其他噪声。训练完成后,特征库语音文件将存储到片内Flash中,如需更新识别库,则需对系统进行复位操作,并重新进行识别库训练[4]。

3.3 语音识别程序设计

在监控过程中,如果监听结果是触发名称,则系统将发送响应报警控制,然后等待用户进行回复。语音识别程序流程如图5所示。

图5 语音识别程序流程图Fig.5 Flowchart of speech recognition program

程序初始化部分进行语言识别训练、识别、I/O口设置,相关程序段如下:

unsigned intDYC;

//是否为首次下载

unsigned intshibie;

//进行识别、辨别、判断

unsigned intuiBS_Team;

//标志当前程序内部存在的命令

DYC = IsFirstDownLoad();

//判断是否为首次下载

if(DYC == 1)

{

TrainCommand();

//训练第一组命令

SaveCommand(0xf700);

//储存训练好的命令

PlaySnd(OK);

//一组命令存储结束

TrainCommand();

//训练第二组命令

PlaySnd(OK);

TrainCommand();

//训练第三组命令

SaveCommand(0xfb00);

PlaySnd(OK);

DYC = 0xaaaa;

//标志已训练过

F_FlashWrite1Word(0xfd00,0xaaaa);

//置标志位寄存器

}

PlaySnd(RSP_STAR);

//开始识别命令

BianShi_InitRecognizer(BianShi_MIC);

//辨识器初始化

BianShi_EnableCPUIndicator();

//开始语音监控

3.4 报警系统程序设计

系统报警采用GSM短信报警、电话报警及系统自身发出报警声音三种方式。系统声音采集模块检测出车内发出求救声音后,Stc10L08xe将报警信息经GTC35模块,由GSM网络发送至用户手机。Stc10L08xe与GSM采用串行异步接口相连,通信速度定为19 200 bit/s[5]。系统启动后,GTC35模块首先对AT指令函数进行初始化、检测连接指令AT。此时,若串口无需返回指令,则使用关闭回显指令ATE0。使用AT+CREG指令,对手机注册状态进行查询;使用AT+CSQ指令,检测模块与基站信号之间的网络信号强度;使用AT+CMGF指令,进行短信格式设置(1为文本、0为PDU格式);使用AT+TSIMINS指令,查询SIM卡状态指令[6-7]。

4 系统测试与分析

通过将监测模块安装在车内进行语音识别准确度测试,证明了该报警系统能很好地完成预定的设计要求。在测试过程中,事先录入“救命”、“啊啊”、“呜呜”等声音,此次测试中未将车内的拍打声录入库。对短信报警、电话报警以及车身报警这三种报警类型的多次测试结果如表1所示。表1中:√表示进行相应的操作;╳表示未进行相应的操作,或系统未进行动作。

表1 语音识别测试结果Tab.1 Test results of speech recognition test

数据表明,该系统可以较准确地识别语音监控,报警模块性能也较为稳定。但该系统在多次测试中也出现了异常现象,经过分析可能是测试环境有噪声(其

他车辆鸣笛声较大),影响了语音监控系统的识别。因此需要优化语音识别算法,以提高监控模块适应周围环境的能力,提升系统监控的准确性[8-10]。

5 结束语

本文采用Stc10L08xe,设计了基于语音监测的车内报警系统。系统测试结果表明,该系统能够较准确地监测出车内人员发出的求救声,并执行相应的报警动作,各个模块工作稳定,达到了设计要求。在测试过程中发现,本系统易受环境状况的影响。因此,尝试消除环境因素对系统产生的影响将是未来工作的重点。本设计是结合当前社会儿童因误锁而产生的人身伤害问题,将语音识别技术应用到车载智能化系统的一次有益尝试,希望将来能够成熟地应用于各车载系统内部,以防止因误锁儿童于车内而产生的人身伤害。

参考文献:

[1] 靳祖光,陈超,唐坚.一种室内导盲机器人的RFID-语音交互系统设计[J].自动化仪表,2014,35(3):73-76.

[2] 陈喜春.基于LD3320语音识别专用芯片实现的语音控制[J].电子技术,2011,38(11):20-21.

[3] 李超.声音识别传感器设计与应用[J].传感器与微系统,2014,33(12):51-53.

[4] 王山海,景新幸,杨海燕.基于深度学习神经网络的孤立词语音识别的研究[J].计算机应用研究,2015,32(8):2289-2298.

[5] 曹会平,叶明,吴哲.基于GPS和GSM智能车锁控制单元的研究[J].仪器仪表用户,2012(1):1-4.

[6] 叶丹霞,王家礼.GSM模块TC35及在远程监控系统中的应用[J].现代电子技术,2005(5):62-67.

[7] 张文林,牛铜,屈丹,等.基于声学特征空间非线性结构的语言识别声学模型[J].自动化学报,2015,41(5):1024-1033.

[8] 王山海,景新幸,杨海燕.基于深度学习神经网络的孤立词语音识别研究[J].计算应用研究,2015,32(8):2289-2291.

[9] 郭红霞.基于GSM模块TC35i的收发短信的无线终端的设计[D].成都:西南石油学院,2004.

[10]刘晓宇.基于神经网络的声音识别算法研究[D].北京:北京邮电大学,2014.

[11]刘荣辉.基于智能家居控制的嵌入式语音识别系统研究[D].广州:广东工业大学,2013

猜你喜欢
报警语音单片机
基于单片机的SPWM控制逆变器的设计与实现
魔力语音
基于单片机的层次渐变暖灯的研究
基于MATLAB的语音信号处理
基于单片机的多功能智能插排
基于MQ3与MP3的价廉物美的酒驾语音提醒器
基于单片机的便捷式LCF测量仪
对方正在输入……
LKD2-HS型列控中心驱采不一致报警处理
2015款奔驰E180车安全气囊报警