百度AI学习:一、语音识别

近期用下班之余 学习了百度AI  下面的第一步 语音识别 特此整理 以后查阅


1.申请百度AI账号 创建应用 

2.查看文档 http://ai.baidu.com/docs#/ASR-Online-Java-SDK/top

3.查看pcm文件的制作办法 详情查看

http://blog.csdn.net/caoshangpa/article/details/51218994

也可以直接 下载  

下载地址: http://download.csdn.net/download/golddaniu/10185994

4.使用spring boot 创建一个新项目,然后引入百度AI的maven


     
      com.baidu.aip
      java-sdk
      4.0.0
   

     

    commons-io
    commons-io
    2.5


5.创建测试类

package com.ye.ai.application;


import org.json.JSONObject;


import com.baidu.aip.speech.AipSpeech;


public class Sample {


//设置APPID/AK/SK
public static final String APP_ID = "10617526";
public static final String API_KEY = "X64gvKCrkqsyRPojpYeIqiuK";
public static final String SECRET_KEY = "SCKmYtyrm4XCBQo90ThwweRF1AOpFwyt";
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代理


        // 调用接口
        JSONObject res = client.asr("c:\\result.pcm", "pcm", 16000, null);
        System.out.println(res.toString(2));
        
    // 对网络上音频进行识别
//     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);
        
}
}


6.附上pcm文件生成代码

package com.test;


import com.ye.ai.utils.WAVConvertPCM;


public class TestWavToPcmFile {


public static void main(String[] args) {
WAVConvertPCM.convertAudioFiles("D:\\KuGou\\test.wav", "c:\\result.pcm");
}
}


package com.ye.ai.utils;


import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;


import org.apache.commons.io.IOUtils;
/**
 * WAV转PCM(截掉前44个字节数据)
 * @author Administrator
 *
 */
public class WAVConvertPCM {
/**
* WAV转PCM文件
* @param wavfilepath wav文件路径
* @param pcmfilepath pcm要保存的文件路径及文件名
* @return
*/
public static String convertAudioFiles(String wavfilepath,String pcmfilepath){
FileInputStream fileInputStream;
FileOutputStream fileOutputStream;
try {
fileInputStream = new FileInputStream(wavfilepath);
fileOutputStream = new FileOutputStream(pcmfilepath);
byte[] wavbyte = InputStreamToByte(fileInputStream);
byte[] pcmbyte = Arrays.copyOfRange(wavbyte, 44, wavbyte.length);
fileOutputStream.write(pcmbyte);
IOUtils.closeQuietly(fileInputStream);//fileInputStream.close();
IOUtils.closeQuietly(fileOutputStream);//fileOutputStream.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return pcmfilepath;
}
/**
* 输入流转byte二进制数据
* @param fis
* @return
* @throws IOException
*/
private static byte[] InputStreamToByte(FileInputStream fis) throws IOException {
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
long size = fis.getChannel().size();
byte[] buffer = null;
if (size <= Integer.MAX_VALUE) {
buffer = new byte[(int) size];
} else {
buffer = new byte[8];
for (int ix = 0; ix < 8; ++ix) {
int offset = 64 - (ix + 1) * 8;
buffer[ix] = (byte) ((size >> offset) & 0xff);
}
}
int len;
while ((len = fis.read(buffer)) != -1) {
byteStream.write(buffer, 0, len);
}
byte[] data = byteStream.toByteArray();
IOUtils.closeQuietly(byteStream);//byteStream.close();
return data;
}
}


7.直接下载的pcm可以跳过第6步

直接跑 测试类 sample 的main方法


百度AI学习:一、语音识别_第1张图片

8.结果与上面一样,代表测试成功

源代码下载地址 :

http://download.csdn.net/download/golddaniu/10186004


你可能感兴趣的:(JAVA)