Skip to content

Skills / video-voice

video-voice

Part of the video library (loaded by /video, not run directly): narration from script.md with local voices (Kokoro English, 3arab Arabic) or the user's own recording cut into lines, with word timings; never clones a voice.

OfficialRuns scriptsAuditB
Latest
v0.3.0
Aisle
video
Works with
Claude Code
Stars
2

Install

video-voice is a part of the video library. You do not run it yourself: you type /video and describe what you want, and Claude uses this part when it is needed. Installing the library installs this part too.

Install video

npx @agentsaisle/cli add video

Runs scriptsThis skill includes scripts

Your agent may run these scripts on your machine. A maintainer has read every one in full, and the CLI lists the files when you install. You can read them on GitHub first.

Read the files on GitHub

Audit

Checked with aisle audit (version 0.3.0). Run it yourself: aisle audit video-voice

B
Critical
0
High
0
Medium
1
Low
0

14 files · audited 2026-11-03 · rules 1.0.0

MediumAA-P02Can write files and run interpreters without disable-model-invocation

SKILL.md:5

Read Write Glob Grep Bash(node *)

Why The agent may load this skill on its own and then write files and run code in one go.

Fix Set disable-model-invocation: true so the user starts it, or narrow the Bash patterns.

What this skill can use

Tools

  • Read
  • Write
  • Glob
  • Grep
  • Bash(node *)

Scripts

  • providers/tts_arab3.py
  • providers/tts_kokoro.py
  • scripts/_lib.mjs
  • scripts/align.mjs
  • scripts/providers.mjs
  • scripts/recorded.mjs
  • scripts/run.mjs
  • scripts/script-parse.mjs
  • scripts/voice.mjs

Domains mentioned

  • example.com

Automated checks found the patterns listed here. An audit reduces risk; it is not a guarantee of safety. How audits work · Read the rules

Show this grade in a README

The badge updates when the registry is rebuilt. Paste this Markdown into the README:

[![aisle audit](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.agentsaisle.dev%2Fbadges%2Fvideo-voice.json)](https://www.agentsaisle.dev/skills/video-voice)

SKILL.md

Rendered from commit 2ee11a4

Video voice

Turns script.md into audio and word times. Scripts do the work; the engines run locally and offline. <skill> below is the folder that holds this SKILL.md.

Use when

  • A project has a checked script.md and needs narration audio, or word timings for captions.
  • The user wants their own voice: they recorded the script once through (references/recorded.md).
  • A project has a checked script and needs narration, optionally with --provider, --voice, --speed.

Don't use when

  • The user wants to clone a voice: this version cannot, and it refuses without recorded consent anyway. Never clone a public figure.
  • The user wants a paid service (ElevenLabs and others are not built).
  • The script has not passed write-check.mjs.

Steps

  1. Check the engines with /video doctor. If Kokoro or 3arab is missing, say so and offer --provider test (a tone, not speech, useful to preview timing) or the install notes in references/engines.md. Never install anything yourself.
  2. Run node <skill>/scripts/voice.mjs <project> [--provider kokoro|3arab|test] [--voice id] [--speed 1] [--seed 1]. Default provider: 3arab for ar, kokoro otherwise. Lines that did not change are kept; add --force to redo all.
  3. Run node <skill>/scripts/align.mjs <project>. It uses whisper.cpp when set up; otherwise it estimates and flags the timings as approximate.
  4. Report the manifest: provider, voice, seconds, and whether timings are measured or estimated.
  5. Their own recording instead of steps 2 and 3: ask whose voice it is, then node <skill>/scripts/recorded.mjs <project> --file <recording> --speaker self (or --speaker other --consent <file>). It cuts one WAV per line and writes the word times; it needs whisper.cpp and nothing is uploaded.
  6. Next: node <video-core>/scripts/timing.mjs <project>; the render burns the captions from these word times.

Budget

  • Search first (grep, glob, symbol search). Read line ranges, not whole files.

  • Read at most 8 files per step. If you need more, write down what you learned and narrow the question.

  • Do not re-read a file you just wrote or edited.

  • Prefer the smallest command output that answers the question: head, tail, quiet flags, filtered lists.

  • Run each script once. Do not listen-check or read the WAV files; the manifest and summary have what you need.

  • Re-voice only edited lines (the script does this by itself).

Output

  • The provider, voice and total seconds, and the paths voice/*.wav, voice/words.json, voice/manifest.json.
  • Whether word times are measured (whisper) or ESTIMATED, in capital letters if estimated.
  • For Arabic: that the voice is a machine voice with a watermark, and numbers must already be words.

Done when

  • voice.mjs and align.mjs both exited 0 and the user was told how the timings were made.
  • No API key was read or printed; no voice was cloned.

Version history

VersionCommitInstall
0.3.0latest2ee11a4add video-voice

Report this skillAgent Aisle on GitHub