使用语音识别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对象,用来封装 ...
随机推荐
- AngularJS的文字溢出处理
需求大致如图所示,由于本人也是新接触AngularJS,研究好久,制作了一个demo,代码如下: <!DOCTYPE html><html><head><me ...
- CentOS下安装php的mbstring扩展
php的mbstring扩展如果没有安装会导致一些问题: 例1:登陆phpMyAdmin的时候会提示没字符串编码和字符串处理库 php_mbstring,有些程序中会用到mb_substr函数没有ph ...
- Python进阶 - 命名空间与作用域
Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...
- 如何让局域网内的其他电脑访问本机的mysql
测试电脑:本机ip是125.216.250.67 其他电脑 125.216.250.68 第一步:先用其他电脑ping本机,看能否ping通 如上图即为成功ping通了 第二步:开放mysql的全向 ...
- 开源分享,使用Servlet实现360商城
简介 今天翻看硬盘,无意间看到这个项目的workspace,掀起了我无尽的回忆啊,一把辛酸一把泪. 现在把这个现在看来比较low的项目分享出来,也算记录下当初菜鸟的成长之路了,也希望能够对刚入门的朋友 ...
- PKM你的知识需要管理
有一段时间没有更新技术博客了~,大脑中总感觉有点东西要写,却不知道从哪里开始写~至少写点东西,也算是一个阶段的成长 学习(充电过程).工作(知识变现过程)不是简单重复,永远都是最值得去反思.玩味的事儿 ...
- 使用镜像仓库托管自己构建的Docker镜像
自己构建的Docker镜像,默认存储在本机中,Docker有提供某些方式分享这些镜像,但不是主流的镜像分享方式,也有违于开源社区的共享精神. 本文介绍如何使用GitHub托管Dockerfile:使用 ...
- voa 2015 / 4 / 15
illustrated - v. to explain or decorate a story, book, etc., with pictures pediatrician – n. a docto ...
- IT行业歧视40岁以上人群为找工作还要谎报年龄[转]
IT行业歧视40岁以上人群为找工作还要谎报年龄(这样不好) http://www.aliyun.com/zixun/content/2_6_616161.html [赛迪网讯]4月5日消息,许多40多 ...
- 利用base64函数,对文件进行转码加密
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的内容就是通过base64转码后传输的.Base64-encoded后, 数据要比原始数据多占用 33% 左右的空间. ...