语音合成 - RunTts
功能介绍
语音合成,是一种将文本转换成逼真语音的服务。用户通过实时访问和调用API获取语音合成结果,将用户输入的文字合成为音频。通过音色选择、自定义音量、语速,为企业和个人提供个性化的发音服务。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。
SIS服务控制台提供了语音合成的在线使用页面,用户无需编程即可使用服务功能。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| X-Auth-Token | 是 | String | 用户Token。 用于获取操作API的权限。获取方法请参见认证鉴权。响应消息头中X-Subject-Token的值即为Token。 |
| Enterprise-Project-Id | 否 | String | 企业项目ID。SIS支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。 获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。
企业项目创建步骤请参见用户指南。 说明: 账户创建企业项目后,在传参时,有以下三类场景。
|
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| text | 是 | String | 待合成的文本,文本长度限制不大于500字符。 |
| config | 否 | TtsConfig Object | 语音合成配置信息。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| audio_format | 否 | String | 语音格式头:wav、mp3、pcm 默认:wav |
| sample_rate | 否 | String | 采样率:16kHz、8kHz 默认:8kHz |
| property | 否 | String | 语音合成特征字符串,组成形式为{language}_{speaker}_{domain},即“语种_人员标识_领域”。发音人分为普通发音人和精品发音人,每次调用价格相同,针对精品发音人,每50字符计一次调用,不足50字符按一次计;普通发音人每100字符计一次调用,不足100字符按一次计。其中1个汉字、1个英文字母或1个标点均算作1个字符,具体费用请参考价格计算器。
默认:chinese_xiaoyu_common,中文发音,小宇,标准男声发音人。 |
| speed | 否 | Integer | 语速。 取值范围:-500~500 默认值:0 说明: 当取值为“0”时,表示一个成年人正常的语速,约为250字/分钟。设置该值时,语速和数值没有绝对的映射关系。 |
| pitch | 否 | Integer | 音高。 取值范围: -500~500 默认值:0 |
| volume | 否 | Integer | 音量。 取值范围:0~100 默认值:50 |
| 名称 | property取值 | 类型 | 使用场景 | 支持采样率(Hz) |
|---|---|---|---|---|
| 小琪 | chinese_xiaoqi_common | 标准女声 | 客服 | 8k/16k |
| 小雯 | chinese_xiaowen_common | 柔美女声 | 客服 | 8k/16k |
| 小宇 | chinese_xiaoyu_common | 标准男声 | 电销 | 8k/16k |
| 小夏 | chinese_xiaoxia_common | 热情女声 | 电销 | 8k/16k |
| 小燕 | chinese_xiaoyan_common | 温柔女声 | 文学 | 8k/16k |
| 小倩 | chinese_xiaoqian_common | 成熟女声 | 文学 | 8k/16k |
| 小王 | chinese_xiaowang_common | 童声 | 童声 | 8k/16k |
| 小呆 | chinese_xiaodai_common | 呆萌童声 | 童声 | 8k/16k |
| 小婧 | chinese_xiaojing_common | 俏皮女声 | 新闻播报 | 8k/16k |
| 小宋 | chinese_xiaosong_common | 激昂男声 | 新闻播报 | 8k/16k |
| cameal | english_cameal_common | 英文女声 | 英文 | 8k/16k |
| 名称 | property取值 | 类型 | 使用场景 | 支持采样率(Hz) |
|---|---|---|---|---|
| 华小夏 | chinese_huaxiaoxia_common | 热情女声 | 电销 | 8k/16k |
| 华小唯 | chinese_huaxiaowei_common | 嗲柔女声 | 电销 | 8k/16k |
| 华小颜 | chinese_huaxiaoyan_common | 严厉女声 | 电销 | 8k/16k |
| 华晓阳 | chinese_huaxiaoyang_common | 朝气男声 | 电销 | 8k/16k |
| 华晓刚 | chinese_huaxiaogang_common | 利落男声 | 客服 | 8k/16k |
| 华小雯 | chinese_huaxiaowen_common | 柔美女声 | 客服 | 8k/16k |
| 华小美 | chinese_huaxiaomei_common | 温柔女声 | 客服 | 8k/16k |
| 华小飞 | chinese_huaxiaofei_common | 朝气男声 | 客服 | 8k/16k |
| 华小荷 | chinese_huaxiaohe_common | 嘹亮女声 | 中英混合 | 8k/16k |
| 华小叶 | chinese_huaxiaoye_common | 知性女声 | 中英混合 | 8k/16k |
| 华小雪 | chinese_huaxiaoxue_common | 女童声 | 中英混合 | 8k/16k |
| 华小娇 | chinese_huaxiaojiao_common | 成熟女声 | 纯中文 | 8k/16k |
| 华小辉 | chinese_huaxiaohui_common | 男童声 | 中英混合 | 8k/16k |
| 华小康 | chinese_huaxiaokang_common | 朝气男声 | 中英混合 | 8k/16k |
| 华小坤 | chinese_huaxiaokun_common | 成熟男声 | 中英混合 | 8k/16k |
| 华小泉 | chinese_huaxiaoquan_common | 朝气男声 | 纯中文 | 8k/16k |
| 华小璐 | chinese_huaxiaolu_common | 知性女声 | 新闻播报 | 8k/16k |
| 华小靓 | chinese_huaxiaoliang_common | 嘹亮女声 | 新闻播报 | 8k/16k |
| 华晓东 | chinese_huaxiaodong_common | 成熟男声 | 新闻播报 | 8k/16k |
| 华小蕊 | chinese_huaxiaorui_common | 知性女声 | 中英混合 | 16k |
| 华小萱 | chinese_huaxiaoxuan_common | 台湾女声 | 方言 | 8k/16k |
| 华小闽 | chinese_huaxiaomin_common | 闽南女声 | 方言 | 8k/16k |
| 华小舒 | chinese_huaxiaoshu_common | 舒缓女声 | 文学 | 8k/16k |
| 华女侠 | chinese_huanvxia_literature | 武侠女声(只支持http形式调用) | 文学 | 16k |
| 华晓悬 | chinese_huaxiaoxuan_literature | 悬疑男声(只支持http形式调用) | 文学 | 16k |
| 华小龙 | chinese_huaxiaolong_common | 朝气男声 | 中英混合 | 16k |
| 华小汝 | chinese_huaxiaoru_common | 柔美女声 | 中英混合 | 8k/16k |
| 华小涵 | chinese_huaxiaohan_common | 知性女声 | 中英混合 | 8k/16k |
| 华小宁 | chinese_huaxiaoning_common | 沉稳男声 | 中英混合 | 8k/16k |
| 华小珍 | chinese_huaxiaozhen_common | 温柔女声 | 中英混合 | 8k/16k |
| 华小曼 | chinese_huaxiaoman_common | 温柔女声 | 中英混合 | 16k |
| 华小芳 | chinese_huaxiaofang_common | 朝气女声 | 中英混合 | 16k |
| 华小筠 | chinese_huaxiaojun_common | 成熟女声 | 中英混合 | 16k |
| alvin | english_alvin_common | 成熟男声 | 纯英文 | 8k/16k |
| amy | english_amy_common | 成熟女声 | 纯英文 | 8k/16k |
响应参数
状态码: 200
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| trace_id | 否 | String | 服务内部的令牌,可用于在日志中追溯具体流程。 在某些错误情况下可能没有此令牌字符串。 |
| result | 否 | CustomResult Object | 调用成功表示合成结果,调用失败时无此字段。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| data | 否 | String | 语音数据,以Base64编码格式返回。 用户如需生成音频,需要将Base64编码解码成byte数组,再保存为音频,音频格式同“audio_format”参数设置的值,默认为wav格式。 语音合成代码示例请参考SDK,SDK已对Base64转音频过程进行封装,可以直接获取音频文件。 |
状态码: 400
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 调用失败时的错误码。 调用成功时无此字段。 |
| error_msg | String | 调用失败时的错误信息。 调用成功时无此字段。 |
请求示例
- 调用语音合成API,将文本合成为语音,并调整语音的音色、语速、音高、音量
POST https://{endpoint}/v1/{project_id}/tts Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "text": "欢迎使用语音云服务。", "config": { "audio_format": "wav", "sample_rate": "8000", "property": "chinese_xiaoyan_common", "speed": 10, "pitch": 10, "volume": 60 } } - 使用Python3语言调用语音合成API,将文本合成为语音,并调整语音的音色、语速、音高、音量
# -*- coding: utf-8 -*- # 此demo仅供测试使用,强烈建议使用sdk。需提前安装requests,执行pip install requests import requests import json def stts_demo(): url = 'https://{{endpoint}}/v1/{{project_id}}/tts' # endpoint和project_id需替换 token = '用户对应region的token' text = '待识别的文本' header = { 'Content-Type': 'application/json', 'X-Auth-Token': token } body = {'text': text} resp = requests.post(url, data=json.dumps(body), headers=header) print(resp.text) if __name__ == '__main__': stts_demo() - 使用Java语言调用语音合成API,将文本合成为语音,并调整语音的音色、语速、音高、音量
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; /** * 此demo仅供测试使用,强烈建议使用SDK */ public class SttsDemo { public void sttsDemo() { try { // endpoint和projectId需要替换成实际信息。 URL url = new URL("https://{{endpoint}}/v1/{{project_id}}/tts"); String token = "对应region的token"; HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod("POST"); connection.setDoInput(true); connection.setDoOutput(true); connection.addRequestProperty("Content-Type", "application/json"); connection.addRequestProperty("X-Auth-Token", token); OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); String body = "{\"text\": \"123\"}"; osw.append(body); osw.flush(); InputStream is = connection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); while (br.ready()) { System.out.println(br.readLine()); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { SttsDemo sttsDemo = new SttsDemo(); sttsDemo.sttsDemo(); } }
响应示例
状态码:200
成功响应示例
{
"trace_id": "567e8537-a89c-13c3-a882-826321939651",
"result":{
"data": "/+MgxAAUeHpMAUkQAANhuRAC..."
}
} 状态码:400
失败响应示例
{
"error_code": "SIS.0032",
"error_msg": "'audio_format' is invalid"
} 状态码
状态码请参见状态码。
错误码
错误码请参见错误码。

