参数说明

  • 格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式);固定16k 采样率;
  • 系统支持语言种类 普通话

识别语言及模型选择

dev_pid 参数列表

  • 语音识别
dev_pid 语言 模型 是否有标点 备注 请求地址
1536 普通话(支持简单的英文识别) 搜索模型 无标点 支持自定义词库 http://vop.baidu.com/server_api
1537 普通话(纯中文识别) 输入法模型 有标点 不支持自定义词库 http://vop.baidu.com/server_api
1737 英语 无标点 不支持自定义词库 http://vop.baidu.com/server_api
1637 粤语 有标点 不支持自定义词库 http://vop.baidu.com/server_api
1837 四川话 有标点 不支持自定义词库 http://vop.baidu.com/server_api
1936 普通话远场 远场模型 有标点 不支持自定义词库 http://vop.baidu.com/server_api
  • 语音识别极速版
dev_pid 语言 模型 是否有标点 备注 请求地址
80001 普通话 极速版输入法模型 有标点 支持自定义词库 http://vop.baidu.com/pro_api

简介

目前 API 仅支持整段语音识别的模式,即需要上传完整语音文件进行识别。文件大小不超过10M,时长不超过60s。
语音数据上传POST方式有2种:

  1. JSON格式POST上传本地文件。

  2. raw格式POST上传本地文件。

  • 请求地址
语音识别模型 请求地址
语音识别 http://vop.baidu.com/server_api
https://vop.baidu.com/server_api
http://vop.baidubce.com/server_api (服务端部署在百度智能云时,调用该地址可免外网流量费用,且返回识别结果速度更快)
语音识别极速版 https://vop.baidu.com/pro_api

文件样例

推荐16K采样率 pcm文件


JSON方式上传

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

字段名 类型 可需 描述
format string 必填 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写。推荐pcm文件
rate int 必填 采样率,16000,固定值
channel int 必填 声道数,仅支持单声道,请填写固定值 1
cuid int 必填 用户唯一标识,用来区分用户,计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内。
token string 必填 开放平台获取到的开发者[access_token]获取 Access Token "access_token")
dev_pid int 选填 不填写lan参数生效,都不填写,默认1537(普通话 输入法模型),dev_pid参数见本节开头的表格
lan string 选填,废弃参数 历史兼容参数,请使用dev_pid。如果dev_pid填写,该参数会被覆盖。语种选择,输入法模型,默认中文(zh)。 中文=zh、粤语=ct、英文=en,不区分大小写。
speech string 选填 本地语音文件的的二进制语音数据 ,需要进行base64 编码。与len参数连一起使用。
len int 选填 本地语音文件的的字节数,单位字节
  • (speech, len): 开发者可以将语音文件进行
    base64编码,放在 “speech”字段中。并将语音数据的原始长度,填写“len”字段;

上传示例(speech, len 参数)

即:JSON格式POST上传本地文件

固定头部header

Content-Type:application/json

请求示例

4K大小的pcm文件(普通话录音)请求:

POST http://vop.baidu.com/server_api

speech 参数填写为 文件内容base64后的结果:

{
    "format":"pcm",
    "rate":16000,
    "dev_pid":1536,
    "channel":1,
    "token":xxx,
    "cuid":"baidu_workshop",
    "len":4096,
    "speech":"xxx", // xxx为 base64(FILE_CONTENT)
}

返回示例

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

注意事项

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

Raw 方式上传

即 raw格式POST上传本地文件
语音数据直接放在 HTTP BODY 中,控制参数以及相关统计信息通过 header和url里参数传递。

Header 参数说明

字段名 数据类型 可需 描述
format string(格式见下面示例) 必填 语音格式,pcm 或者 wav 或者 amr。不区分大小写,推荐使用pcm文件
rate int(格式见下面示例) 必填 采样率 16000, 固定值

语音数据的采样率和压缩格式在 HTTP-HEADER 里的Content-Type 表明,例:

Content-Type: audio/pcm;rate=16000

url参数说明

字段名 可需 描述
cuid 必填 用户唯一标识,用来区分用户,计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内。
token 必填 开放平台获取到的开发者[access_token]获取 Access Token "access_token")
dev_pid 选填 不填写lan参数生效,都不填写,默认1537(普通话 输入法模型),dev_pid参数见本节开头的表格
lan 选填,废弃参数 历史兼容参数,请使用dev_pid。如果dev_pid填写,该参数会被覆盖。语种选择,输入法模型,默认中文(zh)。 中文=zh、粤语=ct、英文=en,不区分大小写。

URL 示例:

POST http://vop.baidu.com/server_api?dev_pid=1536&cuid=******&token=1.a6b7dbd428f731035f771b8d********.86400.1292922000-2346678-124328

接口返回参数

两种上传方式都返回统一的结果,采用 JSON 格式封装,如果识别成功,识别结果放在 JSON的“result”字段中,统一采用 utf-8 方式编码。
(如果使用POST方式的(url,callback)方式,百度服务器会回调用户服务器的callback地址, 返回如下结果)

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

识别成功返回 case

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

识别错误返回 case

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

raw 方式测试说明

curl -i -X POST -H "Content-Type: audio/pcm;rate=16000" "http://vop.baidu.com/server_api?dev_pid=1536&cuid=xxxxx&token=1.a6b7dbd428f731035f771b8d********.86400.1292922000-2346678-124328" --data-binary "@/home/test/test.pcm"

错误码解释

见错误码及常见原因部分