有奖:语音产品征文挑战赛火热进行中> HOT

简介

本文档提供关于语音合成任务接口的 API 概览和 SDK 示例代码。
API
操作描述
提交语音合成任务
查询指定的任务

提交语音合成任务

功能说明

提交一个语音合成任务。

方法原型

public Guzzle\\Service\\Resource\\Model createVoiceTtsJobs(array $args = array());

请求示例

示例一:使用模板

<?php

require dirname(__FILE__, 2) . '/vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'schema' => 'https', //协议头部,默认为 http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
// 1. 使用模板
$result = $cosClient->createVoiceTtsJobs(array(
'Bucket' => 'examplebucket-125000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Tag' => 'Tts', // 固定为 Tts
'Operation' => array(
'TemplateId' => 't1460606b9752148c4ab182f55163ba7cd',
'TtsConfig' => array(
'InputType' => 'Text',
'Input' => '床前明月光,疑是地上霜',
),
'Output' => array(
'Region' => $region,
'Bucket' => 'examplebucket-125000000',
'Object' => 'demo.mp3',
),
// 'UserData' => 'xxx',
// 'JobLevel' => '0',
),
// 'CallBack' => '',
// 'CallBackFormat' => '',
// 'CallBackType' => '',
// 'CallBackMqConfig' => array(
// 'MqRegion' => '',
// 'MqMode' => '',
// 'MqName' => '',
// ),
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

示例二:自定义参数

<?php

require dirname(__FILE__, 2) . '/vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'schema' => 'https', //协议头部,默认为 http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
// 2. 自定义参数
$result = $cosClient->createVoiceTtsJobs(array(
'Bucket' => 'examplebucket-125000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Tag' => 'Tts', // 固定为 Tts
'Operation' => array(
'TtsConfig' => array(
'InputType' => 'Text',
'Input' => '床前明月光,疑是地上霜',
),
'TtsTpl' => array(
'Mode' => 'Sync',
'Codec' => 'pcm',
'VoiceType' => 'aixiaoxing',
'Volume' => '2',
'Speed' => '200',
'Emotion' => 'arousal',
),
'Output' => array(
'Region' => $region,
'Bucket' => 'examplebucket-125000000',
'Object' => 'demo.mp3',
),
// 'UserData' => 'xxx',
// 'JobLevel' => '0',
),
// 'CallBack' => '',
// 'CallBackFormat' => '',
// 'CallBackType' => '',
// 'CallBackMqConfig' => array(
// 'MqRegion' => '',
// 'MqMode' => '',
// 'MqName' => '',
// ),
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

Request 中的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Tag
Request
创建任务的 Tag:Tts
String
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 类型 Operation 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
TtsTpl
Request.Operation
语音合成参数
Container
TemplateId
Request.Operation
模板 ID
String
TtsConfig
Request.Operation
语音合成任务参数
Container
Output
Request.Operation
结果输出配置
Container
UserData
Request.Operation
透传用户信息,可打印的 ASCII 码,长度不超过1024
String
JobLevel
Request.Operation
任务优先级,级别限制:0 、1 、2 。级别越大任务优先级越高,默认为0
String
注意
优先使用 TemplateId,无 TemplateId 时使用 TtsTpl。
Container 类型 TtsTpl 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Mode
Request.Operation.TtsTpl
同创建语音合成模板接口中的 Request.Mode
String
Codec
Request.Operation.TtsTpl
同创建语音合成模板接口中的 Request.Codec
String
VoiceType
Request.Operation.TtsTpl
同创建语音合成模板接口中的 Request.VoiceType
String
Volume
Request.Operation.TtsTpl
同创建语音合成模板接口中的 Request.Volume
String
Speed
Request.Operation.TtsTpl
同创建语音合成模板接口中的 Request.Speed
String
Emotion
Request.Operation.TtsTpl
同创建语音合成模板接口中的 Request.Emotion
String
Container 类型 TtsConfig 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
InputType
Request.Operation.TtsConfig
输入类型,Url/Text
String
Input
Request.Operation.TtsConfig
1. 当 InputType 为 Url 时, 必须是合法的 COS 地址,文件必须是utf-8编码,且大小不超过10M。如果模板中指定的合成方式为同步处理,则文件内容不超过300个utf-8字符;如果模板中指定的合成方式为异步处理,则文件内容不超过10000个utf-8字符
2. 当 InputType为Text 时, 输入必须是utf-8字符, 且不超过300个字符
String
Container 类型 Output 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Region
Request.Operation.Output
存储桶的地域
String
Bucket
Request.Operation.Output
存储结果的存储桶
String
Object
Request.Operation.Output
结果文件名
String

返回结果示例

GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjRjYjYNjRjMjIxODBfMzUxNGSIOJOIDAJOIDg=
[ContentType] => application/xml
[ContentLength] => 938
[JobsDetail] => Array
(
[QueueType] => Speeching
[Code] => Success
[Message] =>
[JobId] => jb8cpc7a00f19asf798sd7f89s7f2e646
[Tag] => Tts
[State] => Submitted
[CreationTime] => 2023-08-03T16:14:09+0800
[StartTime] => -
[EndTime] => -
[QueueId] => p0c99c6pc7a00f19asf798sd7f89s7f2e646
[Operation] => Array
(
[TtsTpl] => Array
(
[Codec] => pcm
[Emotion] => arousal
[Mode] => Sync
[Speed] => 200
[VoiceType] => aixiaoxing
[Volume] => 2
)

[UserData] => xxx
[JobLevel] => 0
[TtsConfig] => Array
(
[InputType] => Text
[Input] => 床前明月光,疑是地上霜
)

[Output] => Array
(
[Region] => ap-guangzhou
[Bucket] => examplebucket-1250000000
[Object] => tmp/demo.mp3
)

)

)

[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/jobs
)

查询任务结果

功能说明

查询指定的任务。

方法原型

public Guzzle\\Service\\Resource\\Model describeMediaJob(array $args = array());

请求示例

<?php

require dirname(__FILE__) . '/../vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'schema' => 'https', //协议头部,默认为 http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
// 查询指定的任务
$result = $cosClient->describeMediaJob(array(
'Bucket' => 'examplebucket-125000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Key' => '', // jobId
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

Request 中的具体数据描述如下:
参数名称
类型
描述
是否必填
Bucket
String
存储桶名称,格式:BucketName-APPID
Key
String
需要查询的任务 ID

返回结果示例

GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjRkMNjRjMjIxODBfMzUxNGSIOJOIDAJOIDg=
[ContentType] => application/xml
[ContentLength] => 1836
[Key] => j7380pc7a00f19asf798sd7f89s7f2e646
[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/jobs/j7380pc7a00f19asf798sd7f89s7f2e646
[Response] => Array
(
[JobsDetail] => Array
(
[Code] => Success
[CreationTime] => 2023-08-07T16:07:28+0800
[EndTime] => 2023-08-07T16:07:29+0800
[Input] => Array
(
[BucketId] => examplebucket-1250000000
[Object] => object
[Region] => ap-guangzhou
)

[JobId] => j7380pc7a00f19asf798sd7f89s7f2e646
[Message] =>
[Operation] => Array
(
[JobLevel] => 0
[Output] => Array
(
[Bucket] => examplebucket-1250000000
[Object] => tmp/out_object
[Region] => ap-guangzhou
)

[TemplateId] => t0pc7a00f19asf798sd7f89s7f2e646
[TemplateName] => TemplateName
)

[QueueId] => pc6f4d28f798sd7f89s7f2e646bffb5a
[QueueType] => QueueType
[StartTime] => 2023-08-07T16:07:28+0800
[State] => Success
[Tag] => Tag
)
)
)