文档章节

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

时光不再
 时光不再
发布于 2017/02/14 16:20
字数 839
阅读 367
收藏 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
昌平
程序员
私信 提问
传译员揭发科大讯飞AI同传翻译造假:官方回应

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

快科技
09/21
0
0
TokuDB · 引擎特性 · REPLACE 语句优化

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

阿里云RDS-数据库内核组
2016/08/07
0
0
“人机耦合”变成“人机大战” AI同传离成熟还有多远

来源:科学网 9月21日,一篇指责科大讯飞“AI同传造假”的文章引发了社会广泛关注,文中知乎用户、同传译员Bell Wang表示,在日前举行的2018创新与新兴产业发展国际会议上,科大讯飞在现场和...

人工智能学家
10/01
0
0
科大讯飞AIUI3.0带来三大革新,还有一份免费的“厚礼”

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

包永刚
05/18
0
0
眼下主业盈利渺茫 科大讯飞能否敲破坚冰

(原标题:眼下主业盈利渺茫 科大讯飞能否敲破坚冰) 问题缠身的科大讯飞(002230.SZ)并没有交出一份令投资者满意的三季报。多位分析师对《投资者报》记者说,科大讯飞面临的更大挑战是公司...

投资者报
11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

当程序员有了中年危机 你会发现你就是个屁

前言 程序员是一个怎样的存在?引用一句鸡汤的名言来说:你以为你用双手改变了世界,实际上是苍老了自己。为什么我今天会抛出这个话题,其实我也是一个懵懂的少年,我也曾经为了成为一名程序...

架构师springboot
30分钟前
3
0
大型网站B2C商城项目实战+MongoDB+Redis+zookeeper+MySQL

本文列出了当今计算机软件开发和应用领域最关键部分,如果你想保证你现在以及未来的几年不失业,那么你最好跟上这些技术的发展。虽然你不必对这十种技术样样精通,但至少应该对它们非常熟悉。...

java知识分子
30分钟前
2
0
大型企业网络系统集成方案如何设计?

网络系统集成是企业实现无纸化办公和即时通讯办公的基础建设,在以生产效率为核心竞争力的市场中,企业想要快速获取信息并有效提高企业工作效率及业务能力,企业网络系统集成是必不可少的,由...

Java干货分享
31分钟前
1
0
Spring应用学习——IOC

1. Spring简介 1. Spring的出现是为了取代EJB(Enterprise JavaBean)的臃肿、低效、脱离现实的缺点。Spring致力于J2EE应用的各层(表现层、业务层、持久层)的解决方案,Spring是企业应用开...

江左煤郎
32分钟前
1
0
用Redis轻松实现秒杀系统

导论 曾经被问过好多次怎样实现秒杀系统的问题。昨天又在CSDN架构师微信群被问到了。因此这里把我设想的实现秒杀系统的价格设计分享出来。供大家参考。 秒杀系统的架构设计 秒杀系统,是典型...

James-
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部