//-----------------This is the main program of Snoopy project---------------------------
//--Copyright(C) 2001, Cyberon Corp.
//该程序是非特定人语音识别程序,原来在SPCE500A下运行,能识别并应答16个命令,存储空间为128K字节。
//我们将其进行了修改,使其能在SPCE061A下运行,由于存储空间为32K字,只能识别并应答9个命令。
//在这个例程当中,我们示范了如何使用语音识别引擎对8个已经经过训练的命令进行识别。
//第一个命令 "Snoopy",可以作为使能命令,也就是说使用者只能在该命令之后发出其他命令。
//例如,用户只有在发出 "Snoopy"命令并且听到响应"Snoopy here"之后才能继续下达其他命令
//如"How are you", "I love you",等等。
//当"Snoopy"命令响应之后,程序将等待8秒钟,如果没有其他命令发出,
//系统将跳回到第0组,并且再次等待触发命令"Snoopy"。当用户的命令无法被识别时,
//程序将响应为"Execuse me?", "I can't hear you!"或 "Say again!"这时用户可以再一次下达语音命令。
// Snoopy Group Response phrase
// ------------------------------------------------------------------------
// Snoopy Snoopy here
// How are you I'm fine!
// I love you I love you too!
// Goto sleep ZZZzzzzz....(Snore)
// Let's play Snoopy loves to play!t4
// Sing a song lala..la...
// Merry Christmas Merry Christmas!
// Happy new year Happy New Year!
#include "bsr.h"
//...............available commands.........................
#define SNOOPY 1
#define WHAT 0
#define EXCUSEME 9
void PlayRespond(int Result)
{
BSR_StopRecognizer();//停止识别,进入响应部分
SACM_A2000_Initial();//初始化语音播放
if (Result>5) Result-=1;//跳过第5个命令(该命令训练失效
if (Result>9) Result=9;//当反应的结果数超过所知结果时,停止在提问状态。
SACM_A2000_Play(Result);//播放对应的语音响应
while(SACM_A2000_Status() != 0)
{
SACM_A2000_ServiceLoop();
}
SACM_A2000_Stop();//停止播放
BSR_InitRecognizer();//启动语音识别
}
int gActivated = 0;
//这个变量用来确定系统是否已经被触发,当被触发时,该变量为1.
int gWhatCount = 0;
//用来计量系统已经存在几个"What?" 响应.如果响应多于3个,系统将对"What?" 响应
//进行屏蔽,直到有一个系统能够识别的命令为止.这可以防止噪音的干扰.
extern void InitIO(void);
int main()
{
int res,score,unknown=0;
int TimeCount = 0;
InitIO();
BSR_SelectGroup(0); //找到第一个语音命令组
BSR_InitRecognizer(); //初始化语音识别器
PlayRespond(1); //播放"Snoopy is here"
BSR_EnableCPUIndicator(); //启动实时监控
while(1)
{
res = BSR_GetResult();//获得识别结果
if(res!=0 && res!=-1)
{
if(res == -2)
{ //当语音被拒绝识别时,res为-2.通过获得识别码判断是否为一个命令.
score = BSR_GetRecognizerScore();
if(score >= -60)
{
//判断已经出现几个不可识别的命令
if(gWhatCount < 3)
{
gWhatCount ++;
PlayRespond(EXCUSEME);
unknown ++;
if(unknown >= 3) unknown = 0;
TimeCount = 0; // Reset TimeCount
}
}
}
else
{
gWhatCount = 0;//清除无法识别命令记数器
if(gActivated)
{
PlayRespond(res);
}
else
{
if(res == SNOOPY)//触发命令,激活系统
{
PlayRespond(res);
gActivated = 1;
}
}
TimeCount = 0; // Reset TimeCount
}
}
else if (gActivated)
{
if (++TimeCount > 500) //如果在触发命令之后8秒之内并没有一个
//有效命令出现,则进入休眠状态
{
PlayRespond(WHAT);
TimeCount = 0;
gActivated = 0;
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
unSP IDE的项目文件,实现非特定语音识别机器人的功能。机器人名为Snoopy。加上喇叭,下载到61开发板就可用,很好玩。 // 语音命令 回答 // ------------------------------------------------ // Snoopy Snoopy here // How are you I'm fine! // I love you I love you too! // Goto sleep ZZZzzzzz....(Snore) // Let's play Snoopy loves to play!t4 // Sing a song lala..la... // Merry Christmas Merry Christmas! // Happy new year Happy New Year!
资源详情
资源评论
资源推荐
收起资源包目录
凌阳61A的非特定语音识别例子.rar (41个子文件)
10-1snoopy
_SIMODEL.ASM 2KB
_SIGROUP.LIB 17KB
A2000.H 562B
BSR.H 2KB
HARDWARE.ASM 17KB
Snoopy.scs 1KB
BSR.INC 2KB
Snoopy.spj 3KB
InitIO.asm 450B
Resource.asm 2KB
Resource.inc.bak 1KB
Snoopy.lik 4KB
snoopy.c 3KB
snoopy.c.bak 3KB
Snoopy.set 757B
A2000.INC 888B
Snoopy.env 542B
Voice
C2.24K 2KB
ZZZ.24K 5KB
C7.24K 3KB
ANY.24K 3KB
C8.24K 3KB
C10.24K 2KB
C1.24K 2KB
C15.24K 3KB
C6.24K 4KB
C3.24K 3KB
C9.24K 3KB
PWM.WAV 44B
Resource.inc 993B
Debug
Snoopy.rc 1KB
FIQ.ASM.bak 1KB
Resource.h 80B
Release
HARDWARE.INC 9KB
Device.env 3KB
Snoopy.opt 612B
Makefile 5KB
sacmV17a.lib 178KB
BSRV215.LIB 45KB
FIQ.ASM 1KB
www.pudn.com.txt 218B
共 41 条
- 1
hy7607
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2