本文へ移動
cccskills
無料GitHub で公開

ra-audio-to-subtitles

Generate production subtitle artifacts from the final narration audio or final merged video using Volcengine Doubao ASR word timestamps. Use for local IndexTTS2 videos, Xiaohei page videos, talking-head delivery subtitles, SRT/VTT export, or whenever subtitle timing must match the final audio. Do not use script-length interpolation for final deliverables.

インストール方法を見る

含まれるファイル(4)

  • SKILL.md4.3 KB
  • agents/openai.yaml258 B
  • references/artifact-contract.md1.8 KB
  • scripts/generate_subtitles.py28.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

真实时间戳字幕

Use the final audio stream as the only timing source. Never estimate final subtitle timing from character count, scene duration, TTS segment duration, or fixed delays.

Required workflow

  1. Finish and concatenate narration first. If the user recorded or merged a video, use that final merged media instead.
  2. Run scripts/generate_subtitles.py against the final media and the exact narration script.
  3. Inspect phrase segmentation. Keep English product/model tokens intact, merge isolated one-word fragments, and place connectors such as 比如说, 但是, and 只是 with the phrase they introduce.
  4. Render captions from captions.json; export captions.srt for Bilibili, YouTube, editing software, and archive.
  5. Require caption-qc.json to report status: pass before final render or delivery. The gate includes alignment, overlap, fragments, connector splits, caption duration, and reading speed.
  6. If ASR fails or alignment coverage is below the gate, stop. A character- count estimate may be used only for an explicitly labeled scratch preview.

Commands

Project with narration_segments.json:

python3 .claude/skills/ra-audio-to-subtitles/scripts/generate_subtitles.py \
  <project>/media/final-voiceover.mp3 \
  --script <project>/narration_segments.json \
  --out-dir <project>/media/captions

Recorded or merged video with a Markdown handoff containing - 口播: lines:

python3 .claude/skills/ra-audio-to-subtitles/scripts/generate_subtitles.py \
  <project>/merged.mp4 \
  --script <project>/handoff.md \
  --out-dir <project>/media/captions

Health check:

python3 .claude/skills/ra-audio-to-subtitles/scripts/generate_subtitles.py --doctor

Offline regression test with an existing Volcengine response:

python3 .claude/skills/ra-audio-to-subtitles/scripts/generate_subtitles.py \
  <audio> --script <script> --asr-result <volcengine-result.json> \
  --out-dir <output>

Output contract

The output directory must contain:

  • asr-result.json: raw Volcengine response
  • captions_words.json: word/character timestamps and detected gaps
  • captions.json: phrase captions consumed by HyperFrames or Remotion
  • captions.srt and captions.vtt: portable subtitle files
  • caption-qc.json: alignment coverage and timing validation

Read references/artifact-contract.md before integrating another renderer or delivery checker.

Hard rules

  • Transcribe the exact final audio used by the MP4. Do not transcribe an earlier segment, draft voice, or a differently trimmed file.
  • Use the original narration text for display and ASR only for timing. This preserves names, English terms, punctuation, and intentional wording.
  • Align the original script to ASR tokens before grouping phrases. Do not scale boundaries by total character count.
  • Phrase captions remain the default. Word timestamps are the timing substrate, not a requirement to show karaoke-style one-character captions.
  • Preserve meaningful spaces inside English names such as Claude Max; never split an ASCII product/model token across captions.
  • Reject captions shorter than 0.5 seconds, isolated fragments, split discourse connectors, and reading speeds above 12 units/s. Treat speeds above 9 units/s as a review warning.
  • Keep one canonical caption timeline. Scene changes, keyword reveals, and component cues should look up caption text or timestamps from that timeline.
  • VOLCENGINE_API_KEY comes from the workspace root .env or the environment. Never print or copy it into an artifact.
  • Default resource ID is volc.seedasr.auc; override only with VOLCENGINE_RESOURCE_ID when the account uses a different enabled resource.
  • Final delivery requires alignment coverage at least 0.90 unless a stricter project contract is set. Lower coverage is a failure, not a warning.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

口播视频转录和口误识别。生成审查稿和删除任务清单。触发词:剪口播、处理视频、识别口误

日本語の概要は準備中です。原文の説明を表示しています。

Pluviobyte/rnskill1,6422026年9月21日 更新

将法天象地、同源巨大法相或角色力量显现的视觉参考制作成连续关键帧,再使用用户选择或可用的图生视频工具分段生成、检查和合成动作视频,不绑定成片平台。适用于本体与法相同框、领域展开、凝实与同步出招;不负责整部小说改编或普通图片轮播。

日本語の概要は準備中です。原文の説明を表示しています。

Pluviobyte/rnskill1,6422026年9月21日 更新

口播基础素材包生成。转录口播、识别口误、生成审核页;用户确认后剪出新视频,Agent 再基于剪后视频重新转写、AI 校对字幕,输出后续口播成片可用的 source_cut.mp4 和 subtitles.srt。触发词:剪口播、处理口播素材、准备口播素材、识别口误、基础素材包

日本語の概要は準備中です。原文の説明を表示しています。

Pluviobyte/rnskill1,6422026年9月21日 更新

口播视频成片 Skill。把文章/口播稿/SRT、剪后视频和 HTML/图片素材串成分镜稿、时间线预览和最终 MP4;成片比例和动画风格从用户配置读取,动画默认使用小黑风格。触发词:口播成片、做分镜稿、时间线预览、合成口播视频、导出竖屏MP4

日本語の概要は準備中です。原文の説明を表示しています。

Pluviobyte/rnskill1,6422026年9月21日 更新

自进化 skills。记录用户反馈,更新方法论和规则。触发词:更新规则、记录反馈、改进skill

日本語の概要は準備中です。原文の説明を表示しています。

Pluviobyte/rnskill1,6422026年9月21日 更新

dbs

無料

dontbesilent 商业工具箱主入口。双模式:任务前路由(你的问题该用哪个 skill)+ 任务后导航(刚做完诊断,下一步该干什么)。 触发方式:/dbs、/商业、「帮我看看」、「下一步怎么走」 Main entry point for dontbesilent business toolkit. Dual mode: pre-task routing + post-task navigation. Trigger: /dbs, "help me with my business", "what's next"

日本語の概要は準備中です。原文の説明を表示しています。

Pluviobyte/rnskill1,6422026年9月21日 更新

Pluviobyte のスキルをすべて見る

このスキルの問題を報告する