快速开始

接入准备

  • 参考“流程说明”—>“免费账号和服务申请”完成权限申请;
  • 检查录音文件是否符合为wav或者pcm,非压缩,8000Hz采样率,16bits位深,波形音频格式
  • 检查录音音频文件地址可被外网访问和下载

接口调用方式

  • 使用应用申请的API Key、Secret Key获取Access Token,详见"获取Access Token"
  • 使用获取的AccessToken调用上传请求接口,详见"上传请求接口"
  • 使用获取的AccessToken调用结果查询接口,详见"结果查询接口"

获取Access Token

请求URL数据格式

向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:

  • grant_type: 必须参数,固定为client_credentials;
  • client_id: 必须参数,应用的API Key;
  • client_secret: 必须参数,应用的Secret Key;

例如:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_secret=0rDSjzQ20XUj5itV6WRtznPQSzr5pVw2&

获取access_token各开发语言示例代码请参考accessToken获取

服务器返回的JSON文本参数如下:

  • access_token: 要获取的Access Token;
  • expires_in: Access Token的有效期(秒为单位,一般为1个月);
  • 其他参数忽略,暂时不用;

例如:

{
  "refresh_token": "25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074",
  "expires_in": 2592000,
  "scope": "public wise_adapt",
  "session_key": "9mzdDZXu3dENdFZQurfg0Vz8slgSgvvOAUebNFzyzcpQ5EnbxbF+hfG9DQkpUVQdh4p6HbQcAiz5RmuBAja1JJGgIdJI",
  "access_token": "24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-8574074",
  "session_secret": "dfac94a3489fe9fca7c3221cbf7525ff"
}

若请求错误,服务器将返回的JSON文本包含以下参数:

error: 错误码;关于错误码的详细信息请参考下方鉴权认证错误码。
error_description: 错误描述信息,帮助理解和解决发生的错误。

例如认证失败返回:

{
    "error": "invalid_client",
    "error_description": "unknown client id"
}

鉴权认证错误码

error error_description 解释
invalid_client unknown client id API Key不正确
invalid_client Client authentication failed Secret Key不正确

上传请求接口

获取识别翻译结果有两种方式:

  • 采用轮询方式时,提交识别请求后,使用提交参数中appId,callId查询翻译结果。
  • 采用回调方式时,提交识别请求的回调url。识别完成后会把结果发送到回调地址。

上传请求URL地址说明

协议 URL 方法 参数 备注
HTTPS https://aip.baidubce.com/rpc/2.0/session/offline/upload/asr?access_token={accessToken} POST(application/json) json字符串 accessToken获取详见"获取Access Token"

输入参数列表

参数名 含义 必选 值类型
appId 用户百度智能云申请appId 必选 Long
callId 唯一电话识别参数,建议使用UUID,不超过128位,业务方保证(appId,callId)联合唯一 必选 String
companyName 录音所属公司 必选 String
agentFileUrl 用户销售侧文件存储URL或者单个文件的混音文件 必选 String
clientFileUrl 用户客户侧文件存储URL 非必选 String
callbackUrl 用户获取翻译结果回调接口,若填写则通过地址回调,若不填则须客户使用查询结果接口进行查询 非必选 String
suffix 文件名后缀 wav或pcm 必选 String

注意事项

  • agentFileUrl,clientFileUrl 链接有效性。 请保证下载链接可以被公网访问,关于https:请保证根证书有效且已加入到各公用根证书库。
  • agentFileUrl,clientFileUrl 实际可下载文件流要求。请保证文件流满足单声道,8k采样率,16bits采样点,pcm(非pcma律或者pcmu律)语音流。
    对文件不确定可用相应软件进行检验。 参考软件为 Adobe Audition CC,录音文件转换工具可参考[音频文件转码]image.png
  • callbackUrl链接有效性。请保证回调链接可以被公网访问。关于https:请保证根证书有效且已加入到各公用根证书库。

请求参数示例

输入双侧录音音频地址
{
    "appId":11309111,
    "companyName":"百度",
    "callId":"20e59200-57da-423e-b613-6a8ce126d0a2",
    "agentFileUrl":"http://xx.xxx.com/xxx",
    "clientFileUrl":"http://xx.xxx.com/xxx",
    "callbackUrl":"http://xx.xxx.com/xxx",
    "suffix":"wav"
}
或输入单侧录音音频地址
{
    "appId": 11309111,
    "companyName":"百度",
    "callId":"20e59200-57da-423e-b613-6a8ce126d0a2",
    "agentFileUrl":"http://xx.xxx.com/xxx",
    "callbackUrl":"http://xx.xxx.com/xxx",
    "suffix":"wav"
}

返回参数列表

参数名 含义 必选 值类型
status 错误状态码 Long
msg 错误信息 String
data 返回数据 json

返回格式示例

正确状态返回
{
    "status": 0,
    "msg": "OK",
    "data": ""
}
错误状态返回
{
    "status": 50012,
    "msg": "callId长度大于128位,请修改callId",
    "data": ""
}

状态码列表

status msg 处理措施
50000 appId或callId无效 请确认是否是申请音频文件转写应用的appId,详见"流程说明"或者callId是否有效
50001 appId和callId联合不唯一,请修改callId 请修改callId,保证唯一后重试
50008 agentFileUrl参数非法,不是url格式 修改agentFileUrl参数后重试
50009 clientFileUrl参数非法,不是url格式 修改clientFileUrl参数后重试
50010 callbackUrl参数非法,不是url格式 修改callbackUrl参数后重试
50011 suffix参数非法,不是wav或pcm 修改suffix参数为wav或pcm一种后重试
50012 callId长度大于128位,请修改callId 修改callId后重试
9999 系统错误 通过联系我们进行反馈

结果查询接口

结果查询接口URL地址说明

协议 URL 方法 参数 备注
HTTPS https://aip.baidubce.com/rpc/2.0/search/info?access_token={accessToken} POST(application/json) json字符串 accessToken获取详见"获取Access Token"

参数列表

参数 含义 必选 说明
category 用户查询类型 必选 String
paras 查询参数 必选 json

请求参数示例

{
    "category":"OFFLINE_ASR_RESULT",
    "paras":{
        "appId": 11309111,                                        // 百度智能云appId,必选
        "callId":"20e59200-57da-423e-b613-6a8ce126d0a2"           //用户上传某一通的callId,必选
        }    
}

返回参数列表

参数名 含义 必选 值类型
status 错误状态码 Long
msg 错误信息 String
data 返回数据 json对象

返回格式示例

正确状态返回
{
    "status": 0,
    "msg": "OK",
    "data": {
         "content":"[{ \"sentence\":\"啊您好这边信用卡客服中心的宣传情况你要广发言的信用卡的需要吗?\", \"roleCategory\":\"client\", \"snStartTime\":\"00:01.600\", \"snStopTime\":\"00:07.200\", \"duration\":\"6\" } , { \"sentence\":\"哦广发银行的信用卡有在使用吗?\", \"roleCategory\":\"agent\", \"snStartTime\":\"00:08.960\", \"snStopTime\":\"00:12.320\", \"duration\":\"4\" }]"     
     }
}

错误状态返回
{
    "status": 50003,
    "msg": " 文件校验失败,请查看文件是否是8k,16bit采样率的wav或pcm格式",
    "data": ""
}

content数据参数列表

content为压缩后json字符串,文件转写的结果数据,当status为0时存在

参数名 含义 必选 值类型
sentence 语音片段翻译文本 String
roleCategory 客户还是销售侧标识 String
snStartTime 语音片段开始时间 String
snStopTime 语音片段结束时间 String
duration 语音片段时长 String

返回格式示例

[
        {
            "sentence":"喂,喂可以听到吗?", //语音片段翻译文本
            "roleCategory":"client",      //客户还是销售侧标识
            "snStartTime":"00:00.160", //语音片段开始时间
            "snStopTime":"00:05.120", //语音片段结束时间
            "duration":"5"  //语音片段时长
        },
        {
            "sentence":"嗯先生您好呃这边是信用卡客服中心给您来电的我的工号是三零零五,冒昧问一下您这边有使用过广发银行的信用卡吗?没有吖吖,先生是这样的咱这边是这样的通知那您广发银行推出一张终身免年费的白金信用卡下卡了都能是两万到十万的全国一电话行取款都是免手续费啊,两个工作日呢会广发这我明白客户经理联系您您可以详细了解下,那您这边有谂过其他银行的信用卡用过半年时间的吗?",
            "roleCategory":"agent",
            "snStartTime":"00:05.440",
            "snStopTime":"00:35.359",
           "duration":"30" 
       }
]

状态码列表

status msg 处理措施
50000 appId或callId无效 请确认是否是申请音频文件转写应用的appId,详见"流程说明"或者callId是否有效
50002 文件URL下载失败,请查看URL是否可被下载 请确保URL是否可被下载后重试
50003 文件校验失败,请查看文件是否是8k,16bit采样率的wav或pcm格式 音频文件格式转换后重试
50004 上传成功,请耐心等待翻译结果 耐心等待翻译结果
50005 正在翻译,请耐心等待翻译结果 耐心等待翻译结果
50006 正在处于翻译任务队列中,请耐心等待翻译结果 耐心等待翻译结果
50007 翻译过程出现异常 通过联系我们进行反馈
9999 系统错误 通过联系我们进行反馈

百度侧回调给业务方识别结果

地址:(业务方上传离线文件url请求的中callbackUrl)

请求方式
POST, application/json

参数列表

参数 含义 必选 值类型
appId 标识该知识属于哪个app Long
userId 用户 Long
callId 标识该知识属于哪通电话 String
logId 日志追查id String
category TXT,识别文本; REPORT(报告),任务结束后告诉此批任务完成状况 String
content 返回的知识的内容 String
triggerTime 触发这个知识的时间 timestamp

返回格式示例:

{
    "status": 0,
    "msg": "ok",
    "data": {
      "appId":11309111,
      "userId": 11309111,
      "callId":"20e59200-57da-423e-b613-6a8ce126d0a2",
      "category":"TXT",
      "logId":"20e59200-57da-423e-b613-6a8ce126d0a3",
      "content":"[{ \"sentence\":\"啊您好这边信用卡客服中心的宣传情况你要广发言的信用卡的需要吗?\", \"roleCategory\":\"agent\", \"snStartTime\":\"00:01.600\", \"snStopTime\":\"00:07.200\", \"duration\":\"6\" } , { \"sentence\":\"哦广发银行的信用卡有在使用吗?\", \"roleCategory\":\"agent\", \"snStartTime\":\"00:08.960\", \"snStopTime\":\"00:12.320\", \"duration\":\"4\" }]",
       "triggerTime":1531376960047
    }
}
或
{
    "status": 0,
    "msg": "ok",
    "data": {
      "appId":11309111,
      "userId": 11309111,
      "callId":"20e59200-57da-423e-b613-6a8ce126d0a2",
      "category":"REPORT",
      "logId":"20e59200-57da-423e-b613-6a8ce126d0a3",
      "content":"{\"success\":{\"count\":10},\"fail\":{\"download\":[\"20e59200-57da-423e-b613-6a8ce126d0a3\",\"20e59200-57da-423e-b613-6a8ce126d0a4\"],\"format\":[\"20e59200-57da-423e-b613-6a8ce126d0a5\",\"20e59200-57da-423e-b613-6a8ce126d0a6\"],\"other\":[\"20e59200-57da-423e-b613-6a8ce126d0a7\",\"20e59200-57da-423e-b613-6a8ce126d0a8\"]}}",
       "triggerTime":1531376960047
    }
}

roleCategory 为TXT 时:content字段示例

参数名 含义 必选 值类型
sentence 语音片段翻译文本 String
roleCategory 客户还是销售侧标识 String
snStartTime 语音片段开始时间 String
snStopTime 语音片段结束时间 String
duration 语音片段时长 String

返回格式示例:

content为压缩后json字符串
"content":"[{ \"sentence\":\"啊您好这边信用卡客服中心的宣传情况你要广发言的信用卡的需要吗?\", \"roleCategory\":\"agent\", \"snStartTime\":\"00:01.600\", \"snStopTime\":\"00:07.200\", \"duration\":\"6\" } , { \"sentence\":\"哦广发银行的信用卡有在使用吗?\", \"roleCategory\":\"agent\", \"snStartTime\":\"00:08.960\", \"snStopTime\":\"00:12.320\", \"duration\":\"4\" }]"
其中的json字符串示例
[
        {
            "sentence":"喂,喂可以听到吗?", //语音片段翻译文本
            "roleCategory":"client",      //客户还是销售侧标识
            "snStartTime":"00:00.160", //语音片段开始时间
            "snStopTime":"00:05.120", //语音片段结束时间
            "duration":"5"  //语音片段时长
        },
        {
            "sentence":"嗯先生您好呃这边是信用卡客服中心给您来电的我的工号是三零零五,冒昧问一下您这边有使用过广发银行的信用卡吗?没有吖吖,先生是这样的咱这边是这样的通知那您广发银行推出一张终身免年费的白金信用卡下卡了都能是两万到十万的全国一电话行取款都是免手续费啊,两个工作日呢会广发这我明白客户经理联系您您可以详细了解下,那您这边有谂过其他银行的信用卡用过半年时间的吗?",
            "roleCategory":"agent",
            "snStartTime":"00:05.440",
            "snStopTime":"00:35.359",
            "duration
       }
]

roleCategory 为REPORT 时(任务结束后告诉此批任务完成状况),content字段示例:

success字段参数列表

参数名 含义 必选 值类型
count 成功个数 Long

fail字段参数列表

参数名 含义 必选 值类型
download 语音片段翻译文本 String[]
format 文件格式错误导致的翻译失败的callId数组 String[]
other 其他失败原因, 如 网络抖动等原因导致,可具体分析 String[]

返回格式示例:

content为压缩后json字符串
 "content":"{\"success\":{\"count\":10},\"fail\":{\"download\":[\"20e59200-57da-423e-b613-6a8ce126d0a3\",\"20e59200-57da-423e-b613-6a8ce126d0a4\"],\"format\":[\"20e59200-57da-423e-b613-6a8ce126d0a5\",\"20e59200-57da-423e-b613-6a8ce126d0a6\"],\"other\":[\"20e59200-57da-423e-b613-6a8ce126d0a7\",\"20e59200-57da-423e-b613-6a8ce126d0a8\"]}}"
其中的json字符串示例
{
    "success":{
        "count":10   //成功个数
     },
    "fail": {
        "download": [
           "20e59200-57da-423e-b613-6a8ce126d0a3",
           "20e59200-57da-423e-b613-6a8ce126d0a4"
        ],         // 文件下载失败导致的翻译失败的callId数组
        "format": [ 
           "20e59200-57da-423e-b613-6a8ce126d0a5",
           "20e59200-57da-423e-b613-6a8ce126d0a6"
        ],        // 文件格式错误导致的翻译失败的callId数组
        "other": [ 
           "20e59200-57da-423e-b613-6a8ce126d0a7",
           "20e59200-57da-423e-b613-6a8ce126d0a8"
        ]        // 其他失败原因, 如 网络抖动等原因导致,可具体分析 
    }
}