直播音视频解决方案直播音频查询接口
2023.09.22 17:31:52
接口地址
https://as.dun.163yun.com/v1/livewallsolution/query/audio/task
接口描述
实时查询音频断句信息。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。
接口请求频率
小于10s/20次,请求频率过快服务器会拒绝处理。
请求参数
公共参数已省略,详细见 请求公共参数
参数名称 | 类型 | 是否必选 | 最大长度 | 描述 |
---|---|---|---|---|
taskId | String | Y | - | 提交音视频后返回的taskId |
startTime | Number | Y | - | 查询断句起始时间 |
endTime | Number | Y | - | 查询断句结束时间 |
响应结果
响应字段如下,响应通用字段已省略,详细见响应通用字段:
result 数组结构
参数名称 | 类型 | 描述 |
---|---|---|
segmentId | Number | 直播音频断句id |
taskId | String | 唯一标识 |
action | Number | 检测结果,0:通过,1:嫌疑,2:不通过 |
asrStatus | Number | 音频翻译结果,2:检测中,3:检测完成,4:检测失败 |
asrResult | Number | 音频翻译检测失败原因,1:文件格式错误,2:文件下载失败,3:解析失败,4:音频流不存在 |
callback | String | 产品调用直播语音在线检测传递的 callback 字段数据 |
censorSource | Number | 审核来源,0:易盾人审,1:客户人审,2:易盾机审 |
speakerId | String | 针对接入SDK监听客户,可能返回的说话人ID信息 |
startTime | Number | 最近开始时间点,单位毫秒 |
endTime | Number | 最近结束时间点,单位毫秒 |
segments | json数组 | 证据信息,通过时数据为空 |
records | json数组 | 录制信息 |
其中 segments 结构如下:
参数名称 | 类型 | 描述 |
---|---|---|
label | Number | 分类信息,100:色情,200:广告,300:暴恐,400:违禁,500:涉政,600:谩骂 |
level | Number | 分类级别,0:正常,1:不确定,2:确定 |
evidence | String | 命中的敏感词或者声纹检测的分值 |
records 结构如下:
参数名称 | 类型 | 描述 |
---|---|---|
startTime | Number | 最近开始时间点,单位毫秒 |
endTime | Number | 最近结束时间点,单位毫秒 |
url | String | 录制地址 |
请求示例
/** 产品密钥ID,产品标识 */
private final static String SECRETID = "your_secret_id";
/** 产品私有密钥,服务端生成签名信息使用,请严格保管,避免泄露 */
private final static String SECRETKEY = "your_secret_key";
/** 易盾反垃圾云服务直播音视频解决方案在线提交接口地址 */
private final static String API_URL = "https://as.dun.163yun.com/v1/livewallsolution/query/audio/task";
/** 实例化HttpClient,发送http请求使用,可根据需要自行调参 */
private static HttpClient httpClient = HttpClient4Utils.createHttpClient(100, 20, 2000, 2000, 2000);
/**
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Map<String, String> params = new HashMap<String, String>();
// 1.设置公共参数
params.put("secretId", SECRETID);
params.put("version", "v1.0");
params.put("timestamp", String.valueOf(System.currentTimeMillis()));
params.put("nonce", String.valueOf(new Random().nextInt()));
// 2.设置私有参数
params.put("taskId", "xxxx");
params.put("startTime", "xxxx");
params.put("endTime", "xxxx");
params.put("record", "0");
// 3.生成签名信息
String signature = SignatureUtils.genSignature(SECRETKEY, params);
params.put("signature", signature);
// 4.发送HTTP请求,这里使用的是HttpClient工具包,产品可自行选择自己熟悉的工具包发送请求
String response = HttpClient4Utils.sendPost(httpClient, API_URL, params, Consts.UTF_8);
// 5.解析接口返回值
JsonObject jObject = new JsonParser().parse(response).getAsJsonObject();
int code = jObject.get("code").getAsInt();
String msg = jObject.get("msg").getAsString();
JsonArray resultArray = jObject.get("result").getAsJsonArray();
if (code == 200) {
for (int i = 0; i < resultArray.size(); i++) {
JsonObject result = resultArray.get(i).getAsJsonObject();
String taskId = result.get("taskId").getAsString();
System.out.println(result.toString());
}
}
}
响应示例
{
"code": 200,
"msg": "ok",
"result": [
{
"taskId":"5473fbabe7774dbc9cc80e12d60f6fb6",
"action":2,
"asrStatus":3,
"callback":"",
"censorSource":"2",
"speakerID":"10096",
"startTime":1584415110890,
"endTime":1584415115720,
"segments":[
{
"label":400,
"level":2,
"evidence":"(我+你)"
}
],
"records":[
{
"startTime":1584415091830,
"endTime":1584415111830,
"url":"https://yidun-antispam.nos-eastchina1.126.net/5473fbabe7774dbc9cc80e12d60f6fb6_1584415091830.mp3?Signature=9lVvAIpjHF7lsJNhzuH4FrgebpfZGwiotjBCa%2FdfTq4%3D&Expires=1585330675&NOSAccessKeyId=a681ebcbcd5646a488d275c33acb16bd"
}
]
}
]
}