有奖捉虫:云通信与企业服务文档专题,速来> HOT

功能描述

提交一个语音识别任务。

授权说明

通过子账号使用时,需要授予ci:CreateAsrJobs 权限,详情请参见 数据万象 action
子账号使用异步处理接口时,需要授予 cam:passrole权限,异步处理接口会通过 CAM 的“角色”进行 COS 的资源读写操作,PassRole 权限用于传递角色, 具体请查看 访问管理-写操作-PassRole 接口

服务开通

使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶

使用限制

使用该接口时,请先确认相关限制条件。详情请参见 使用限制

费用说明

该接口为付费服务,产生的费用将由数据万象收取,详细计费说明可参见 智能语音费用


请求

请求示例

POST /jobs HTTP/1.1
Host: <BucketName-APPID>.ci.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>
Content-Length: <length>
Content-Type: application/xml

<body>
说明
Authorization: Auth String,详情请参见 请求签名 文档。
极速ASR仅支持100 MB以内且时长不超过2小时的音频文件。
普通ASR的音频时长不能长于5小时,文件大小不超过512MB。

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

该请求操作的实现需要有如下请求体。
<Request>
<Tag>SpeechRecognition</Tag>
<Input>
<Object>input/test.mp3</Object>
</Input>
<Operation>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/asr.txt</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</Request>
具体的数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Request
保存请求的容器
Container
Container 类型 Request 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Tag
Request
创建任务的 Tag:SpeechRecognition
String
Input
Request
待操作的对象信息
Container
Operation
Request
操作规则
Container
CallBackFormat
Request
任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式
String
CallBackType
Request
任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型
String
CallBack
Request
任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调
String
CallBackMqConfig
Request
任务回调TDMQ配置,当 CallBackType 为 TDMQ 时必填。详情见 CallBackMqConfig
Container
Container 类型 Input 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Object
Request.Input
文件路径
String
Container 类型
Operation
的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
TemplateId
Request.Operation
语音识别模板 ID
String
SpeechRecognition
Request.Operation
语音识别参数,同创建语音识别模板接口中的 Request.SpeechRecognition
Container
Output
Request.Operation
结果输出配置
Container
UserData
Request.Operation
透传用户信息, 可打印的 ASCII 码, 长度不超过1024
String
JobLevel
Request.Operation
任务优先级,级别限制:0 、1 、2 。级别越大任务优先级越高,默认为0
String
注意
语音识别参数必须设置,可以通过 TemplateId 或 SpeechRecognition 设置, TemplateId 优先级更高。
Container 类型 Output 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Region
Request.Operation.Output
存储桶的地域
String
Bucket
Request.Operation.Output
存储结果的存储桶
String
Object
Request.Operation.Output
结果文件的名称
String

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
<Response>
<JobsDetail>
<Code>Success</Code>
<CreationTime>2021-08-05T15:43:50+0800</CreationTime>
<EndTime>-</EndTime>
<Input>
<BucketId>test-1234567890</BucketId>
<Object>input/test.mp3</Object>
<Region>ap-chongqing</Region>
</Input>
<JobId>s58ccb634149211ed84ce2b1cd7fbb14a</JobId>
<Message/>
<Operation>
<Output>
<Bucket>test-1234567890</Bucket>
<Object>output/asr.txt</Object>
<Region>ap-chongqing</Region>
</Output>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<TemplateName>speech_demo</TemplateName>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>pcd463e1467964d39ad2d3f66aacd8199</QueueId>
<StartTime>-</StartTime>
<State>Submitted</State>
<Tag>SpeechRecognition</Tag>
</JobsDetail>
</Response>
具体的数据内容如下:
节点名称(关键字)
父节点
描述
类型
Response
保存结果的容器
Container
Container 节点 Response 的内容:
节点名称(关键字)
父节点
描述
类型
JobsDetail
Response
任务的详细信息
Container 数组
Container 节点
JobsDetail
的内容:
节点名称(关键字)
父节点
描述
类型
Code
Response.JobsDetail
错误码,只有 State 为 Failed 时有意义
String
Message
Response.JobsDetail
错误描述,只有 State 为 Failed 时有意义
String
JobId
Response.JobsDetail
新创建任务的 ID
String
Tag
Response.JobsDetail
新创建任务的 Tag:SpeechRecognition
String
State
Response.JobsDetail
任务状态
Submitted:已提交,待执行
Running:执行中
Success:执行成功
Failed:执行失败
Pause:任务暂停,当暂停队列时,待执行的任务会变为暂停状态
Cancel:任务被取消执行
String
CreationTime
Response.JobsDetail
任务的创建时间
String
StartTime
Response.JobsDetail
任务的开始时间
String
EndTime
Response.JobsDetail
任务的结束时间
String
QueueId
Response.JobsDetail
任务所属的 队列 ID
String
Input
Response.JobsDetail
同请求中的 Request.Input 节点
Container
Operation
Response.JobsDetail
该任务的规则
Container
Container 节点 Operation 的内容:
节点名称(关键字)
父节点
描述
类型
TemplateId
Response.JobsDetail.Operation
任务的模板 ID
String
TemplateName
Response.JobsDetail.Operation
任务的模板名称, 当 TemplateId 存在时返回
String
SpeechRecognition
Response.JobsDetail.Operation
同请求中的 Request.Operation.SpeechRecognition
Container
Output
Response.JobsDetail.Operation
同请求中的 Request.Operation.Output
Container
UserData
Response.JobsDetail.Operation
透传用户信息
String
JobLevel
Response.JobsDetail.Operation
任务优先级
String
SpeechRecognitionResult
Response.JobsDetail.Operation
语音识别任务结果,没有时不返回
Container
Container 节点 SpeechRecognitionResult 的内容:
节点名称(关键字)
父节点
描述
类型
AudioTime
Response.JobsDetail.Operation.SpeechRecognitionResult
音频时长(秒)
String
Result
Response.JobsDetail.Operation.SpeechRecognitionResult
语音识别结果
String
FlashResult
Response.JobsDetail.Operation.SpeechRecognitionResult
极速语音识别结果
Container 数组
ResultDetail
Response.JobsDetail.Operation.SpeechRecognitionResult
识别结果详情,包含每个句子中的词时间偏移,一般用于生成字幕的场景。(语音识别请求中ResTextFormat=1时该字段不为空)
注意:此字段可能为空,表示取不到有效值。
Container 数组
Container 节点 FlashResult 的内容:
节点名称(关键字)
父节点
描述
类型
channel_id
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult
声道标识,从0开始,对应音频声道数
Int
text
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult
声道音频完整识别结果
String
sentence_list
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult
句子/段落级别的识别结果列表
Container 数组
Container 节点 sentence_list 的内容:
节点名称(关键字)
父节点
描述
类型
text
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult.sentence_list
句子/段落级别文本
String
start_time
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult.sentence_list
开始时间
Int
end_time
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult.sentence_list
结束时间
Int
speaker_id
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult.sentence_list
说话人 Id(请求中如果设置了 speaker_diarization,可以按照 speaker_id 来区分说话人)
Int
word_list
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult.sentence_list
词级别的识别结果列表
Container 数组
Container 节点 word_list 的内容:
节点名称(关键字)
父节点
描述
类型
word
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult.sentence_list.word_list
词级别文本
String
start_time
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult.sentence_list.word_list
开始时间
Int
end_time
Response.JobsDetail.Operation.SpeechRecognitionResult.FlashResult.sentence_list.word_list
结束时间
Int
Container 节点 ResultDetail 的内容:
节点名称(关键字)
父节点
描述
类型
FinalSentence
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail
单句最终识别结果
String
SliceSentence
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail
单句中间识别结果,使用空格拆分为多个词
String
StartMs
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail
单句开始时间(毫秒)
String
EndMs
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail
单句结束时间(毫秒)
String
WordsNum
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail
单句中词个数
String
SpeechSpeed
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail
单句语速,单位:字数/秒
String
SpeakerId
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail
声道或说话人 Id(请求中如果设置了 speaker_diarization或者ChannelNum为双声道,可区分说话人或声道)
String
Words
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail
单句中词详情
Container 数组
Container 节点 Words 的内容:
节点名称(关键字)
父节点
描述
类型
Word
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail.Words
词文本
String
OffsetStartMs
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail.Words
在句子中的开始时间偏移量
String
OffsetEndMs
Response.JobsDetail.Operation.SpeechRecognitionResult.ResultDetail.Words
在句子中的结束时间偏移量
String

错误码

该请求操作无特殊错误信息,常见的错误信息请参见 错误码 文档。

实际案例

请求:使用语音识别模板 ID

POST /jobs HTTP/1.1
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0ea057
Host: test-1234567890.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml

<Request>
<Tag>SpeechRecognition</Tag>
<Input>
<Object>input/test.mp3</Object>
</Input>
<Operation>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/asr.txt</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</Request>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Mon, 28 Jun 2022 15:23:12 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****

<Response>
<JobsDetail>
<Code>Success</Code>
<CreationTime>2021-08-05T15:43:50+0800</CreationTime>
<EndTime>-</EndTime>
<Input>
<BucketId>test-1234567890</BucketId>
<Object>input/test.mp3</Object>
<Region>ap-chongqing</Region>
</Input>
<JobId>s58ccb634149211ed84ce2b1cd7fbb14a</JobId>
<Message/>
<Operation>
<JobLevel>0</JobLevel>
<Output>
<Bucket>test-1234567890</Bucket>
<Object>output/asr.txt</Object>
<Region>ap-chongqing</Region>
</Output>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<TemplateName>speech_demo</TemplateName>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>pcd463e1467964d39ad2d3f66aacd8199</QueueId>
<StartTime>-</StartTime>
<State>Submitted</State>
<Tag>SpeechRecognition</Tag>
</JobsDetail>
</Response>

请求2:使用语音识别参数

POST /jobs HTTP/1.1
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0ea057
Host: test-1234567890.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml

<Request>
<Tag>SpeechRecognition</Tag>
<Input>
<Object>input/test.mp3</Object>
</Input>
<Operation>
<SpeechRecognition>
<EngineModelType>16k_zh_video</EngineModelType>
<ChannelNum>1</ChannelNum>
<FilterDirty>1</ChannelNum>
<FilterModal>1</ChannelNum>
</SpeechRecognition>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/asr.txt</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</Request>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Mon, 28 Jun 2022 15:23:12 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****


<Response>
<JobsDetail>
<Code>Success</Code>
<CreationTime>2021-08-05T15:43:50+0800</CreationTime>
<EndTime>-</EndTime>
<Input>
<BucketId>test-1234567890</BucketId>
<Object>input/test.mp3</Object>
<Region>ap-chongqing</Region>
</Input>
<JobId>s58ccb634149211ed84ce2b1cd7fbb14a</JobId>
<Message/>
<Operation>
<Output>
<Bucket>test-1234567890</Bucket>
<Object>output/asr.txt</Object>
<Region>ap-chongqing</Region>
</Output>
<SpeechRecognition>
<ChannelNum>1</ChannelNum>
<ConvertNumMode>0</ConvertNumMode>
<EngineModelType>16k_zh_video</EngineModelType>
<FilterDirty>0</FilterDirty>
<FilterModal>0</FilterModal>
<FilterPunc>0</FilterPunc>
<OutputFileType>txt</OutputFileType>
<ResTextFormat>0</ResTextFormat>
<SpeakerDiarization>0</SpeakerDiarization>
<SpeakerNumber>0</SpeakerNumber>
</SpeechRecognition>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>pcd463e1467964d39ad2d3f66aacd8199</QueueId>
<StartTime>-</StartTime>
<State>Submitted</State>
<Tag>SpeechRecognition</Tag>
</JobsDetail>
</Response>