市北互联平台后端仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

92 lines
4.0 KiB

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.green.model.v20180509.VoiceAsyncScanRequest;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.HttpResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import lombok.extern.slf4j.Slf4j;
import java.util.*;
/**
* 提交语音异步检测任务 demo
*
* @author yinzuomei@elink-cn.com
* @date 2020/12/8 21:51
*/
@Slf4j
public class VoiceAsyncScanRequestSample extends BaseSample {
public static void main(String[] args) throws Exception {
//请替换成您自己的AccessKey ID、AccessKey Secret。
IClientProfile profile = DefaultProfile.getProfile("cn-shanghai",
"LTAI4G6Fv6uTzQbpsayATHq4", //您自己的AccessKey ID
"QevMw1RYCwQUG3RSMPq1J6EAfmSblo");//您自己的AccessKey Secret
final IAcsClient client = new DefaultAcsClient(profile);
VoiceAsyncScanRequest asyncScanRequest = new VoiceAsyncScanRequest(); //class different vs common
asyncScanRequest.setAcceptFormat(FormatType.JSON); // 指定API返回格式。
asyncScanRequest.setMethod(com.aliyuncs.http.MethodType.POST); // 指定请求方法。
asyncScanRequest.setRegionId("cn-shanghai");
asyncScanRequest.setConnectTimeout(3000);
asyncScanRequest.setReadTimeout(6000);
List<Map<String, Object>> tasks = new ArrayList<Map<String, Object>>();
Map<String, Object> task1 = new LinkedHashMap<String, Object>();
// 请将下面的地址修改为要检测的语音文件的地址。
task1.put("dataId","voice1");
task1.put("url", "https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20201208/6480bd6be9f14a458162218cea84dfa5.aac");
Map<String, Object> task2 = new LinkedHashMap<String, Object>();
task2.put("dataId","voice2");
task2.put("url", "https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20201208/b566d94fd7114ffb9a203e80c22ebb96.aac");
tasks.add(task1);
tasks.add(task2);
JSONObject data = new JSONObject();
System.out.println("==========Task count:" + tasks.size());
data.put("scenes", Arrays.asList("antispam"));
data.put("tasks", tasks);
// 如果是语音流检测,则修改为true。
data.put("live", false);
asyncScanRequest.setHttpContent(data.toJSONString().getBytes("UTF-8"), "UTF-8", FormatType.JSON);
System.out.println("接口入参:"+JSON.toJSONString(data, true));
try {
HttpResponse httpResponse = client.doAction(asyncScanRequest);
if (httpResponse.isSuccess()) {
JSONObject scrResponse = JSON.parseObject(new String(httpResponse.getHttpContent(), "UTF-8"));
System.out.println("接口返参:"+JSON.toJSONString(scrResponse, true));
if (200 == scrResponse.getInteger("code")) {
JSONArray taskResults = scrResponse.getJSONArray("data");
for (Object taskResult : taskResults) {
Integer code = ((JSONObject) taskResult).getInteger("code");
if (200 == code) {
final String taskId = ((JSONObject) taskResult).getString("taskId");
System.out.println("submit async task success, taskId = [" + taskId + "]");
} else {
System.out.println("task process fail: " + code);
}
}
} else {
System.out.println("detect not success. code: " + scrResponse.getInteger("code"));
}
} else {
System.out.println("response not success. status: " + httpResponse.getStatus());
}
} catch (Exception e) {
log.error("method exception", e);
}
}
}