本文采用STC12LE5A60S2单片机、LD3320语音识别芯片、CC2530组成ZigBee语音识别模块,对语言进行ZigBee数据采集,并与32位嵌入式微处理器构成的家庭网关进行串行通信,家庭网关对接收到的语音数据进行判断处理,并通过ZigBee模块网络对多个控制子节点发出控制信息,实现对电器设备的语音控制。
1智能语音控制系统功能设计
系统能进行非特定人语音识别并将语音内容存储到TF Card内,可利用语音对电灯,电磁阀水龙头,电控锁,电动窗帘等各种电器进行控制。也可进行预设,设定的时间到,系统按提示内容进行家居控制。
2智能语音控制系统的结构设计
图1智能语音控制系统框图
系统总体结构如图1所示,家庭网关和各子节点连接方式为星型拓扑结构。系统核心部件为智能家居系统中的家庭网关,在本设计中该部件功能有别于传统意义上的家庭网关,其主要负责家庭内部智能设备的控制,故采用嵌入式系统方案。包括完成语音识别模块子节点、对开关型电器进行控制的继电器控制子节点、对红外遥控型电器进行控制的红外控制子节点_。
3智能语音控制系统的硬件设计
3.1家庭网关设计
考虑到本设计家庭网关的核心控制功能,选用功能强大的32位单片机S1C33L05为主控芯片、根据功能需要片外扩展了外部存储器模块、LCD模块、时钟模块,家庭网关与ZigBee模块通过串口实现通信。
图2家庭网结构
3.2语音子节点设计
语音子节点由STCl2LE5A60S2单片机、LD3320语音识别芯片、ZigBee数传收发节点组成,系统架构如图3所示;
图3语音子节点系统架构图
其语音识别部分硬件电路如图4所示:
图4语音识刖电路
电路中,MCU的IO口和LD3320A采用串行SPI方式连接,通过串行数据接口接收STCl2LE5A60S2的控制命令;对LD3320A来说,时钟信号从TCl2LE5A60S2的XTAL2振荡器倒相放大器的出端引入,复位信号(RSTB)由MCU发出,而中断信号由LD3320A发出,MCU负责接收。
3.3 ZigBee数传模块收发节点设计
继电器控制子节点及红外控制子节点均通过ZigBee数传模块收发节点与家庭网关进行通信,考虑到语音家居系统无需很大的数据量特点,本设计选择集成有80C51内核的CC2530芯片构成ZigBee数传模块收发节点,因CC2530本身带有射频的功能,通过调整CC2530本身的发射功率以及优化CC2530天线后,对于小功率网络节点的设计不需要外加额外的射频芯片,比较适合家居系统使用。CC2530 ZigBee无线模块的电路原理图如图5所示,可以看出该模块只需很少的电子元器件
。
图5 CC2530通信电路原理图
4系统软件设计
系统软件主要由语音识别处理部分、ZigBee数传模块节点收发程序部分、红外控制部分、实时时钟驱动程序、LCD显示驱动程序和控制主程序等构成。图6为软件构成框图。
图6软件构成框图
4.1主程序主程序
通过串口接收语音子节点数据后,对数据进行判断处理并将相应信息进行显示提示,继而根据ZigBee数据采集的语音内容向相应收发控制子节点ZigBee模块发送控制命令,其流程图见图7。
图7主程序流程图
4.2语音识别程序设计
语音识别的操作流程是:
(1)通用初始化和语音识别用初始化。在初始化程序里,主要完成软复位模式设定、时钟频率设定和FIFO设定。
(2)写入识别列表。LD3320是一个基于词库的语音识别芯片,在此步骤中,应将待识别的短语写入识别列表。列表的规则是,每个识别条目对应一个特定的编号(1个字节),不同的识别条目的编号可以相同,而且不用连续,但是数值要小于256(00H~FFH)。
(3)开始识别,准备好中断响应函数,打开中断允许位。根据现有设置,每次语音识别的时间限制是设定开始后的1分钟。在这个期间内,芯片接收到声音,无论识别是否成功,都会发送中断信号。如果到了1分钟还是没有接收到声音,也会发送一个中断,而BA寄存器里的数值是0,表示识别失败。改动B8寄存器可以改变这个长度。
(4)响应中断。如果麦克风采集到声音,不管是否识别出正常结果,都会产生一个中断信号。而中断程序要根据寄存器的值分析结果。读取BA寄存器的值,可以知道有几个候选答案,而C5寄存器里的答案是得分最高、最可能正确的答案。
LD3320的程序包含了初始化程序,识别列表程序,识别开始程序和识别中断程序,详细流程如图8所示。
图8语音识别流程图
5结论
非特定人语音识别技术及其人机交互技术是当前语音信号处理领域的热点,本设计利用ICRoute公司的LD3320A完成非特定人语音的ZigBee数据采集识别、结合具有低功耗、高可靠性、短距离的无线通信ZigBee无线模块技术结合。能实现语音控制开关型、红外型家电设备,从而实现了家居控制的语音无线智能化控制,且根据需要,系统功能、应用范围均可进一步拓展。具有广泛的应用前景。