新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于凌阳SPCE061A单片机的音控小车的设计

基于凌阳SPCE061A单片机的音控小车的设计

作者:时间:2009-10-26来源:网络收藏

语音识别主要分为“训练”和“识别”两个阶段。在训练阶段,对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,对采集到的语音样本也进行类似的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别。
语音识别过程分为以下4大部分:
(1)初始化部分:初始化操作将 IOB8~IOB11 设置为输出端,用以控制电机。必要时还要有对应的输入端设置。整个的行驶状态由2个电机来控制,电机1控制左拐和右拐,电机2控制前进、倒退。具体行使状态控制如表1所示。

本文引用地址:http://www.eepw.com.cn/article/173580.htm

(2)训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断是否被训练过,如果没有训练过则要求对其进行训练,整个训练过程共有 5 次,依次为:名称―前进―倒车―左拐―右拐。在训练成功之后将训练的模型存储到 FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在 FLASH 中的模型调出来装载到辨识器中。
(3)识别部分:在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命状态,然后等待动作命令。如果辨识结果为动作指令,小车会语音告知相应动作,并执行该动作,在运动过程中可以通过呼叫小车的名字使小车停下来。
(4)重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61 板的 KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000 单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为 0xffff 时会要求重新对其进行训练。小车训练流程图如图5所示[5]



2. 2系统的软件流程图
系统的软件流程如图6所示。本采用C语言和汇编语言联合编程的方法。其中,C语言作为主程序编程,可以充分利用C语言的优点,调用其他程序模块。汇编语言主要用在子程序的模块中,利用它的中断、延时等方面的优点。汇编语言的主要优点是占用硬件资源少、程序直接对硬件操作加快了处理速度。本设计的所有程序均在集成开发环境IDE中进行。本系统的软件部分采用模块化程序结构,其软件设计主要包括初始化、系统主程序、语音提示程序、小车微调程序等部分。



本文设计并制作的小车以单片机为控制核心,完成了语音辨识功能,并在实现语音控制的基础上扩展了I/O接口,实现了紧急避障微调功能,能够按照语音指令很好地完成前进、倒车、左转、右转以及倒库。能够识别人的语音命令,并根据命令的含义执行相应的动作。整个部分设计合理,小车运行正常。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭