离线语音识别一直返回网络错误2,参数设置:
intent.putExtra(Constants.EXTRA_KEY, xxx);intent.putExtra(Constants.EXTRA_SECRET, xxx);
intent.putExtra(Constants.EXTRA_SAMPLE, Constants.SAMPLE_16K);
intent.putExtra(Constants.EXTRA_LANGUAGE, "cmn-Hans-CN");
intent.putExtra(Constants.EXTRA_GRAMMAR, "assets:///baidu_speech_grammar.bsg");
第一次用在线识别,没问题,adb shell进手机看lic文件已经下载。切断网络,把lic文件路径写入程序,adb install -r重新安装,识别返回网络错误2。
用百度语音识别demo程序离线有同样问题
收藏
点赞
0
个赞
请登录后评论
TOP
切换版块
多谢反馈
哦,我说呢,不在离线语法定义里的任何字都不能识别。多谢!明白了
您好,
截止目前为止,以下三个文件,只支持在2.0.*版本使用,其中
s_1 基本指令的资源文件,只能识别文档中描述过的说法
s_2_inputmethod 离线输入法的资源文件,支持任意内容识别,即撰写
s_2_navi 导航模式的资源文件,也是撰写模式
从2.1.*版本开始,我们用基于语法的离线识别替代了以上基于资源的方式。优点是:使用离线时,要集成的文件体积大大减小(有原先的15M所见为3M),且支持基于离线的语义。缺点是:不再支持离线撰写
有谁知道以前的常用离线资源文件s_1, s_2_inputmethod,s_2_navi的内容是什么?有办法能把这些导出到现在的grammer.bsg文件吗?还是它们的内容就是现在demo里的grammer.bsg里的内容?如果能导出到grammer.bsg文件里那么至少常用的离线识别可以不用自己去平台定义、导入导出
还有另外一个问题咨询:
比如对于象“打电话给xxx”,“导航去xxx”这种指令xxx是不确定的,这个不可能列举在词条里,因为每个使用我app的人是不一样的,这种指令是不是只能在线识别?
楼上正解,除了放到sd卡还可以放到assets目录,用assets:///your.bsg的格式访问。
再分享:如下图所示,在里边定义自己的词条和语法(可以在里边测试,仔细看看这个网页),然后点那个保存,将保存到本地的bsg文件push到/sdcard/下,然后
intent.putExtra(Constants.EXTRA_GRAMMAR, "/sdcard/baidu_speech_grammar.bsg");之后就能离线识别你自定义的语法了(参看我的music,不过还没太研究透)
分享一下经验:离线确实支持(至少要在线一次让它下载License),但是目前试出来只支持离线指令包文件里的语法。下面是baidu SDK解析出来的离线指令包里的语法 (name这一节是通过slot添加的,appname以下似乎都是bsg里内建的):
#3263 easrNativeJni calling KWSInitial(" = 李涌泉 |
08-21 14:39:04.333 2625 2642 I jni_easr: 郭下伦 |
08-21 14:39:04.333 2625 2642 I jni_easr: 占位符 ;
08-21 14:39:04.333 2625 2642 I jni_easr:
08-21 14:39:04.333 2625 2642 I jni_easr: = 微信|
08-21 14:39:04.333 2625 2642 I jni_easr: 百度地图|
08-21 14:39:04.333 2625 2642 I jni_easr: 短信|
08-21 14:39:04.333 2625 2642 I jni_easr: 计算器;
08-21 14:39:04.333 2625 2642 I jni_easr: = 词条默认值;
08-21 14:39:04.333 2625 2642 I jni_easr: = 查看未读短信;
08-21 14:39:04.333 2625 2642 I jni_easr: <_wakeup> = 唤醒词占位符;
08-21 14:39:04.333 2625 2642 I jni_easr:
08-21 14:39:04.333 2625 2642 I jni_easr:
08-21 14:39:04.333 2625 2642 I jni_easr: _SCENE_ID_ 0
08-21 14:39:04.333 2625 2642 I jni_easr:
08-21 14:39:04.333 2625 2642 I jni_easr: ( )
08-21 14:39:04.333 2625 2642 I jni_easr:
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup> )
08-21 14:39:04.333 2625 2642 I jni_easr:
08-21 14:39:04.333 2625 2642 I jni_easr: ( 打电话给 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>打电话给 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 打给 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>打给 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 呼叫 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>呼叫 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 给打电话 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>给打电话 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 查看的电话号码 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>查看的电话号码 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 查看 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>查看 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 新建联系人 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>新建联系人 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 删除的联系方式 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>删除的联系方式 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 发短信给 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>发短信给 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 发短信给内容是 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>发短信给内容是 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 打开 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>打开 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 启动 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>启动 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 搜索 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>搜索 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( 下载 )
08-21 14:39:04.333 2625 2642 I jni_easr: ( <_wakeup>下载 )
这里边的语法似乎都可以离线被识别,比如name slot里如果put了“张三”,那么离线的时候说“打电话给张三”、“发短信给张三”、“打开张三”、“打开微信”、“打开计算器”都可以识别。但是现在有两个问题:
1 怎么把自己的语法加入到里边,比如播放音乐什么的语法这儿就没有就不行。可能需要通过网页端的设置里的上传自定义文件,这个还得试
2 name的列表难道一定要通过slot添加才能离线识别?那不同的人有不同的name列表就没法办了。还需要试
baidu的朋友帮看看,是不是因为这个?不过即使通过ping知道了openapi.baidu.com的IP地址(111.206.37.193 openapi.baidu.com),然后加入hosts,还是出现网络错误2,log看还是一样的错误
没解决呢,SDK内部出的问题,完全不知道什么原因,期待内部人士来解答。Baidu的SDK可不怎么样
请问你是怎么解决问题的
也遇到了同样的问题
感觉设置应该都没有什么问题啊,见下图。传递的参数见上面的图
注意事项:
1. 离在线功能是指在线的一个补充,至少联网一次才能真正使用离线
不设置lic file,结果是一样的
是说intent里我不需要设置license-file-path参数?
intent.putExtra(license-file-path, "...")
您好,不需要自己管理授权文件(lic文件)