更新时间:2022-04-26 GMT+08:00
分享

语音合成

功能介绍

语音合成,是一种将文本转换成逼真语音的服务。用户通过实时访问和调用API获取语音合成结果,将用户输入的文字合成为音频。通过音色选择、自定义音量、语速,为企业和个人提供个性化的发音服务。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。

调试

您可以在API Explorer中调试该接口。

URI

POST /v1/{project_id}/tts

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目编号。获取方法,请参见获取项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,响应消息头中X-Subject-Token的值即为Token。

表3 请求Body参数

参数

是否必选

参数类型

描述

text

String

待合成的文本,文本长度限制小于500字符。

config

TtsConfig object

语音合成配置信息。

表4 TtsConfig

参数

是否必选

参数类型

描述

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

表5 普通发音人property取值范围

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,柔美女声英文发音人。

表6 精品发音人property取值范围

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

表7 响应Body参数

参数

是否必选

参数类型

描述

trace_id

String

服务内部的令牌,可用于在日志中追溯具体流程。

在某些错误情况下可能没有此令牌字符串。

result

CustomResult object

调用成功表示识别结果,调用失败时无此字段。

表8 CustomResult

参数

是否必选

参数类型

描述

data

String

语音数据,以Base64编码格式返回。

用户如需生成音频,需要将Base64编码解码成byte数组,再保存为音频,音频格式同“audio_format”参数设置的值,默认为wav格式。

状态码: 400

表9 响应Body参数

参数

参数类型

描述

error_code

String

调用失败时的错误码。 调用成功时无此字段。

error_msg

String

调用失败时的错误信息。 调用成功时无此字段。

请求示例

“endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点

  • 请求示例(伪码)
    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"  
 }

状态码

状态码请参见状态码

错误码

错误码请参见错误码

分享:

    相关文档

    相关产品

关闭导读