1. 接口描述
接口请求域名: tts.tencentcloudapi.com 。
腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话。
腾讯TTS技术可以应用到很多场景,比如,移动APP语音播报新闻;智能设备语音提醒;依靠网上现有节目或少量录音,快速合成明星语音,降低邀约成本;支持车载导航语音合成的个性化语音播报。
基础合成支持 SSML,语法详见 SSML 标记语言。
默认接口请求频率限制:
精品音色和标准音色:20次/秒
大模型音色:10次/秒
一句话复刻音色:5次/秒
推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:TextToVoice。 |
Version | 是 | String | 公共参数,本接口取值:2019-08-23。 |
Region | 是 | String | 公共参数,详见产品支持的 地域列表。 |
Text | 是 | String | 合成语音的源文本,按UTF-8编码统一计算。 中文最大支持150个汉字(全角标点符号算一个汉字);英文最大支持500个字母(半角标点符号算一个字母)。 示例值:你好 |
SessionId | 是 | String | 一次请求对应一个SessionId,会原样返回,建议传入类似于uuid的字符串防止重复。 示例值:session-1234 |
Volume | 否 | Float | 音量大小,范围[-10,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。 示例值:1 |
Speed | 否 | Float | 语速,范围:[-2,6],分别对应不同语速: 参数值与实际语速转换,可参考代码示例 示例值:1 |
ProjectId | 否 | Integer | 项目id,用户自定义,默认为0。 示例值:0 |
ModelType | 否 | Integer | 模型类型,1-默认模型。 示例值:1 |
VoiceType | 否 | Integer | 音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见购买指南。完整的音色 ID 列表请参见音色列表。 若使用一句话版声音复刻,请填入固定值“200000000” 示例值:0 |
PrimaryLanguage | 否 | Integer | 主语言类型: 示例值:1 |
SampleRate | 否 | Integer | 音频采样率: 示例值:16000 |
Codec | 否 | String | 返回音频格式,可取值:wav(默认),mp3,pcm 示例值:wav |
EnableSubtitle | 否 | Boolean | 是否开启时间戳功能,默认为false。 示例值:true |
SegmentRate | 否 | Integer | 断句敏感阈值,默认值为:0,取值范围:[0,1,2]。该值越大越不容易断句,模型会更倾向于仅按照标点符号断句。此参数建议不要随意调整,可能会影响合成效果。 示例值:0 |
EmotionCategory | 否 | String | 控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、sajiao(撒娇)、disgusted(厌恶)、amaze(震惊)、peaceful(平静)、exciting(兴奋)、aojiao(傲娇)、jieshuo(解说) 示例值:neutral |
EmotionIntensity | 否 | Integer | 控制合成音频情感程度,取值范围为[50,200],默认为100;只有EmotionCategory不为空时生效; |
FastVoiceType | 否 | String | 一句话版声音复刻音色ID,使用一句话版声音复刻音色时需填写。 |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
Audio | String | base64编码的wav/mp3音频数据 示例值:UklGRlR/AABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YSx9AAD+ |
SessionId | String | 一次请求对应一个SessionId 示例值:session-1234 |
Subtitles | Array of Subtitle | 时间戳信息,若未开启时间戳,则返回空数组。 |
RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 基础语音合成调用示例
API调用
输入示例
POST / HTTP/1.1
Host: tts.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: TextToVoice
<公共请求参数>
{
"Text": "你好",
"SessionId": "session-1234",
"Volume": 1,
"Speed": 1,
"ProjectId": 0,
"ModelType": 1,
"VoiceType": 1001,
"PrimaryLanguage": 1,
"SampleRate": 16000,
"Codec": "wav",
"EnableSubtitle": true
}
输出示例
{
"Response": {
"Audio": "UklGRqRwAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YYBwAAAA......AAAAA=",
"RequestId": "d91f1496-0514-4281-932e-15a022b67d16",
"SessionId": "session-1234",
"Subtitles": [
{
"BeginIndex": 0,
"BeginTime": 250,
"EndIndex": 1,
"EndTime": 430,
"Phoneme": "ni2",
"Text": "你"
},
{
"BeginIndex": 1,
"BeginTime": 430,
"EndIndex": 2,
"EndTime": 670,
"Phoneme": "hao3",
"Text": "好"
}
]
}
}
5. 开发者资源
腾讯云 API 平台
腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。
API Inspector
用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。
SDK
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
- Tencent Cloud SDK 3.0 for Python: GitHub Gitee
- Tencent Cloud SDK 3.0 for Java: GitHub Gitee
- Tencent Cloud SDK 3.0 for PHP: GitHub Gitee
- Tencent Cloud SDK 3.0 for Go: GitHub Gitee
- Tencent Cloud SDK 3.0 for Node.js: GitHub Gitee
- Tencent Cloud SDK 3.0 for .NET: GitHub Gitee
- Tencent Cloud SDK 3.0 for C++: GitHub Gitee
- Tencent Cloud SDK 3.0 for Ruby: GitHub Gitee
命令行工具
6. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
AuthFailure.InvalidAuthorization | 授权无效。 |
InternalError.ErrorGetRoute | 路由错误。 |
InternalError.ExceedMaxLimit | 负载限流。 |
InternalError.InternalError | 内部错误。 |
InternalError.NoResource | 暂无资源,请稍后重试。 |
InvalidParameter.InvalidText | 请求文本含有非法字符。 |
InvalidParameterValue.AppId | AppId非法,请参考AppId参数说明。 |
InvalidParameterValue.AppIdNotRegistered | APPID未注册,请在语音合成主页 https://console.cloud.tencent.com/tts 开通使用。 |
InvalidParameterValue.Codec | Codec非法,请参考Codec参数说明。 |
InvalidParameterValue.ErrorCardinalFormat | ssml的say-as标签属性为cardinal、currency、address时,数字部分非有效参数,仅允许包含数字、“,”、“.”和空格。 |
InvalidParameterValue.InvalidText | 请求文本含有非法字符,或请求文本没有有效字符。 |
InvalidParameterValue.MissParameters | 缺少参数。 |
InvalidParameterValue.ParticipleError | 文本分词错误。 |
InvalidParameterValue.PrimaryLanguage | PrimaryLanguage非法,请参考PrimaryLanguage参数说明。 |
InvalidParameterValue.SSMLInvalid | SSML标签非法。 |
InvalidParameterValue.SampleRate | SampleRate非法,请参考SampleRate参数说明。 |
InvalidParameterValue.SessionId | SessionId非法,请参考Volume参数说明。 |
InvalidParameterValue.Speed | Speed非法,请参考Speed参数说明。 |
InvalidParameterValue.Text | 文本缺失。 |
InvalidParameterValue.TextEmpty | Text为空。 |
InvalidParameterValue.TextNotUtf8 | 文本不是 UTF8 格式。 |
InvalidParameterValue.Type | Type 类型非法。 |
InvalidParameterValue.VoiceType | VoiceType非法,请参考VoiceType参数说明。 |
InvalidParameterValue.Volume | Volume非法,请参考Volume参数说明。 |
LimitExceeded.AccessLimit | 请求超过限制频率。 |
UnsupportedOperation | 操作不支持。 |
UnsupportedOperation.AccountArrears | 欠费。 |
UnsupportedOperation.AuthorizationExpired | 鉴权已过期。 |
UnsupportedOperation.AuthorizationFailed | 鉴权失败。 |
UnsupportedOperation.ForbiddenUse | 服务禁止使用。 |
UnsupportedOperation.NoFreeAccount | 免费资源包已用尽,请购买资源包或开通后付费。 |
UnsupportedOperation.PkgExhausted | 资源包余量已用尽。 |
UnsupportedOperation.ServerAlreadyOpen | 服务器已打开。 |
UnsupportedOperation.ServerDestoryed | 服务已销毁。 |
UnsupportedOperation.ServerNotOpen | 服务未开通使用。 |
UnsupportedOperation.ServerStopped | 服务已停止使用。 |
UnsupportedOperation.TextTooLong | 文本过长,请参考请求参数Text的说明。 |