main.c

来自「凌阳061a单片机语音识别使用例程。包括3个基本语音识别例子简单易懂」· C语言 代码 · 共 63 行

C
63
字号
#include "bsrSD.h"									//包含语音识别库的头文件
#define P_Watchdog_Clear	(unsigned int*)0x7012

void Delay(unsigned int Timers);
void Play_Sound(unsigned int Index);				//在Sound.c中定义
void ReTrainBS(void);								//在Sound.c中定义
int main(void)
{
	unsigned int uiTemp=0,Loop_Counter=0;
	int res;
	
	ReTrainBS();									//调用语音识别的训练程序,在Sound.c中定义
	Play_Sound(12);                                 //..........开始识别命令.......
	BSR_InitRecognizer(BSR_MIC);		    		//辨识器初始化
	
	while(1)
	{
		res = BSR_GetResult();						//获取语音识别结果,在库中定义
		switch(res)									//根据识别的结果进行分支跳转
		{
			case 0x100:								//name ID
				Play_Sound(7);						//播放:lalalalala
				Loop_Counter = 0;					//计数清零
				break;
			case 0x101:								//命令一 ID
				Play_Sound(5);						//播放:I`m fine
				Loop_Counter = 0;					//计数清零
				break;
			case 0x102:								//命令二 ID
				Play_Sound(8);						//播放:Happy new year
				Loop_Counter = 0;					//计数清零
				break;
			case 0x103:								//命令三 ID
				Play_Sound(6);						//播放:I love you too
				Loop_Counter = 0;					//计数清零
				break;
			case 0x104:								//命令四 ID
				Play_Sound(9);						//播放:ZZZZZZ(打呼噜声)
				Loop_Counter = 0;					//计数清零
				break;
			default:
				break;
		}
		Loop_Counter++;								//循环计数器自加一,用于程序中的状态中断
		*P_Watchdog_Clear = 0x0001;					//清看门狗
	}
}
//========================================================================
//	语法格式:	void Delay(unsigned int Timers)
//	实现功能:	延时子程序
//	参数:		Timers  延时的时长控制参数
//	返回值:	无
//========================================================================
void Delay(unsigned int Timers)
{
	unsigned int i;
	while(Timers!=0)
	{
		for(i=0;i<0xffff;i++)
			*P_Watchdog_Clear = 0x0001;
		Timers--;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?