全部产品
阿里云办公

简介

更新时间:2018-11-15 10:14:44

功能介绍

  • 支持单轨/双轨的WAV格式、MP3格式的录音文件识别;
  • 支持两种调用方式:轮询方式和回调方式;
  • 支持自学习平台和热词;
  • 支持8000Hz、16000Hz的采样率;
  • 支持汉语普通话、方言、欧美英语等多种模型识别;

调用限制

  • 文件大小需控制在512MB以下;
  • 提交录音文件识别请求后,在24小时内完成识别,识别结果在服务端可保存72小时;
  • 免费用户每日可识别不超过10小时时长的录音文件;
  • 录音文件访问权限需要为公开,URL中只能使用域名,不能使用IP地址。

使用步骤

  1. 了解您的录音文件格式和采样率,根据您的业务场景在管控台中选择合适的场景和模型
  2. 用户把录音文件存放到OSS。如果文件访问权限为公开,可以直接获取文件访问链接;如果文件访问权限为私有,可以通过SDK生成有过期时间的访问链接
  3. 客户端提交录音文件识别请求,正常服务端会返回该请求任务的ID,用以查询识别结果。
  4. 客户端发送识别结果查询请求,通过步骤3获取的请求任务ID查询录音文件识别的结果,目前识别的结果在服务端可保存72小时。

客户端与服务端的交互流程如图所示:

交互流程

接口调用方式

录音文件识别服务是以RPC风格的POP API方式提供录音文件识别接口,将参数封装到每一个请求中,每个请求即对应一个方法,执行的结果放在response中。需要识别的录音文件必须存放在某服务上(推荐阿里云OSS),可以通过URL访问。

录音文件识别POP API包括两部分:POST方式的“录音文件识别请求调用接口”,GET方式的“录音文件识别结果查询接口”。

录音文件识别请求调用接口

  • 当采用轮询方式时,提交录音文件识别任务,获取任务ID,供后续轮询使用。
  • 当采用回调方式时,提交录音文件识别任务和回调URL,任务完成后会把识别结果发送到回调地址。

注意:回调方式的识别结果内容为JSON字符串,格式与下面识别结果查询接口返回的JSON相同。

输入参数

提交录音文件识别请求时,需要设置输入参数,以JSON格式的字符串传入请求对象的Body,JSON格式例如:

  1. {
  2. "app_key": "your-appkey",
  3. "file_link": "http://aliyun-nls.oss.aliyuncs.com/asr/fileASR/examples/nls-sample.wav",
  4. "auto_split":false,
  5. //valid_times是获取语音的指定时间段的识别内容,如果不需要,则不用填写
  6. "valid_times": [
  7. {
  8. "begin_time": 200,
  9. "end_time":2000,
  10. "channel_id": 0
  11. }
  12. ]
  13. }

输入参数解析:

属性 值类型 是否必须 说明
app_key String 业务方或者业务场景的标记,即用户在智能语音管控台中创建的项目的appkey
file_link String 存放录音文件的地址链接,需要在管控台中将对应项目的模型设置为支持该音频场景的模型
enable_callback Boolean 是否启用回调功能,默认值为false
callback_url String 回调用户服务的地址,enable_callback=true时,本字段必填,url支持http和https
auto_split Boolean 是否开启智能分轨(只支持8000Hz采样率单通道语音)
valid_times List< ValidTime > 有效时间段信息,用来排除一些不必要的时间段

其中,ValidTime对象的参数描述:

属性 值类型 是否必须 说明
begin_time Int 有效时间段的起始点时间偏移(单位: ms)
end_time Int 有效时间段的结束点时间偏移(单位: ms)
channel_id Int 有效时间段的作用音轨序号(从0开始)

输出参数

服务端返回录音文件识别请求的响应,响应的输出参数为JSON格式的字符串:

  1. {
  2. "TaskId": "4b56f0c4b7e611e88f34c33c2a60497b",
  3. "RequestId": "E4B183CC-6CFE-411E-A547-D877F7BD6C44",
  4. "StatusText": "SUCCESS",
  5. "StatusCode": 21050000
  6. }

输出参数描述:

  • 返回HTTP状态:200表示成功,更多状态码请查阅HTTP状态码;
  • 返回参数JSON字符串:
属性 值类型 是否必须 说明
TaskId String 识别任务ID
RequestId String 请求ID,仅用于联调
StatusCode Int 状态码
StatusText String 状态说明

录音文件识别结果查询接口

在提交完录音文件识别请求后,用户可以按照如下参数设置轮询识别结果。

输入参数

用户通过提交录音文件识别请求获得的任务ID作为识别结果查询接口参数,可以获取识别结果,在接口调用过程中,需要设置一定的查询时间间隔。

属性 值类型 是否必须 说明
TaskId String 识别任务ID

输出参数

服务端返回识别结果查询请求的响应,响应的输出参数为JSON格式的字符串。

正常返回:以录音文件 nls-sample-16k.wav(文件为单轨)识别结果为例:

  1. {
  2. "TaskId": "d429dd7dd75711e89305ab6170fe6cd1",
  3. "RequestId": "9240D669-6485-4DCC-896A-F8B31F946CF9",
  4. "StatusText": "SUCCESS",
  5. "BizDuration": 2956,
  6. "SolveTime": 1540363288472,
  7. "StatusCode": 21050000,
  8. "Result": {
  9. "Sentences": [{
  10. "EndTime": 2365,
  11. "SilenceDuration": 0,
  12. "BeginTime": 340,
  13. "Text": "北京的天气。",
  14. "ChannelId": 0,
  15. "SpeechRate": 177,
  16. "EmotionValue": 5.0
  17. }]
  18. }
  19. }

排队中:

  1. {
  2. "TaskId": "c7274235b7e611e88f34c33c2a60497b",
  3. "RequestId": "981AD922-0655-46B0-8C6A-5C836822F773",
  4. "StatusText": "QUEUEING",
  5. "StatusCode": 21050002
  6. }

识别中:

  1. {
  2. "TaskId": "c7274235b7e611e88f34c33c2a60497b",
  3. "RequestId": "8E908ED2-867F-457E-82BF-4756194A6C78",
  4. "StatusText": "RUNNING",
  5. "BizDuration": 0,
  6. "StatusCode": 21050001
  7. }

异常返回:

以文件下载失败为例:

  1. {
  2. "TaskId": "4cf25b7eb7e711e88f34c33c2a60497b",
  3. "RequestId": "098BF27C-4CBA-45FF-BD11-3F532F261733",
  4. "StatusText": "FILE_DOWNLOAD_FAILED",
  5. "BizDuration": 0,
  6. "SolveTime": 1536906469146,
  7. "StatusCode": 41050002
  8. }

更多异常情况请查看下面的服务状态码的错误状态码及解决方案。

参数说明:

  • 返回HTTP状态:200表示成功,更多状态码请查阅HTTP状态码;
  • 返回JSON字符串
属性 值类型 是否必须 说明
TaskId String 识别任务ID
StatusCode Int 状态码
StatuxText String 状态说明
RequestId String 请求id,用于调试
Result List< Map< String, SentenceResult > > 识别的结果数据。当StatuxText为SUCCEED时存在
BizDuration Long 识别的音频文件总时长(ms)
SolveTime Long 时间戳

其中,单句结果SentenceResult描述:

属性 值类型 是否必须 说明
ChannelId Int 该句所属音轨ID
BeginTime Int 该句的起始时间偏移,单位为毫秒
EndTime Int 该句的结束时间偏移,单位为毫秒
Text String 该句的识别文本结果
EmotionValue Int 情绪能量值1-10,值越高情绪越强烈
SilenceDuration Int 本句与上一句之间的静音时长,单位为秒
SpeechRate String 本句的平均语速,单位为每分钟字数

服务状态码

正常状态码:

状态码 状态描述 状态含义 解决方案
21050000 SUCCESS 成功 POST方式的识别请求接口调用成功,或者GET方式的识别结果查询接口调用成功
21050001 QUEUEING 录音文件识别任务排队中 请稍后再发送GET方式的识别结果查询请求
21050002 RUNNING 录音文件识别任务运行中 请稍后再发送GET方式的识别结果查询请求
21050003 SUCCESS_WITH_NO_VALID_FRAGMENT 识别结果查询接口调用成功,但是没有识别到语音 检查录音文件是否有语音,或者语音时长太短

错误状态码:

说明:状态码4开头表示客户端错误,5开头表示服务端错误。

状态码 状态描述 状态含义 解决方案
41050001 USER_BIZDURATION_QUOTA_EXCEED 用户单日时间超限 如业务量较大,请联系商务洽谈 邮件地址:nls_support@service.aliyun.com
41050002 FILE_DOWNLOAD_FAILED 文件下载失败 检查录音文件路径是否正确,或阿里云的服务器是否可以正常访问下载
41050003 FILE_CHECK_FAILED 文件格式错误 检查录音文件是否是单轨/双轨的WAV格式、MP3格式
41050004 FILE_TOO_LARGE 文件过大 检查录音文件大小是否超过128MB
41050005 FILE_NORMALIZE_FAILED 文件归一化失败 检查录音文件是否有损坏,是否可以正常播放
41050006 FILE_PARSE_FAILED 文件解析失败 检查录音文件是否有损坏,是否可以正常播放
41050007 MKV_PARSE_FAILED MKV解析失败 检查录音文件是否有损坏,是否可以正常播放
41050008 UNSUPPORTED_SAMPLE_RATE 采样率不支持 检查录音文件采样率是否是8000、16000
41050009 UNSUPPORTED_ASR_GROUP ASR分组不支持 确认下ak和appkey是否一致
41050010 FILE_TRANS_TASK_EXPIRED 录音文件识别任务过期 TaskId不存在,或者已过期
51050000 INTERNAL_ERROR 内部通用错误 如果偶现可以忽略,重复出现请提交工单
51050001 VAD_FAILED VAD失败 如果偶现可以忽略,重复出现请提交工单
51050002 RECOGNIZE_FAILED 内部alisr识别失败 如果偶现可以忽略,重复出现请提交工单
51050003 RECOGNIZE_INTERRUPT 内部alisr识别中断 如果偶现可以忽略,重复出现请提交工单
51050004 OFFER_INTERRUPT 内部写入队列中断 如果偶现可以忽略,重复出现请提交工单
51050005 FILE_TRANS_TIMEOUT 内部整体超时失败 如果偶现可以忽略,重复出现请提交工单
51050006 FRAGMENT_FAILED 内部分断失败 如果偶现可以忽略,重复出现请提交工单