基于语音辨识的遥控小车的设计

2011-06-08 19:37:26来源: 互联网

.引言
   随着计算机技术的发展,单片机作为计算机的一个分支,广泛用于工业控制、智能仪器、家用电气、高科技玩具等领域。语音技术的发展,缩短了人机界面的距离,增强了互动性和智能性。具有语音识别功能的智能遥控小车,集语音识别、无线遥控、机械控制于一体。以单片机为主控元件,完成前进、后退、转弯等预定的工作,但是一般的单片机不具备语音处理功能,需外挂专门的语音识别芯片,如采用集成语音识别芯片RSC-364来完成语音识别 [1],RSC-364是Sensory公司的一款8位MCU,很方便与51单片机连接,但是需要外接编解码电路,使得电路复杂化。采用凌阳公司具有语音处理功能的SPCE061A作为控制核心可以方便的实现语音控制[2~3],但由于将SPCE061A单片机置于小车车体内, 在小车运行时,电机及周围环境的噪音,会干扰对语音命令的识别,且距离稍远便会出现小车“听不到任何声音”。本文采用凌阳SPCE061A单片机结合红外线发射芯片TX-2B组成遥控部分,克服了芯片处于小车车体内会受到噪音影响的缺陷,对要实现远距离无线语音控制的设备具有一定的参考价值。
1.系统总体结构

   本系统主要包括语音识别模块、红外遥控模块、电机驱动模块。系统总体结构框图如图1所示。凌阳SPCE061A单片机负责语音识别,接收到有效语音信号,将语音信号转换成数字信号传送给红外线发射芯片TX-2B,TX-2B发射的信号由红外接收芯片RX-2B接收后,经解码控制电机驱动电路,从而实现对小车的远距离语音遥控。 图1系统总体结构框图
 

1.1语音识别
凌阳SPCE061A单片机是一个16位结构的控制器,具有DSP运算功能,内置8通道10位A/D及2路D/A转换器,较高的处理速度使其能够具有数字语音识别的能力。软件编程采用C语言和汇编语言混合编程,集两种语言之优点于一体,简化了编程过程[4~5]。SPCE061A将语音模拟信号直接转换成电压信号,再经内置自动增益控制,内部ADC模块将信号转换为数字信号,经编码后存入存储器,与存储器中的原语音数字信号编码匹配,进行模式识别,若识别成功,则相应的命令由61AIOA 0~IOA 3传送给红外发射芯片TX-2B的控制端。

1.2 红外遥控

TX-2B/ RX-2B是士兰公司生产的配对使用的红外线发射和接收芯片,是一款专用于玩具小车的成对遥控芯片,采用CMOS工艺制造,功耗小,工作电压1.5-5V。TX-2B/RX-2B内部己含有编码电路和解码电路,无需在后续的电路中对接收到的信号进行软件编程解码,因此硬件电路简单。红外发射电路如图2所示,TX-2B中的1、4、5、14引脚分别为右转(RIGHT)、后退(BACKWORD)、前进(FORWORD)、左转(LEFT)控制端,接收从061A的IOA 0~IOA 3 发送的信号。红外接收电路如图3所示,RX-2B包括内置放大器、运算器及锁存器等。外接250 kΩ电阻形成RC振荡器,与发射电路的频率匹配。RX-2B接收信号后,经解码后将右转、左传、后退、前进的控制信号由对应的引脚6、7、10、11输出,传送给电机驱动电路,控制小车产生相应的动作。
 

1.3 电机驱动电路
小车为四轮结构,两个前轮为转向机构,控制小车左转、右转;两个后轮为前进、后退驱动轮。两个电机均采用直流小电机,驱动采用 H桥式功率驱动电路,该电路可以很方便的实现电机的正、反转的变化 [6],从而控制小车的左右转、前进、后退的状态变化。由于电路简单,这里不再赘述。
2.系统软件设计SPCE061A提供了很好的语音播放和录制机制以及简单的API接口编程,大大简化了小车的软件设计。在此主要阐述,语音辨识(包括:语音训练、语音识别)以及定时中断控制部分的软件设计。
2.1 语音辨识
凌阳SPCE061A将语音识别功能做成模块,通过API函数调用来实现,内带的SACM-LIB解决了语音文件占用存储空间大的问题。本设计采用SD模式,小车只能识别特定使用者的语音命令,语音辨识的过程包括语音训练和语音识别 [7]。具体包括以下几个步骤:
2.1.1 RAM初始化  调用int BSR_Delete SDGroup(0),用于SRAM初始化。当返回值为0,代表擦除成功。否则返回-1。
2.1.2 语音训练调用int BSR_Train (int WordID, int TraindMode),用于上电后的语音命令训练。 BSR_TRAIN_TWICE 表示每条指令训练两次。训练成功,返回值为0。
2.1.3 语音辨识
调用int BSR_InitRecognizer(int AudioSource),用于语音识别器初始化。语音识别器打开8KH Z采样频率的FIQ_TMA中断,开始将采样的语音数据填入语音识别器的数据队列中。
2.1.4 启动实时监控调用函数VoidBSR_EnableCPUIndicator(void) 启动实时监控,保证辨识器正常执行。

2.1.5 获取识别结果调用int BSR_GetResult(void),用于完成语音识别,并返回语音识别结果。返回值为0,无命令识别;返回值-1,识别器停止、未初始化;返回值-2,识别不合格;识别成功返回命令的序号。
2.1.6 停止识别调用void BSR_StopRecognizer(void),用于停止识别。调用此函数时,FIQ_TMA中断关闭。

小车语音训练流程图如图4所示。语音识别部分在main函数中,A口的设置即小车的逻辑控制部分放在InitIO.asm文件中。
 
               

2.2 定时中断 小车的运动控制采用语音控制和中断定时控制相结合,通过语音触发小车动作,小车行驶中可通过语音指令改变小车的运动状态。在每一次动作触发的同时启动定时器,如果小车由于某些原因不能正常的接收语音指令,则定时时间一到,中断服务程序就会发出指令让小车停下来。
3.结束语

  设计完成的小车经测试,遥控有效距离可达 5米,对特定使用者语音识别可达95%以上,在有效范围内小车能够实时响应使用者的语音命令,实现前进、后退、左转及右转,且在每一次状态改变时会有语音应答,增强了互动性。在 10秒内若没有语音命令发布,小车会自动停止。
本设计的创新点在于采用了具有语音处理功能的凌阳 SPCE061A单片机与专用的红外遥控芯片TX-2B结合形成遥控电路,将声控与红外遥控相结合,增强了小车抗噪音能力,也增加了小车的可控距离,并且系统的实现方便简单。

关键字:遥控  小车  设计

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0608/article_6456.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
遥控
小车
设计

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved