关于 tts-skill
tts-skill 为语音生成任务规定路由与制作规范,面向本地视频配音及文章演示。它以 IndexTTS2 作为本地视频制作路径,并通过清单、发音词典和字幕质检约束交付。
主要功能
- 01按任务选择语音生成路径
- 02本地视频使用 IndexTTS2
- 03规范 WAV、语速与语音清单
- 04应用发音词典并校验禁用读法
- 05从最终音频生成字幕时间戳
- 06数字人音频须经用户批准
适用场景
- 01为本地视频生成旁白
- 02制作文章或教程中的 MiniMax 演示
- 03校验混合中英文稿件的发音
- 04为最终旁白生成字幕并质检
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ pluviobyte/ rnskill --skill tts-skill安装后在 Claude Code 中输入/tts-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/minimax_tts.pyreferences/minimax-relay-article.mdpronunciation-lexicon.jsonscripts/generate_indextts2_narration.py详细介绍
TTS 技能
将每个请求路由到且仅路由到一个通道。
硬性路由规则
- 本地视频制作仅使用本地 IndexTTS2。即使
.env中存在 MiniMax 凭据,也不得调用 MiniMax。 - 使用 voice id
pluvio-indextts2-calm-v1和automation/config/tts-routing.json中指定的规范无损 WAV。不得将 MP3 用作说话人参考,也不得用最新输出替换规范参考;否则会导致克隆偏差不断累积。 - 将锁定的旁白生成为无损 WAV。MP3 只能作为便携试听副本输出,不得用作另一次克隆的来源,也不得用于最终字幕计时。
- 对每个试听音频和最终 WAV 应用
automation/config/tts-routing.json中声明的default_delivery.playback_speed。生产默认值为1.12x,使用 FFmpegatempo实现,以保留音高。在voice_manifest.json中记录实际生效的倍率。 - 不得悄悄回退到 macOS
say、浏览器语音、MiniMax 或其他通用/云端语音。如果 IndexTTS2、其模型权重、Apple MPS/CPU 或规范参考不可用,应修复本地通道或停止。 - 每次最终旁白渲染都必须在
voice_manifest.json中记录 provider、voice id、model、规范参考路径及 SHA-256、分段约定、输出路径,并设置used_fallback=false。 - TTS 分段时长仅作为规划元数据。对准确拼接后的无损旁白运行
ra-audio-to-subtitles,并使用其词级时间戳生成最终字幕。 - 对数字人制作,将完整旁白视为试听版本,直到用户明确批准该确切音频版本。不得将未经批准的试听版本称为已锁定,也不得将其发送给 HeyGen。
- 每次本地试听或最终渲染前,都必须执行
references/pronunciation-lexicon.json中的读音规范。用户在该文件中批准的读音优先于通用语音规则。必要时将显示拼写与 TTS 文本分开;如果拼写被禁止,则停止渲染。
本地视频通道:IndexTTS2
从以下文件读取机器可读路由:
automation/config/tts-routing.json
使用 JSONL 分段约定生成旁白:
python3 .claude/skills/tts-skill/scripts/generate_indextts2_narration.py \
--batch-file <segments.jsonl> \
--output <final-narration.wav> \
--manifest <voice_manifest.json>
每个非空 JSONL 行都必须遵循 IndexTTS2 官方批处理约定,并包含 text;还可以包含 emotion_vector、emotion_weight 和 silence_after_ms。默认采用平静的表达方式。只有在用户明确要求时,才加入更强烈的情绪。
在使用新约定或更改本地模型设置后,运行 --dry-run。该辅助工具会验证规范说话人参考是否为无损 PCM WAV,调用本地 IndexTTS2 官方 CLI,规范化结果,并写入清单。为便于审计,请将原始 WAV 与规范化后的 WAV 放在一起。
对于中英混合脚本,在完整渲染前检查模型名称、品牌、缩写和数字。先加载 references/pronunciation-lexicon.json。其中的条目是已批准的生产约定:请准确使用其 tts 值,并拒绝所有 forbidden_tts 形式。尤其要将 Codex 保留为原始英文词,不得将其音译为“扣代克斯”“扣戴克斯”或“扣德克斯”。对于词库中尚未收录的术语,在显示脚本和最终字幕中保留规范拼写,同时试听不同读法。用户选定后,先将该决定记录到词库,再进行完整渲染。
公开文章通道:MiniMax 中继
MiniMax 仅保留为文章、教程、课程示例和中继站入门内容中使用的公开方案。它不是本地生产服务商。需要使用此通道时,请阅读 references/minimax-relay-article.md,并且仅在文章/演示示例中使用 assets/minimax_tts.py。
QC
在最终视频中使用旁白前:
- 确认
provider为IndexTTS2/indextts2-local - 确认
voice_id为pluvio-indextts2-calm-v1 - 确认参考 SHA-256 与路由配置一致
- 确认推荐输出为 PCM WAV,且可成功解码
- 确认
playback_speed为1.12,除非制作协议明确 覆盖工作区默认值 - 确认
used_fallback=false,且没有片段使用 MiniMax 作为提供方 - 确认
voice_manifest.json中包含发音协议,且已使用经批准的混合语言术语 - 使用该 WAV 生成字幕,并要求
caption-qc.json的状态为 PASS - 对于数字人,在生成任何付费形象前,要求用户明确批准确切的试听 WAV; 更改音频会使批准失效