Text to Speech:用 HeyGen Starfish 模型把文本转成语音文件

前言

做视频或播客的人经常遇到这类需求:脚本已经写好了,就差一段配音,不想找人录,也不想在多个 TTS 服务之间比价调接口。这个 Skill 把 HeyGen 的 Starfish TTS 模型封装成标准 skill,给出音色列表和合成两个动作,脚本里直接调用即可。

它只做一件事:把文本生成独立语音音频文件。它不做视频生成,那部分要另找 HeyGen 的视频接口。

这是什么

Text to Speech 是一个基于通用 SKILL.md 格式的 Agent Skill,由 michaelwang11394(Michael Wang)发布并维护,来源仓库为 ClawHub,坐标 @clawhub_michaelwang11394/text-to-speech-heygen,版本 2.23.0,分类 design-media。

它解决的是:Agent 在对话或任务流中需要语音产出时,不必自己拼 HTTP 请求、不必处理分页和音色筛选,直接按 skill 约定的流程走即可。

官方地址:

  • SkillHub 镜像:https://api.skillhub.cn/zcwl/text-to-speech-heygen
  • 上游仓库:https://clawhub.ai/michaelwang11394/text-to-speech-heygen

核心功能

根据官方 SKILL.md,这个 Skill 提供两条能力。

1、列出可用音色。调用 HeyGen 的统一音色接口,用 engine=starfish 过滤,只返回支持 Starfish TTS 的音色。注意不是所有视频音色都支持 Starfish TTS。返回结果分页,需要用 next_token 翻页。

2、合成语音。把文本和指定 voice_id 提交到合成接口,拿到 audio_url,再下载或播放。

配套的数据字段也在 SKILL.md 中给出:音色项包含 voice_id、name、language、gender、preview_audio_url、support_pause、support_locale、type;合成结果包含 audio_url、duration、request_id,并可选返回 word_timestamps。

安装与启用

上游 ClawHub 给出的安装命令是 openclaw skills install。SkillHub 镜像页也提供了同样的坐标。

openclaw skills install @michaelwang11394/text-to-speech-heygen

装完后需要配置鉴权。所有请求都要带 X-Api-Key 头,通过环境变量提供:

export HEYGEN_API_KEY="你的HeyGen API Key"

Skill 元数据里标记了 requires_api_key=true,说明没有这个 Key 就无法调用。

关于 Cursor、Codex CLI、Claude Code 的差异:官方资料只写了 ClawHub/openclaw 的安装方式,没有给出这几种工具各自的接入说明,这里不补充未核实的内容。如果需要在这些工具里启用,建议先确认对应的 skill 加载机制是否支持 ClawHub 坐标。

典型用法

下面按官方 SKILL.md 的默认流程走一遍:先查音色,再挑音色,最后合成。

第一步,列出 Starfish 支持的音色:

curl -X GET "https://api.heygen.com/v3/voices?engine=starfish" \
  -H "X-Api-Key: $HEYGEN_API_KEY"

支持的查询参数有 engine、type(public 或 private)、language、gender、limit(每页 1-100 条)、token(分页游标,取上一页的 next_token)。

第二步,合成语音。text 必填,长度 1-5000 字符;voice_id 必填,取自第一步的结果。

curl -X POST "https://api.heygen.com/v3/voices/speech" \
  -H "X-Api-Key: $HEYGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello! Welcome to our product demo.",
    "voice_id": "YOUR_VOICE_ID",
    "speed": 1.0
  }'

其余可选字段:

字段 说明
input_type text(默认)或 ssml,后者用于完整 SSML 标记
speed 语速,范围 0.5-2.0,默认 1.0
language 基础语言代码,如 en、pt,省略时自动检测
locale BCP-47 区域,用于多语言音色,如 en-US、pt-BR

返回示例:

{
  "error": null,
  "data": {
    "audio_url": "https://resource2.heygen.ai/text_to_speech/.../id=365d46bb.wav",
    "duration": 5.526,
    "request_id": "p38QJ52hfgNlsYKZZmd9",
    "word_timestamps": [
      { "word": "Hey", "start": 0.079, "end": 0.219 }
    ]
  }
}

如果运行环境里已经有 HeyGen 的 MCP 工具,SKILL.md 建议优先用工具而不是直接发 HTTP 请求。对应关系是:列音色用 mcp__heygen__list_audio_voices,合成用 mcp__heygen__text_to_speech。

官方还给了几个常见组合的写法,分别是基础合成、调语速(speed: 1.1)、多语言音色(language: "pt" 加 locale: "pt-BR")、以及 SSML 输入。前三类都只是字段差异,换成 curl 就是往 -d 里加键。

适用场景与注意

适合的场景:需要给视频脚本配旁白、给播客或解说做干声、批量把文案转成音频存档,以及需要按语言和性别筛音色的情况。

需要注意的地方:

1、文本长度上限 5000 字符。长文案要自己分段,多次调用后拼接。

2、音色筛选必须带 engine=starfish。用普通 /v3/voices 拿到的视频音色,不一定能用于 TTS。

3、音色列表分页。只取第一页会漏掉音色,limit 最大 100,需要循环 next_token。

4、多语言音色要同时给 language 和 locale,只给 language 可能选不到预期发音。

5、语音合成与视频生成是两个接口,这个 Skill 只覆盖前者。

6、需要有效的 HeyGen API Key,配额和计费以 HeyGen 账号为准。

结尾

这个 Skill 的价值在于把 HeyGen Starfish TTS 的两个接口和分页、音色筛选这些细节封装成可复用流程,省掉每次手写请求的工夫。它范围明确,只做文本转语音文件。

官方地址:https://api.skillhub.cn/zcwl/text-to-speech-heygen

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye