Feature Description
Submit an audio noise reduction task.
Authorization Description
When using a sub-account, you need to add the ci:CreateAsrJobs permission to the action in the authorization policy. For all supported Cloud Infinite APIs, see CI action. When a sub-account uses the asynchronous processing API, it must be granted the cam:PassRole permission. The asynchronous processing API performs COS read-write operations through CAM's "role". The PassRole permission is used for role passing. For details, refer to Cloud Access Management > Write Operation > PassRole API. Service Activation
To use this feature, you need to bind a bucket in advance and enable Cloud Infinite service. To use this feature, you need to enable Smart Audio Service in advance via the console or API. Note:
After binding Cloud Infinite (CI), if you manually perform the unbinding operation for the bucket, you will not be able to continue using this feature.
Use Limits
When using this API, please confirm the related use limits. For details, see Use Limits. Fee Instructions
This API is a paid service. The generated costs will be charged by CI. For billing details, see smart audio fee. Request
Request sample
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>
Note:
Authorization: A request header that carries authentication information to validate requests. For details, see the Request Signature document. Request header
Request body
The following figure shows the request bodies required for implementing this request operation.
<Request>
<Tag>NoiseReduction</Tag>
<Input>
<Object>input/demo.mp3</Object>
</Input>
<Operation>
<NoiseReduction>
<Format>wav</Format>
<SampleRate>16000</SampleRate>
</NoiseReduction>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.wav</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON</CallBackFormat>
</Request>
The data are described as follows:
|
Request | None. | Container for saving requests | Container | Yes |
Container type Request data description as follows:
|
Tag | Request | Create task Tag: NoiseReduction | String | Yes |
Input | Request | File information to be operated | Container | Yes |
Operation | Request | Operation rule | Container | Yes |
CallBackFormat | Request | Job callback format, JSON or XML, default XML, priority is higher than queue callback format | String | No |
CallBackType | Request | Job callback type, Url or TDMQ, default Url, priority is higher than queue callback type | String | No |
CallBack | Request | Job callback address, priority is higher than queue callback address. When set to no, it means the queue callback address will not generate callbacks. | String | No |
CallBackMqConfig | Request | Task callback TDMQ configuration. Required when CallBackType is TDMQ. For details, see CallBackMqConfig. | Container | No |
Container type Input data description as follows:
|
Object | Request.Input | File path for executing audio noise reduction task Currently only support audio with file size within 10M If the input is a video file or multi-channel audio, only the single-channel audio stream will be retained. Currently not support m3u8 format input | String | Yes |
Container type Operation
data description as follows: |
TemplateId | Request.Operation | | String | No |
NoiseReduction | Request.Operation | | Container | No |
JobLevel | Request.Operation | Task priority, level limit: 0, 1, 2. Higher level means higher priority, defaults to 0. | String | No |
UserData | Request.Operation | Transmit user information, printable ASCII codes, length not exceeding 1024 | String | No |
Output | Request.Operation | Output configuration | Container | Yes |
Note:
Noise reduction parameters must be set, which can be done through TemplateId or NoiseReduction settings, with TemplateId having higher priority.
Container type Output
data description as follows: |
Region | Request.Operation.Output | Bucket Region | String | Yes |
Bucket | Request.Operation.Output | Bucket for result storage | String | Yes |
Object | Request.Operation.Output | Filename for output result | String | Yes |
Response
Response Headers
Response Body
The response body is returned as application/xml. An example including the complete node data is shown below:
<Response>
<JobsDetail>
<Code>Success</Code>
<Message/>
<JobId>j8d121820f5e411ec926ef19d53ba9c6f</JobId>
<State>Submitted</State>
<CreationTime>2022-06-27T15:23:10+0800</CreationTime>
<StartTime>-</StartTime>
<EndTime>-</EndTime>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<QueueType>Speeching</QueueType>
<Tag>NoiseReduction</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<NoiseReduction>
<Format>wav</Format>
<SampleRate>16000</SampleRate>
</NoiseReduction>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.wav</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
</JobsDetail>
</Response>
The data are as follows:
|
Response | None. | Container for saving results | Container |
Container node Response content:
|
JobsDetail | Response | Task details | Container Array |
Container node JobsDetail
content: |
Code | Response.JobsDetail | Error code, this parameter is valid only when State is Failed | String |
Message | Response.JobsDetail | Error description, this parameter is valid only when State is Failed | String |
JobId | Response.JobsDetail | ID of the newly created task | String |
Tag | Response.JobsDetail | Tag of the newly created task: NoiseReduction | String |
State | Response.JobsDetail | Task Status Submitted: submitted, pending execution Running: executing Success: execution successful Failed: execution failed Pause: task is paused. When the queue is paused, to be executed tasks change to paused state. Cancel: task cancelled | String |
CreationTime | Response.JobsDetail | Task creation time | String |
StartTime | Response.JobsDetail | Task start time | String |
EndTime | Response.JobsDetail | Task end time | String |
QueueId | Response.JobsDetail | | String |
QueueType | Response.JobsDetail | Task queue type | String |
Input | Response.JobsDetail | Input resource address of the task | Container |
Operation | Response.JobsDetail | Operation rule of the task | Container |
Content of the Container node Input:
|
Region | Response.JobsDetail.Input | Bucket Region | String |
BucketId | Response.JobsDetail.Input | The source file resides in the bucket | String |
Object | Response.JobsDetail.Input | Filename of the source file | String |
Content of the Container node Operation:
|
TemplateId | Response.JobsDetail.Operation | Noise reduction template ID | String |
TemplateName | Response.JobsDetail.Operation | Task template name, return when TemplateId exists | String |
NoiseReduction | Response.JobsDetail.Operation | | Container |
Output | Response.JobsDetail.Operation | | Container |
UserData | Response.JobsDetail.Operation | Pass through user information | String |
JobLevel | Response.JobsDetail.Operation | Task priority. | String |
Error Code
This request returns common error responses and error codes. For more information, see Error Codes. Practical Case
Case 1: Use a Noise Reduction Template ID
Request
POST /jobs HTTP/1.1
Authorization:q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=****************************************
Host:test-1234567890.ci.ap-chongqing.myqcloud.com
Content-Length: 166
Content-Type: application/xml
<Request>
<Tag>NoiseReduction</Tag>
<Input>
<Object>input/demo.mp3</Object>
</Input>
<Operation>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd<TemplateId>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.wav</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON</CallBackFormat>
</Request>
Response
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: NTk0MjdmODlfMjQ4OGY3XzYzYzhfMjc=
<Response>
<JobsDetail>
<Code>Success</Code>
<Message/>
<JobId>j8d121820f5e411ec926ef19d53ba9c6f</JobId>
<State>Submitted</State>
<CreationTime>2022-06-27T15:23:10+0800</CreationTime>
<StartTime>-</StartTime>
<EndTime>-</EndTime>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<QueueType>Speeching</QueueType>
<Tag>NoiseReduction</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd<TemplateId>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.wav</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
</JobsDetail>
</Response>
Case 2: Using Noise Reduction Parameters
Request
POST /jobs HTTP/1.1
Authorization:q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=****************************************
Host:test-1234567890.ci.ap-chongqing.myqcloud.com
Content-Length: 166
Content-Type: application/xml
<Request>
<Tag>NoiseReduction</Tag>
<Input>
<Object>input/demo.mp3</Object>
</Input>
<Operation>
<NoiseReduction>
<Format>wav</Format>
<SampleRate>16000</SampleRate>
</NoiseReduction>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.wav</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON</CallBackFormat>
</Request>
Response
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: NTk0MjdmODlfMjQ4OGY3XzYzYzhfMjc=
<Response>
<JobsDetail>
<Code>Success</Code>
<Message/>
<JobId>j8d121820f5e411ec926ef19d53ba9c6f</JobId>
<State>Submitted</State>
<CreationTime>2022-06-27T15:23:10+0800</CreationTime>
<StartTime>-</StartTime>
<EndTime>-</EndTime>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<QueueType>Speeching</QueueType>
<Tag>NoiseReduction</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<NoiseReduction>
<Format>wav</Format>
<SampleRate>16000</SampleRate>
</NoiseReduction>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.wav</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
</JobsDetail>
</Response>