- 博客(0)
- 资源 (1)
- 收藏
- 关注
凌阳单片机语音识别+识别小车
凌阳61单片机的语音识别程序。
//************硬件连接*******************************************//
//单片机:SPCE061A
//修改时间:2010.03.21
//BY xueqian
//***************************************************************//
#include "bsrSD.h"
#include "SPCE061A.h"
#include "voice.h"
//*******全局变量*************//
int gActivated=0;
//*************主函数main*********************//
int main()
{
int res,timeCnt=0; //变量timeCnt用来计时
*P_IOB_Dir=0xffff;
*P_IOB_Attrib=0xffff;
*P_IOB_Data=0x0;
BSR_DeleteSDGroup(0); //初始化存储器RAM
PlayRespond(RSP_INTRO); //播放开始训练的提示音
while (TrainWord(NAME_ID,1)!=0); //训练名称
while (TrainWord(COMMAND_ONE_ID,2)!=0); //训练第一条命令
while (TrainWord(COMMAND_TWO_ID,3)!=0); //训练第二条命令
//开始识别命令
BSR_InitRecognizer(BSR_MIC); //辨识器初始化
// BSR_EnableCPUIndicator(); //启动时时监控
PlayRespond(RSP_STANDBY); //播放开始辨识提示音
while(1)
{
res=BSR_GetResult();
if (res>0) //识别出命令
{
if (gActivated)
{
timeCnt=0; //计数归零
switch(res)
{
case NAME_ID:
PlayRespond(RSP_HERE); //第一条语音应答
break;
case COMMAND_ONE_ID:
//PlayRespond(RSP_GUNSHOT); //第一条命令应答
*P_IOB_Data=0x5;
gActivated=0;
break;
case COMMAND_TWO_ID:
//PlayRespond(RSP_READY); //第二条命令应答
*P_IOB_Data=0xa;
gActivated=0;
}
}
else
{
if(res==NAME_ID)
{
PlayRespond(RSP_HERE); //回答触发指令
gActivated=1;
timeCnt=0;
}
}
}
else if(gActivated) //已经触发,但在规定时间里没有识别出来
{
if(++timeCnt>450) //超出定时
{
PlayRespond(RSP_NOVOICE); //在规定时间内没有检测声音的回答
gActivated=0;
timeCnt=0;
}
}
}
}
2010-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人