文档章节

调用科大讯飞语义识别报20021,引擎错误处理

时光不再
 时光不再
发布于 2017/02/14 16:20
字数 839
阅读 376
收藏 0

      科大讯飞语义识别,需要依赖 msc32.dllmsc64.dlllibmsc32.solibmsc64.so 四个文件(Windows下为msc32.dll或msc64.dll文件,Linux下libmsc32.so或libmsc64.so文件)。报【20021引擎错误】,很可能就是缺少这四个依赖文件或者依赖文件没有正常加载。

        关于集成科大讯飞语音SDK后报错 20021引擎错误  ,在官网也有相关说明,不过个人感觉说的相对比较繁琐,尤其是针对linux平台的说明。下面是个人感觉比较简单的解决方式,在文后会附上官网的说明。

-------------------个人觉得比较简单的解决方式----------------------

        1、windows平台:找到对应的tomcat文件夹,放到该tomcat的 bin 文件夹中。

        2、linux32位平台:找到依赖的JDK文件夹,放到该JDK文件夹中的 jre>lib>amd32 文件夹中。

        3、linux64位平台:找到依赖的JDK文件夹,放到该JDK文件夹中的 jre>lib>amd64 文件夹中。

-------------------官网针对错误20021的相关说明-------------------

Q:集成sdk后运行,出现java.lang.Unsatisfie.lang.UnsatisfiedLinkError no injava.library.path,或报20021的错误?
A:Java SDK 使用了 JNI 形式,在初始化 SDK 时,SDK 将加载共享库(Windows下为msc32.dll或msc64.dll文件,Linux下libmsc32.so或libmsc64.so文件),报错是因为系统找不到共享库。

一般来说,在 Windows 下,系统加载共享库时的优先级将按以下的顺序:

1,应用的当前运行目录;

2,由系统环境参数 Path 指定的目录;

3,System32 目录;

而在Linux下,系统加载共享库时的优先级将按以下顺序:

1,LD_LIBRARY_PATH指定的目录;

2,/lib/ 和 /lib64/ 目录;

根据上面:

在Windows下,把 dll 文件,放在应用的当前运行目录(一般为应用所在的目录),或在 Path 把 dll 所在目录加入此环境参数中,或者把dll复制到 System32 目录(不建议);

在Linux下,则把 .so 所在目录,通过 export 加入 LD_LIBRARY_PATH 中(在Terminal或在“.bashrc”等启动时会加载的脚本中),或把 .so 文件复制到 lib 文件夹中(不建议);(另外,确保linux的glibc版本为2.11以上;可以执行命令 ldd  libmsc32.so <如64位系统,则命令为 ldd libmsc64.so>,如果有执行结果有`GLIBC_2.11' not found,则需要把 glibc 版本升级到2.11版)

◆一般来说,web项目的当前运行目录,并不项目的根目录,而是由tomcat等 server 指定的目录。所以具体当前运行目录应视 server 而定——即使在 windows 下,也不能把dll文件简单的放在项目根目录下就完事。同时,根据 server 把库文件配置好后,应重启 WebServer 才会生效。

另外,在 Linux 下 eclipse 调试时,可能通过Terminal 来 export LD_LIBRARY_PATH  并不起作用,此时,因为运行的调试环境不在 Terminal 中,需要在项目属性中,设置调试和运行的环境参数,在其中,增加 LD_LIBRARY_PATH ,并指定 so 文件所在的目录,如下图为指定 so 所在目录为当前运行的目录:

错误20021

关于JNI的更多说明,请通过各大搜索引擎获取更多的资料。

附:官网说明地址链接:http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=9864

© 著作权归作者所有

共有 人打赏支持
时光不再
粉丝 0
博文 4
码字总数 3358
作品 0
昌平
程序员
私信 提问
柳传志、李开复谈科大讯飞和语音识别那些事儿

3 月 22 日下午,科大讯飞在北京国家会议中心发布新一代“语音云”平台,“捎带”发布了“中文版 Siri ”应用讯飞语点。 这里用“捎带”形容现场的情况是最恰当的:科大讯飞 CEO 刘庆峰作完演...

虫虫
2012/03/23
4.5K
11
传译员揭发科大讯飞AI同传翻译造假:官方回应

众所周知,在不同语言的翻译中,同声传译是最难的,机器很难做到。如今随着AI的兴起,人工智能真的能做到的同声传译了吗?日前,有同声传译员在知乎爆料称,在近期举办的一场国际会议上,科大...

快科技
2018/09/21
0
0
科大讯飞“AI同声传译”项目涉嫌造假,翻译结果实际是人工翻译

注:本文原作者在原文中已标注,文章可以随意转载,无版权限制 科大讯飞,你的AI同传操(qi)作(zha)能更风骚一点吗 2018.9.20 今天一早来到国际会议中心,本以为just another day in the...

韦小仇
2018/09/21
0
0
TokuDB · 引擎特性 · REPLACE 语句优化

背景 MySQL 在标准 SQL 外,会扩展一些好用的语法,本文关注的 REPLACE 和 INSERT IGNORE 就属于这类。这 2 个语法都是对 INSERT 的扩展,语义是向表中插入数据,不同之处在于遇到 PK 或者 ...

阿里云RDS-数据库内核组
2016/08/07
0
0
科大讯飞AIUI3.0带来三大革新,还有一份免费的“厚礼”

5月17日,科大讯飞在深圳举办了名为「AI·飞无界」的新品发布会。三年前,科大讯飞首次将AIUI推向市场,去年AIUI开放平台的发布,那么今年的AIUI3.0将有哪些值得期待的革新?另外,发布会上还...

包永刚
2018/05/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql 查询当天、本周,本月,上一个月的数据

今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1 近7天 SELECT * FROM 表名 wher......

BraveLN
51分钟前
2
0
Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构

前面几节中,都是通过java层调用到jni中,jni向下到c++层并未介绍 看下Java层一个方法在c++层 MediaPlayer后续过程 frameworks/av/media/libmedia/MediaPlayer.cpp 找一个我们之前熟悉的setDa...

天王盖地虎626
今天
2
0
【Linux】【MySQL】CentOS7安装最新版MySQL8.0.13(最新版MySQL从安装到运行)

1、前言   框框博客在线报时:2018-11-07 19:31:06   当前MySQL最新版本:8.0.13 (听说比5.7快2倍)   官方之前表示:MySQL 8.0 正式版 8.0.11 已发布,MySQL 8 要比 MySQL 5.7 快 2 ...

Code辉
今天
3
0
oracle dg备库重建redolog:ora-00313,ora-00312

trace文件: Errors in file /crbank/dbs/app/product/diag/rdbms/rdbs/dbs/trace/dbs_mrp0_24445130.trc: ORA-00313: open failed for members of log group 8 of thread 1 ORA-00312: onl......

hnairdb
今天
1
0
深入分析Java I/O的工作机制 (一)

1.Java的I/O类库的基本架构 先说一下什么是类库:可以说是类的集合,类库包括接口、抽象类、具体类等。 I/O是机器获取和交互信息的主要渠道。 java在I/O上也一直在做持续的优化,在1.4版开始...

java菜分享
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部