zoukankan      html  css  js  c++  java
  • 使用语音识别JAVA SDK 的MAVEN源代码制作语音控制智能家居Java APP-------MAVEN工程加载问题解决

     一直想做一个可以录音的可执行JAVA APP,实现自然语言对话。

    第一步就是实现把录音转成语义,比如你对着话筒说"你好",你获取回答相应的回复。你对着话筒说“今天的天气”,能够回复你今天的天气,或者至少告诉你,你输入的语句含义是“查今天的天气”。

    我决定用欧拉蜜语义开放平台的内置功能------智能对话模块做一个实验。

    代码下载:JAVA SDK--windows录音+语音识别实例源码

    源码解析

    1. 在欧拉蜜开放平台上注册,然后进入创建自己的应用,并在该应用中配置模块nonsense.

    在这里不具体介绍欧拉蜜开发平台的使用知识,可参考用欧拉蜜语言开发平台实现智能客服开发攻略

    个人小程序实现自然语言对话代码解析

    2. 下载JAVA SDK 

    https://cn.olami.ai/wiki/?mp=sdk&content=sdk/java/reference.html

    直接下载maven工程java sdk的源代码,这样可以了解一下例子中是如何调用SDK的。

    把解约后的olami-java-client-sdk-master文件夹放在你希望放置maven工程的地方,另外确认你的JDK和MAVEN函数已经安装好,我使用的是JDK1.8和MAVEN 3.5, eclipse使用luna版本,打开工程之后,import maven工程


    然后错误出现了:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:jar (attach-javadocs) on project langpack: MavenReportException: Error while creating archive:
    [ERROR] Exit code: 1 - java.lang.StringIndexOutOfBoundsException: String index out of range: 50
    [ERROR] at java.lang.String.substring(String.java:1907)
    [ERROR] at sun.net.www.ParseUtil.unescape(ParseUtil.java:164)
    [ERROR] at sun.net.www.ParseUtil.decode(ParseUtil.java:200)
    [ERROR] at sun.misc.URLClassPath$FileLoader.<init>(URLClassPath.java:1016)
    [ERROR] at sun.misc.URLClassPath$3.run(URLClassPath.java:357)
    [ERROR] at sun.misc.URLClassPath$3.run(URLClassPath.java:352)
    [ERROR] at java.security.AccessController.doPrivileged(Native Method)
    [ERROR] at sun.misc.URLClassPath.getLoader(URLClassPath.java:351)


    我尝试了以下方法:

    ------把JDK修改为1.7版本

    ------把MAVEN版本修改成3.0版本

    ------把eclipse的eclipse.ini -Xmx 改小

    ------把eclipse的java环境,window->preferences->java->install JREs 修改为JDK 文件包

    ------检查pom.xml的配置,务必添加:

    <configuration>					
    <additionalparam>-Xdoclint:none</additionalparam>					
    </configuration>


    反正能测试的方式统统试了,没有用。然后使用公司的电脑,同样的配置,没有任何问题。 

    后来想是不是我的路由器问题,导致包没有下好,因为我是maven菜鸟啊,开始不知道还有包地址可以查询,于是我按照报错的地址,在我的maven本地工程里找:

    C:UsersAnna.m2 epositoryorgapachemavenplugins  ,果然没看到此包。幸好家里还有一个路由器,换了以下。然后把C:UsersAnna.m2 epository里的内容全部清空,

    重新打开工程编译,或者直接在...olami-java-client-sdk-masterolami-java-client-sdk-master 的路径下使用控制台运行mvn install -P all ,整个SDK包就可以运行正常。

    所以很多网友说的jdk1.8不支持maven,这种说法是错的,

    后面我又有eclipse 的neno版本进行测试,仍然可以正常使用。我想公司的电脑之所以好用,应该是网络可以下载正常。如果你的网不好用,可以在maven配置里设置代理。

     3.  运行sdk 源代码里的例子

    因为我要测试语音识别,所以选择例子 speech-input-example,直接把SpeechInputExample.java里的appKey和appSerect替换成欧拉蜜平台上自己创建应用的值即可,然后在文件中右键run as->java Application ,   就可以看到输出了。

    这个输出的音频源是工程下面的sample.wav. 你可以点开听一听,内容是"你好"。

    这个例子展示的是如何将一个完整的wav通过欧拉蜜java sdk转化为语义的过程。

    4 windows平台使用java代码进行录音:

       实现功能:在java应用程序中调用windows环境的麦克风进行录音,根据欧拉蜜语音识别录音要求 ,wav格式的音频要求WAV 格式的 PCM 录音数据,单声道(mono)、16K 采样率(16 KHz Sample Rate)、16 bits 位深(Bit Resolution)。

       代码是示例代码中的

    \olami-java-client-sdk-masterolami-java-client-sdk-masterexamplesspeech-input-examplesrcmainjavaaiolamiexampleutilMicrophone.java和DataBuffer.java。

    5 为录音数据添加wav头

       直接录得音频数据必须加上WAV头才能送到sdk接口,加wav头的代码为

    \olami-java-client-sdk-masterolami-java-client-sdk-masterexamplesspeech-input-examplesrcmainjavaaiolamiexampleutilWaveFileWriter.java

    6 将wav音频使用欧拉蜜语音识别平台识别

       示例代码中的 \olami-java-client-sdk-masterolami-java-client-sdk-masterexamplesspeech-input-examplesrcmainjavaaiolamiexampleSpeechInputExample.java。

    代码下载: 欧拉蜜语音识别JAVA SDK包实例源码 

  • 相关阅读:
    2014复习提纲
    string库与char[]
    扩展欧几里得算法及其应用
    1002 [FJOI2007]轮状病毒
    node源码详解(三)—— js代码在node中的位置,process、require、module、exports的由来
    node源码详解(二 )—— 运行机制 、整体流程
    node源码详解 (一)
    html 第一天随记(个人不常用的标签)
    Siebel电信业务流程
    Siebel层次架构
  • 原文地址:https://www.cnblogs.com/huangmeimao/p/7301456.html
Copyright © 2011-2022 走看看