break;
        case COMMAND_GO_ID:    //识别出第一条命令
            GoAhead();                //执行动作一:直走
            break;
        case COMMAND_BACK_ID://识别出第二条命令
            BackUp();                //执行动作二:倒车
            break;
        case COMMAND_LEFT_ID:    //识别出第三条命令
            TurnLeft();                //执行动作三:左转
            break;
        case COMMAND_RIGHT_ID://识别出第四条命令
            TurnRight();                //执行动作四:右转
            break;
        default:
            break;
        }
    }
}
(13)实现中断服务的程序
void IRQ5(void)__attribute__((ISR));        //运动定时控制
void IRQ5(void)
{
    if(uiTimecont++ == uiTimeset)
    {
        *P_IOB_Data = 0x0000;
    }
    *P_INT_Clear = 0x0004;
}

4.2 模块设计
4.2.1中断流程图部分
SPCE061单片机有两个外部中断,分别为EXT1和EXT2,两个外部输入脚分别为B口的IOB2和IOB3的复用脚。EXT1(IOB2)和EXT2(IOB3)两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断以负跳沿触发方式来输入中断请求信号。EXT1(IOB2)为黑线检测,确定小车位置,EXT2(IOB3)为轮子转数检测用于计算路程。IRQ4用做整个行程的时间计数。
图15 中断服务流程图
4.2.2语音识别部分
在这里我们用的是SPCE061的特定语者辨识SD(Speaker Dependent),SD即语音样板由单个人训练,也只能识别训练某人的语音命令,而他人的命令识别率较低或几乎不能识别。
(1) 语音的准备:
可利用计算机进行录音,选择录音效果一般的MIC比较好,因为小车跑动时要受环境的影响,效果一般的MIC录制的音更加接近凌阳单片机上的MIC所录制的。录制语音可为:“yeah”,“烦不烦”,“前进”,“倒退”,“拐就拐”。分别保存名称为:yeah.48k、qj.48k、dt.48k zg.48k、yg.48k.
语音录制时,注意录制属性设置,最好选择为8Khz,  16位,单声道。语音录制好后,保存格式为“.wav”,利用凌阳单片机光盘内目录“\TOOLS\s480\”下的工具进行语音压缩后放在程序目录“\voice”下边,然后修改配置文件“Makefile”中的OBJFILES的值以及对应的语音文件的目录地址值和“clean”的值 ,并且配置值顺序必须对应于语音训练的过程。
该程序模块包括三部分:训练样本、识别、语音提示。具体程序见主程序。见下图整体框图。
  图16 语音辨识整体框图
在程序中我们通过五条语句的训练演示特定人连续音识别,其中第一条语句为触发名称。另外四条为命令,训练完毕开始辨识当识别出触发名称后,开始发布命令,则会听到自己设置的应答,具体流程图如图22。
上一篇:轨道电路MATLAB仿真及应用+源码
下一篇:51单片机电话远程控制系统设计+源码+流程图

STC89C52单片机智能车红外避障控制设计

基于LBG算法的语音信号的矢量量化方法设计

基于蓝牙和语音识别技术...

MATLAB的语音固定文本识别方法研究+程序

AT89C2051单片机无线电源控制系统的设计+程序

DSP无线供电系统串/并s/p补偿的数字化控制

VHDL基于EDA三层电梯控制器设计+程序

拉力采集上位机软件开发任务书

国内外无刷直流电动机研究现状

《醉青春》导演作品阐述

浅谈新形势下妇产科护理...

辩护律师的作证义务和保...

多元化刑事简易程序构建探讨【9365字】

浅谈传统人文精神茬大學...

高校网球场馆运营管理初探【1805字】

谷度酒庄消费者回访调查问卷表

中国古代秘书擅权的发展和恶变