讯飞语音命令词离线识别,离线听写demo修改

http://open.voicecloud.cn/http://open.voicecloud.cn/

可以到平台上下载demo

1:demo 中有两个开发包,主要用的是msc.jar

默认的实现的听写是在线的,修改成离线的需要在

IatDemo类中找到并在else中加入绿色的参数,同时在onresult方法内把结果打印

// 开始听写
case R.id.iat_recognize:
.....
if (isShowDialog) {}else{

// 不显示听写对话框
mIat.setParameter(SpeechConstant.LOCAL_GRAMMAR, "sms.irf");
mIat.setParameter(SpeechConstant.ENGINE_TYPE, "local");

   ret = mIat.startListening(recognizerListener);


操作:运行apk 进入听写界面,点击右上角的设置图标,在设置界面将显示听写界面复选框去掉,返回即可,在听写结束后通过log查看结果,(针对离线模式)

2.命令词识别,开发中用得到的还是离线模式,所以在demo中如果想要写自己的命令词,可assets目录在创建grammar_main.bnf(离线的命令词写法),后面会附上测试的语法命令,在AsrDemo类中将改成mLocalGrammar = FucUtil.readFile(this, "grammar_main.bnf", "utf-8"); 我们编写好的文法文件。

mAsr.setParameter(SpeechConstant.GRAMMAR_LIST, "test"); //对应文法中的test 名称

// 设置本地识别使用语法id
mAsr.setParameter(SpeechConstant.LOCAL_GRAMMAR, "test");//对应文法中的test 名称

以下为grammar_main.bnf 文件,可以实现多个命令一起生成,不像demo中的只生成一个一个命令

#BNF+IAT 1.0 UTF-8;
!grammar test;
!slot <cmdleft>; 
!slot <cmdright>;
!slot <cmdfront>;
!slot <cmdback>;
!slot <cmdstop>;
!slot <cmdbegin>;
!slot <cmdpause>;
!slot <cmdrestart>;
!slot <optsend>;
!slot <optcancel>;


!start <mainaction>;
<mainaction>:<cmdactionleft>|<cmdactionright>|<cmdactionfront>|<cmdactionback>|
<cmd1>|<cmd2>|<cmd3>|<cmd4>|<smsaction2>|<smsaction3>;
<cmdactionleft>:<cmdleft>;
<cmdactionright>:<cmdright>;
<cmdactionfront>:<cmdfront>;
<cmdactionback>:<cmdback>;
<cmd1>:<cmdstop>;
<cmd2>:<cmdbegin>;
<cmd3>:<cmdpause>;
<cmd4>:<cmdrestart>;


<smsaction2>:<optsend>;
<smsaction3>:<optcancel>;


<cmdleft>:左转;
<cmdright>:右转;
<cmdfront>:前进;
<cmdback>:后退;
<cmdstop>:停止;
<cmdbegin>:开始;
<cmdpause>:暂停;
<cmdrestart>:再来一遍;


<optsend>:确定|确认|发送|接受|发送短信|短信发送|左转;
<optcancel>:取消|不发送|别发送|取消发送|取消发送短信;



操作:运行apk 进入命令词识别界面,单选框本地语法,之后构建语法,如果成功就可以开始识别了。。。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值