文档中心
文档中心 / 语音识别
此文档自2018年3月起不再更新,建议访问 http://ai.baidu.com/docs#/ASR-API/top 来查看相关内容

语音识别

参数说明

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

识别语言及模型选择

dev_pid 参数列表

dev_pid 语言 模型 是否有标点 备注
1536 普通话(支持简单的英文识别) 搜索模型 无标点 支持自定义词库
1537 普通话(纯中文识别) 输入法模型 有标点 不支持自定义词库
1737 英语 有标点 不支持自定义词库
1637 粤语 有标点 不支持自定义词库
1837 四川话 有标点 不支持自定义词库
1936 普通话远场 远场模型 有标点 不支持

简介

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

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

正式地址:http://vop.baidu.com/server_apihttps://vop.baidu.com/server_api

文件样例

推荐16K采样率 pcm文件


JSON方式上传

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

字段名 类型 可需 描述
format string 必填 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写。推荐pcm文件
rate string 必填 采样率,16000,固定值
channel string 必填 声道数,仅支持单声道,请填写固定值 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

  1. Content-Type:application/json

请求示例

4K大小的pcm文件(普通话录音)请求:
speech 参数填写为 文件内容base64后的结果:

  1. {
  2. "format":"pcm",
  3. "rate":16000,
  4. "dev_pid":1536,
  5. "channel":1,
  6. "token":xxx,
  7. "cuid":"baidu_workshop",
  8. "len":4096,
  9. "speech":"xxx", // xxx base64FILE_CONTENT
  10. }

返回示例

  1. {"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 表明,例:

  1. Content-Type: audio/pcm;rate=16000

url参数说明

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

URL 示例:

  1. 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

  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"}

raw 方式测试说明

  1. 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"

错误码解释

见错误码及常见原因部分