mcpField
T
tts-skill

tts-skill

github.com/pluviobyte创意与媒体1.7k171 次安装5 周前更新
代码仓库

关于 tts-skill

tts-skill 为语音生成任务规定路由与制作规范,面向本地视频配音及文章演示。它以 IndexTTS2 作为本地视频制作路径,并通过清单、发音词典和字幕质检约束交付。

主要功能

  1. 01按任务选择语音生成路径
  2. 02本地视频使用 IndexTTS2
  3. 03规范 WAV、语速与语音清单
  4. 04应用发音词典并校验禁用读法
  5. 05从最终音频生成字幕时间戳
  6. 06数字人音频须经用户批准

适用场景

  1. 01为本地视频生成旁白
  2. 02制作文章或教程中的 MiniMax 演示
  3. 03校验混合中英文稿件的发音
  4. 04为最终旁白生成字幕并质检

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pluviobyte/rnskill --skill tts-skill

安装后在 Claude Code 中输入/tts-skill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
assets/
minimax_tts.py
references/
minimax-relay-article.md
pronunciation-lexicon.json
scripts/
generate_indextts2_narration.py

详细介绍

TTS 技能

将每个请求路由到且仅路由到一个通道。

硬性路由规则

  1. 本地视频制作仅使用本地 IndexTTS2。即使 .env 中存在 MiniMax 凭据,也不得调用 MiniMax。
  2. 使用 voice id pluvio-indextts2-calm-v1 和 automation/config/tts-routing.json 中指定的规范无损 WAV。不得将 MP3 用作说话人参考,也不得用最新输出替换规范参考;否则会导致克隆偏差不断累积。
  3. 将锁定的旁白生成为无损 WAV。MP3 只能作为便携试听副本输出,不得用作另一次克隆的来源,也不得用于最终字幕计时。
  4. 对每个试听音频和最终 WAV 应用 automation/config/tts-routing.json 中声明的 default_delivery.playback_speed。生产默认值为 1.12x,使用 FFmpeg atempo 实现,以保留音高。在 voice_manifest.json 中记录实际生效的倍率。
  5. 不得悄悄回退到 macOS say、浏览器语音、MiniMax 或其他通用/云端语音。如果 IndexTTS2、其模型权重、Apple MPS/CPU 或规范参考不可用,应修复本地通道或停止。
  6. 每次最终旁白渲染都必须在 voice_manifest.json 中记录 provider、voice id、model、规范参考路径及 SHA-256、分段约定、输出路径,并设置 used_fallback=false。
  7. TTS 分段时长仅作为规划元数据。对准确拼接后的无损旁白运行 ra-audio-to-subtitles,并使用其词级时间戳生成最终字幕。
  8. 对数字人制作,将完整旁白视为试听版本,直到用户明确批准该确切音频版本。不得将未经批准的试听版本称为已锁定,也不得将其发送给 HeyGen。
  9. 每次本地试听或最终渲染前,都必须执行 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; 更改音频会使批准失效

评论

支持 Markdown