基于百度云AI-java开发语音识别demo
最近研究了一下百度云AI,和科大讯飞、阿里、腾讯,各大公司都提供了全面的ai接口和文档,对一位入门或者初学者来说挺好的,如果想深入研究的还可以直接翻源码学习。这里就简单写了一个语音识别的功能。后面会不断更新人脸识别等相关ai方面的东西。
首先,上百度云注册账号,然后再“人工智能”-“语音识别”下创建一个自己的应用,创建完后会得到,APPID,APIKEY,SERET KEY, 这几个熟悉对于一个经常写接口的人都应该会知道,是用来获取百度ai提供的token的,然后通过token才能方位百度云AI上面的相关接口。
接着,创建完用户后,就可以左边的下拉菜单中查找对应的技术文档,和下载SDK。
SDK,地址https://github.com/Baidu-AIP/java-sdk,目前版本是 4.8.0最新的,里面有相关源码。
继续,阅读完技术文档后,开始写demo,本人使用eclipse,创建maven项目,然后pom
文件引入百度ai包,
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.8.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.soundlibs</groupId>
<artifactId>mp3spi</artifactId>
<version>1.9.5.4</version>
</dependency>
</dependencies>
然后,创建demo 代码;
package com.ai.asr.util;
import org.json.JSONException;
import org.json.JSONObject;
import com.baidu.aip.speech.AipSpeech;
public class Sample2 {
//设置APPID/AK/SK
public static final String APP_ID = "你的 ID";
public static final String API_KEY = "你懂的";
public static final String SECRET_KEY = "你的";
private static final String testFileName = "C:\\Users\\johndgj\\Desktop\\20190101学习记录表\\test.pcm"; // 百度语音提供技术支持
public static void main(String[] args) {
// 初始化一个AipSpeech
AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);
// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
// 可选:设置代理服务器地址, http和socket二选一,或者均不设置
// client.setHttpProxy("proxy_host", proxy_port); // 设置http代理
// client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理
// 可选:设置log4j日志输出格式,若不设置,则使用默认配置
// 也可以直接通过jvm启动参数设置此环境变量
// System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties");
// 调用接口
JSONObject res = client.asr(testFileName, "pcm", 16000, null);
try {
System.out.println(res.toString(2));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
最后,跑一下,完成了
{
"corpus_no": "6728201278371111763",
"err_msg": "success.",
"err_no": 0,
"result": ["北京科技馆。"],
"sn": "285721224311566531434"
}
总结,这是比较简单的案例,想了解更深的,没有比研究源码更好的了。还有另外一个问题就是 现在的录音等文件都是 MP3,或MP4等其他格式的,要把这些转换成PCM文件,才能识别。后面会更新如果将MP3或其他文件转换为PCM,并进行识别。