Skip to content

/voice-compose

Designs and attaches voice samples or final narration/line audio on the filmmaking canvas via the local generate_voice.js CLI. Use before calling generate_voice.js; when the user asks to give a character a voice, preview how a character sounds, create reusable timbre anchors for

From plugin
pai-code
3526 skills

Claude Code

$ npx -y skills add utopai-research/pai-code --skill voice-compose --agent claude-code

SKILL.md

voice-compose.SKILL.md
name: voice-compose
description: Designs and attaches voice samples or final narration/line audio on the filmmaking canvas via the local generate_voice.js CLI. Use before calling generate_voice.js; when the user asks to give a character a voice, preview how a character sounds, create reusable timbre anchors for every speaking character or VO/narration, or create exact narration/VO/final line audio.

Default to one short reusable timbre sample per speaking character and one VO/narrator sample when narration exists. `video-compose` keeps actual shot dialogue/VO in the video prompt. Treat `audio_result.data.text` as downstream speech only for approved final narration/line reads.

Patterns

Follow `PROJECT_AGENT.md` for context/staging. This skill owns voice prompt + CLI shape.

1. Character voice sample

Triggers: "give / design a voice for [character]", "what does [character] sound like", "voices for all the characters on the canvas".

  • Target: any `image_result` for the person; don't gate on subtype. Read `data.local_path` before prompt; layer `name`/`role`/`description` on top.
  • Call:
  node "$PAI_REPO_ROOT/server/cli/generate_voice.js" \
    --text "<line>" \
    --prompt "<voice design brief>" \
    --source-node-id <character.id>
  • Prompt describes the **voice**, not the character:

> `[age bracket] [gender], [timbre], [register], [pace], [accent if relevant]. [optional emotional color].`

✅ "Mid-50s man, gravelly baritone, measured pace, slight rasp from decades of smoking, weary but steady." ✅ "Young woman, bright mezzo, warm, quick and percussive. Slight Southern lilt." ❌ "Detective Morris's voice." — names the character, not the voice. The model needs sound qualities.

  • `text`: 1-3 sentence in-character sample (≤200 chars), not every script line.
  • Script breakdowns: one staged call per speaker; preserve labels. Add separate VO/narrator via Pattern 2.

2. Narrator / VO voice sample or final line audio

Triggers: narrator voice, voice-over, "a voice that says X" without character, narration track, or explicit final line-read audio.

  • Omit `--source-node-id`:
  node "$PAI_REPO_ROOT/server/cli/generate_voice.js" \
    --text "<the narration line>" \
    --prompt "<voice design brief>"
  • Same prompt convention as Pattern 1.
  • Reusable VO/narrator anchor: short sample line in narrator style, not full script narration.
  • Final narration/line-read: copy approved text exactly into `--text`; then `data.text` is source of truth.
Read more
@utopai-research
Ships withpai-code

The local AI filmmaking studio, driven from your coding agent. [![Codex supported](

Stars on GitHub

Momentum

stars in total
352
Star history of Utopai-Research/pai-pro on GitHub, a chart by star-history.com

Other skills on pai-code.

groups-compose
Auto-invoked

groups-compose

Designs and maintains semantic groupings and readable layouts on the filmmaking canvas — scenes, character-reference sets, act…

image-compose
Auto-invoked

image-compose

Generates/edits filmmaking canvas images via generate_image.js and generate_image_pro.js. Use before image CLIs for…

script-compose
Auto-invoked

script-compose

Handles explicit screenplay/story work on the filmmaking canvas. Triages screenplay (use verbatim), story/concept (iterate then…

video-compose
Auto-invoked

video-compose

Generates and prompts video clips on the filmmaking canvas. Use when the user asks to generate, render, animate, continue,…

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli11d33k
@iofficeai@iofficeaiInstall Skill

Questions about voice-compose.

Which coding agents can use voice-compose?
voice-compose installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.