edit-speech
Skill1 starsChanged 3 months agoApache-2.0View on GitHub
Revises character voice samples or shot speech; rebuilds affected media. Use when the user asks to change a character's line, pronunciation, delivery or voice, including "7번 샷 민재 대사 수정", "이 목소리 바꿔", or "fix this line". Finds stable shot and line ids, preserves other characters and reports affected outputs. Storyboard plans a new episode; produce builds it; this skill repairs an existing one.
In this repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- autoproduceSkill
- brandingSkill
- channelSkill
- compose-blenderSkill
- datagoSkill
- generate-cut-imagesSkill
- generate-cut-videosSkill
- grow-instagramSkill
- grow-threadsSkill
- grow-youtubeSkill
- ingestSkill
- inspect-contentSkill
- introSkill
- platform-guideSkill
- produceSkill
- project-initSkill
- publishSkill
- review-cameraSkill
- review-contextSkill
- review-cut-imagesSkill
- review-cut-videosSkill
- review-recentSkill
- setup-instagramSkill
- setup-threadsSkill
- setup-youtubeSkill
- storyboardSkill
- topic-scoutSkill
- upscale-videoSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 7 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Follow host evaluation for every requested review.
- Very specific: line 23
When the user asks to apply the current character sheet, read that character's shared voice-selection.json and identity tts, then compare …
- Very specific: line 33
Use speech_manage action:list on the existing board.
- Very specific: line 43
Use update with the exact lineId, expectedRevision and requested patch.
- Very specific: line 57
Call speech_manage action:plan_audio for the affected line.
- Distinctive: line 61
Use the resolved line direction.
- Very specific: line 65
Follow ElevenLabs v4 for /IPA/ pronunciation and optional neighbor request IDs.
- Distinctive: line 69
Do not call automatic listening, dictation, scoring or approval tools.
- Distinctive: line 87
Do not label a script-only patch as a regenerated video.
- Distinctive: line 90
If the user explicitly requests testing or an adversarial improvement loop, review the actual media as authorized and preserve the measured …
- Distinctive: line 115
Do not claim an age correction after changing only turn style with the same voice ID.
- Distinctive: line 120
Do not replace its intended roughness or character with generic naturalness.
≈ “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.
Files
Follow host evaluation for every requested review.
Automatic execution policy: Read automation guidance first. Creative rules and review findings guide improvements; scores, review/hash/freeze records, CTA choices and intermediate approval steps do not block authorized work. Preserve actual external-action authorization and stop at the artifact the user requested. This policy supersedes older quality-gate wording below.
Revise shot speech
For model routing, follow model settings. Corrections reuse the episode's snapshot, explicit overrides and pinned speaker voice; a newer directory default does not change an existing take's model. Change it only when the user requests that change. Never silently fall back to another speech engine.
When the user asks to apply the current character sheet, read that character's
shared voice-selection.json and identity tts, then compare engine, model and
voice ID with SB_DOC.characters. That request authorizes updating the named
characters' episode voice pins; a stale episode pin is not the requested voice.
Back up the board, record the scoped change and regenerate affected requested
media. Assert that each plan_audio result and actual generation receipt match
the selected sheet before attaching audio. Report other affected episode lines
as stale if they are outside the requested rebuild. A sample-only voice edit or
an unrelated directory-default change still preserves existing episode pins.
Use speech_manage action:list on the existing board. Filter by shotId, speaker id/name,
or quoted text. Shot numbers are display positions; stable shotId and lineId are the edit
addresses. If a request matches several lines, report the candidates and clarify only the
ambiguous target. Never replace every occurrence of a name or phrase across the episode.
For an older board, read its existing SB_DOC character voices and narrator from the board
or review HTML. Put that metadata in scenes.js and run prepare with the returned revision.
Preparation assigns ids and makes the existing narrator fallback explicit; it does not invent
new character dialogue or voices. Do not silently turn a user's dialogue into narration.
- Use
updatewith the exact lineId, expectedRevision and requested patch. For expression, intonation or acting corrections, setpatch.actingwith the line's context, intent, emotion, vocal delivery, visible action and optional leadInSeconds/tailOutSeconds. It replaces the whole acting object; retain existing fields that still apply, or use null to clear it. Do not edit the character-wide stylePrompt for one line's emotion. Keep tts (spoken spelling) and sub (display spelling) in agreement. A delivery-only change does not authorize changing the character's identity voice. Use speaker ids, not display names, in writes. - Inspect
invalidated. Old files remain available and source backups are in.work/speech-history/. Never overwrite an old take. A voice configuration change affects every line spoken by that character; list those lines and regenerate them as a set only when the user asked for that voice change. A line in a shot bound asnative(MSR) has no take: the edit marks the clip stale. Regenerate the clip throughvideo_planand bind it again withattach_video; skip step 3. - Call
speech_manage action:plan_audiofor the affected line. Generate a new take with its returned generator and provider-ready generation arguments, preserving the character’s pinned settings. Attach with cleangeneration.textfromexpectedTextand the actual tagged request ingeneration.voiceSettings. Use the resolved line direction; do not overwrite it with a generic character's stylePrompt. For ElevenLabs v4, write a compact acting.direction/tags cue for audible delivery; rich context and vocal paragraphs stay in the scene plan. Report unsupported-control warnings without silently changing engines. Follow ElevenLabs v4 for/IPA/pronunciation and optional neighbor request IDs. Copy real IDs from existing receipts/sidecars; retain the actual added arguments in voiceSettings. Preserve logging and clone mode choices. Never guess a request ID or change clone mode on an API failure. Do not call automatic listening, dictation, scoring or approval tools. Record the generator, actual voice settings, text and speed in the generation receipt. Useattach_audioto bind the file to its line revision, passing the actual generation arguments and text. Generated speech staysnot_reviewed; that is usable output. - For video work read the speech production contract.
plan_videotakes the selected adapter's documented capabilities, not a hardcoded model. Carry the same context, intent and emotion into its video prompt with the visual action. Match the source image's expression, gaze and prop state to this beat. Never batch different reactions or nonconsecutive shots by shared source image and slice them later. Attach all current line audio, then use the speech contract's compose-speech command before audio-conditioned video generation; build-reel also runs it automatically. It materializes planned reaction time and synchronizes any requested subtitle sidecar to speech intervals. On-screen dialogue requires audio-conditioned animation or an explicit post lip-sync adapter. Never silently substitute closed-mouth action. Off-screen speech and narration can be mixed over existing action footage. Preserve the selected model and budget; a change request does not authorize unrelated generations or publishing. - Bind the new clip with
attach_video, current revision, selected capabilities and videoPath; this records the source audio hashes and clears stale status. If delivery already exists, rebuild the affected clip, audio timing, any requested sidecar and the final edit using produce's existing commands. Preserve unaffected takes and report their hashes. Do not label a script-only patch as a regenerated video. Return the changed shot/line, speaker, text, new files and any media still needing regeneration. No listening approval.
If the user explicitly requests testing or an adversarial improvement loop, review the
actual media as authorized and preserve the measured findings. A schema or planning pass
does not establish improved acting; report unheard/unplayed output as not_reviewed.
An explicitly requested review prepares evidence with host_review (acting_review and
tts_review_acting are its legacy aliases); no external evaluator is called. Do not call
them in ordinary edit-speech runs.
Generation receipts keep actual API arguments in voiceSettings. For Gemini, which has no language argument, put the declared text language in generation.language (e.g. ko). This is metadata, not an API parameter. Both attachment and assembly use the same voice/language normalization rules.
Per-line acting supports direction/tags alongside the richer scene fields above.
It is separate from the pinned identity voice and from visible/off-screen delivery. Use speech_manage to update
acting, invalidate affected speech, and preserve unchanged takes. Follow
acting prompts.
ElevenLabs permits eleven_v4 only; Gemini remains supported. Local TTS is removed.
An explicitly requested review/improvement loop is permitted within its scope;
normal production continues without scoring or listening approval.
Character voice age and identity changes
For character samples or a request to sound older/younger, follow Gemini voice design. Route sample-only edits to the character identity and sheet; do not rebuild episode media unless requested. Do not claim an age correction after changing only turn style with the same voice ID.
User preference takes precedence over model voice-age/naturalness scores. Preserve and apply the exact user-preferred take within the authorized sample scope, record its hash and the user's selection separately from any unfavorable model review. Do not replace its intended roughness or character with generic naturalness.
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
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.

