voice

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
Before 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
submit_voice
,
manage_voice
,
pull_asset
, or
submit_sound
are not loaded yet, load them with
ToolSearch
before calling them, so you use their real parameters instead of guessing.
Generate voiceovers (TTS) and sound effects. For TTS, choose a concrete provider and voice before calling
submit_voice
.
如果尚未加载
submit_voice
、
manage_voice
、
pull_asset
或
submit_sound
,请先用
ToolSearch
加载它们再调用,以确保使用其真实参数,而不是凭空猜测。
生成配音(TTS)和音效。对于 TTS,在调用
submit_voice
前选定具体的提供方和音色。

When 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
manage_voice
as the single catalog and management entry, and
submit_voice
for final TTS.
manage_voice action="list" voiceType="all"
returns official and cloned candidates in one normalized list. Only
voiceType="custom"
supports create-access, apply, clone, preview, rename, or delete actions. The current contracts are:
  • provider
    is required. Use
    doubao
    for Chinese-optimized narration and
    elevenlabs
    for English or multilingual narration, or
    fish-audio
    for a ready ChatCut custom voice.
  • voiceId
    is required and provider-specific. Do not mix catalogs.
  • submit_voice
    creates an audio asset only. Timeline placement, replacement, trimming, and alignment happen later with timeline tools.
  • For long narration, multiple
    submit_voice
    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.
  • For Doubao,
    speedRatio
    ,
    loudnessRatio
    ,
    pitch
    ,
    emotion
    ,
    emotionScale
    ,
    performancePrompt
    , and
    explicitDialect
    are supported knobs, but not every voice supports every expressive control. Use the selected official entry returned by
    manage_voice action="list"
    as the authority.
  • For ElevenLabs,
    modelId
    ,
    speed
    , and
    stability
    are the supported voice knobs. For
    eleven_v3
    , inline audio tags are available for expressive delivery such as emotion, tone, nonverbal cues, accent hints, pauses, or local pacing.
  • For
    fish-audio
    , pass the ready voice's ChatCut
    customVoiceId
    as
    voiceId
    .
    submit_voice
    performs 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 in
    text
    for local emotion, delivery, and paralinguistic control.
如果用户希望纠正现有录音中实际误读的单词或短语,请在编辑或生成前阅读 references/fix-spoken-mistakes.md。该工作流会保留画面并保护后续时序,只替换有问题的声音。如果录音本身正确、只是转写文本有误,请勿使用合成语音;应改为修正转写文本。若要完全重写或制作全新的配音,请使用普通旁白流程。
如果当前请求已有视觉目标,而用户希望为该目标制作旁白、配音、译配或替换语音,请在起草新旁白、使用现有旁白文本生成 TTS 或放置音频之前,阅读 references/video-sync.md。即使用户没有明确说出“sync”或“match the visuals”,也应这样做;存在视觉目标意味着旁白的时间安排和含义可能需要跟随屏幕内容。只有在没有视觉目标,或用户只是想要根据文本生成音频素材时,才使用常规的独立 TTS 流程。
同样,当时间线已有旁白/配音,而用户要求修改画面但保持配音对齐时,也应阅读 references/video-sync.md。这是一项同步维护任务,即使不需要生成新的 TTS。
将
manage_voice
作为唯一的目录和管理入口,将
submit_voice
用于最终 TTS。
manage_voice action="list" voiceType="all"
会在一个统一列表中返回官方和克隆候选音色。只有
voiceType="custom"
支持 create-access、apply、clone、preview、rename 或 delete 操作。当前契约为:
  • provider
    为必填项。针对中文优化的旁白使用
    doubao
    ,英文或多语言旁白使用
    elevenlabs
    ,已就绪的 ChatCut 自定义音色则使用
    fish-audio
    。
  • voiceId
    为必填项,且与 provider 对应。不要混用不同目录。
  • submit_voice
    仅创建音频素材。时间线中的放置、替换、裁剪和对齐稍后使用时间线工具完成。
  • 对于长篇旁白,多次调用
    submit_voice
    可能很有用:当工作流需要分别计时或放置语音片段时,可按自然停顿、句子组或脚本节拍边界拆分,例如分镜节拍、场景级广告片段,或用户要求生成独立素材时。
  • 对于 Doubao,支持
    speedRatio
    、
    loudnessRatio
    、
    pitch
    、
    emotion
    、
    emotionScale
    、
    performancePrompt
    和
    explicitDialect
    等控制项,但并非每个音色都支持每一种表现力控制。以
    manage_voice action="list"
    返回的选定官方条目为准。
  • 对于 ElevenLabs,支持的音色控制项为
    modelId
    、
    speed
    和
    stability
    。对于
    eleven_v3
    ,可使用内联音频标签实现富有表现力的演绎,例如情绪、语调、非语言提示、口音提示、停顿或局部节奏。
  • 对于
    fish-audio
    ,将已就绪音色的 ChatCut
    customVoiceId
    作为
    voiceId
    传入。
    submit_voice
    会执行权威的 Pro/就绪状态检查、创建生成任务,并在成功后消耗标准 TTS 额度。绝不传入或索取服务提供方的内部 Fish 模型 ID。当前 Fish S2.1 支持在
    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
    (provider, voiceId, name, summary, sampleUrl, capabilities)
    tuple as atomic.
  • Use only fields in that entry's
    capabilities.supportedControls
    ; never infer capability support from a remembered voice name or family.
  • 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
    audioTags
    , 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:
  • Emotion/tone tags include
    [happy]
    ,
    [sad]
    ,
    [angry]
    ,
    [excited]
    ,
    [curious]
    ,
    [sarcastic]
    ,
    [crying]
    ,
    [annoyed]
    ,
    [appalled]
    ,
    [thoughtful]
    ,
    [surprised]
    , and
    [mischievously]
    ; vocal delivery and nonverbal cue tags such as
    [whispers]
    ,
    [laughs]
    ,
    [sighs]
    ,
    [exhales]
    ,
    [inhales deeply]
    ,
    [clears throat]
    ,
    [snorts]
    ,
    [swallows]
    ,
    [wheezing]
    , and
    [coughs]
    ; pacing/pause/local speed tags such as
    [slowly]
    ,
    [pause]
    ,
    [short pause]
    ,
    [long pause]
    ,
    [rushed]
    , and
    [drawn out]
    ; and accent/special-performance tags such as
    [strong X accent]
    , for example
    [strong French accent]
    , plus
    [sings]
    ,
    [singing]
    ,
    [woo]
    , and
    [pirate voice]
    . 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
    text
    , close to the short phrase they should affect. Treat tags as local guidance, not paragraph-wide controls.
  • For pauses and pacing, use punctuation, text structure, shorter generated segments, or local audio tags such as
    [short pause]
    and
    [slowly]
    when needed.
Fish Audio control support for cloned voices:
  • The current
    fish-audio
    route uses Fish S2.1. Put concise natural-language cues in square brackets directly in
    submit_voice.text
    , for example
    [happy]
    ,
    [calm]
    ,
    [angry]
    ,
    [excited]
    ,
    [whisper]
    ,
    [laugh]
    ,
    [sigh]
    ,
    [gasp]
    ,
    [pause]
    ,
    [emphasis]
    ,
    [inhale]
    , or
    [exhale]
    . S2.1 is not limited to a fixed tag list, so a specific auditory description such as
    [whispers sweetly]
    or
    [laughing nervously]
    is also valid.
  • 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
    [calm] 先别着急。[excited] 好消息是,我们已经找到解决办法了!
    or
    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
    submit_voice
    calls when exact clip-level timing or independent retries matter.
  • Do not use Fish S1's legacy
    (parenthesis)
    emotion syntax on this route, and do not add a separate
    emotion
    argument: the S2.1 cue belongs inside
    text
    . 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.
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
    中的字段;绝不能根据记忆中的音色名称或系列推断其支持的控制项。
  • 控制项并不保证能实现特定表演风格。使用返回的标签和示例音频挑选自然合适的音色,再使用受支持的控制项对演绎进行适度调整。
  • 对于标明支持
    audioTags
    的条目,当用户要求富有表现力的演绎时,可使用内联音频标签,例如情绪、语调、非语言提示、口音提示或局部节奏。官方示例涵盖以下实用 TTS 类别:
  • 情绪/语调标签包括
    [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
widget-forms
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.
  • 当前
    fish-audio
    路径使用 Fish S2.1。将简洁的自然语言提示直接放在
    submit_voice.text
    的方括号中,例如
    [happy]
    、
    [calm]
    、
    [angry]
    、
    [excited]
    、
    [whisper]
    、
    [laugh]
    、
    [sigh]
    、
    [gasp]
    、
    [pause]
    、
    [emphasis]
    、
    [inhale]
    或
    [exhale]
    。S2.1 不局限于固定标签列表,因此也可以使用
    [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)
    情绪语法,也不要添加单独的
    emotion
    参数:S2.1 提示应放在
    text
    内。默认的声音克隆预览文本不要添加标签。不要代替用户向自定义预览添加提示,但应保留用户在 100 字符预览限制内有意加入的提示。
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/>
is an executable editor action, not prose, code, or an internal process label. Never quote it, wrap it in backticks, describe it as the next step, or emit it in a progress update, pre-tool explanation, plan, or other intermediate assistant message.
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.
在任何输入或试听之前阅读
widget-forms
。在 Antigravity 中,将下面所有原生 widget、可播放卡片和分支选择说明转换为简洁的普通文本选项,并在内部映射稳定 ID。通过简洁的 ChatCut 编辑器链接进行试听,包括新的克隆音色预览;绝不承诺聊天音频或打印原始示例 URL。保持原有的实时查找、示例可用性、稳定音色 ID、克隆操作、Retry/Apply 决策、完整明确同意要求和额度校验门槛不变。下面的原生编辑器对话框/标签示例仅适用于 ChatCut 内部,不适用于 Antigravity。

Route cloning by host and available reference

生成前进行音色试听

—

仅在最后一步发出原生克隆入口

Decide the host path before loading
widget-forms
or asking for clone inputs:
  • 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
    <clone-voice/>
    . 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.
  • 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
    <clone-voice/>
    ; those hosts do not render or dispatch the native editor action. Use the Agent-driven attachment flow below.
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
preview_timeline
. Reuse a 10-second-to-3-minute audio asset directly. For video,
pull_asset
, extract the chosen range as supported audio with ffmpeg, then load
asset-import
and
push_asset
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
<clone-voice/>
; the source choice is not authorization.
<clone-voice/>
是可执行的编辑器操作,不是散文、代码或内部流程标签。绝不要引用它、用反引号包裹它、将其描述为下一步,或在进度更新、工具调用前说明、计划或其他中间 assistant 消息中发出它。
先完成所有必要的检查和工具调用。如果之后原生对话框仍是正确路径,请遵循下方 原生 ChatCut 编辑器(Native ChatCut editor) 下的 dialog-entry sequence。该序列必须是本次运行最后一条面向用户的 assistant 消息:完成后不要再调用其他工具,不要在完成提醒之后添加任何内容,也不要再次发出该标签。单次 Agent 运行最多呈现一个独立的原生克隆入口。
—

根据宿主和可用参考音频路由克隆流程

—
在加载
widget-forms
或询问克隆输入之前,先确定宿主路径:
  • 在原生 ChatCut 编辑器中,首先检查用户是否已经为本次克隆请求提供了可读的音频附件,或明确指定了可访问且带音频的 ChatCut 素材,包括时间线中的音频或视频项。如果是,不要让用户再次选择同一来源,也不要发出
    <clone-voice/>
    。解析该素材或从中提取音频素材,执行创建前检查,只收集缺失的名称、预览文本和明确授权,然后使用下方的 Agent 驱动克隆流程。
  • 在原生 ChatCut 编辑器中,仅当尚未提供可用参考音频时,才使用编辑器对话框。请遵循下方 自定义声音克隆(Custom Voice Cloning) 下的原生对话框路径。
  • 在外部 Codex / Claude / Antigravity 宿主中,绝不要发出
    <clone-voice/>
    ;这些宿主无法呈现或分派原生编辑器操作。使用下方的 Agent 驱动附件流程。
项目中已有的任意声音并不构成用户同意,也不是克隆参考。只有当用户为当前克隆请求提供或指定了音频,并且随后给出下文要求的完整授权时,才能使用直接路径。
当用户明确选择了带音频的时间线项时,使用
preview_timeline
解析该项及其源范围。直接复用时长为 10 秒至 3 分钟的音频素材。对于视频,先使用
pull_asset
,再通过 ffmpeg 将所选范围提取为受支持的音频,然后加载
asset-import
并使用
push_asset
提交结果。对于超过 3 分钟的源,使用一段清晰无杂音的 30–60 秒片段;不足 10 秒时,请用户提供更长的参考音频。继续使用生成的音频素材 ID,不要发出
<clone-voice/>
;选择来源并不等于授权。