当下很多APP都会使用语音识别功能,用户说出一段自己的需求,APP会返回处理后的结果,这个过程看似简单,但要实现这一功能需要强大的技术和大数据能力,才可以将语音信息转化成文字。
为了解决这一痛点,APIStore为开发者提供了大量的即用型API,支持多种语言,满足不同平台的需求。在开发过程中,开发者可以直接调用即用型API。
以语音识别(http://apistore.baidu.com/apiworks/servicedetail/867.html)为例,开发者只需调用指定的url, 并传入参数就可以得到解析后的语音信息。原始语音的录音格式需要使用pcm压缩形式,目前只支持评测 8k/16k 采样率,16bit位深的单声道语音,将语音录制完成之后使用base64转化成字符串后作为参数上传。转化字符串时java建议用commons-codec进行编码(对base64后的字符串进行urlencode编码,很重要)。Java调用的关键代码如下:语音文件转换成base64字符串:
FileInputStream fis = new FileInputStream(new File("d:\\test.pcm"));
byte[] byteAudio = org.apache.commons.io.IOUtils.toByteArray(fis);
byte[] base64AudioByte = org.apache.commons.codec.binary.Base64.encodeBase64(byteAudio);
String base64AudioStr = new String(base64AudioByte,"utf-8");
String base64AudioStrUrlenocde = URLEncoder.encode(base64AudioStr);
参数:
postParams = "audioBase64=" + base64AudioStrUrlenocde+"&format=pcm&rate=8000&channel=1&lan=zh";
使用接口:
String result = new HttpUtil().doPost(APIKEY, url, postParams);
结果处理:
String json = (String) new JSONObject(result).get("retData");
JSONObject jsonObject = new JSONObject(json);
String voiceResult = jsonObject.get("result").toString();
下面来看下前端展示, 我把语音识别API加入了自己的APP应用中,如下是实现的效果:
APP首页:

点击语音按钮后会进入语音识别的主页面:

最后附上一张识别的结果:

大家也可以头脑风暴下,共同探讨语音识别API的其他用处以及你们的调用经历,说不定切磋出来一个伟大的产品呢~
最后,请移步
百度APIStore
,寻找属于你的API!!!!