APP下载

基于SYN7318的语音控制家居系统设计

2018-07-31蒋红梅刘沛

科技视界 2018年11期
关键词:单片机

蒋红梅 刘沛

【摘 要】针对传统的开关按键和红外遥控的家电控制方式的不足,本文设计了一种基于SYN7318的语音控制家居系统,该系统运用单片机,结合语音识别和蓝牙无线传输模块,通过语音来控制家用电器的开启和关闭。该系统识别率高、功耗低、使用方便,从而使现代居家生活更加惬意舒心。

【关键词】单片机;SYN7318;语音控制

中图分类号: TP274.2 文献标识码: A 文章编号: 2095-2457(2018)11-0110-002

DOI:10.19694/j.cnki.issn2095-2457.2018.11.046

【Abstract】To the deficiency of the traditional house appliances control methods for switch button and infrared remote control, the design of voice control house system based on SYN7318 is introduced. The system uses microcontroller, combined with speech recognition module and bluetooth wireless transmission module, The system controls the turn on and off of house appliances by voice. The system has high recognition rate, low power and?convenience, so that modern home life is more comfortable.

【Key words】Microcontroller; SYN7318; Speech control

0 引言

人类最直接有效的交流方式就是语言,可通过声波表达彼此的想法、思想等。在电子工业高速发展的今天,人类与机器的信息交互已成为一种发展趋势,各种场合的语音交互系统日益完善。目前,语音识别技术和智能家居相结合还处于探索阶段[1]。本文选用STC公司的STC12C5A60S2系列单片机作为系统的核心控制,采用SYN7318作为语音识别芯片和arduino UNO作为无线蓝牙传输芯片,通过语音控制指阿令控制家用电器的开关,本系统具有识别率高,成本低,使用方便、快捷特点。

1 系统硬件设计

1.1 整体方案设计

系统主要由语音模块、蓝牙模块和家电控制模块组成,主要包含STC12C5A60S2单片机、语音模块SYN7318、蓝牙透传模块DX-BT05和arduino UNO。系统先通过识别唤醒指令如“大管家”激活语音识别模块,进入识别指令状态,接着,主人发出控制指令被SYN7318识别后,并与本身的数据库进行比较,通过UART将识别的标记和匹配的准确度发送给单片机,单片机通过对语音模块发来的指令进行相应的命令的控制,如打开卧室灯,最后,通过蓝牙发送出去,同时在蓝牙接收端,UNO获取串口的指令来控制相应的继电器工作,完成一次语音交互和家电控制操作过程,然而系统不是一直处于识别语音状态,则大大降低误识率以及减少功耗。其系统硬件设计框图如图1所示:

1.2 语音模块

语音的识别和处理主要在语音模块SYN7318内部进行,语音模块由语音识别、合成控制模块构成。SYN7318能实现语音的识别算法和语音合成播放,单片机通过串口1与语音芯片进行指令收发,蓝牙模块通过串口2与单片机进行指令收发。语音的识别过程为:首先,单片机内部初始化两个串口,设置各自的波特率,开中断。然后,等待SYN7318内部建立词典并加载完成,发送空闲查询函数,当语音模块回复空闲时,单片机发送唤醒指令使语音模块处于待唤醒状态;当匹配到唤醒词以后,语音模块发送唤醒完成标志指令给单片机。最后,单片机发送语音识别指令给语音模块,语音模块完成语音识别并将识别到的结果回传给单片机[2]。

1.3 家电控制模块

系统采用Arduino UNO的主控MEGA328P来实现蓝牙模块和家用电器的继电器连接。MEGA328P晶振为16MHz,其中,C3、RES1、R1构成复位电路,单片机和语音模块采用5V电压供电,而蓝牙模块可采用Arduino UNO自带的ASM1117-3.3输出的3.3V电压供电,蓝牙模块和单片机的通信部分虽都兼容5V,但为了确保数据传输稳定性,需在蓝牙RXT端串联一个100 的电阻[3,4]。Arduino UNO通过控制I/O端口来控制继电器进而实现各种家电的开关控制。

2 软件设计

2.1 数据传输设计

为了确保命令传输的速度和准确性,单片机和SYN7318模块串口通讯速率设置为115200bps,单片机和蓝牙模块的传输速率设置为9600bps。用命令帧和回传帧来实现单片机和SYN7318之间的信息传输,其发送命令帧格式如表1所示[5]。发送命令的帧头为0xFD,用来表示一帧数据的开始。数据区长度占两个字节,用来校验数据区的长度。数据区前几位表示具体的命令字节,与后面的待发送文本结合使用,用于发送各种命令,应用到的有:0x01、0x10和0x51,0x01表示合成并播放命令字节后的文本内容;0x10表示启动语音识别功能。0x51表示开启语音唤醒功能。

回传帧是语音模块回传给单片机的反馈信息。回传帧的格式和命令帧类似,只是把开头的0xFD更改为0xFC。数据区长度也是两位,数据区也是由命令字节和文本字节组成。

2.2 语音模块配置

本地词库需提前将所需要识别的词汇存储在语音模块中,SYN7318的厂家提供了存储词汇的上位机,SYN7318语音交互模块可便捷地设置关键字以及唤醒词,并且能测试发送帧并接收反馈,以及设置帧噪声识别上限和语音合成的人声。将噪音识别等级设置为中等即1-5米范围内的正常人声分贝,启用内部降噪垃圾词条并将语音合成人声设置为“晓玲”,语音识别等待时间设置为4s,即4s内无语音超过音频上限阈值则视为识别超时。

2.3 蓝牙模块配置

本文的蓝牙模块采用透传模式。启动时,需要配置AT指令,当配对连接后进入透传模式,AT指令时效[6]。在上位机串口软件中,发送AT+LADDR指令,分别获取两块蓝牙模块的MAC地址并记录下来。在程序初始化中,先设置发送AT用来检测AT指令是否可用、设置波特率为9600bps和发射功率为0dB,同时,分别设置两块蓝牙模块为主模块和从模块。主模块发送已获取的从模块的MAC地址进而等待连接。当主模块连接从模块时,主模块向单片机发送已连接信息“Connected”,单片机检测到信息以确保蓝牙模块已连接、蓝牙模块的初始化和连接工作完成,语音模块会发送语音合成指令“蓝牙已连接”,则蓝牙传输成功。

3 结论

该设计主要利用单片机和语音模块实现了智能家居语音的控制,本文详细介绍了系统的软硬件设计,该系统能实现语音控制家用电器的开关工作,并且控制中心与家用电器终端之间采用蓝牙无线传输方式,避免有线传输的弊端。该系统对非特定语音的识别率高、功耗低,极大方便了人们对家电的智能控制。

【参考文献】

[1]陈哲.智能家居语音控制系统的设计与实现[D].四川:电子科技大学,2011.

[2]李勇,蔡力强,谭国炎,等.基于STM32单片机的家居设备控制系统设计[J].科技与创新,2018,(5):130-131.

[3]陈吕洲.Arduino程序设计基础[M].北京:北京航空航天大学出版社,2013.124-142.

[4]谭浩强.C程序设计[M].北京:清华大学出版社,2005.286-290.

[5]北京龍邱智能科技有限公司.SYN7318语音交互开发手册[Z].北京:北京龙邱智能科技有限公司,2016.

[6]汇承信息科技有限公司.HC-08蓝牙4.0 BLE串口模块用户手册[Z].广州:汇承信息科技有限公司,2015.

猜你喜欢

单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
MSP430单片机在仿真中要注意的几点问题
基于单片机的平衡控制系统设计
基于单片机的三维LED点阵设计
Microchip推出两个全新PIC单片机系列
基于Proteus的单片机控制系统的仿真设计