⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 凌阳061a单片机语音识别使用例程。包括两个基本语音识别例子可识别5条指令
💻 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 + -