基于Matlab/RTW的语音识别及无线控制系统

时间:2022-07-13 09:25:07

基于Matlab/RTW的语音识别及无线控制系统

语音识别是近年来十分活跃的一个研究领域,被广泛应用于工业控制、智能家居、医疗、高端家电等多个领域。根据识别的对象不同,语音识别可分为孤立词识别、关键词识别和连续语音识别。目前用于语音识别的方法有基于动态时间规整(DTW)技术的模板匹配法、基于概率统计的HMM法和基于人工神经网络的最优搜索法。

zigBee是一种新兴的短距离、低速率、低功耗无线网络技术,其自组织、低功耗、低数据速率、低成本的特点使之十分适合于自动控制和远程控制领域,可以嵌入各种设备。

RTW(Real-Time Workshop)是Matlab提供的代码生成工具,可使Simulink模型自动生成面向不同目标的代码。利用RTW自动生成代码,可使工程师专注于系统设计和实现,减轻编程工作量,加快产品研发的速度。

系统选用DSP(TMS320VC5402)实现孤立词语音识别算法,ZigBee(cC2420)实现无线通信功能,利用Matlab/RTW自动生成C代码,能够极大地缩短开发周期,为此,基于matlab/RTW实现的语音识别及无线控制系统方案具有一定的研究价值。

系统硬件设计

本系统硬件结构可分为主节点、从节点,图1为总体硬件结构图。其中主节点由基于DSP的语音识别模块和基于ZigBee的无线通信模块组成。语音识别模块实现对语音命令的识别,并将识别结果以中断方式发送至ZigBee模块。ZigBee模块由低功耗的AVR单片机与CC2420组成,单片机实现上层软件与ZigBee协议栈功能,CC2420实现数据的无线收发;从节点则由ZigBee通信模块与被控对象组成。本系统所采用的网络拓扑形式为星状,即一个主节点与多个从节点采用星状方式连接。

1 语音识别模块

语音识别模块主要以TMS320V C5402为核心,实现对语音信号进行采集和处理,以及输出识别结果。其中,TLV320AIC23是TI公司推出的一款集ADC与DAC为一体的高性能音频编解码器,它可以实现与DSP的无缝连接。本系统中由它来完成对输入语音信号的放大、滤波、AD转换,以及对识别结果的语音播报。SRAM和FLASH分别为DSP的数据存储器和程序存储器。CPLD完成DSP的外部存储器寻址和控制逻辑,以及驱动zigBee通信模块。模式控制部分的功能是控制训练模式和识别模式的切换。

由于外扩了FLASH与SRAM,DSP要对FLASH与SRAM进行正常读写的逻辑时序控制,这部分功能由CPLD来实现,由于DSP的速度较快,要求译码的速度也必须较快,利用小规模逻辑器件译码的方式己不能满足DSP系统的要求;而CPLD的速度快,比通用器件快几个数量级。实际应用中由于减少了电路中器件的数量,从而增强了系统的可靠性,降低了电路的总功耗。此外,CPLD可在线编程,使得日后语音处理平台逻辑的修改非常方便。总之,CPLD时序严格,速度较快,集成度高,非常适合于本设计。

2 ZigBee通信模块

本系统中包含一个发送节点(FFD)和多个接收节点(RFD),并自组建成星状网络。节点的基本硬件构架是由AVR控制器和zigBee射频电路组成的。AVR控制器采用高性能、低功耗的ATmegal28L微处理器。ZigBee射频电路则以CC2420为核心。CC2420是TI-Chipcon推出的一款2.4GHz射频收发器,其MAC层和物理层协议都符合IEEE 802.15.4标准,CC2420可通过4线SPI总线设置芯片的工作模式并实现读/写缓存数据、读/写状态寄存器等。控制器通过SPI总线与射频电路相连。AVR充当SPI主器件而射频收发器充当从器件。AVR实现了IEEE 802.15.4 MAC层和zigBee协议层及特定应用的逻辑控制。

系统软件设计

下面主要对控制系统的软件设计进行介绍。包括针对VC5402特点对前面由RTW自动生成的代码进行整合优化、CPLD控制逻辑设计以及ZigBee通信协议的实现。最终实现无线语音控制系统。

1 DSP语音识别程序

前面利用Matlab/RTW自动生成了基于HMM算法的语音识别程序,接下来在CCS3.1环境下对代码进行了必要的整合和优化,以使其达到系统设计要求,整合后的整体软件流程如图2所示。

2 ZigBee节点软件设计

ZigBee节点上的软件负责完成接收由DSP发送的控制命令,并将命令发送到RFD节点,RFD节点通过解析数据帧中的地址码来判断是否接收。如果地址正确则接收数据包,解析命令并产生相应的控制动作。由于RF芯片CC2420提供了802.15.4的物理层和MAC层功能,只需完成如下工作:

①上层协议。使用成熟的协议栈:Z-Stack。

②用户程序。利用Microchip提供的API函数实现了zigBee的全部功能。

③TinyOS系统设计和移植。语音识别算法的设计与实现

1 语音识别概述

语音识别的一般方法是预先对语音信号提取特征参数形成模板,然后将待识别的语音经特征提取后,逐一与参考模式库中的各个模板按某种原则进行比较,来找出最相像的参考模板所对应的发音,其一般过程如图3所示。

系统中包括预处理、特征提取、模板库、模式匹配和后处理五大部分。针对本系统特点与实际需要,在进行语音处理的过程中,采用MEL频率倒谱系数模型(MFCC)来进行语音特征参数提取、采用隐马尔科夫算法(HMM)来进行语音识别。

2 HMM语音识别算法

形象地说,HMM可以分为两个部分,一个是Markov链,由π,A描述,其产生的输出为状态序列;另外一个随机过程B产生的输出是观测序列,T为观测时间长度,如图4所示。

3 Matlab仿真及生成目标代码

RTW(Real-Time Workshop)是Matlab提供的代码自动生成工具,可使Simulink模型自动生成面向不同目标的代码。目前通过Matlab/RTW可生成在PC、ARM、DSP等设备上运行的代码。利用RTW自动生成代码,可使工程师专注于系统设计和实现,减轻编程工作量,加快产品研发的速度。

HMM算法的仿真和调试是在Matlab7.8环境下,利用Voice Box工具箱,编制了相应程序而实现。由于在Matlab中,m语言无法直接移植到嵌入式控制器中,因此先要用simulink构建系统模型,然后再用Real-Time Workshop自动生成面向TI C5000平台的C代码。

利用RTW自动生成代码的实验步骤如下:

①借助于Voice BoxT具箱,用Matlab的mN言编写HMM算法程序,仿真通过后,封装成Simulink仿真框图,并建立HMM控制系续模型Model.mdl。

②在Simulink窗口中,选择Simulinkl Configuration Parameters选项,对Solver、Data Import/Export、Hardware Implementation等进行设置。其中HardwareImplementation选项框下的DeviceVendor选项选择Texax Instruments,Device Type选项选择C5000。

③整合用户定义的函数以及自动生成的HMM代码,编译连接,最终生成OUT文件并下载到DSP中。

上一篇:采用步进电机简化汽车供暖通风空调系统自动空... 下一篇:面向LED照明的低压交流应用