본문으로 건너뛰기
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.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 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.7천2026년 9월 21일 업데이트

Pluviobyte의 스킬 모두 보기

이 스킬의 문제 신고