语音合成
功能介绍
语音合成,是一种将文本转换成逼真语音的服务。用户通过实时访问和调用API获取语音合成结果,将用户输入的文字合成为音频。通过音色选择、自定义音量、语速,为企业和个人提供个性化的发音服务。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。
调试
您可以在API Explorer中调试该接口。
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,响应消息头中X-Subject-Token的值即为Token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
text |
是 |
String |
待合成的文本,文本长度限制小于500字符。 |
config |
否 |
TtsConfig object |
语音合成配置信息。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
audio_format |
否 |
String |
语音格式头:wav、mp3、pcm 默认:wav 父节点:config |
sample_rate |
否 |
String |
采样率:16000、8000 默认:8000 父节点:config |
property |
否 |
String |
语音合成特征字符串,组成形式为{language}_{speaker}_{domain},即“语种_人员标识_领域”。发音人分为普通发音人和精品发音人,每次调用价格相同,针对精品发音人,每50字计一次调用,不足50字按一次计;普通发音人每100字计一次调用,不足100字按一次计。其中1个汉字、1个英文字母或1个标点均算作1个字符,具体费用请参考价格计算器。
默认:chinese_xiaoyan_common 父节点:config |
speed |
否 |
Integer |
语速。 取值范围:-500~500 默认值:0 父节点:config 说明:
当取值为“0”时,表示一个成年人正常的语速,约为250字/分钟。设置该值时,语速和数值没有绝对的映射关系。 |
pitch |
否 |
Integer |
音高。 取值范围: -500~500 默认值:0 父节点:config |
volume |
否 |
Integer |
音量。 取值范围:0~100 默认值:50 父节点:config |
property取值 |
描述 |
---|---|
chinese_xiaoqi_common |
小琪,标准女声发音人。 |
chinese_xiaoyu_common |
小宇,标准男声发音人。 |
chinese_xiaoyan_common |
小燕,温柔女声发音人。 |
chinese_xiaowang_common |
小王,童声发音人。 |
chinese_xiaowen_common |
小雯,柔美女声发音人。 |
chinese_xiaojing_common |
小婧,俏皮女声发音人。 |
chinese_xiaosong_common |
小宋,激昂男声发音人。 |
chinese_xiaoxia_common |
小夏,热情女声发音人。 |
chinese_xiaodai_common |
小呆,呆萌童声发音人。 |
chinese_xiaoqian_common |
小倩,成熟女声发音人。 |
english_cameal_common |
cameal,柔美女声英文发音人。 |
property取值 |
描述 |
---|---|
chinese_huaxiaoxia_common |
华小夏,热情女声发音人。 |
chinese_huaxiaogang_common |
华晓刚,利落男声发音人。 |
chinese_huaxiaolu_common |
华小璐,知性女声发音人。 |
chinese_huaxiaoshu_common |
华小舒,舒缓女声发音人。 |
chinese_huaxiaowei_common |
华小唯,嗲柔女声发音人。 |
chinese_huaxiaoliang_common |
华小靓,嘹亮女声发音人。 |
chinese_huaxiaodong_common |
华晓东,成熟男声发音人。 |
chinese_huaxiaoyan_common |
华小颜,严厉女声发音人。 |
chinese_huaxiaoxuan_common |
华小萱,台湾女声发音人。 |
chinese_huaxiaowen_common |
华小雯,柔美女声发音人。 |
chinese_huaxiaoyang_common |
华晓阳,朝气男声发音人。 |
chinese_huaxiaomin_common |
华小闽,闽南女声发音人。 |
chinese_huanvxia_literature |
华女侠,武侠女生发音人,只支持16k的采样率。 |
chinese_huaxiaoxuan_literature |
华晓悬,悬疑男声发音人,只支持16k的采样率。 |
chinese_huaxiaomei_common |
华小美,温柔女声发音人。 |
响应参数
状态码: 200
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
trace_id |
否 |
String |
服务内部的令牌,可用于在日志中追溯具体流程。 在某些错误情况下可能没有此令牌字符串。 |
result |
否 |
CustomResult object |
调用成功表示识别结果,调用失败时无此字段。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
data |
否 |
String |
语音数据,以Base64编码格式返回。 用户如需生成音频,需要将Base64编码解码成byte数组,再保存为音频,音频格式同“audio_format”参数设置的值,默认为wav格式。 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
调用失败时的错误码。 调用成功时无此字段。 |
error_msg |
String |
调用失败时的错误信息。 调用成功时无此字段。 |
请求示例
- 请求示例(伪码)
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语言请求代码示例
# -*- 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语言请求代码示例
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" }
状态码
状态码请参见状态码。
错误码
错误码请参见错误码。
