阿里数加(1-2)api调用分析
Posted 非淡泊无以明志,非宁静无以致远 - 长安快马
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里数加(1-2)api调用分析相关的知识,希望对你有一定的参考价值。
https://data.aliyun.com/product/nls?spm=5176.doc30437.2.1.UPDABu
下面以最常用的”一句话识别”服务给大家做一个入门级的示例,为您介绍如何快速使用“智能语音交互”的各种服务。
1. 账号和服务申请,获取Access Key ID和Access Key Secret两个数加认证参数。
2. 语音识别服务下的”一句话识别”服务支持的app_key如下表,选择“社交领域”的app_key为nls-service。
一句话识别 app_key | 语音数据格式 | 结果返回方式 | 领域 |
---|---|---|---|
nls-service | 16kHz采样 16bit 音频流 | 非流式 | 社交聊天 |
nls-service-streaming | 16kHz采样 16bit 音频流 | 流式 | 社交聊天 |
nls-service-tv | 16kHz采样 16bit 音频流 | 非流式 | 家庭娱乐 |
nls-service-shopping | 16kHz采样 16bit 音频流 | 非流式 | 电商购物领域 |
nls-service-care | 16kHz采样 16bit 音频流 | 非流式 | 智能客服服务领域 |
注:
(1) “支持的结果返回方式”式包括“非流式”和“流式”两种模式,“非流式”简单来说就是用户整句话说完后返回识别结果,“流式”模式下用户一边说话一边返回识别结果。
(2) “一句话识别”支持的领域包括:社交聊天、家庭娱乐、电商购物、智能客服等。用户可针对具体的使用场景选择对应领域的app_key。
3. 下载JAVA SDK和DEMO,开始语音识别。
3.1 运行demo来测试语音服务
到“一句话识别”服务的Java SDK页面下载对应的下载包,包括JAVA SDK和DEMO工程。
打开Java DEMO工程中的AsrDemo.java方法,将其中的app_key、Access Key ID、Access Key Secret 替换成自己的账号信息,然后直接 run->java application即可。
NlsRequest req = new NlsRequest();
req.setApp_key("app_key"); // 替换为选定的app_key
req.setAsr_sc("pcm"); // 这里为测试准备的语音文件是pcm语音文件。
req.authorize("Access Key ID", "Access Key Secret"); // 替换为在数加平台申请到的"Access Key ID"和 "Access Key Secret"
若执行成功,将会输出中【”result” : “你好小云”】的log信息,至此,您已成功完成了一次语音识别服务的调用。
3.2 DEMO工程的简要介绍
3.2.1 发送语音请求
由AsrDemo.java的方法startAsr()进行处理,首先提取语音数据,然后创建语音识别请求,将提取的语音分批发送至服务端。
分批发送的好处是可以在您进行语音收集的同时,服务器就开始处理识别,这样当语音结束的时候可以最快地得到识别结果并返回。
3.2.2 接收语音识别结果
由AsrDemo.java的回调方法onMessageReceived()进行处理,用于监听服务器的返回,在这个demo中,服务端返回的识别结果json字段参数如下:
{
"status" : "1",// 服务器状态,0为失败,非零为成功
"id" : "",
"finish" : "1",// 0为未结束,非零为结束,识别是否已经结束
"results" : {
"asr_out" : {
"result" : "你好小云",// 语音识别结果
"status" : 1,
"finish" : 1,
"version" : "4.0"
},
"out" : {}//保留字段
},
"bstream_attached" : false,
"version" : "4.0"
}
参数中您可以重点关注字段 asr_out,其中的”result” : “你好小云”即为语音识别结果。
以上是关于阿里数加(1-2)api调用分析的主要内容,如果未能解决你的问题,请参考以下文章
基于阿里云数加MaxCompute的企业大数据仓库架构建设思路