//======================================================================================
//
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//
// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
// ALL RIGHTS RESERVED
//
// The entire notice above must be reproduced on all authorized copies.
//
//========================================================================================
// 工程名称: Guard_SD.spj
// 功能描述: 该程序是特定人辨识的一个范例:
// 在程序中我们通过三条语句的训练演示特定人连续音识别,其中第一条语句为触发命令。
// 在程序一开始为训练名称,即触发命令,然后提示训练两条命令,训练完毕开始辨识当识别
// 出触发名称后,发布命令则会听到应答,具体命令如下:
//****************训练******************************************
// 提示音 输入语音
//--------------------------------------------------------
// "请输入触发名称" "警卫"
// "请输入第一条命令" "红灯亮"
// "请输入第二条命令" "红灯灭"
// “请输入第三条命令” “绿灯亮”
// "请输入第四条命令" "绿灯灭"
// "请再说一遍"(以上提示音每说完一遍出现此命令)
// "没有听到任何声音" (当没有检测到声音时出现此命令)
// "两次输入名称不相同"(当两次输入的名称不同时出现此命令)
// "两次输入命令不相同"(当两次输入的命令有差异时出现此命令)
// "准备就绪,请开始辨识"(以上五条语句全部训练成功时,进入识别)
//*****************识别*****************************************
// 发布命令 应答
//---------------------------------------------------------
// "警卫" "在"
// "红灯亮" IOB0口灯被点亮
// "红灯灭" IOB0口灯被熄灭
// “绿灯亮” IOB1口灯被点亮
// "绿灯灭" IOB1口灯被熄灭
// 注意: 在每次提示音结束后2-3秒再输入命令或当上次应答结束2-3秒后再发布命令
//
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.0(or later)
//
// 涉及的库: CMacro.lib/sacmv25.lib/bsrv222SDL.lib
//
// 组成文件: main.c
// FIQ.asm/hardware.asm/key.asm/InitIO.asm
// hardware.inc
//
// 日期: 2003-7-11
//===========================================================================================
#include "bsrsd.h"
#define NAME_ID 0x100
#define COMMAND_ONE_ID 0x101
#define COMMAND_TWO_ID 0x102
#define COMMAND_THREE_ID 0x103
#define COMMAND_FOUR_ID 0x104
#define RSP_INTR 0
#define RSP_NAME 0
#define RSP_FIRE 1
#define RSP_GUARD 2
#define RSP_AGAIN 3
#define RSP_NOVOICE 4
#define RSP_NAMEDIFF 5
#define RSP_CMDDIFF 6
#define RSP_STAR 7
#define RSP_MASTER 8
#define RSP_HERE 9
#define RSP_GUNSHOT 0
#define RSP_PATROL 11
#define RSP_READY 12
#define RSP_COPY 13
#define RSP_NOISY 14
//..................全程变量....................
int gActivated = 0; //该变量用于检测是否有触发命令,当有识别出语句
//为触发名称则该位置1
int gTriggerRespond[] = {RSP_MASTER, RSP_HERE, RSP_MASTER};
int gComm2Respond[] = {RSP_PATROL, RSP_READY, RSP_COPY};
extern void ClearWatchDog();
int PlayFlag = 0;
void PlayRespond(int Result)
{
BSR_StopRecognizer();
SACM_S480_Initial(1);
SACM_S480_Play(Result, 3, 3);
while((SACM_S480_Status()&0x0001) != 0)
{
SACM_S480_ServiceLoop();
ClearWatchDog();
}
SACM_S480_Stop();
BSR_InitRecognizer(BSR_MIC);
BSR_EnableCPUIndicator();
}
int TrainWord(int WordID, int RespondID)
{
int res;
PlayRespond(RespondID);
while(1)
{
res = BSR_Train(WordID,BSR_TRAIN_TWICE);
if(res == 0) break;
switch(res)
{
case -1: //没有检测出声音
PlayRespond(RSP_NOVOICE);
return -1;
case -2: //需要重新训练一遍
PlayRespond(RSP_AGAIN);
break;
case -3: //环境太吵
PlayRespond(RSP_NOISY);
return -1;
case -4: //数据库满
return -1;
case -5: //检测出声音不同
if(WordID == NAME_ID) PlayRespond(RSP_NAMEDIFF);//两次输入名称不同
else PlayRespond(RSP_CMDDIFF);//两次输入命令不同
return -1;
case -6: //序号错误
return -1;
}
}
return 0;
}
int main()
{
int res, timeCnt = 0, random_no = 0;
InitIO();
BSR_DeleteSDGroup(0); // 初始化存储器RAM
// PlayRespond(RSP_INTR); // 播放开始训练的提示音"请输入触发名称"
//..........训练名称..............................
while(TrainWord(NAME_ID,0) != 0) ;
//..........训练第一条命令.......................
while(TrainWord(COMMAND_ONE_ID,1) != 0) ;
//..........训练第二条命令.......................
while(TrainWord(COMMAND_TWO_ID,2) != 0) ;
//..........训练第三条命令.......................
while(TrainWord(COMMAND_THREE_ID,12) != 0) ;
//..........训练第四条命令.......................
while(TrainWord(COMMAND_FOUR_ID,13) != 0) ;
//..........开始识别命令.........................
BSR_InitRecognizer(BSR_MIC); //辨识器初始化
BSR_EnableCPUIndicator(); //启动实时监控
PlayRespond(RSP_STAR); //播放开始辨识的提示音
while(1)
{
random_no ++;
if(random_no >= 3) random_no = 0;
res = BSR_GetResult();
if(res > 0) //识别出命令
{
if(gActivated)
{
timeCnt = 0;
switch(res)
{
case NAME_ID: //触发命令响应
PlayRespond(gTriggerRespond[random_no]);
break;
case COMMAND_ONE_ID: //识别第一个命令
PlayFlag = 1;
LED_RED_ON();
PlayFlag = 0;
gActivated = 0;
break;
case COMMAND_TWO_ID: //识别到第二条命令
LED_RED_OFF(); //响应第二条命令“我在巡逻”
gActivated = 0;
break;
case COMMAND_THREE_ID: //识别第三条命令
LED_GRE_ON();
gActivated = 0;
break;
case COMMAND_FOUR_ID: //识别第四条命令
LED_GRE_OFF();
gActivated = 0;
break;
}
}
else
{
if(res == NAME_ID)
{
PlayRespond(gTriggerRespond[random_no]);
gActivated = 1;
timeCnt = 0;
}
}
}
else if (gActivated)
{
if (++timeCnt > 450) //超出定时
{
PlayRespond(RSP_NOVOICE); //在设定时间内没有检测出声音
gActivated = 0;
timeCnt = 0;
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
yuyinshibie.rar_c 语音识别_特定人 识别_语音训练
共113个文件
48k:43个
res:27个
inc:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 6 浏览量
2022-09-20
20:49:47
上传
评论
收藏 365KB RAR 举报
温馨提示
本程序实现语音识别,程序中通过三条语句的训练演示特定人连续音识别,其中第一条语句为触发命令。在程序一开始为训练名称,即触发命令,然后提示训练两条命令,训练完毕开始辨识当识别出触发名称后,发布命令则控制相应的IO口
资源推荐
资源详情
资源评论
收起资源包目录
yuyinshibie.rar_c 语音识别_特定人 识别_语音训练 (113个子文件)
S12.24K 3KB
31.48k 5KB
41.48k 5KB
30.48k 5KB
RED_ON.48k 3KB
8.48k 3KB
RED_OFF.48k 3KB
GRE_OFF.48k 3KB
GRE_ON.48k 3KB
2.48k 2KB
18.48k 2KB
5.48k 2KB
4com.48k 2KB
6.48k 2KB
7.48k 2KB
3.48k 2KB
4.48k 2KB
1.48k 2KB
40.48k 2KB
14.48k 2KB
16.48k 2KB
15.48k 2KB
17.48k 2KB
11.48k 2KB
3Com.48k 2KB
12.48k 2KB
9.48k 1KB
10.48k 1KB
13.48k 1KB
diffcmds.48k 987B
different2.48k 915B
guardname.48k 843B
guardinit2.48k 753B
novoicedetected.48k 753B
standingby..48k 681B
noisy.48k 591B
onpatrol.48k 537B
sayagain.48k 483B
fire.48k 483B
copy.48k 465B
guard.48k 447B
ready.48k 429B
iamhere.48k 411B
master.48k 393B
guardSD.ary 2KB
hardware.asm 28KB
main.asm 22KB
Resource.asm 4KB
initIO.asm 1KB
fiq.asm 1KB
main.c 6KB
Device.env 2KB
guardSD.env 585B
hardware.h 6KB
bsrSD.h 3KB
a2000.h 1KB
s480.h 603B
guardSD.h 78B
hardware.inc 10KB
bsrSD.inc 3KB
a2000.inc 1KB
s480.inc 878B
Resource.inc 864B
sacmv26e.lib 238KB
bsrv222SDL.lib 59KB
guardSD.lik 5KB
main.lst 92KB
hardware.lst 55KB
fiq.lst 26KB
Resource.lst 9KB
initIO.lst 4KB
Makefile 8KB
guardSD.map 80KB
hardware.obj 44KB
main.obj 27KB
fiq.obj 25KB
Resource.obj 8KB
initIO.obj 7KB
guardSD.opt 916B
guardSD.rc 2KB
31_48k.res 5KB
FOUR_COM_48k.res 5KB
41_48k.res 5KB
THREE_COM_48k.res 5KB
RED_ON_48k.res 3KB
RED_OFF_48k.res 3KB
GRE_OFF_48k.res 3KB
GRE_ON_48k.res 3KB
2_48k.res 2KB
18_48k.res 2KB
5_48k.res 2KB
4com_48k.res 2KB
6_48k.res 2KB
7_48k.res 2KB
3_48k.res 2KB
40_48k.res 2KB
1_48k.res 2KB
4_48k.res 2KB
16_48k.res 2KB
15_48k.res 2KB
共 113 条
- 1
- 2
资源评论
JaniceLu
- 粉丝: 79
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功