帖子

[官方问题解答] java sdk常见问题分析解答

[复制链接]
  • TA的每日心情

    2017-6-30 17:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    3068342  楼主| hyq 发表于 2015-4-10 11:36:18 1#


    提示:Q(question)为常见问题;A(answer)为常见解答方法。
    Q1:集成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 所在目录为当前运行的目录:

    linux eclilpse 设置调试环境参数示例

    linux eclilpse 设置调试环境参数示例

    关于JNI的更多说明,请通过各大搜索引擎获取更多的资料。
    ------------------------------------------------------------------------------------
    Q2Java sdk是否可以实现Web形式?
    A:一般情况下是Java是适用web项目;不过功能都是基于本地的,比如本地写音频流识别、合成生成本地音频;即两个需要注意的问题,sdk无法直接录取到Web客户端声音进行听写或识别,也无法将合成的声音直接输出播放到Web客户端,所以一般推荐适用Web项目的还有讯飞云平台的flash sdk和html5 sdk;
    ------------------------------------------------------------------------------------
    Q3java sdk支持同时多路会话吗?
    A:不支持,sdk都是单路的,其它平台sdk也都是单路的。
    注意:多路并发运行会话会报20019的错误。
    ------------------------------------------------------------------------------------
    Q4:识别能支持多长的会话时间?
    A:无论是录音听写或是音频流听写,默认都是最长60秒,超过该时间长度会自行进行vad截断,只能以大音频进行分段,并分次以队列的方式进行识别。
    ------------------------------------------------------------------------------------
    Q5java sdk支持多少种音频格式,能否生成mp3格式的音频?
    A:目前sdk只支持采样率为16K或8K,采样精度为16位,单声道,字序为Little-Endian的 Windows pcm,暂不支持其它格式。
    ------------------------------------------------------------------------------------
    Q6java sdk能否直接使用音频文件进行听写或识别?
    A:可以。Sdk进行听写或识别的音频输入方式有两种,一种为通过实时录音方式,另一种为音频文件流写入方式;音频流文件写入方式使用sdk的writeAudio接口,具体使用方法的代码示例详见SDK中MscInvisibleDemo示例demo。
    ------------------------------------------------------------------------------------
    Q7java sdk合成功能否可以只生成合成的音频而不播放声音吗?
    A:可以,java sdk 1014版本中新的API接口synthesizeToUri(无声合成)正为该功能而生的,具体使用方法的代码示例详见SDK中MscInvisibleDemo示例demo。
    ------------------------------------------------------------------------------------
    Q8 sdk运行发生错误,如何打印或生成sdk的日志?
    A:1、打印控制台的日志:在代码中设置,Setting.setShowLog(true);
    2、生成log文件;将msc.cfg(cfg文件请与讯飞人员索取)配置文件放置在项目根目录下的msc文件夹下,重新运行项目即可;

     楼主| hyq 发表于 2015-4-10 11:36:46
    2#
    本帖最后由 hyq 于 2015-4-24 08:48 编辑

    沙发,自己先顶一个{:soso_e113:}再补充两条QA,各位开发的小伙伴请知悉噢~:
    Q9java sdk是否支持离线功能?
    Ajava sdk截止至 1014版本均不支持离线本地能力,后续会考虑开发并开放该功能,敬请期待。
    ------------------------------------------------------------------------------------
    Q10java sdk除了听写、识别、语义和合成,还支持什么语音技术能力?
    Ajava sdk截止至 1014版本目前均只具备上述所述功能,不过下一个版本会开放声纹功能,敬请期待。



    使用道具 举报 回复
    mqiezi_MM 发表于 2015-4-10 11:37:53
    3#
    {:soso_e179:}{:soso_e179:}
    使用道具 举报 回复
    chenbblei@163.c 发表于 2015-4-10 11:42:38
    4#
    为什么sdk只支持单路呢?
    使用道具 举报 回复
    jianhuang3@ifly 发表于 2015-4-10 11:43:21
    5#
    我顶顶顶
    使用道具 举报 回复
    栗子 发表于 2015-4-10 11:43:28
    6#
    {:soso_e163:}{:soso_e163:}{:soso_e163:}
    使用道具 举报 回复
    小西哥 发表于 2015-4-10 12:55:47
    7#
    支持!!! up !!
    使用道具 举报 回复
     楼主| hyq 发表于 2015-4-22 09:57:32
    8#
    本帖最后由 hyq 于 2015-4-22 10:45 编辑

    {:soso_e113:}
    使用道具 举报 回复
    泽美道 发表于 2015-10-13 12:41:16
    9#
    为什么合成的音频无法播放。。
    使用道具 举报 回复
    byboating 发表于 2015-10-23 10:33:40
    10#
    {:soso_e179:}谢谢
    使用道具 举报 回复