全部产品
云市场

上传待检数据(语音)

更新时间:2018-12-25 14:17:31

接口说明

此API可以上传语音文件以分析,可以调用获取语音处理状态接口查看中间状态,调用获取结果接口查询分析结果。

入参UploadAudioDataRequest说明

属性 值类型 是否必须 说明
jsonStr String 完整Json字符串信息,具体内容参见以下详细信息

请求参数Json字符串信息

属性 值类型 是否必须 说明
appKey String 阿里云账号uid, 长串数字
serviceChannel Integer 0、1,指定客服的声音轨道,此变量会被子对象覆盖
clientChannel Integer 0、1,指定客户的声音轨道,此变量会被子对象覆盖
sampleRate Integer 8、16,采样率,8k或16k,此变量会被子对象覆盖
callList List< QltyChkCallLine> 待检的语音集合
recognizeRoleDataSetId Long 用于指定分轨规则,管控台上操作的时候,会在数据集中指定分轨的规则,这里的id就是数据集的id;此变量会被子对象覆盖
callbackUrl String 回调Url,请保证公网可用,回调时,会在原Url后添加taskId=abc&timestamp=123&signature=def等内容用于鉴权判断;注意:如果要指定回调地址,请提工单申请,否则将忽略该参数
commonVocabId String 通用的自定义热词Id,如果Line上有自定义热词Id,会被Line上的Id覆盖
commonModelId String 模型Id
asrOnly Integer 是否只识别ASR不进行质检,当是时commonModelId为ASR训练模型ID

待检语音集合QltyChkCallLine对象:

属性 值类型 是否必须 说明
appKey String 阿里云账号uid, 长串数字
voiceFileUrl String 音频文件Url,可以在公网上访问;注意:地址必须是域名,不支持ip
serviceChannel Integer 0、1,指定客服的声音轨道,如为空,会采用父对象对应值
clientChannel Integer 0、1,指定客户的声音轨道,如为空,会采用父对象对应值
sampleRate Integer 8、16,采样率,8k或16k,如为空,会采用父对象对应值,默认为8
hangupRole String 客户、客服,最后挂断电话的角色
callStartTime Long 对话开始的自然时间,取Long型
clientIdentity String 客户标识,默认为”客户”
serviceIdentity String 客服标识,默认为”客服”
autoSplit Integer 0、1,是否自动分轨,1为自动分轨,默认为不分轨
recognizeRoleDataSetId Long 用于指定分轨规则,管控台上操作的时候,会在数据集中指定分轨的规则,这里的id就是数据集的id
tid String 文件tid,用于业务方唯一标识一个语音文件。返回质检命中结果时,会包括此tid和规则id
vocabId String 自定义热词Id
customerServiceId Long 客服Id
customerServiceName String 客服名称
skillGroupId Long 技能组Id
skillGroupName String 技能组名称
callType Integer 呼叫类型 1 呼出 3 呼入
callee String 被叫号码,呼出时指的是客户号码,呼入时指的是客服号码
caller String 主叫号码,呼出时指的是客服号码,呼入时指的是客户号码
callId String 通话id,可以是呼叫中心系统中的通话id,或者其他可以标识通话的id
skillGroupId Long 技能组id
skillGroupName String 技能组名称
bizDuration Long 通话时长

调用示例

  1. UploadAudioDataRequest uploadAudioDataRequest = new UploadAudioDataRequest();
  2. uploadAudioDataRequest.setAcceptFormat(FormatType.JSON);
  3. Map<String, Object> map = Maps.newHashMap();
  4. map.put("appKey", "**********");
  5. List<Map<String, Object>> callMapList = Lists.newArrayList();
  6. Map<String, Object> callMap = Maps.newHashMap();
  7. callMap.put("callStartTime", new Date().getTime());
  8. callMap.put("clientChannel", 1);
  9. callMap.put("sampleRate", 8);
  10. callMap.put("serviceChannel", 0);
  11. callMap.put("tid", Utils.getUUID());
  12. callMap.put("voiceFileUrl", "**********");
  13. callMap.put("callType", 3);
  14. callMap.put("bizDuration", 60);
  15. callMap.put("callee", "138****1928");
  16. callMap.put("caller", "177****1948");
  17. callMap.put("callStartTime", "1543547005000");
  18. callMap.put("callId", "10001");
  19. callMap.put("skillGroupId", "1128");
  20. callMap.put("skillGroupName", "呼出组");
  21. callMap.put("customerServiceId", "12");
  22. callMap.put("customerServiceName", "张三");
  23. callMapList.add(callMap);
  24. map.put("callList", callMapList);
  25. map.put("clientChannel", 0);
  26. map.put("sampleRate", 8);
  27. map.put("serviceChannel", 1);
  28. uploadAudioDataRequest.setJsonStr(JSON.toJSONString(map));
  29. UploadAudioDataResponse response = client.getAcsResponse(uploadAudioDataRequest);

返回示例

  1. {
  2. "code": "200",
  3. "data": 76DB5D8C-5BD9-42A7-B527-5AF3A5F83F12 ,
  4. "message": "successful",
  5. "requestId": "76DB5D8C-5BD9-42A7-B527-5AF3A5F83F12",
  6. "success": true
  7. }

回调Signature说明

  1. String strUrl = "taskId=abc&timestamp=123";//时间戳到毫秒
  2. String source = strUrl + "&aliUid=456";
  3. String signature = md5Base64(source.toString());//md5后base64编码下
  4. strUrl = strUrl + "&signature=" + signature;