📄 main.c
字号:
#include "bsrsd.h"
#define CMD1_ID 0x100
#define CMD2_ID 0x101
#define S_CMD1 0
#define S_CMD2 1
#define S_AGAIN 2
#define S_NOVOICE 3
#define S_CMDDIFF 4
#define S_NOISY 5
#define S_STAR 6
#define S_RSP1 7
#define S_RSP2 8
#define P_Watchdog_Clear (volatile unsigned int*)0x7012
void PlaySnd(unsigned SndIndex, unsigned DAC_Channel) //play
{
BSR_StopRecognizer();
SACM_S480_Initial(1);
SACM_S480_Play(SndIndex, DAC_Channel, 3);
while((SACM_S480_Status()&0x0001) != 0)
{
SACM_S480_ServiceLoop();
*P_Watchdog_Clear=1;
}
SACM_S480_Stop();
BSR_InitRecognizer(BSR_MIC);
}
int TrainWord(int WordID, int SndID)
{
int Result;
PlaySnd(SndID,3);
Result = BSR_Train(WordID,BSR_TRAIN_TWICE);
switch(Result)
{
case 0: //success
break;
case -1: //没有检测出声音
PlaySnd(S_NOVOICE,3);
break;
case -2: //需要重新训练一遍
PlaySnd(S_AGAIN,3);
break;
case -3: //环境太吵
PlaySnd(S_NOISY,3);
break;
case -4: //FULL
break;
case -5:
PlaySnd(S_CMDDIFF,3); //DIFFERENT
break;
case -6: //序号错误
break;
default:
break;
}
return Result;
}
int main()
{
int Result;
BSR_DeleteSDGroup(0); // 初始化存储器RAM
while(TrainWord(CMD1_ID,0) != 0) ;//..........训练第1条命令.......................
while(TrainWord(CMD2_ID,1) != 0) ;//..........训练第2条命令.......................
BSR_InitRecognizer(BSR_MIC); //辨识器初始化
PlaySnd(S_STAR,3); // 播放开始辨识的提示音
while(1)
{
Result = BSR_GetResult();
switch(Result)
{
case CMD1_ID:
PlaySnd(S_RSP1,3);
break;
case CMD2_ID:
PlaySnd(S_RSP2,3);
break;
default:
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -