1. 简介

讯飞开放平台通过 REST API 的方式给开发者提供语音转写的 HTTP 接口,基于该接口,开发者可以获取开发平台的语音转写能力,方便开发者使用自己熟悉的编程语言快速集成。

2. 接口说明

转写 API 包括以下接口: 预处理、 文件分片上传、 合并文件、 查询处理进度、 获取结果。

  • 预处理 /prepare:
  • 文件分片上传 /upload:
  • 合并文件 /merge:
  • 查询处理进度 /getProgress:
  • 获取结果 /getResult:
    通用返回说明:
参数类型说明
okint调用成功标志(0:成功,-1:失败)
err_noint错误码,详见附录错误码
failedstring错误描述(null:未出错)
datastring数据,具体含义见各接口返回说明(null:无返回值)
task_idstring任务id,此字段只在主动回调的结果中存在

2.1. 接口调用流程

语音转写  - 图1

2.1.1. 预处理接口

说明:第一步调用预处理接口,上传待转写音频文件的基本信息(文件名、大小)和分片信息(若无需分片,slice_num=1)和相关的可配置参数。调用成功,返回任务ID(task_id,转写任务的唯一标识),是后续接口的必传参数。

URL

  1. POST http[s]://raasr.xfyun.cn/api/prepare

请求头

  1. Content-Type: application/x-www-form-urlencoded; charset=UTF-8

参数说明

参数类型必须说明示例
app_idstring讯飞开放平台应用ID595f23df
signastring加密数字签名(基于HMACSHA1算法,可参考实时转写生成方式或页面下方demo)BFQEcN3SgZNC4eECvq0LFUPVHvI=
tsstring当前时间戳,从1970年1月1日0点0分0秒开始到现在的秒数1512041814
file_lenstring文件大小(单位:字节)160044
file_namestring文件名称(带后缀)lfasr_audio.wav
slice_numint文件分片数目(时长小于 5 min 音频,不建议分片,此时slice_num=1)1
check_lengthdouble音频的时长(单位:秒), 用户校验剩余时长是否充足29.0
lfasr_typestring转写类型,可选值: 0(格式包括 wav,flac,opus,mp3,m4a),默认00
has_participlestring转写结果是否包含分词信息false或true, 默认false
has_seperatestring转写结果中是否包含发音人分离信息false或true,默认为false
max_alternativesstring转写结果中最大的候选词个数默认:0,最大不超过5
speaker_numberstring发音人个数,可选值:0-10,0表示盲分默认:2(适用通话时两个人对话的场景)
has_sensitivestring是否需要对转写结果进行敏感词检测false或true, 默认:false
sensitive_typestring敏感词检测类型需要进行敏感词检测(has_sensitive为true)时必传,0(默认词库)或1(自定义敏感词)
keywordsstring自定义的敏感词敏感词检测类型为1时必传,格式:科大讯飞,语音转写(每个词用英文逗号分割,整个字符串长度不超过256)

注: 标准版和电话版本的已经合并,现在购买的都是标准版的订单,lfasr_type传0即可,发音人分离可通过"has_seperate=true"和"speaker_number=个数"来配置。

返回值


成功


  1. {
  2. "ok":0,
  3. "err_no":0,
  4. "failed":null,
  5. "data":"383e72a47557490aa05a344074117a9d"
  6. }

失败


  1. {
  2. "ok":-1,
  3. "err_no":26601,
  4. "failed":"非法应用信息",
  5. "data":null
  6. }

结果说明

调用成功,data即为taskId(任务ID),是后续接口的必传参数。

2.1.2. 文件分片上传接口

说明:预处理成功,调用文件上传接口,按预处理设置的分片信息(slice_num)依次上传音频切片(文件以二进制方式读取上传),直到全部切片上传成功(如预处理时 slice_num=2,则需将音频切分成两部分,slice_id=aaaaaaaaaa和aaaaaaaaab,并按顺序调用该接口)。上一切片成功上传,才可进行下一切片的上传操作。调用过程中若出现异常,可重试若干次。

url

  1. POST http[s]://raasr.xfyun.cn/api/upload

请求头

  1. Content-Type: multipart/form-data;

参数说明

参数类型必须说明示例
app_idstring讯飞开放平台应用ID595f23df
signastring加密数字签名BFQEcN3SgZNC4eECvq0LFUPVHvI=
tsstring时间戳1512041814
task_idstring任务ID(预处理接口返回值)4b705edda27a4140b31b462df0033cfa
slice_idstring分片序号aaaaaaaaaa,aaaaaaaaab
content字节数组分片文件内容

返回值


成功


  1. {
  2. "ok":0,
  3. "err_no":0,
  4. "failed":null,
  5. "data":null
  6. }

失败


  1. {
  2. "ok":-1,
  3. "err_no":26602,
  4. "failed":"任务ID不存在",
  5. "data":null
  6. }

slice_id生成代码(python)示例:

  1. class SliceIdGenerator:
  2. """slice id生成器"""
  3. def __init__(self):
  4. self.__ch = 'aaaaaaaaa`'
  5. def getNextSliceId(self):
  6. ch = self.__ch
  7. j = len(ch) - 1
  8. while j >= 0:
  9. cj = ch[j]
  10. if cj != 'z':
  11. ch = ch[:j] + chr(ord(cj) + 1) + ch[j+1:]
  12. break
  13. else:
  14. ch = ch[:j] + 'a' + ch[j+1:]
  15. j = j -1
  16. self.__ch = ch
  17. return self.__ch

注:每个转写任务上传开始前创建一个SliceIdGenerator,根据分片的顺序依次调用getNextSliceId生成对应的slice_id

2.1.3. 合并文件接口

说明:全部文件切片上传成功后,调用该接口,通知服务端进行文件合并与转写操作。该接口不会返回转写结果,而是通知服务端将任务列入转写计划。转写的结果通过 getResult 接口获取。

url

  1. POST http[s]://raasr.xfyun.cn/api/merge

请求头

  1. Content-Type: application/x-www-form-urlencoded; charset=UTF-8

参数说明

参数类型必须说明示例
app_idstring讯飞开放平台应用ID595f23df
signastring加密数字签名BFQEcN3SgZNC4eECvq0LFUPVHvI=
tsstring时间戳1512041814
task_idstring任务ID(预处理接口返回值)4b705edda27a4140b31b462df0033cfa

返回值


成功


  1. {
  2. "ok":0,
  3. "err_no":0,
  4. "failed":null,
  5. "data":null
  6. }

失败


  1. {
  2. "ok":-1,
  3. "err_no":26602,
  4. "failed":"任务ID不存在",
  5. "data":null
  6. }

2.1.4. 查询处理进度接口

说明:在调用方发出合并文件请求后,服务端已将任务列入计划。在获取结果前,调用方需轮询该接口查询任务当前状态。当且仅当任务状态=9(转写结果上传完成),才可调用获取结果接口获取转写结果。轮询策略由调用方决定,建议每隔10分钟轮询一次。状态码说明见附录。

url

  1. POST http[s]://raasr.xfyun.cn/api/getProgress

请求头

  1. Content-Type: application/x-www-form-urlencoded; charset=UTF-8

参数说明

参数类型必须说明示例
app_idstring讯飞开放平台应用ID595f23df
signastring加密数字签名BFQEcN3SgZNC4eECvq0LFUPVHvI=
tsstring时间戳1512041814
task_idstring任务ID(预处理接口返回值)4b705edda27a4140b31b462df0033cfa

返回值


成功


  1. {
  2. "ok":0,
  3. "err_no":0,
  4. "failed":null,
  5. "data":"{\"desc\":\"任务创建成功\",\"status\":0}"
  6. }

失败


  1. {
  2. "ok":-1,
  3. "err_no":26640,
  4. "failed":"文件上传失败",
  5. "data":null
  6. }

处理流程

语音转写  - 图2

2.1.5. 获取结果接口

说明:当任务处理进度状态=9(见查询处理进度接口),调用该接口获取转写结果。这是转写流程的最后一步。转写结果各字段的详细说明见转写结果说明文档。服务端也支持主动回调,转写完成之后主动发送转写结果到用户配置的回调地址,配置回调地址请联系技术支持。

url

  1. POST http[s]://raasr.xfyun.cn/api/getResult

请求头

  1. Content-Type: application/x-www-form-urlencoded; charset=UTF-8

参数说明

参数类型必须说明示例
app_idstring讯飞开放平台应用ID595f23df
signastring加密数字签名BFQEcN3SgZNC4eECvq0LFUPVHvI=
tsstring时间戳1512041814
task_idstring任务ID(预处理接口返回值)4b705edda27a4140b31b462df0033cfa

返回值


成功


  1. {
  2. "ok":0,
  3. "err_no":0,
  4. "failed":null,
  5. "data":"[{\"bg\":\"0\",\"ed\":\"4950\",\"onebest\":\"科大讯飞是中国最大的智能语音技术提供商。\",\"speaker\":\"0\"}]"
  6. }

失败


  1. {
  2. "ok":-1,
  3. "err_no":26601,
  4. "failed":"非法应用信息",
  5. "data":null
  6. }

3. 附录

3.1. 转写结果字段说明

字段名说明
bg句子相对于本音频的起始时间,单位为ms
ed句子相对于本音频的终止时间,单位为ms
onebest句子内容
si句子标识,相同si表示同一句话,从0开始
speaker说话人编号,从1开始,未开启说话人分离时speaker都为0
wordsResultList分词列表,开启分词或者多候选词时才有
alternativeList多候选列表,按置信度排名,开启多候选词之后才有
wordBg词相对于本句子的起始帧,其中一帧是10ms
wordEd词相对于本句子的终止帧,其中一帧是10ms
wordsName词内容
wc句子置信度,范围为[0,1]
wp词属性,n代表普通词,r代表人名,d代表数字,m代表量词,s代表顺滑词,t代表地名&多音字,p代表标点,g代表分段标识

3.2. 错误码

错误码错误码描述
0成功
26000转写内部通用错误
26100转写配置文件错误
26101转写配置文件app_id/secret_key为空
26102转写配置文件lfasr_host错误
26103转写配置文件file_piece_size错误
26104转写配置文件file_piece_size建议设置10M~30M之间
26105转写配置文件store_path错误,或目录不可读写
26201转写参数上传文件不能为空或文件不存在
26202转写参数类型不能为空
26203转写参数客户端生成签名错误
26301转写断点续传持久化文件读写错误
26302转写断点续传文件夹读写错误
26303转写恢复断点续传流程错误,请见日志
26401转写上传文件路径错误
26402转写上传文件类型不支持错误
26403转写本地文件上传超过限定大小500M
26404转写上传文件读取错误
26500HTTP请求失败
26501转写获取版本号接口错误
26502转写预处理接口错误
26503转写上传文件接口错误
26504转写合并文件接口错误
26505转写获取进度接口错误
26506转写获取结果接口错误
26600转写业务通用错误
26601非法应用信息
26602任务ID不存在
26603接口访问频率受限(默认1秒内不得超过20次)
26604获取结果次数超过限制
26605任务正在处理中,请稍后重试
26606空音频,请检查
26610请求参数错误
26621预处理文件大小受限(500M)
26622预处理音频时长受限(5小时)
26623预处理音频格式受限
26625预处理服务时长不足。您剩余的可用服务时长不足,请移步产品页http://www.xfyun.cn/services/lfasr 进行购买或者免费领取
26631音频文件大小受限(500M)
26632音频时长受限(5小时)
26633音频服务时长不足。您剩余的可用服务时长不足,请移步产品页http://www.xfyun.cn/services/lfasr 进行购买或者免费领
26634文件下载失败
26635文件长度校验失败
26640文件上传失败
26641上传分片超过限制
26642分片合并失败
26643计算音频时长失败,请检查您的音频是否加密或者损坏
26650音频格式转换失败,请检查您的音频是否加密或者损坏
26660计费计量失败
26670转写结果集解析失败
26680引擎处理阶段错误

3.3. 任务状态码

状态ID状态描述
0任务创建成功
1音频上传完成
2音频合并完成
3音频转写中
4转写结果处理中
5转写完成
9转写结果上传完成

3.4. 调用示例

语音转写demo python3语言

语音转写demo java语言

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间:2019-05-07 07:12:51