有奖捉虫:云通信与企业服务文档专题,速来> HOT

1. 接口描述

接口请求域名:tts.cloud.tencent.com/stream

接口请求频率限制:20次/每秒。

接口请求协议:HTTPS

腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话。

腾讯 TTS 技术可以应用到很多场景,例如,在小说 App 完成有声阅读,移动 App 语音播报新闻;智能设备语音提醒;车载导航语音合成的个性化语音播报等。

实时合成支持 SSML,语法详见 SSML 标记语言

2. 输入参数

请求方式 只支持 Post 请求

参数名称 必选 类型 描述
Action String 本接口取值:TextToStreamAudio
AppId Integer 账号 AppId(请确保该字段数据类型为整型 int)
SecretId String 官网 SecretId
Timestamp Integer 当前 UNIX 时间戳,可记录发起 API 请求的时间。例如1529223702,如果与当前时间相差过大,会引起签名过期错误
Expired Integer 签名的有效期,是一个符合 UNIX Epoch 时间戳规范的数值,单位为秒;Expired 必须大于 Timestamp 且 Expired-Timestamp 小于90天
Text String 合成语音的源文本。中文最大支持600个汉字(全角标点符号算一个汉字),英文最大支持1800个字母(半角标点符号算一个字母)
SessionId String 一次请求对应一个 SessionId,会原样返回,建议传入类似于 uuid 的字符串防止重复
ModelType Integer 模型类型,1:默认模型
Volume Float 音量大小,范围[0,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。
Speed Float 语速,范围:[-2,6],分别对应不同语速:
  • -2代表0.6倍
  • -1代表0.8倍
  • 0代表1.0倍(默认)
  • 1代表1.2倍
  • 2代表1.5倍
  • 6代表2.5倍
  • 如果需要更细化的语速,可以保留小数点后 2 位,例如0.5 1.1 1.8等。
    参数值与实际语速转换,可参考代码示例
    ProjectId Integer 项目 ID,用户自定义,默认为0
    VoiceType Integer 音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见购买指南。完整的音色 ID 列表请参见音色列表
    PrimaryLanguage Integer 主语音类型,当前不做区分,默认填1即可
    SampleRate Integer 音频采样率:
  • 24000:24k(部分音色支持,请参见 音色列表
  • 16000:16k(默认)
  • 8000:8k
  • Codec String 返回音频格式:
    opus:返回多段含 opus 压缩分片音频(默认)
    pcm:返回二进制 pcm 音频
    mp3:返回二进制 mp3 音频
    SegmentRate Integer 断句敏感阈值,取值范围:[0,1,2],默认值:0
    该值越大越不容易断句,模型会更倾向于仅按照标点符号断句。此参数建议不要随意调整,可能会影响合成效果
    EmotionCategory String 控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting)、傲娇(aojiao)、解说(jieshuo)
    EmotionIntensity Integer 控制合成音频情感程度,取值范围为[50,200],默认为100;只有 EmotionCategory 不为空时生效;

    Header 格式

    {
            "Content-Type":"application/json",
            "Authorization":"HRCKlbwPhWtVvfGn914qE5O1rwc="
    }

    注意:

    Authorization 字段值为 V1鉴权生成的 Signature (无需 urlencode)的值,鉴权只支持官网 V1鉴权,不支持 V3鉴权!

    鉴权说明请参考官方统一 V1鉴权文档,例子中域名和参数需更换成本接口的域名和参数,如:

    GET 替换成 POST  
    cvm.tencentcloudapi.com/ 替换成  tts.cloud.tencent.com/stream  
    Action=DescribeInstances 替换成 Action=TextToStreamAudio
    其他参数参考 Action 的替换方式  

    Body 格式
    请求体为 json 格式的请求参数。

    注意:

    V1鉴权生成的 Signature 字段不需要放在 body 里,放在 Header 的 Authorization 中。

    {
       "Action" : "TextToStreamAudio",
       "AppId" : 1300466766,
       "Codec" : "pcm",
       "Expired" : 1577090359,
       "ModelType" : 1,
       "PrimaryLanguage" : 1,
       "ProjectId" : 0,
       "SampleRate" : 16000,
       "SecretId" : "AKIDf9JEuLiXPEuSlssPkLm3IJ5cM5q*****",
       "SessionId" : "123",
       "Speed" : 1,
       "Text" : "腾讯云语音合成欢迎您。",
       "Timestamp" : 1577003959,
       "VoiceType" : 0,
       "Volume" : 5
    }

    3. 输出参数

    协议说明:使用 HTTP Chunk 协议,一次 HTTP 请求内按序返回多段分片直到音频结束。

    Opus

    Codec 参数为 opus 返回,默认返回。返回多个语音分片,分片大小不一,单个分片格式说明如下:

    标识头“opus”H
    (4字节字符串)
    分片序号 S
    (4字节二进制数据)
    分片音频长度 L
    (4字节二进制数据)
    分片音频 D
    (长度为分片音频长度 L)
    标识新的分片的开始 序号从0开始,-1结束 按分片音频长度读取音频数据 base64后的 Opus 压缩音频

    其中最后一片音频(序号 S = -1)数据固定为“AAAA”,该段数据无效。

    Pcm

    Codec 参数为 pcm 返回,同等条件下返回数据量约为 Opus 格式的10倍。
    返回格式:二进制
    返回内容:pcm 音频流

    4. SDK 文档

    C++ SDK
    Java SDK
    Python SDK
    PHP SDK