文档中心
文档中心 / 语音识别

语音识别

API请求方式及参数基本说明

  • 格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式);8k/16k 采样率 16bit 位深的单声道。
  • 系统支持语言种类:中文(zh)、粤语(ct)、英文(en)

说明:


语音上传,隐示发送

语音数据和其他参数通过标准 JSON 格式串行化 POST 上传, JSON 里包括的参数:

字段名 可需 描述
format 必填 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写
rate 必填 采样率,支持 8000 或者 16000
channel 必填 声道数,仅支持单声道,请填写固定值 1
cuid 必填 用户唯一标识,用来区分用户,计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内。
token 必填 开放平台获取到的开发者 access_tokenn
lan 选填 语种选择,默认中文(zh)。 中文=zh、粤语=ct、英文=en,不区分大小写。
url 选填 语音下载地址,与callback连一起使用,确保百度服务器可以访问
callback 选填 识别结果回调地址,确保百度服务器可以访问
speech 选填 真实的语音数据 ,需要进行base64 编码。与len参数连一起使用。
len 选填 原始语音长度,单位字节

(speech, len) 及 (url, callback) 这两组参数必须二选一,如果都填,默认处理第一种。 建议使用(speech, len)。

  • (speech, len): 开发者可以将语音文件进行
    base64编码,放在 “speech”字段中。并将语音数据的原始长度,填写“len”字段;

  • (url, callback):或者直接提供语音下载地址, 放在“url”字段中,并将识别结果的回调地址,放在“callback”参数中。

callback 回调以post的方式传入类似以下json结果:

  1. {"corpus_no":"6433214037620997779","err_msg":"success.","err_no":0,"result":["北京科技馆,"],"sn":"371191073711497849365"}

上传实例(speech, len 参数),如使用(url, callback)请忽略此段 :

固定头部header:

  1. Content-Type:application/json

请求示例

  1. {
  2. "format":"speex",
  3. "rate":8000,
  4. "channel":1,
  5. "token":xxx,
  6. "cuid":"baidu_workshop",
  7. "len":4096,
  8. "speech":"xxx",
  9. }

返回示例:

  1. {"corpus_no":"6433214037620997779","err_msg":"success.","err_no":0,"result":["北京科技馆,"],"sn":"371191073711497849365"}

注意事项:

len 字段表示原始语音长度,不是 base64 编码之后的长度。

上传实例(url, callback参数) ,如使用(speech, len)请忽略此段:

url和callback 请确认是公网ip或者域名,确保百度服务器可以访问。

固定头部header:

  1. Content-Type: application/json

请求示例

  1. {
  2. "format": "pcm",
  3. "rate": 16000,
  4. "channel": 1,
  5. "token": "24.9817273447fabaf05b0e73cad4a4910a.2592000.1500434647.282335-9566711",
  6. "cuid": "aip-cxy",
  7. "url": "http://121.40.195.233/res/16k_test.pcm",
  8. "callback": "http://www.aaa.com:8492/aip/dump"
  9. }

返回示例:

  1. {
  2. "err_msg": "success. ",
  3. "err_no": 0,
  4. "sn": "817756712911497936928"
  5. }

在callback中地址可以接受到如下post数据:

注意callback 回调内容里的sn和之前识别请求返回的sn是一致的。

  1. {"corpus_no":"817756712911497936928","err_msg":"success.","err_no":0,"result":["北京科技馆,"],"sn":"371191073711497849365"}

语音上传,显示发送

语音数据直接放在 HTTP-BODY 中,控制参数以及相关统计信息通过 header和url里参数传递。

Header 参数说明

字段名 数据类型 可需 描述
format string(格式见下面示例) 必填 语音格式,pcm 或者 wav 或者 amr。不区分大小写
rate int(格式见下面示例) 必填 采样率,支持 8000 或者 16000
  • 语音数据的采样率和压缩格式在 HTTP-HEADER 里的Content-Type 表明,例:
    1. Content-Type: audio/amr;rate=8000

url参数说明:

字段名 数据类型 可需 描述
cuid string 必填 用户唯一标识,用来区分用户,计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内。
token string 必填 开放平台获取到的开发者 access_token
lan string 选填 语种选择,中文=zh、粤语=ct、英文=en,不区分大小写,默认中文
  • URL 示例:
    1. http://vop.baidu.com/server_api?lan=zh&cuid=***&token=***

接口返回参数

两种上传方式都返回统一的结果,采用 JSON 格式封装,如果识别成功,识别结果放在 JSON的“result”字段中,统一采用 utf-8 方式编码。

字段名 数据类型 可需 描述
err_no int 必填 错误码
err_msg string 必填 错误码描述
sn string 必填 语音数据唯一标识,系统内部产生。如果反馈及debug请提供sn。
result array ( [string,string,…]) 选填 识别结果数组,提供1-5 个候选结果, 优先使用第一个结果。utf-8 编码。

识别成功返回 case

  1. {"err_no":0,"err_msg":"success.","corpus_no":"15984125203285346378","sn":"481D633F-73BA-726F-49EF-8659ACCC2F3D","result":["北京天气"]}

识别错误返回 case

  1. {"err_no":2000,"err_msg":"data empty.","sn":"481D633F-73BA-726F-49EF-8659ACCC2F3D"}

错误码解释

错误码 含义
3300 输入参数不正确
3301 识别错误
3302 验证失败
3303 语音服务器后端问题
3304 请求 GPS 过大,超过限额
3305 产品线当前日请求数超过限额