离线识别功能总是返回网络错误2
porshcecai 发布于2016-07 浏览:3278 回复:18
0
收藏

离线语音识别一直返回网络错误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
个赞
共18条回复 最后由用户已被禁言回复于2022-04
#19c5812回复于2016-09

多谢反馈

0
#18porshcecai回复于2016-08

哦,我说呢,不在离线语法定义里的任何字都不能识别。多谢!明白了

0
#17c5812回复于2016-08

您好,


截止目前为止,以下三个文件,只支持在2.0.*版本使用,其中

s_1 基本指令的资源文件,只能识别文档中描述过的说法

s_2_inputmethod 离线输入法的资源文件,支持任意内容识别,即撰写

s_2_navi 导航模式的资源文件,也是撰写模式


从2.1.*版本开始,我们用基于语法的离线识别替代了以上基于资源的方式。优点是:使用离线时,要集成的文件体积大大减小(有原先的15M所见为3M),且支持基于离线的语义。缺点是:不再支持离线撰写

0
#16porshcecai回复于2016-08

有谁知道以前的常用离线资源文件s_1, s_2_inputmethod,s_2_navi的内容是什么?有办法能把这些导出到现在的grammer.bsg文件吗?还是它们的内容就是现在demo里的grammer.bsg里的内容?如果能导出到grammer.bsg文件里那么至少常用的离线识别可以不用自己去平台定义、导入导出

0
#15porshcecai回复于2016-08

还有另外一个问题咨询:

比如对于象“打电话给xxx”,“导航去xxx”这种指令xxx是不确定的,这个不可能列举在词条里,因为每个使用我app的人是不一样的,这种指令是不是只能在线识别?

0
#14c5812回复于2016-08

楼上正解,除了放到sd卡还可以放到assets目录,用assets:///your.bsg的格式访问。

0
#13porshcecai回复于2016-08

再分享:如下图所示,在里边定义自己的词条和语法(可以在里边测试,仔细看看这个网页),然后点那个保存,将保存到本地的bsg文件push到/sdcard/下,然后

intent.putExtra(Constants.EXTRA_GRAMMAR, "/sdcard/baidu_speech_grammar.bsg");

之后就能离线识别你自定义的语法了(参看我的music,不过还没太研究透)

0
#12porshcecai回复于2016-08

分享一下经验:离线确实支持(至少要在线一次让它下载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列表就没法办了。还需要试

0
#11porshcecai回复于2016-08

baidu的朋友帮看看,是不是因为这个?不过即使通过ping知道了openapi.baidu.com的IP地址(111.206.37.193  openapi.baidu.com),然后加入hosts,还是出现网络错误2,log看还是一样的错误

0
#10porshcecai回复于2016-08

没解决呢,SDK内部出的问题,完全不知道什么原因,期待内部人士来解答。Baidu的SDK可不怎么样

0
#9zeezee3回复于2016-08

请问你是怎么解决问题的

0
#8zeezee3回复于2016-08

也遇到了同样的问题 

0
#7porshcecai回复于2016-08

感觉设置应该都没有什么问题啊,见下图。传递的参数见上面的图


0
#6c5812回复于2016-08

要使用离在线功能(正式授权),请确保
1. 开放平台中已经绑定了包名
2. 程序的AndroidManifest.xml(如果是ios请参考文档查看设置方式)配置APP_ID
3. 不要设置临时授权路径

注意事项:
1. 离在线功能是指在线的一个补充,至少联网一次才能真正使用离线
2. 离线的参数配置比较复杂,务必参考文档和demo一步一步对比


0
#5porshcecai回复于2016-08

不设置lic file,结果是一样的


0
#4porshcecai回复于2016-08

是说intent里我不需要设置license-file-path参数?
intent.putExtra(license-file-path, "...")

0
#3c5812回复于2016-08

您好,不需要自己管理授权文件(lic文件)

0
#2porshcecai回复于2016-08


0
TOP
切换版块