# 音频合成 API接入文档

# 一、 接入准备

# 1.1 获取Accesskey

与我司商务合作后,我司会给客户硅语账号进行授权并且给出开放平台的AccessKey和SecretKey,客户可以通过AccessKey和SecretKey进行接入,请妥善保存。

# 1.2 开发以及联调测试

调用流程如下图

image.png

硅语平台生产地址:https://meta.guiji.cn (opens new window)

# 1.3 音频合成结果查询

开放平台支持查询和回调两种方式来监听音频合成的最终结果。

(1)、查询

音频合成请求提交成功后,客户端可通过“3.4 音频合成结果列表查询”或“3.5 音频合成结果详情查询”进行对音频合成状态的更新。

(2)、回调

音频合成接口提供了callbackUrl回调地址的属性,客户端只需要传公网可访问的回调地址即可,开放平台音频合成成功或失败后都会通过该地址通知客户端,回调参数请参考“3.3 音频合成接口”中异步回调报文示例设计。

# 二、 API对接方式

# 2.1 构造签名获取token

硅语平台获取签名的规则为:通过AccessKey、时间戳、加密生成得到的签名【MD5(AccessKey+时间戳+SecretKey)】,MD5结果取32位小写值,然后通过该签名请求硅语平台获取token,后续接口都需要加上该token进行请求,具体接口信息见第三部分API详细信息。

# 2.2 公共返回参数

硅语平台得到token和其他请求数据集合后,会先进行安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求,平台返回的参数格式如下:

字段 类型 是否必须 备注
code string Y 返回的状态码,为0表示成功
message string N 成功/错误的描述信息
data object N 返回的具体内容

# 2.3 公共错误码

错误码 描述
0 正常
40001 内部异常
40002 token无效
40003 token超时
40010 余额不足
40011 不合法的音频地址
40012 不合法的音频时长
40013 不合法的文件大小
40014 缺少必要文件
40015 缺少必要参数
40016 文件上传失败
40017 文件下载失败
40018 文件不存在
40019 超出并发
40020 不支持的背景图片格式
40021 提交训练视频失败
40022 不合法的码率值
40023 不合法的分辨率值
40024 不合法的fps值
40025 模特不存在
40026 模特已过期
40027 不合法的视频格式
40028 文件上传失败
40030 背景地址不能访问
40031 音频地址不能访问
40032 发言人不存在
40033 文件地址不能访问
40040 声音合成失败
40041 视频解析失败
40042 不合法的MP3
40045 发言人已过期
40046 不合法的URL
40056 内容检测不通过
50010 扣款失败

# 三、 API接口

# 3.1 获取token接口

# 接口地址

/openapi/oauth/token

# 请求方式

GET

# 请求参数

字段 类型 是否必须 备注
appId string Y Access key
timestamp string Y 当前时间戳,精确到毫秒
sign string Y 生成的签名
grant_type string Y 认证类型(固定值‘sign’)

示例:

https://meta.guiji.cn/openapi/oauth/token?grant_type=sign&timestamp=1648429269823&sign=3fe58596ec5edc297876e00f4e4b1a49&appId=TPbMPQeD4U2dJgRY62PCRnSz

# 返回结果

字段 类型 是否必须 备注
code string Y 返回的状态码,为0表示成功
success boolean Y 成功/错误
data json N 返回的JSONObject
    access_token string N 返回的token值
    expires_in integer N Token过期时间,单位“秒”

示例:

{
  "code": "0",
  "success": true,
  "data": {
    "access_token": "99568c59-eb7e-4feb-b546-078f2fe9d5c6",
    "expires_in": 7199
  }
}

# 3.2 企业所有发音人列表

# 接口地址

/openapi/speaker/v2/list?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245

# 请求方式

GET

# 请求参数

字段 类型 必须 备注

# 返回结果

字段 类型 必须 备注
code string Y 返回的状态码,为0表示成功
message string Y 成功/错误的描述信息
data jsonArray N 返回的jsonArray
    id string N 发言人ID
    ttsName string N 发言人名
    ttsIntroduction string N 介绍
    ttsScenes string N 使用场景
    ttsSpeaker string N 发言人标识
    ttsFeatures string N 特色
    ttsAudition string N 示例音频地址
    ttsCover string N 封面地址
    languages jsonArray N 支持的语言类型列表 cn-中文 en-英文
    sex integer N 性别 1: 男,2:女
    phonemeFlag integer N 多音字标识,0:不支持 1:支持
    ttsExtendJson string N 扩展属性

示例:

{
    "code": "0",
    "message": "请求成功",
    "success": true,
    "data": [{
            "id": 158,
            "ttsName": "梦田甜",
            "ttsIntroduction": "梦田甜",
            "ttsScenes": "新闻播报|专题宣传",
            "ttsSpeaker": "yujie_meet",
            "ttsFeatures": "自然流畅、成熟知性",
            "ttsAudition": "http://172.16.17.21:8000/nfs/tts-market/cmww/tts_case/yujie_meet_0.wav",
            "ttsCover": "http://172.16.17.21:8000/nfs/tts-market/cmww/moqiusha_mengtiantian.png", 
            "languages": [
                "cn",
                "en"
              ],
            "sex": 2
        }
    ]
}

# 3.3 音频合成接口

# 接口地址

/openapi/speaker/v2/tts?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769

# 请求方式

POST(Content-Type: application/json)

# 请求参数

字段 类型 必须 备注
speakerId string Y 发言人ID不能为空
volume integer N 音量,取值区间:[0-1]
speechRate integer N 语速,取值区间:[0-1]
content string Y 文本内容不能为空,文本支持以下标签:
插入停顿(单位:秒):<delay value="0.5"/>
自定义读音:<grammar type="custom" value="十万">100000</grammar>
多音字标注:<grammar type="pinyin" value="hang2">行</grammar>
srtFlag string N 否需要字幕文件 0-不需要 1-需要
async boolean N 是否异步处理,true-异步返回(推荐使用异步接口,同步调用后期可能会废弃)
callbackUrl string N 异步处理回调地址,若无回调地址,也可通过tts查询接口查询
sampleRate string N 采样率:来自3.5接口的ttsExtendJson
morse string N 是否给音频产物末尾加摩斯码: 0-不加 1-加(默认不加)

# 返回结果

字段 类型 必须 备注
code string Y 返回的状态码,为0表示成功
message string Y 成功/错误的描述信息
data json Y 返回的jsonobject
    id integer Y 唯一标识
    ttsUrl integer N 音频地址
    srtUrl integer N srt文件地址('srtFlag'=1时返回)
    duration list N 音频时长(单位:毫秒)
    status integer N 状态 0-准备中 1-合成中 2-合成成功 3-合成失败

返回报文示例

{
  "code": "0",
  "data": {
    "id": 1,
    "duration": 0,
    "srtUrl": "",
    "ttsUrl": ""
  },
  "message": "",
  "success": true
}

异步回调报文示例

{
  "taskType": "tts-synthesis",
  "data": {
    "duration": 0,	//音频时长
    "srtUrl": "",	//字幕文件地址
    "ttsUrl": "",	//音频地址
    "id": 1,		//唯一标识
    "status": 2		//状态 0-准备中 1-合成中 2-合成成功 3-合成失败
  }
}

# 3.4 音频合成结果列表查询

# 接口地址

/openapi/speaker/v2/tts/pageList?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769

# 请求方式

POST(Content-Type: application/json)

# 请求参数

字段 类型 必须 备注
page integer Y 请求页数
size integer Y 每页

# 返回结果

字段 类型 必须 备注
code string Y 返回的状态码,为0表示成功
message string Y 成功/错误的描述信息
data json N 返回的jsonobject
    pageSize integer N 页尺寸
    pageNo integer N 页号
    totalRecord integer N 总记录数
    records list N 记录列表
        id integer Y 唯一标识
        ttsUrl integer N 音频地址
        srtUrl integer N srt文件地址('srtFlag'=1时返回)
        duration list N 音频时长(单位:毫秒)
        status integer N 状态 0-准备中 1-合成中 2-合成成功 3-合成失败
        downloadEndTime string N 音频下载截止时间

返回报文示例

{
  "code": "0",
  "message": "请求成功",
  "success": true,
  "data": {
    "pageSize": 100,
    "pageNo": 1,
    "totalRecord": 2,
    "records": [
      {
        "id": 20,
        "ttsUrl": "http://127.0.0.1/1105667226071080960.wav",
        "srtUrl": "http://127.0.0.1/1105667226071080960.srt",
        "duration": 1539,
        "status": 2,
        "downloadEndTime": "2025-11-16 00:00:00"
      },
      {
        "id": 19,
        "ttsUrl": "http://127.0.0.1/1105667111205871616.wav",
        "srtUrl": "http://127.0.0.1/1105667111205871616.srt",
        "duration": 601,
        "status": 2,
        "downloadEndTime": "2025-11-16 00:00:00"
      }
    ]
  }
}

# 3.5 音频合成结果详情查询

# 接口地址

/openapi/speaker/v2/tts/{id}?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769

# 请求方式

GET

# 请求参数

字段 类型 必须 备注
id integer Y TTS提交时返回的ID(路径参数)

# 返回结果

字段 类型 必须 备注
code string Y 返回的状态码,为0表示成功
message string Y 成功/错误的描述信息
data json Y 返回的jsonobject
    id integer Y 唯一标识
    ttsUrl integer N 音频地址
    srtUrl integer N srt文件地址('srtFlag'=1时返回)
    duration list N 音频时长(单位:毫秒)
    status integer N 状态 0-准备中 1-合成中 2-合成成功 3-合成失败
    downloadEndTime string N 音频下载截止时间

返回报文示例

{
  "code": "0",
  "message": "请求成功",
  "success": true,
  "data": {
    "id": 17,
    "ttsUrl": "http://127.0.0.1/1104702054431072256.wav",
    "srtUrl": "http://127.0.0.1/1104702054431072256.srt",
    "duration": 2012,
    "status": 2,
    "downloadEndTime": "2025-11-16 00:00:00"
  }
}

# 3.6 查询用户信息及权益

# 接口地址

/openapi/user/v2/get?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245

# 请求方式

GET

# 请求参数

​ 无

# 返回结果

字段 类型 必须 备注
code string Y 返回的状态码,为0表示成功
message string Y 成功/错误的描述信息
data string N 返回的jsonobject
    user json N 用户信息
        id string N 用户ID
        username string N 用户名
        nickname string N 昵称
        corpId string N 企业ID
        corpName string N 企业名称
        primaryOrgId string N 一级组织ID
        primaryOrgName string N 一级组织名称
        secondaryOrgId string N 二级组织ID
        secondaryOrgName string N 二级组织名称
        roleId string N 角色ID
        roleName string N 角色名称
        mobile string N 手机号
        email string N 邮箱地址
    account json N 账户信息
        balance float N 账户钻石余额
        duration integer N 剩余时长(秒)
        durationCost integer N 消耗市场(秒)
        giftBalance float N 赠送钻石余额
        privateDuration integer N 模特私有市场汇总(秒)
        totalCost float N 总消费额度
        universalDuration integer N 通用时长汇总(秒)
ttsDuration integer N 音频合成剩余时长(单位:秒)
        trainTime integer N 剩余专业训练次数
        totalAmount integer N 合同总金额
        aiPanting integer N Ai绘画(单位:次)
        aiCartoon integer N Ai漫画(单位:次)
        e0LevelAmount integer N E级形象克隆剩余次数
        s0LevelAmount integer N S级形象克隆剩余次数
        s1LevelAmount integer N S级-超清版形象克隆剩余次数

示例:

{
    "code": "0",
    "message": "请求成功",
    "success": true,
    "data": {
        "user": {
            "id": 1,
            "userId": null,
            "username": "admin",
            "email": null,
            "nickname": "硅基超级管理员",
            "corpId": 1000000,
            "corpName": null,
            "mobile": "admin",
            "primaryOrgId": null,
            "primaryOrgName": null,
            "secondaryOrgId": null,
            "secondaryOrgName": null
        },
        "account": {
            "balance": 1,
            "duration": 0,
            "durationCost": 0,
            "giftBalance": 1,
            "privateDuration": 0,
            "totalCost": 1,
            "universalDuration": 0,
            "ttsDuration": 0,
            "trainTime": 3,
            "totalAmount": null,
            "aiPanting": 95,
            "aiCartoon": 0
        }
    }
}

# 四、 相关协议

# 4.1 人工智能生成合成内容标识规范

(1)我们将依据相关法律法规,对人工智能生成合成内容添加相应标识(如在生成合成内容或者交互场景界面中添加的显式标识,采用技术措施在生成合成内容的文件元数据中添加的隐式标识)。您应确保您已仔细阅读并理解《人工智能生成合成内容标识办法》及其他相关的标识管理要求。您不得使用或尝试使用任何技术手段或其他方法删除、篡改、伪造、隐匿该等生成合成内容标识,不得为他人实施删除、篡改、伪造、隐匿该等生成合成内容标识行为提供工具或者服务,不得通过不正当标识手段损害他人合法权益。
(2)在特定场景下,为更好地满足您的使用需求,我们可能根据您的申请为您提供没有添加显式标识的人工智能生成合成内容。如您申请我们提供没有添加显式标识的生成合成内容的,您需承诺并保证:
①不利用该内容发布、传播任何虚假信息或从事其他任何违法违规活动;
②在发布或传播基于深度学习、虚拟现实、深度合成、生成式人工智能等新技术制作的非真实信息,或其他可能引发公众误解或混淆的信息内容时,应当以显著方式标识;
③在向第三方分享该内容或使用网络信息内容传播服务发布该内容或以其他方式使用该内容时,主动声明其为人工智能生成合成内容;
④遵守其他相关法律、法规、政策、办法的规定。
(3)如您违反上述约定,您应自行承担由此引起的所有责任,并赔偿由此给我们及第三方造成的全部损失(包括但不限于直接损失、间接损失、诉讼费、仲裁费、公证费、鉴定费、律师费、差旅费、保全费用、保全保险费、向任何第三方承担的责任、行政处罚、罚款等)。