百度语音是一个很强大的东西,可以将后缀为.pcm的音频文件转换成文字。
1.首先你需要一个百度帐号,进入到百度ai官方网址 http://ai.baidu.com/
2.百度语音识别是公开的源码可以在ai官网上直接下载 ,代码如下:
package com.amenuo.yiliao.controller; import com.baidu.aip.speech.AipSpeech; import com.baidu.aip.util.Util; import org.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/Synthesis") public class Synthesis {
//其他无需改动,需要改动 API_KEY SECRET_KEY 仔细阅读官网文档,会提供给你 我这里是我的两个东西不能再使用|||
public static final String APP_ID = "10805905"; public static final String API_KEY = "gPpf0GVaEpehPiIr9g"; public static final String SECRET_KEY = "qXL7uZlLsMD7gI3P2RQArkrEi"; public static void main(String[] args) { // 初始化一个AipSpeech AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY); // 可选:设置网络连接参数 client.setConnectionTimeoutInMillis(2000); client.setSocketTimeoutInMillis(60000); /* int proxy_port=1088; 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"); // 调用接口 这里放置对应的后缀的.pcm音频文件以及本机pcm下载路径 String path = "F:\\baidu\\pcm\\16k_test.pcm"; JSONObject res = client.asr(path, "pcm", 16000, null); System.out.println(res.toString(2)); } public static void synthesis(AipSpeech client) { // 对本地语音文件进行识别F:\baidu\pcm,wav,amr //F:\baidu\pcm\ String path = "F:\\baidu\\pcm\\16k_test.pcm"; // String path = "D:\\code\\java-sdk\\speech_sdk\\src\\test\\resources\\16k_test.pcm"; JSONObject asrRes = client.asr(path, "pcm", 16000, null); System.out.println(asrRes); // 对语音二进制数据进行识别 try { byte[] data = Util.readFileByBytes(path); //readFileByBytes仅为获取二进制数据示例 JSONObject asrRes2 = client.asr(data, "pcm", 16000, null); System.out.println(asrRes); }catch (Exception e){ e.printStackTrace(); } // 对网络上音频进行识别 String url = "http://somehost/res/16k_test.pcm"; String callback = "http://callbackhost/aip/dump"; JSONObject res = client.asr(url, callback, "pcm", 16000, null); System.out.println(res); } }
最后成功后会输出
{
"result": ["北京科技馆,"],
"err_msg": "success.",
"sn": "37218203491519521169",
"corpus_no": "6526293727633280768",
"err_no": 0
}