voice
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBefore using this skill, read the required continuation in full. It is part of this skill and contains mandatory workflow, tool-contract, and safety instructions; do not act from this entry file alone.
使用此 skill 前,必须完整阅读 必需的后续内容。它是此 skill 的一部分,包含强制性的工作流、工具契约和安全说明;不要仅依据此入口文件采取行动。
Voice & Sound Effects Generator
语音与音效生成器
If , , , or are not loaded yet, load them with before calling them, so you use their real parameters instead of guessing.
submit_voicemanage_voicepull_assetsubmit_soundToolSearchGenerate voiceovers (TTS) and sound effects. For TTS, choose a concrete
provider and voice before calling .
submit_voice如果尚未加载 、、 或 ,请先用 加载它们再调用,以确保使用其真实参数,而不是凭空猜测。
submit_voicemanage_voicepull_assetsubmit_soundToolSearch生成配音(TTS)和音效。对于 TTS,在调用 前选定具体的提供方和音色。
submit_voiceWhen to Use
使用场景
- Generate voiceover/narration from text
- Create text-to-speech audio for videos
- Add, replace, or redo narration/voiceover for an existing video, timeline, screen recording, slide animation, product demo, B-roll edit, MG explainer, or other visual sequence
- Keep existing narration/voiceover aligned after trimming, speeding up, slowing down, moving, reordering, or replacing the visuals it describes
- Offer and audition TTS voice choices when the user has not picked a concrete voice
- Clone the user's own or explicitly authorized voice from reference audio
- Correct a real misspoken word or short phrase with the authorized speaker's cloned voice while preserving picture and downstream timing
- Generate custom sound effects from text descriptions only after checking the Sound Effects library first
- 从文本生成配音/旁白
- 为视频创建文本转语音音频
- 为现有视频、时间线、屏幕录制、幻灯片动画、产品演示、B-roll 编辑、MG 动画讲解或其他视觉序列添加、替换或重做旁白/配音
- 在裁剪、加速、减速、移动、重排或替换其所描述的画面后,保持现有旁白/配音对齐
- 当用户尚未选定具体音色时,提供并试听 TTS 音色选项
- 根据参考音频克隆用户本人或获得明确授权的声音
- 使用获授权说话者的克隆声音纠正实际误读的单词或短语,同时保留画面和后续时序
- 仅在先检查 Sound Effects 库后,才根据文本描述生成自定义音效
TTS (Text-to-Speech)
TTS(文本转语音)
If the user wants to correct a word or short phrase that was actually spoken
incorrectly in existing recorded speech, read
references/fix-spoken-mistakes.md before
editing or generating. That workflow preserves the picture and protects later
timing while replacing only the faulty sound. Do not use synthesized speech
when the recording is already correct and only its transcript is wrong; fix
the transcript instead. Use the ordinary narration path for a full rewrite or
complete new voiceover.
If the current request has an existing visual target and the user wants
narration, voiceover, dubbing, or replacement speech for that target, read
references/video-sync.md before drafting new
narration, using existing narration text to generate TTS, or placing audio. Do
this even when the user did not explicitly say "sync" or "match the visuals";
the existence of a visual target means narration timing and meaning may need to
follow on-screen content. Use the normal standalone TTS path only when there is
no visual target or the user just wants an audio asset from text.
Also read references/video-sync.md when the timeline
already has narration/voiceover and the user asks to change the visuals while
keeping that voiceover aligned. This is a sync maintenance task even if no new
TTS is needed.
Use as the single catalog and management entry, and
for final TTS.
returns official and cloned candidates in one normalized list. Only
supports create-access, apply, clone, preview, rename, or
delete actions. The current contracts are:
manage_voicesubmit_voicemanage_voice action="list" voiceType="all"voiceType="custom"- is required. Use
providerfor Chinese-optimized narration anddoubaofor English or multilingual narration, orelevenlabsfor a ready ChatCut custom voice.fish-audio - is required and provider-specific. Do not mix catalogs.
voiceId - creates an audio asset only. Timeline placement, replacement, trimming, and alignment happen later with timeline tools.
submit_voice - For long narration, multiple calls can be useful: split at natural pauses, sentence groups, or script beat boundaries when the workflow benefits from separately timed or placed voice clips, such as storyboard beats, scene-level ad segments, or a user request for separate assets.
submit_voice - For Doubao, ,
speedRatio,loudnessRatio,pitch,emotion,emotionScale, andperformancePromptare supported knobs, but not every voice supports every expressive control. Use the selected official entry returned byexplicitDialectas the authority.manage_voice action="list" - For ElevenLabs, ,
modelId, andspeedare the supported voice knobs. Forstability, inline audio tags are available for expressive delivery such as emotion, tone, nonverbal cues, accent hints, pauses, or local pacing.eleven_v3 - For , pass the ready voice's ChatCut
fish-audioascustomVoiceId.voiceIdperforms the authoritative Pro/readiness check, creates a generation job, and consumes standard TTS credits after success. Never pass or request the provider's internal Fish model id. The current Fish S2.1 model supports inline square-bracket cues insubmit_voicefor local emotion, delivery, and paralinguistic control.text
如果用户希望纠正现有录音中实际误读的单词或短语,请在编辑或生成前阅读 references/fix-spoken-mistakes.md。该工作流会保留画面并保护后续时序,只替换有问题的声音。如果录音本身正确、只是转写文本有误,请勿使用合成语音;应改为修正转写文本。若要完全重写或制作全新的配音,请使用普通旁白流程。
如果当前请求已有视觉目标,而用户希望为该目标制作旁白、配音、译配或替换语音,请在起草新旁白、使用现有旁白文本生成 TTS 或放置音频之前,阅读 references/video-sync.md。即使用户没有明确说出“sync”或“match the visuals”,也应这样做;存在视觉目标意味着旁白的时间安排和含义可能需要跟随屏幕内容。只有在没有视觉目标,或用户只是想要根据文本生成音频素材时,才使用常规的独立 TTS 流程。
同样,当时间线已有旁白/配音,而用户要求修改画面但保持配音对齐时,也应阅读 references/video-sync.md。这是一项同步维护任务,即使不需要生成新的 TTS。
将 作为唯一的目录和管理入口,将 用于最终 TTS。 会在一个统一列表中返回官方和克隆候选音色。只有 支持 create-access、apply、clone、preview、rename 或 delete 操作。当前契约为:
manage_voicesubmit_voicemanage_voice action="list" voiceType="all"voiceType="custom"- 为必填项。针对中文优化的旁白使用
provider,英文或多语言旁白使用doubao,已就绪的 ChatCut 自定义音色则使用elevenlabs。fish-audio - 为必填项,且与 provider 对应。不要混用不同目录。
voiceId - 仅创建音频素材。时间线中的放置、替换、裁剪和对齐稍后使用时间线工具完成。
submit_voice - 对于长篇旁白,多次调用 可能很有用:当工作流需要分别计时或放置语音片段时,可按自然停顿、句子组或脚本节拍边界拆分,例如分镜节拍、场景级广告片段,或用户要求生成独立素材时。
submit_voice - 对于 Doubao,支持 、
speedRatio、loudnessRatio、pitch、emotion、emotionScale和performancePrompt等控制项,但并非每个音色都支持每一种表现力控制。以explicitDialect返回的选定官方条目为准。manage_voice action="list" - 对于 ElevenLabs,支持的音色控制项为 、
modelId和speed。对于stability,可使用内联音频标签实现富有表现力的演绎,例如情绪、语调、非语言提示、口音提示、停顿或局部节奏。eleven_v3 - 对于 ,将已就绪音色的 ChatCut
fish-audio作为customVoiceId传入。voiceId会执行权威的 Pro/就绪状态检查、创建生成任务,并在成功后消耗标准 TTS 额度。绝不传入或索取服务提供方的内部 Fish 模型 ID。当前 Fish S2.1 支持在submit_voice中使用方括号内联提示,以控制局部情绪、演绎和副语言表达。text
Keep voice providers private
保持语音服务提供方信息私密
Doubao, ElevenLabs, Fish Audio, their model names, and other provider identity
are internal implementation details. Never expose or attribute them in
user-facing replies, progress updates, voice recommendations, audition cards,
clone instructions, success summaries, or errors. Use ChatCut product language
instead:
- Call curated catalog voices /
official voices.官方音色 - Call saved custom voices /
cloned voices,克隆音色/My Voices, or use the voice's user-visible saved name.我的音色 - Describe status and failures at the ChatCut feature level. If a tool or provider error contains a provider name, model name, provider voice id, or provider URL, preserve the actionable meaning but remove those details before replying.
Provider names and provider-specific ids remain valid only in internal tool
arguments, tool-result interpretation, and these implementation instructions.
Do not copy them from tool output into visible UI metadata or prose.
Official voice controls come from :
manage_voice action="list"- Call it for the target narration language and the user's visible locale.
Treat each returned tuple as atomic.
(provider, voiceId, name, summary, sampleUrl, capabilities) - Use only fields in that entry's ; never infer capability support from a remembered voice name or family.
capabilities.supportedControls - Controls are not guarantees of a specific acting style. Use the returned tags and sample to pick a naturally suitable voice, then use supported controls for moderate delivery changes.
- For entries that advertise , inline audio tags are available when the user asks for expressive delivery such as emotion, tone, nonverbal cues, accent hints, or local pacing. Official examples fit these useful TTS categories:
audioTags - Emotion/tone tags include ,
[happy],[sad],[angry],[excited],[curious],[sarcastic],[crying],[annoyed],[appalled],[thoughtful], and[surprised]; vocal delivery and nonverbal cue tags such as[mischievously],[whispers],[laughs],[sighs],[exhales],[inhales deeply],[clears throat],[snorts],[swallows], and[wheezing]; pacing/pause/local speed tags such as[coughs],[slowly],[pause],[short pause],[long pause], and[rushed]; and accent/special-performance tags such as[drawn out], for example[strong X accent], plus[strong French accent],[sings],[singing], and[woo]. Official examples are non-exhaustive; similar auditory tags can be tried when the user explicitly asks for that delivery and the tag describes how the voice should sound, not a visual action. Write tags directly in[pirate voice], close to the short phrase they should affect. Treat tags as local guidance, not paragraph-wide controls.text - For pauses and pacing, use punctuation, text structure,
shorter generated segments, or local audio tags such as and
[short pause]when needed.[slowly]
Fish Audio control support for cloned voices:
- The current route uses Fish S2.1. Put concise natural-language cues in square brackets directly in
fish-audio, for examplesubmit_voice.text,[happy],[calm],[angry],[excited],[whisper],[laugh],[sigh],[gasp],[pause],[emphasis], or[inhale]. S2.1 is not limited to a fixed tag list, so a specific auditory description such as[exhale]or[whispers sweetly]is also valid.[laughing nervously] - Place a cue immediately before the phrase or moment it should affect. Fish
S2.1 accepts cues anywhere in the text, so multiple short cues can create
local transitions, for example
or
[calm] 先别着急。[excited] 好消息是,我们已经找到解决办法了!I thought it was over [gasp] but then the lights came back [relieved]. - Use cues sparingly and only when the requested delivery benefits from them.
Prefer one clear instruction at a transition over stacking conflicting
directions. Treat the result as model guidance rather than a deterministic
editing boundary, and split into separate calls when exact clip-level timing or independent retries matter.
submit_voice - Do not use Fish S1's legacy emotion syntax on this route, and do not add a separate
(parenthesis)argument: the S2.1 cue belongs insideemotion. Keep the default voice-cloning preview line untagged. Do not add cues to a custom preview on the user's behalf, but preserve cues the user intentionally includes within the 100-character preview limit.text
ts
// English / multilingual via ElevenLabs
mcp__skill__submit_voice({
provider: "elevenlabs",
text: "Hello world",
voiceId: "peter",
});
// Chinese via Doubao
mcp__skill__submit_voice({
provider: "doubao",
text: "你好世界",
voiceId: "liuchang",
});
// With speed adjustment (Doubao only)
mcp__skill__submit_voice({
provider: "doubao",
text: "这是一段稍快的中文旁白。",
voiceId: "liuchang",
speedRatio: 1.5,
});
// With expressive Doubao controls
mcp__skill__submit_voice({
provider: "doubao",
text: "这次事故提醒我们,安全永远不能侥幸。",
voiceId: "liuchang",
emotion: "sad",
emotionScale: 3,
performancePrompt: "痛心但克制,语速稍慢,像新闻专题旁白",
pitch: -1,
speedRatio: 0.92,
});
// With ElevenLabs delivery controls
mcp__skill__submit_voice({
provider: "elevenlabs",
text: "The launch changed how teams plan their daily work.",
voiceId: "peter",
speed: 0.95,
stability: 0.4,
});
// With local Fish Audio S2.1 delivery cues on a ready cloned voice
mcp__skill__submit_voice({
provider: "fish-audio",
voiceId: "<confirmed custom voice id>",
text: "[calm] 先别着急。[excited] 好消息是,我们已经找到解决办法了!",
name: "Expressive custom voiceover",
});Doubao、ElevenLabs、Fish Audio、它们的模型名称以及其他服务提供方身份均属于内部实现细节。绝不能在面向用户的回复、进度更新、音色推荐、试听卡片、克隆说明、成功摘要或错误中暴露或归因于这些信息。请改用 ChatCut 产品语言:
- 将精选目录中的音色称为 official voices / 官方音色。
- 将已保存的自定义音色称为 cloned voices / 克隆音色、My Voices / 我的音色,或者使用该音色对用户可见的保存名称。
- 在 ChatCut 功能层面描述状态和失败。如果工具或服务提供方错误中包含服务提供方名称、模型名称、服务提供方音色 ID 或服务提供方 URL,请保留可操作的含义,但在回复前移除这些细节。
服务提供方名称和服务提供方专属 ID 仅在内部工具参数、工具结果解读及这些实现说明中有效。不要将其从工具输出复制到可见的 UI 元数据或正文中。
官方音色控制项来自 :
manage_voice action="list"- 针对目标旁白语言和用户可见的语言区域设置调用它。将返回的每个 元组视为不可拆分。
(provider, voiceId, name, summary, sampleUrl, capabilities) - 仅使用该条目的 中的字段;绝不能根据记忆中的音色名称或系列推断其支持的控制项。
capabilities.supportedControls - 控制项并不保证能实现特定表演风格。使用返回的标签和示例音频挑选自然合适的音色,再使用受支持的控制项对演绎进行适度调整。
- 对于标明支持 的条目,当用户要求富有表现力的演绎时,可使用内联音频标签,例如情绪、语调、非语言提示、口音提示或局部节奏。官方示例涵盖以下实用 TTS 类别:
audioTags - 情绪/语调标签包括 、
[happy]、[sad]、[angry]、[excited]、[curious]、[sarcastic]、[crying]、[annoyed]、[appalled]、[thoughtful]和[surprised];人声演绎和非语言提示标签包括[mischievously]、[whispers]、[laughs]、[sighs]、[exhales]、[inhales deeply]、[clears throat]、[snorts]、[swallows]和[wheezing];节奏/停顿/局部速度标签包括[coughs]、[slowly]、[pause]、[short pause]、[long pause]和[rushed];口音/特殊表演标签包括[drawn out],例如[strong X accent],以及[strong French accent]、[sings]、[singing]和[woo]。官方示例并非穷尽;当用户明确要求某种演绎,且标签描述声音应如何呈现而非视觉动作时,可以尝试类似的听觉标签。将标签直接写在[pirate voice]中,靠近其应影响的短语。将标签视为局部指导,而不是整段控制。text - 对于停顿和节奏,可按需使用标点、文本结构、更短的生成片段,或 和
[short pause]等局部音频标签。[slowly]
Antigravity interaction
Fish Audio 对克隆音色的控制支持
Read before any input or audition. In Antigravity, translate all native widget, playable-card and branch-choice instructions below to concise ordinary text choices with stable ids mapped internally. Audition through the clean ChatCut editor link, including new cloned-voice previews; never promise chat audio or print raw sample URLs. Keep the original live lookup, sample eligibility, stable voice ids, clone action, Retry/Apply decisions, full explicit consent and credit gates unchanged. Native editor dialog/tag examples below apply only inside ChatCut, not Antigravity.
widget-forms- 当前 路径使用 Fish S2.1。将简洁的自然语言提示直接放在
fish-audio的方括号中,例如submit_voice.text、[happy]、[calm]、[angry]、[excited]、[whisper]、[laugh]、[sigh]、[gasp]、[pause]、[emphasis]或[inhale]。S2.1 不局限于固定标签列表,因此也可以使用[exhale]或[whispers sweetly]这样的具体听觉描述。[laughing nervously] - 将提示紧接在它应影响的短语或时刻之前。Fish S2.1 接受文本任意位置的提示,因此多个简短提示可以形成局部转换,例如 或
[calm] 先别着急。[excited] 好消息是,我们已经找到解决办法了!I thought it was over [gasp] but then the lights came back [relieved]. - 谨慎使用提示,且仅在所请求的演绎因此受益时使用。相比堆叠相互冲突的指令,更应在转换处给出一条清晰指令。将结果视为模型指导,而非确定性的编辑边界;当需要精确的片段级时序或独立重试时,应拆分为多个 调用。
submit_voice - 此路径不要使用 Fish S1 的旧式 情绪语法,也不要添加单独的
(parenthesis)参数:S2.1 提示应放在emotion内。默认的声音克隆预览文本不要添加标签。不要代替用户向自定义预览添加提示,但应保留用户在 100 字符预览限制内有意加入的提示。text
ts
// English / multilingual via ElevenLabs
mcp__skill__submit_voice({
provider: "elevenlabs",
text: "Hello world",
voiceId: "peter",
});
// Chinese via Doubao
mcp__skill__submit_voice({
provider: "doubao",
text: "你好世界",
voiceId: "liuchang",
});
// With speed adjustment (Doubao only)
mcp__skill__submit_voice({
provider: "doubao",
text: "这是一段稍快的中文旁白。",
voiceId: "liuchang",
speedRatio: 1.5,
});
// With expressive Doubao controls
mcp__skill__submit_voice({
provider: "doubao",
text: "这次事故提醒我们,安全永远不能侥幸。",
voiceId: "liuchang",
emotion: "sad",
emotionScale: 3,
performancePrompt: "痛心但克制,语速稍慢,像新闻专题旁白",
pitch: -1,
speedRatio: 0.92,
});
// With ElevenLabs delivery controls
mcp__skill__submit_voice({
provider: "elevenlabs",
text: "The launch changed how teams plan their daily work.",
voiceId: "peter",
speed: 0.95,
stability: 0.4,
});
// With local Fish Audio S2.1 delivery cues on a ready cloned voice
mcp__skill__submit_voice({
provider: "fish-audio",
voiceId: "<confirmed custom voice id>",
text: "[calm] 先别着急。[excited] 好消息是,我们已经找到解决办法了!",
name: "Expressive custom voiceover",
});Voice Audition Before Generation
Antigravity 交互
Emit the native clone entry only as a final action
—
<clone-voice/>Finish every required inspection and tool call first. If the native dialog is
still the correct route afterward, follow the dialog-entry sequence under
Native ChatCut editor below. That sequence must be the final user-facing
assistant message for the run: do not call another tool, add anything after
its completion reminder, or emit the tag again. A single Agent run may render
at most one standalone native clone entry.
在任何输入或试听之前阅读 。在 Antigravity 中,将下面所有原生 widget、可播放卡片和分支选择说明转换为简洁的普通文本选项,并在内部映射稳定 ID。通过简洁的 ChatCut 编辑器链接进行试听,包括新的克隆音色预览;绝不承诺聊天音频或打印原始示例 URL。保持原有的实时查找、示例可用性、稳定音色 ID、克隆操作、Retry/Apply 决策、完整明确同意要求和额度校验门槛不变。下面的原生编辑器对话框/标签示例仅适用于 ChatCut 内部,不适用于 Antigravity。
widget-formsRoute cloning by host and available reference
生成前进行音色试听
—
仅在最后一步发出原生克隆入口
Decide the host path before loading or asking for clone inputs:
widget-forms- In the native ChatCut editor, first check whether the user has already
supplied a readable audio attachment or explicitly identified an accessible
audio-bearing ChatCut asset for this cloning request, including a timeline
audio or video item. If so, do not make the user choose the same source again
and do not emit . Resolve or derive its audio asset, run the creation preflight, collect only the missing name, preview text, and explicit authorization, then use the Agent-driven cloning flow below.
<clone-voice/> - In the native ChatCut editor, use the editor dialog only when a usable reference has not already been supplied. Follow the native dialog path under Custom Voice Cloning below.
- In external Codex / Claude / Antigravity hosts, never emit ; those hosts do not render or dispatch the native editor action. Use the Agent-driven attachment flow below.
<clone-voice/>
An arbitrary voice already present in the project is not consent or a cloning
reference. Use the direct path only when the user supplied or identified the
audio for the current cloning request and later gives the full authorization
required below.
When the user explicitly chooses an audio-bearing timeline item, resolve it and
its source range with . Reuse a 10-second-to-3-minute audio
asset directly. For video, , extract the chosen range as supported
audio with ffmpeg, then load and the result. For any
source over 3 minutes, use a clean 30–60-second excerpt; under 10 seconds, ask
for a longer reference. Continue with the resulting audio asset id without
emitting ; the source choice is not authorization.
preview_timelinepull_assetasset-importpush_asset<clone-voice/><clone-voice/>先完成所有必要的检查和工具调用。如果之后原生对话框仍是正确路径,请遵循下方 原生 ChatCut 编辑器(Native ChatCut editor) 下的 dialog-entry sequence。该序列必须是本次运行最后一条面向用户的 assistant 消息:完成后不要再调用其他工具,不要在完成提醒之后添加任何内容,也不要再次发出该标签。单次 Agent 运行最多呈现一个独立的原生克隆入口。
—
根据宿主和可用参考音频路由克隆流程
—
在加载 或询问克隆输入之前,先确定宿主路径:
widget-forms- 在原生 ChatCut 编辑器中,首先检查用户是否已经为本次克隆请求提供了可读的音频附件,或明确指定了可访问且带音频的 ChatCut 素材,包括时间线中的音频或视频项。如果是,不要让用户再次选择同一来源,也不要发出 。解析该素材或从中提取音频素材,执行创建前检查,只收集缺失的名称、预览文本和明确授权,然后使用下方的 Agent 驱动克隆流程。
<clone-voice/> - 在原生 ChatCut 编辑器中,仅当尚未提供可用参考音频时,才使用编辑器对话框。请遵循下方 自定义声音克隆(Custom Voice Cloning) 下的原生对话框路径。
- 在外部 Codex / Claude / Antigravity 宿主中,绝不要发出 ;这些宿主无法呈现或分派原生编辑器操作。使用下方的 Agent 驱动附件流程。
<clone-voice/>
项目中已有的任意声音并不构成用户同意,也不是克隆参考。只有当用户为当前克隆请求提供或指定了音频,并且随后给出下文要求的完整授权时,才能使用直接路径。
当用户明确选择了带音频的时间线项时,使用 解析该项及其源范围。直接复用时长为 10 秒至 3 分钟的音频素材。对于视频,先使用 ,再通过 ffmpeg 将所选范围提取为受支持的音频,然后加载 并使用 提交结果。对于超过 3 分钟的源,使用一段清晰无杂音的 30–60 秒片段;不足 10 秒时,请用户提供更长的参考音频。继续使用生成的音频素材 ID,不要发出 ;选择来源并不等于授权。
preview_timelinepull_assetasset-importpush_asset<clone-voice/>