语音质检API-邀测
接口描述:本接口共有两个部分,第一部分为语音质检,第二部分为质检规则管理。(本接口处于邀测阶段,请提交合作咨询申请测试)
准备工作
1、账户创建及appid鉴权信息获取可参考快速开发指南-准备工作。
2、access_token鉴权信息获取,可参考鉴权认证机制。
可点击下载python demo示例代码进行测试。
语音质检
语音质检任务创建
请求接口:http://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/detection
HTTP 方法:POST
Headers参数:
参数 | 参数值 | 是否必须 |
---|---|---|
Content-Type | application/json | 是 |
Body参数如下:
参数名称 | 位置 | 类型 | 是否必须 | 说明 |
---|---|---|---|---|
access_token | body | string | 是 | 携带用户信息的access_token |
speech_url | body | string | url和data二选一 | 可外网访问的音频文件url链接 |
speech_data | body | string | url和data二选一 | 音频文件base64结果 |
session_id | body | string | 是 | 音频质检任务唯一标识,相同的session_id重复请求会覆盖上一次任务 |
sample_rate | body | integer | 否 | 音频采样率可选择8000或16000,默认8000 |
pid | body | integer | 是 | 音频识别模型id,可选择80006 |
callback_url | body | string | 否 | 质检后结果回调路径 |
role_num | body | integer | 否 | 说话人数,只允许1/2,默认为1 |
enable_detection | body | boolean | 否 | 是否进行质检,默认false |
enable_detection_detail | body | boolean | 否 | 是否返回质检结果详情,默认false |
is_split_channel | body | boolean | 否 | 是否进行左右声道拆分,默认false 当开启为true时,计费时长=左声道有效时长(不含静音)+右声道有效时长(不含静音) |
categories | body | array[string] | 否 | 应用到质检的规则,不填写默认全部 |
Body请求示例:
{
"access_token": "24.a7179f3da2d56aXXXXXXXXXXXXXXXX",
"speech_url": "https://xxxxx.wav",
"speech_data": "base64",
"session_id": "test20240220",
"sample_rate":16000
"pid": 80006,
"role_num": 1,
"callback_url": "",
"enable_detection_detail": true,
"enable_detection": true ,
"is_split_channel": false
}
返回结果:
参数名称 | 类型 | 必选 | 说明 |
---|---|---|---|
error_code | integer | 是 | 请求状态码 |
error_message | string | 是 | 请求状态 |
result | object | 是 | |
+ session_id | string | 是 | 音频质检任务唯一标识 |
返回示例:
{
"error_code": 0,
"error_message": "请求成功",
"result": {
"session_id": "test20240220"
}
}
语音质检任务查询
请求接口:http://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/detection/result
HTTP 方法:GET
Headers参数:
参数 | 参数值 | 是否必须 |
---|---|---|
Content-Type | application/json | 是 |
Body参数如下:
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
access_token | body | string | 是 | 携带用户信息的access_token |
session_id | body | string | 是 | 音频质检任务唯一标识 |
Body请求示例:
{
"access_token": "24.a7179f3da2d56aXXXXXXXXXXXXXXXX",
"session_id": "test20240220"
}
返回结果:
参数名称 | 类型 | 必选 | 说明 |
---|---|---|---|
error_code | integer | 是 | 请求状态码 |
error_message | string | 是 | 请求状态 |
result | object | 是 | 语音质检结果 |
+push_status_desc | string | 是 | 推送状态描述 |
+session_id | string | 是 | 音频唯一标识 |
+state | integer | 是 | 质检过程的状态,不等于0、1、2为处理失败 |
+state_desc | string | 是 | 质检过程的状态描述分别为: "任务已提交,排队等待中" "执行中" "处理成功" |
+asr_text | string | 是 | 音频文件转写结果,句与句之间空格 |
+call_duration | integer | 是 | 通话持续时长,单位秒 |
+silence_duration | integer | 是 | 静音时长,单位秒 |
+asr_result | [object] | 是 | 转写结果 |
++sentence | string | 是 | 单句文本 |
++speaker_id | integer | 是 | 所属发言人 |
++begin_time | integer | 是 | 单句开始时间戳 |
++end_time | integer | 是 | 单句结束时间戳 |
++voice_speed | integer | 是 | 语速 |
++voice_power | integer | 是 | 音量 |
+pass_detection | string | 是 | 质检是否通过,"success"- 通过 "failed" - 不通过 |
+detection_result | [object] | 是 | 质检结果,返回录音命中的所有规则和对应关键词 |
++category | string | 是 | 规则类别 |
++keyword | [string] | 是 | 匹配的关键字 |
+detection_detail | object | 是 | 质检结果详情,配置了获取详情返回数据 |
++hit | boolean | 是 | 录音是否命中质检规则 |
++keyword | [string] | 是 | 录音命中的所有关键词 |
++detail | [object] | 是 | 句维度命中情况 |
+++text | string | 是 | 该句文本 |
+++hit | boolean | 是 | 该句是否命中质检规则 |
+++detail | [object] | 是 | 该句命中的质检分类 |
++++category | string | 是 | 质检分类 |
++++hit | boolean | 是 | 是否命中 |
++++keyword | [string] | 是 | 命中的分类下所有关键词 |
++++detail | [object] | 是 | 该句命中的该分类下的质检内容 |
+++++content | string | 是 | 质检内容 |
+++++hit | boolean | 是 | 是否命中 |
+++++keyword | [string] | 是 | 命中的关键词 |
返回示例:
{
"error_code": 0,
"error_message": "请求成功",
"result": {
"session_id": "test20240220",
"state": 0,
"state_desc": "处理成功",
"asr_text": "你是谁? 我是小度",
"call_duration": 10,
"silence_duration": 5,
"asr_result": [
{
"sentence": "你是谁?",
"speaker_id": 0,
"begin_time": 1,
"end_time": 3,
"voice_speed": 0,
"voice_power": 0
},{
"sentence": "我是小度",
"speaker_id": 1,
"begin_time":,5,
"end_time": 7,
"voice_speed": 0,
"voice_power": 0
}
],
"pass_detection": "failed",
"detection_result": [
{
"category": "类别1",
"keyword": [
"小度"
]
}
],
"detection_detail": {
"hit": 是,
"keyword": [
"小度"
],
"detail": [
{
"text": "我是小度",
"hit": 是,
"detail": [
null
]}]}}
}
质检规则管理
质检规则查询
请求接口:http://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/detection/rule
HTTP 方法:GET
Headers参数:
参数 | 参数值 | 是否必须 |
---|---|---|
Content-Type | application/json | 是 |
Body参数如下:
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
access_token | body | string | 是 | 携带用户信息的access_token |
category | body | string | 否 | 规则类别,支持模糊搜索,不传则查询全部 |
page_no | body | integer | 否 | 分页规则-页数 |
page_size | body | integer | 否 | 分页规则-每页条数,默认10 |
Body请求示例:
{
"access_token": "24.a7179f3da2d56aXXXXXXXXXXXXXXXX ",
"category": "类别1",
"page_no":1,
"page_size":1
}
返回结果:
名称 | 类型 | 必选 | 说明 |
---|---|---|---|
error_code | integer | 是 | 请求状态码 |
error_message | string | 是 | 请求状态 |
results | object | 是 | 详情列表 |
+total | integer | 是 | 符合条件的规则总数 |
+rule | [object] | 是 | 查询到的规则 |
++category | string | 是 | 规则类别 |
++description | string | 是 | 规则类别描述 |
++content | [string] | 是 | 规则内容 |
返回示例:
{
"error_code": 0,
"error_message": "请求成功",
"results": {
"total": 0,
"rule": [
{
"category": "类别1",
"description": "类别1的描述",
"contents": ["贷款",
"会议||例会",
"缺货&&退款",
"!逾期",
"未偿还&&!逾期",
"(会议||例会) && (缺货||退款)"]
}
]
}
}
质检规则新增
请求接口:http://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/detection/rule
HTTP 方法:POST
Headers参数:
参数 | 参数值 | 是否必须 |
---|---|---|
Content-Type | application/json | 是 |
Body参数如下:
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
access_token | body | string | 是 | 携带用户信息的access_token |
category | body | string | 是 | 规则类别 |
description | body | string | 是 | 规则类别描述 |
contents | body | array[string] | 是 | 质检规则内容,每条质检规则内部可应用“或与非”逻辑关系 |
contents规则特殊说明:
一、A(包含A即为命中)
二、A||B (A或B包含任一即为命中)
三、A&&B (A与B均包含即为命中)
四、!B(不包含B即为命中)
五、A&&!B(包含A但不包含B即为命中)
六、用小括号隔开,可随意组合
Body请求示例:
{
"access_token": "24.a7179f3da2d56aXXXXXXXXXXXXXXXX ",
"category": "类别1",
"description": "类别1的描述",
"contents": ["贷款",
"会议||例会",
"缺货&&退款",
"!逾期",
"未偿还&&!逾期",
"(会议||例会) && (缺货||退款)"]
}
返回结果:
名称 | 类型 | 必选 | 说明 |
---|---|---|---|
error_code | integer | 是 | 请求状态码 |
error_message | string | 是 | 请求状态 |
返回示例:
{
"error_code": 0,
"error_message": "请求成功"
}
质检规则修改
请求接口:http://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/detection/rule
HTTP 方法:PUT
Headers参数:
参数 | 参数值 | 是否必须 |
---|---|---|
Content-Type | application/json | 是 |
Body参数如下:
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
access_token | body | string | 是 | 携带用户信息的access_token |
category | body | string | 是 | 规则类别 |
description | body | string | 是 | 规则类别描述 |
contents | body | array[string] | 是 | 质检规则内容,每条质检规则内部可应用“或与非”逻辑关系 |
contents规则特殊说明:
一、A(包含A即为命中)
二、A||B (A或B包含任一即为命中)
三、A&&B (A与B均包含即为命中)
四、!B(不包含B即为命中)
五、A&&!B(包含A但不包含B即为命中)
六、用小括号隔开,可随意组合
Body请求示例:
{
"access_token": "24.a7179f3da2d56aXXXXXXXXXXXXXXXX ",
"category": "类别1",
"description": "类别1的描述",
"contents": ["贷款",
"会议||例会",
"缺货&&退款",
"!逾期",
"未偿还&&!逾期",
"(会议||例会) && (缺货||退款)"]
}
返回结果:
名称 | 类型 | 必选 | 说明 |
---|---|---|---|
error_code | integer | 是 | 请求状态码 |
error_message | string | 是 | 请求状态 |
返回示例:
{
"error_code": 0,
"error_message": "请求成功"
}
质检规则删除
请求接口:http://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/detection/rule
HTTP 方法:DELETE
Headers参数:
参数 | 参数值 | 是否必须 |
---|---|---|
Content-Type | application/json | 是 |
Body参数如下:
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
access_token | body | string | 是 | 携带用户信息的access_token |
category | body | string | 是 | 待删除的规则类别 |
Body请求示例:
{
"access_token": "24.a7179f3da2d56aXXXXXXXXXXXXXXXX ",
"category": "类别1",
}
返回结果:
名称 | 类型 | 必选 | 说明 |
---|---|---|---|
error_code | integer | 是 | 请求状态码 |
error_message | string | 是 | 请求状态 |
返回示例:
{
"error_code": 0,
"error_message": "请求成功"
}