讯飞语音命令词离线识别,离线听写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
!slot ;
!slot ;
!slot ;
!slot ;
!slot ;
!slot ;
!slot ;
!slot ;
!slot ;


!start ;
:||||
|||||;
:;
:;
:;
:;
:;
:;
:;
:;


:;
:;


:左转;
:右转;
:前进;
:后退;
:停止;
:开始;
:暂停;
:再来一遍;


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



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

你可能感兴趣的:(android)