使用语音识别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:\Users\Anna\.m2\repository\org\apache\maven\plugins ,果然没看到此包。幸好家里还有一个路由器,换了以下。然后把C:\Users\Anna\.m2\repository\里的内容全部清空,
重新打开工程编译,或者直接在\...\olami-java-client-sdk-master\olami-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-master\olami-java-client-sdk-master\examples\speech-input-example\src\main\java\ai\olami\example\util\Microphone.java和DataBuffer.java。
5 为录音数据添加wav头
直接录得音频数据必须加上WAV头才能送到sdk接口,加wav头的代码为
\\olami-java-client-sdk-master\olami-java-client-sdk-master\examples\speech-input-example\src\main\java\ai\olami\example\util\WaveFileWriter.java
6 将wav音频使用欧拉蜜语音识别平台识别
示例代码中的 \\olami-java-client-sdk-master\olami-java-client-sdk-master\examples\speech-input-example\src\main\java\ai\olami\example\SpeechInputExample.java。
代码下载:欧拉蜜语音识别JAVA SDK包实例源码
使用语音识别JAVA SDK 的MAVEN源代码制作语音控制智能家居Java APP-------MAVEN工程加载问题解决的更多相关文章
- Android开发SDK接入机智云,智能家居实现APP远程控制多设备
代码地址如下:http://www.demodashi.com/demo/12847.html 一.前言. 此框架只用了一周星期做了出来,因为对机智云的框架比较熟悉了 !期间SDK初始化出了问题,去咨 ...
- Java的cmd配置(也即Java的JDK配置及相关常用命令)——找不到或无法加载主类 的解决方法
Java的cmd配置(也即Java的JDK配置及相关常用命令) ——找不到或无法加载主类 的解决方法 这段时间一直纠结于cmd下Java无法编译运行的问题.主要问题描述如下: javac 命令可以正 ...
- ANDROID_MARS学习笔记_S04_009_用java.lang.ref.SoftReference作缓存,android.os.Handler和new Thread异步加载略图片
一.简介 二.代码流程 1.private Map<String, SoftReference<Drawable>> imageCache = new HashMap<S ...
- 项目上有红色感叹号, 一般就是依赖包有问题, remove依赖,重新加载,maven的也行可认删除,自己也会得新加载
项目上的红色叹号, 要下面提示: "Problems" 里的errors , 看是什么错误, 一般是由于网络等原因, 依赖没有下载完整, 只有文件名字对了, 内容不全, ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(13)、图层扩展方式加载Google地图
1.前言 http://mt2.google.cn/vt/lyrs=m@225000000&hl=zh-CN&gl=cn&x=420&y=193&z=9& ...
- 使用javassist运行时动态重新加载java类及其他替换选择
在不少的情况下,我们需要对生产中的系统进行问题排查,但是又不能重启应用,java应用不同于数据库的存储过程,至少到目前为止,还不能原生的支持随时进行编译替换,从这种角度来说,数据库比java的动态性要 ...
- Java 类在 Tomcat 中是如何加载的?
作者 :xingoo https://www.cnblogs.com/xing901022/p/4574961.html 说到本篇的Tomcat类加载机制,不得不说翻译学习Tomcat的初衷. 之前实 ...
- Q开头的类找不到,无法加载插件:com.mysema.maven:apt-maven-plugin
http://www.jspxcms.com/documentation/297.html 如果出现无法加载com.mysema.maven:apt-maven-plugin插件的情况,通常是由于ma ...
- jvm系列(一):java类的加载机制
java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...
随机推荐
- WCF学习——构建第二个WCF应用程序(四)
一.WCF服务端应用程序 1.创建WCF服务端应用程序项目 打开Visual Studio 2013,在菜单上点击文件->新建->项目->WCF服务应用程序.在弹出界面的" ...
- Linux 开机引导流程
Linux 开机启动流程 BIOS(Basic Input Output System)是 PC 机启动时加载的第一个软件.其实,它是一组固化到计算机主板上一个芯片上的程序,它保存着计算机最重要的输入 ...
- schema 对象的简单介绍
官方文档链接地址 http://docs.oracle.com/cd/E11882_01/server.112/e40540/tablecls.htm#CNCPT010 Introduction to ...
- 【Android Developers Training】 103. 查询当前地点
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Swift开发常用知识点
#pragma mark - as/类型转换as? / as! 需要根据前面的返回值决定 有?证明可选,可能为空:需要弱解包 没有?证明一定有值:大胆解包 as? 前面的结果是可选的 if let / ...
- nuget挂了吗?
[nuget.org] Unable to load the service index for source https://api.nuget.org/v3/index.json. 发送请求时出错 ...
- 手机端 图片的移动缩放旋转兼容touch
//缩放var initialScale = 1;var currentScale = 1;touch.on('#target', 'pinch', function (ev) { currentSc ...
- scrollMenu,一款可滚动的菜单插件 兼容pc和移动端
这个菜单 有两种样式 , 也可以通过animate.css加不同的动画效果!滚动的方式也有两种 一种为通用的overflow,另外一种是better-scroll的滚动效果 在线链接地址 ht ...
- [高并发]EntityFramework之高性能扩展
目录 简介 读写分离 指定字段更新 事务 Entity 简介 本EF扩展插件将持续更新:开源,敏捷,高性能.(由于EF Core暂未提供方便的钩子位置,暂无EF Core版本) EntityFrame ...
- //读取配置文件(属性文件)的工具类-ConfigManager
package com.pb.news.util; import java.io.IOException;import java.io.InputStream;import java.sql.Resu ...