最近在弄语音识别这块,然后就看了下百度的语音识别:

这里介绍了使用java实验语音识别。首先你需要的东西:

1、一个pcm或这个wav格式的语音文件(我使用的是官网提供的案列16k.pcm)点击下载。

2、准备sdk包(将这个包的jar包通过build path附上就可以)点击下载;

3、需要在百度云上申请一个百度语音的项目,然后将apikey和secretkey复制到项目中。

注意的是:如果我的语音文件是16k的,rate就是16000,8k的rate就是8000(可以参考官方文档).cuid填本机mac地址就可以了,这个值没有什么要求,我用的就是sercretkey。

下面代码:

package test;import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;import javax.xml.bind.DatatypeConverter;import org.json.JSONObject;public class demo2 {  private static final String serverURL = "http://vop.baidu.com/server_api";  private static String token = "";  private static final String testFileName = "D:\\workspace\\test2\\src\\16k.pcm"; // 百度语音提供技术支持  //put your own params here  // 下面3个值要填写自己申请的app对应的值  private static final String apiKey = "jrDWBaBvmhPBYQRjlT7Fk1yk";  private static final String secretKey = "wI2MZhBGKthjBFdyo1miAFsforCesYbX";  private static final String cuid = "wI2MZhBGKthjBFdyo1miAFsforCesYbX";  public static void main(String[] args) throws Exception {  getToken();  method1();  method2();  }  private static void getToken() throws Exception {  String getTokenURL = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials" +   "&client_id=" + apiKey + "&client_secret=" + secretKey;  HttpURLConnection conn = (HttpURLConnection) new URL(getTokenURL).openConnection();  token = new JSONObject(printResponse(conn)).getString("access_token");  System.out.println(token);}  private static void method1() throws Exception {  File pcmFile = new File(testFileName); System.out.println(pcmFile.exists());HttpURLConnection conn = (HttpURLConnection) new URL(serverURL).openConnection();  // construct params  JSONObject params = new JSONObject();  params.put("format", "pcm");  params.put("rate", 16000);  params.put("channel", "1");  params.put("token", token);  params.put("lan", "zh");  params.put("cuid", cuid);  params.put("len", pcmFile.length());  params.put("speech", DatatypeConverter.printBase64Binary(loadFile(pcmFile)));  // add request header  conn.setRequestMethod("POST");  conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");  conn.setDoInput(true);  conn.setDoOutput(true);  // send request  DataOutputStream wr = new DataOutputStream(conn.getOutputStream());  wr.writeBytes(params.toString());  wr.flush();  wr.close();  printResponse(conn);  }  private static void method2() throws Exception {  File pcmFile = new File(testFileName);  HttpURLConnection conn = (HttpURLConnection) new URL(serverURL  + "?cuid=" + cuid + "&token=" + token).openConnection();  // add request header  conn.setRequestMethod("POST");  conn.setRequestProperty("Content-Type", "audio/pcm; rate=16000");  conn.setDoInput(true);  conn.setDoOutput(true);  // send request  DataOutputStream wr = new DataOutputStream(conn.getOutputStream());  wr.write(loadFile(pcmFile));  wr.flush();  wr.close();  System.out.println(printResponse(conn));  }  private static String printResponse(HttpURLConnection conn) throws Exception {  if (conn.getResponseCode() != 200) {  // request error  System.out.println("conn.getResponseCode() = " + conn.getResponseCode());  return "";  }  InputStream is = conn.getInputStream();  BufferedReader rd = new BufferedReader(new InputStreamReader(is));  String line;  StringBuffer response = new StringBuffer();  while ((line = rd.readLine()) != null) {  response.append(line);  response.append('\r');  }  rd.close();  System.out.println(new JSONObject(response.toString()).toString(4));  return response.toString();  }  private static byte[] loadFile(File file) throws IOException {  InputStream is = new FileInputStream(file);  long length = file.length();  byte[] bytes = new byte[(int) length];  int offset = 0;  int numRead = 0;  while (offset < bytes.length  && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {  offset += numRead;  }  if (offset < bytes.length) {  is.close();  throw new IOException("Could not completely read file " + file.getName());  }  is.close();  return bytes;  }
}  

运行结果:

{"scope": "public brain_all_scope audio_voice_assistant_get audio_tts_post wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower bnstest_fasf lpq_开放","session_secret": "a1872f3e791eeb5adf327086e6a0d769","expires_in": 2592000,"refresh_token": "25.f74b044ed07383f7643b8259fb9af970.315360000.1827655515.282335-10467473","session_key": "9mzdWT+D4w5xoNHb1JejPBZ1qZKj90nUTAVDhweqqQJjH1o4PvJAYHgT8QynTP9BCVSjxA5tihkh2QCabkExrQFTpcK1VQ==","access_token": "24.be8efa5a534453370396a4accce50aa6.2592000.1514887515.282335-10467473"
}
24.be8efa5a534453370396a4accce50aa6.2592000.1514887515.282335-10467473
true
{"result": ["北京科技馆,"],"err_msg": "success.","sn": "592584910701512295515","err_no": 0,"corpus_no": "6495259779570311967"
}
{"result": ["北京科技馆,"],"err_msg": "success.","sn": "587847696871512295516","err_no": 0,"corpus_no": "6495259783832855718"
}
{"corpus_no":"6495259783832855718","err_msg":"success.","err_no":0,"result":["北京科技馆,"],"sn":"587847696871512295516"}

基于java的百度语音识别示例相关推荐

  1. 软件包应用分享|基于RT-Thread的百度语音识别(二)

    本期分享来自RT-Thread的社区小伙伴霹雳大乌龙,如果你也有文章愿意分享/希望获得官方的写作指导,可以发送文章/联系方式邮件至邮箱:xuqianqian@rt-thread.com 回顾往期: 软 ...

  2. uni-app微信小程序+Java实现百度语音识别

    1.准备工作 由于微信小程序和百度语音识别的记录博客少之又少,所以这篇博客就诞生了. 注册登录百度AI开放平台(http://ai.baidu.com/) 找到语音技术 - 应用列表,创建应用,填写相 ...

  3. 与图灵机器人进行语音对话(Java)(百度语音识别/合成)

    使用Java编写一个与图灵机器人进行对话的工具. 但图灵机器人只支持文本对话,并不支持语音交互,所以本程序运用了第三方库百度语音识别/合成,来实现语音交互. 我们还可以将下载好的音乐放入指定文件夹,进 ...

  4. 手把手教你实现基于RT-Thread的百度语音识别(一)

    RT-Thread简介 RT-Thread是一个集实时操作系统(RTOS)内核.中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread也是一个组件完整丰 ...

  5. 百度语音识别之拼音识别

    这篇文章是基于之前的百度语音识别集成到Fragment篇拓展来的,不会可以先点开看看. 首先先下载一个工具包链接:复制以下链接下载,名字如下 https://pan.baidu.com/s/1wgJo ...

  6. 百度语音识别JAVA代码_【百度语音识别】JavaAPI方式语音识别示例MP3转PCM

    [百度语音识别]JavaAPI方式语音识别示例MP3转PCM Java-API合成语音示例:http://ai.baidu.com/forum/topic/show/496727 REST-API文档 ...

  7. 百度语音识别java教程,Java实现的百度语音识别功能示例

    本文实例讲述了Java实现的百度语音识别功能.分享给大家供大家参考,具体如下: 最近一直在搞java,就选择了java工程.将代码拷过去.同时复制文件"test.pcm"到工程目录 ...

  8. 基于java SDK语音识别技术概述与调研

    语音识别技术概述与调研 语音识别已经成为人工智能应用的一个重点,通过语音控制设备简单方便,在各个领域兴起了研究应用的热潮.数据.算法及芯片是语音识别技术的3个关键,大量优质的数据.精准快速的算法和高性 ...

  9. 基于百度语音识别API的Python语音识别小程序

    一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统 ...

最新文章

  1. mysql galaxy_优化mysql
  2. C ++中线程的简单示例
  3. 关于更改linux源文件的问题(ubuntu)
  4. 开发人员能力不足的情况下如何推进敏捷开发?
  5. 洛谷 - P3358 最长k可重区间集问题(最大费用最大流+思维建边)
  6. MySQL在EF Core下的Scaffolding操作
  7. strassen矩阵乘法 java_Strassen 矩阵算法 Java 实现
  8. HDU4675【GCD of scequence】【组合数学、费马小定理、取模】
  9. OpenMAX IL介绍与其体系
  10. Struts2第一天课堂笔记
  11. Appium+python自动化(二十六)- 烟花一瞬,昙花一现 -Toast提示(超详解)
  12. operator的理解
  13. 华罗庚 计算机,华罗庚有关计算机的故事
  14. 是否有无穷多组基本勾股数
  15. docker学习1--docker基础学习
  16. Scrapy-Redis使用教程将现有爬虫修改为分布式爬虫
  17. 干货 | 深度理解数据采集与埋点,提高自主数据分析能力!
  18. HTML5实现的树叶飘落动画特效
  19. 设计模式 - 状态模式
  20. linux,Windows11双系统安装及开机引导

热门文章

  1. 【Python】openpyxl单元格合并
  2. 断流测试软件,不用担心WiFi断流了!亲身测试:试了这个方法后,信号杠杠的...
  3. 英语写作中的一些缩写
  4. 2018 Google I/O 干货摘要以及对Android开发者的影响
  5. 外贸用户如何创建邮箱并登录邮箱?
  6. 又来了!针对VMware ESXi的新型勒索软件出现
  7. 刷题总结——松鼠的新家(bzoj3631)
  8. 请使用 -source 7 或更高版本以启用 diamond 运算符_短视频 | 2分钟英语课堂:每天2分钟,让口语和听力6到飞!(7大系列374个视频)...
  9. 新走遍美国第一遍总结
  10. 微信公众号分享jssdk.php,微信公众号JSSDK