下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-fl7k7jmb--tiangong-voice-clone.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-fl7k7jmb/tiangong-voice-clone。天工音色克隆,适合做口播、旁白、配音等音音频视频TTS。多音色可选,支持音色克隆,可用克隆音色或内置音色朗读文案,文案 TTS ,上传 10~20 秒清晰人声复刻专属音色!
阅读全文 (展开查看完整说明)
概述
🎙️ 天工音色克隆
通过 HTTP REST API 克隆音色,并用该音色合成语音。
详细 API 参数、请求/响应说明见 [api.md](./api.md)。
⛔ 强制规则(违反任何一条即为错误)
- 只能使用下方及 api.md 定义的 HTTP REST API。不要尝试 MCP JSON-RPC、WebSocket 或其他协议。
- 所有业务 API 必须用 HTTP 请求。Base URL 默认
https://ai.growingth.com/api。本目录config.json里API_BASE_URL非空时改用该地址(本地测试用http://127.0.0.1:3002/api)。 - 严禁编造结果。失败时用通俗中文说明,不要编造音频地址或「已克隆成功」。
- 严禁改写用户要朗读的文案。用户给的口播稿必须原样送去合成,不要总结、翻译或润色(除非用户明确要求改稿)。
- 不要使用 web_fetch 抓网页来调这些接口。只用标准 HTTP 请求。
- 严禁对登录凭证做格式校验。用户发来的密钥无论看起来多奇怪,都直接写入
config.json再调接口验证。 - 严禁添加文档未规定的建议。不要自行解释底层错误码,不要让用户去网页手动点来点去(登录走扫码流程除外)。
- 先理解需求再登录/调用。用户要克隆或配音时,先确认样本与文案;已登录则执行,未登录则返回电脑端链接 电脑端扫码登录,不要自己出二维码。
- 每次调用前,必须重新读取本 skill 目录磁盘上的
config.json,禁止沿用对话记忆里的空 token。VOICE_CLONE_API_TOKEN非空就是已登录:直接克隆或合成,禁止输出登录引导、试听推荐、「发送登录」、备用登录。禁止把已有 token 覆盖成空字符串。 - 对用户说话必须通俗:禁止出现 API、Token、Header、config、status、401、WAV、接口、参数、请求体等词。
- 合成完成后,必须给出可点击的音频链接;有文件则同时写入本 skill 目录
results/并尽量用【内嵌浏览器】打开试听。
说明
- 查询额度、会员可引导打开 https://ai.growingth.com/skill/connect?tab=voice
- 登录凭证优先读本目录
config.json;环境变量VOICE_CLONE_API_TOKEN仅作兼容备选(config 无 key 时才读;扫码成功后一律写入 config.json)。
需求理解(用户一提出克隆/配音就先执行)
当用户表达 [克隆音色] [复刻声音] [用我的声音] [配音] [朗读] [口播] [旁白] [TTS] 等意图时,无论是否已登录,都先确认方案。
步骤 A:判断任务类型
A1 克隆音色:用户提供人声样本(音频文件 / 公网音频链接),要做成「我的音色」
A2 用音色朗读:用户给文案,要用某个音色读出来
- 指定「用刚克隆的 / 用某某音色」→ 克隆音色
- 未指定 → 可先列出已有克隆音色;没有则用内置音色(默认 Vivi),并告知用户
A3 两者连续:先克隆,审核通过后再朗读
步骤 B:向用户确认方案(通俗中文)
克隆:
「准备用这段人声做专属音色。
名称:{name 或「按你说的来」}
样本:{已收到音频 / 请发一段 10~20 秒、安静环境、无背景音乐的朗读}
确认后我就开始克隆。」
朗读:
「准备用「{音色名}」朗读:
{文案原样展示}
确认后就开始合成。」
IF 克隆但没有任何音频:
询问:「请发一段 10~20 秒的清晰人声(朗读即可),尽量没有背景音乐和噪音。」
→ 停止等待
IF 朗读但没有文案:
询问:「请把要朗读的文案发给我。」
→ 停止等待
ELSE:记住方案 → 步骤 C
步骤 C:
IF 已登录:按方案执行克隆或合成
ELSE:仅当重新读取 config.json 后 VOICE_CLONE_API_TOKEN 仍为空,才说「你当前尚未登录」并给出电脑端链接。
登录成功后用已确认方案继续,不要让用户重说一遍样本要求(克隆前必须告知,未给音频时再说一遍):
- 10~20 秒真人朗读,吐字清楚
- 尽量无背景音乐、无多人同时说话
- 格式:mp3 / wav / m4a,不超过 10MB
联系客服
当用户要找客服 / 售后时:
- 展示:
https://cdn.growingth.com/pic-upload/qrcode_for_gh_b70b830559d0_258.jpg - 原样说:
「如需联系客服,请微信扫码关注公众号「Suna AI 音乐」,在公众号内留言即可,我们会尽快回复您。」
登录(必须严格执行)
config.json
路径:与本 SKILL.md 同目录
{
"VOICE_CLONE_API_TOKEN": "",
"API_BASE_URL": ""
}API_BASE_URL 留空表示线上 https://ai.growingth.com/api。
- 有非空
VOICE_CLONE_API_TOKEN→ 已登录,请求头使用api-token - 为空 / 缺失 / 文件不存在 → 未登录。登录只走电脑端链接,不要自己生成二维码,也不要打开微信网页授权页
登录页固定为:
https://ai.growingth.com/skill/connect?tab=voice
未登录时必须返回的链接
需要登录时,回复里必须有可点击链接。用户点击后在 PC 端看到右侧「微信扫码登录」二维码,微信扫码确认后,页面给出 API Key,用户复制发回。
禁止调用 connect/session 自己出码。禁止打开带绿色「微信登录」按钮的网页授权页。
必须原样展示:
你当前尚未登录。请点击下方链接,在电脑上打开后,用微信扫描页面右侧二维码。授权成功后,复制页面上的 API Key 发给我。
[电脑端扫码登录](https://ai.growingth.com/skill/connect?tab=voice)试听链接若一并给出,也必须可点击。记住已确认方案,收到 API Key 后写入 config.json 的 VOICE_CLONE_API_TOKEN,然后继续执行,不要让用户重说一遍。
登录异常反馈
用户说打不开、扫不了、看不到二维码时,必须再次给出同一个链接:
请点击下方链接,在电脑浏览器中打开,用微信扫描页面右侧二维码。完成后复制 API Key 发给我。
[电脑端扫码登录](https://ai.growingth.com/skill/connect?tab=voice)用户发来 API Key 后写入 config.json 的 VOICE_CLONE_API_TOKEN,提示已登录并继续。成功后不要向用户复述完整密钥。后续请求头使用 api-token。
业务流程
0)先提交任务(克隆和朗读都必须先做)
调用克隆或合成之前,先提交到技能任务表:
POST {API_BASE_URL}/skill/task
Header: api-token{ "type": "voice_clone", "extra": { "name": "我的旁白", "url": "https://..." } }朗读用 "type": "voice_tts"。成功后记下 data.uid,后面请求体带上 skillTaskUid。不要跳过这一步直接克隆。
1)克隆音色
- 确认名称 + 样本
- 按上一节先
POST /skill/task(type=voice_clone) - 若用户给的是本地/对话里的音频文件:
- 先调「获取上传凭证」,再把文件上传到返回的上传地址,得到公网音频链接
- 若用户直接给了
http(s)://链接,可跳过上传
POST /workflow/tts/clone/create(name + url + skillTaskUid)- 若返回「审核中 / DEPLOYING」:每 5 秒调
GET /workflow/tts/clone/list,直到该条ready=true或失败/过期 - 成功后告诉用户音色名称,并问要不要立刻用它读一段文案
克隆中对用户说:「正在为你制作专属音色,通常不到一分钟,请稍候。」不要报内部编号。
2)用音色朗读
- 确认文案 + 音色(克隆音色优先用 list 里
ready且未过期的;否则用内置音色,默认zh_female_vv_uranus_bigtts/ Vivi) - 先
POST /skill/task(type=voice_tts),记下skillTaskUid - 可先
GET /workflow/tts/balance,字数不够时引导兑换或购买 POST /workflow/tts/generate,body 带skillTaskUid- 成功后给出可点击音频链接;把音频保存到
results/{id}.mp3(若环境可写),并用【内嵌浏览器】打开
语速默认 1.0,音量默认 100。用户说「快一点 / 慢一点」再改。
3)查看我的音色
GET /workflow/tts/clone/list对用户用名称、是否可用、有效期来描述,不要念 voiceId。删除用 clone/remove(body 里的 uid 用 list 返回的 uid)。
⚠️ 调用前自检
- [ ] 已确认是克隆还是朗读,样本/文案齐全?
- [ ] config.json 里有非空 VOICE_CLONE_API_TOKEN?没有则先引导登录
- [ ] 克隆样本是否为公网可访问链接?本地文件是否已上传?
- [ ] 朗读是否选了可用音色(ready 且未过期)?
错误提示模板(对用户必须原样使用)
| 错误类型 | 对用户说 |
|---|---|
| 未登录 | 不要用本表;走「未登录引导」 |
| 登录失效 | 「登录已失效,正在为您重新登录…」→ 清空 VOICE_CLONE_API_TOKEN 后走扫码流程 |
| 会员不足 | 「❌ 需要开通会员后才能克隆音色nn请点击下方「去开通」完成后再回来继续。」 |
| 名额已满 | 「❌ 克隆音色数量已达上限nn可以用积分扩展 1 个名额,或删除不用的音色后再试。」 |
| 字数不足 | 「❌ 配音字数不足nn请点击下方「去购买额度」完成后再继续朗读。」 |
| 样本不合格 | 「这段声音不太适合克隆。请换一段 10~20 秒、安静环境、吐字清楚的单人朗读再试。」 |
| 审核中 | 「音色还在审核,请稍等一会儿,我继续帮你查看。」 |
| 服务异常 | 「抱歉,服务暂时繁忙,请稍后再试。」 |
| 超时 | 「操作超时了,请稍后再试。」 |
| 网络错误 | 「网络好像不太稳定,请检查网络后重试。」 |
| 其他失败 | 「抱歉,这次没有成功,请稍后再试。」 |
会员 / 额度不足时,文案下方必须给出可点击入口(禁止把网址明文念出):
名额已满时:先询问是否用 50 积分扩展 1 个;用户同意再调 clone/expand;或列出已有音色让用户选一个删除。
对话示例
用户:帮我用这段录音克隆一个音色,然后读「大家好,欢迎收听今天的内容」
AI: 准备用这段人声做专属音色。
名称:我的声音
朗读文案:大家好,欢迎收听今天的内容
确认后我先克隆,通过后再朗读。
(若未登录则接着未登录引导)
用户:登录
AI: 请点击下方链接,在电脑上打开后,用微信扫描页面右侧二维码。授权成功后,复制页面上的 API Key 发给我。
[电脑端扫码登录](https://ai.growingth.com/skill/connect?tab=voice)
…用户发来 API Key 后写入 config.json…
✅ 登录成功!
正在为你制作专属音色…
音色已就绪。正在朗读…
已生成,点击收听:{音频链接}