agentleFS
dima-rdnvdima-rdnv/claude-skills/vo-timing/SKILL.md

vo-timing

Skill2 starsChanged 5 days agoMITView on GitHub

Extracting word-level timings from a voice-over audio file (mp3/wav) in the sandbox with faster-whisper and converting them to frames at the project fps, to key animation/simulation events to the words. Use when the user shares a VO/narration/audio and wants timings, beats or frame numbers.

  • Installs packages

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    When the VO lives inside an edit/animatic, its timeline seconds are the edit's timecode — map them to a comp via the comp's start offset …

    line 17
  2. Distinctive:

    After any session that used Houdini/Cinema 4D/After Effects, or whenever something new is verified:

    line 24
  3. Distinctive:

    Add gotchas/recipes ONLY if tested and working in a real scene.

    line 25
  4. Very specific:

    Put each finding in the skill it belongs to (see the indexes in houdini-mcp and cinema4d-mcp).

    line 27
  5. Very specific:

    Keep each SKILL.md under ~300 lines.

    line 29

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Voice-over timings

  • Word-level VO timings: pip install faster-whisper --break-system-packages, model base.en, transcribe(..., word_timestamps=True), convert seconds × fps to frames. Runs fine on CPU in the sandbox for a ~3 min file. Key sim events (bursts, ignition, exhaust) to the words.
  • Windows host without pip access (verified Win 11, uv, Python 3.12, faster-whisper current in Oct 2026): uv run -q --python 3.12 --with faster-whisper python -I tx.py … works, but passing a file path fails inside decode_audio with TypeError: open() got an unexpected keyword argument 'metadata_errors' (newer PyAV). Extract the audio first — ffmpeg -i in.mp4 -vn -ac 1 -ar 16000 vo.wav (works straight from an animatic/edit .mp4) — and pass a float32 array: wave + np.frombuffer(..., np.int16) / 32768. Model small.en with int8 on CPU transcribed 104 s in well under 2 min, with clean word timings.
  • When the VO lives inside an edit/animatic, its timeline seconds are the edit's timecode — map them to a comp via the comp's start offset (see aftereffects-bridge for precomp time mapping).
  • Frame numbers from seconds×fps are 0-based; Houdini frames are 1-based (+1); C4D is 0-based.
  • To line words up with an animated part in Houdini, sample prim.boundingBox() of the one prim whose path ends with the part name at ~15 frames — never loop every frame.

Keeping this skill current

After any session that used Houdini/Cinema 4D/After Effects, or whenever something new is verified:

  1. Add gotchas/recipes ONLY if tested and working in a real scene; mark anything else "(unverified)".
  2. Correct entries that proved wrong — don't append contradictions.
  3. Put each finding in the skill it belongs to (see the indexes in houdini-mcp and cinema4d-mcp); project-specific facts go to that project's notes (see project-notes), never into a skill.
  4. Keep each SKILL.md under ~300 lines; split into a new sub-skill or references/ when it grows.
  5. Re-package every changed skill (keep names) and, if the skills live in a git repo, commit and push. Tell the user in one line what changed.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.