mcpField
T
tella-auto-cut

tella-auto-cut

github.com/tellahq创意与媒体252 次安装5 天前更新
代码仓库

关于 tella-auto-cut

用于 Tella 视频剪辑的技能,可删除口误、填充词和静音,并检查处理后的转录文本与剪辑接缝。面向编辑 Tella 片段的用户,需要 Tella MCP 工具。

主要功能

  1. 01按转录文本定位并删除口误
  2. 02移除填充词和静音
  3. 03修剪先前剪辑形成的空隙
  4. 04检查接缝处的重复词或残留词
  5. 05报告片段改动和恢复方法

适用场景

  1. 01清除 Tella 片段中的口误和填充词
  2. 02按指定节奏缩短停顿
  3. 03检查剪辑是否造成语句接缝问题

MCP 相关

需要 Tella MCP,并使用其时间线、转录和片段编辑工具检查及剪辑片段。该技能按片段逐一处理。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tellahq/skills --skill tella-auto-cut

安装后在 Claude Code 中输入/tella-auto-cut确认已加载。

附带文件agents/openai.yaml

详细介绍

自动剪辑 Tella 视频

剪掉每个片段中的错误、填充词和静音,然后重新检查剪辑后的结果,并修复剪辑留下的问题:剪辑拼接处连在一起的停顿、重复的词以及残留的片段。

此技能需要 Tella MCP。如果缺少 get_timeline 等工具,请先按照 tella 技能中的连接步骤操作。

范围

自动剪辑是直接执行的操作:剪辑,然后报告所做的操作。不要先询问用户是否批准错误列表;用户之后可以恢复或调整。只有无法判断指的是哪个视频或片段时,才需要询问。

即使画面上正在发生某些事情,也要剪掉静音片段。节奏选项为静音模式:除非用户要求 fast(500 ms)或 faster(300 ms),否则使用 natural(超过 800 ms 的停顿)。如果用户只想执行部分步骤(例如“只剪静音”),就只执行这些步骤,但仍要进行最终检查。

不要更改布局、缩放、叠加层或字幕。

工作流

逐个片段处理;转录文本、词语索引和剪辑操作都按片段分别计算。get_timeline 会列出片段。剪辑前,对每个片段调用 get_clip 并保留其 cuts,以便说明如何恢复。

对每个片段,逐步执行:只有上一步的调用已在该片段上返回后,才能发送下一步的调用。同一片段上的并行调用各自返回的是调用时看到的片段,因此即使两个调用都已生效,一个调用的结果也可能不包含另一个调用所做的剪辑。

  1. 错误。 按照 tella-remove-mistakes 技能的第 1–3 步和第 5 步操作,并遵循其 ../tella-remove-mistakes/references/mistake-rules.md 中的规则:阅读转录文本、找出错误,并对每个片段调用一次 cut_clip_by_transcript 将其剪掉。跳过该技能的检查步骤(第 4 步)。该技能的规则仍然适用:不确定时就保留。
  2. 填充词。 对每个片段调用 remove_fillers。
  3. 静音。 对每个片段调用 remove_silences,并使用选定的 mode。如果返回结果表示音频仍在分析中,请稍等片刻后重试,最多重试几次;如果仍未就绪,就跳过该片段的静音处理,仍然进行最终检查,并在报告中说明。
  4. 最终检查。 见下文。
  5. 报告每个片段的情况:剪掉的错误(时间、原因、词语)、已移除填充词和静音、最终检查修复的间隔和衔接处,以及片段剪辑前后的时长。说明如何恢复(见下文)。

错误处理必须优先,因为这一步需要阅读转录文本。填充词和静音处理可以按任意顺序执行:词语索引不会变化,而且 remove_silences 根据原始录音进行处理。

最终检查

remove_silences 会在原始录音中查找停顿,并忽略片段的剪切。当错误或填充词被剪掉后,它前后的停顿现在会连在一起播放。每段停顿都短于阈值,因此都没有被剪掉,但合在一起就成了一段较长的空白。所有剪切完成后的转录文本,才是实际播放内容的唯一依据。

  1. 使用 get_transcript 重新阅读转录文本(长片段需分窗口阅读,如同错误处理技能中的做法)。时间戳以播放时间线为准,已应用所有剪切。

  2. 剪掉长空白。 对每对相邻单词,间隔为下一个单词的 startTimeMs 减去前一个单词的 endTimeMs。若间隔超过当前模式的阈值(800 / 500 / 300 ms),则剪切 {fromMs: previous.endTimeMs + 120, toMs: next.startTimeMs - 120},在每个单词旁保留 120 ms 的空白。第一个单词前和最后一个单词后的间隔也按同样方式处理,在单词旁保留 120 ms。一次 cut_clip 调用中发送片段的所有范围:范围会依据调用开始时的播放时间线解析,因此第二次调用时的时间戳会发生偏移。

  3. 修复剪切接缝。 检查每处剪切前后的内容,找出剪切留下的问题:

    • 剪切两侧出现相同单词(“the the”):剪掉其中一个;
    • 两处剪切之间遗留了一两个不再属于任一句子的单词:剪掉这些词;
    • 错误剪切范围太短,留下了错误内容中的单词:剪掉这些词。

    使用 cut_clip_by_transcript 按单词索引修复。切勿拆分单词,也不要在范围中加入多余单词。

    剪切只会移除单词:已剪掉的单词不会出现在转录文本中,后续剪切也无法将其恢复。如果错误剪切范围太长(句子缺少必要单词),请使用 update_clip 恢复片段保存的剪切(参见“恢复”),用修正后的错误范围重新执行步骤 1–3,然后根据新的转录文本再次进行最终检查。

  4. 试听有风险的接缝:错误和填充词剪切处、几秒内有多处剪切的地方,以及单词正好在剪切处结束的地方(听起来可能被截断)。明显停顿处的剪切只需重新阅读转录文本并调用 get_audio_levels。get_clip_preview 只会返回 URL:下载它的 MP4(其中包含片段音频),用 ffmpeg 将每处有风险的接缝范围剪成音频(ffmpeg -ss 2 -t 6 -i preview.mp4 -vn -ac 1 -ar 22050 -b:a 48k seam.mp3),将它们合并成一个文件,然后用音频工具试听一次(在 Tella 编辑器中使用 describe_audio)。如果试听结果与转录文本不一致,用 get_audio_levels 检查那几秒,以确定单词是否完整。如果不需要该单词,就完整剪掉;如果需要,则恢复片段,并按上述方法重做,将该处剪切范围缩小一个单词。切勿按毫秒调整剪切。

最终检查执行一次(需要恢复的片段执行两次),然后报告你发现但未处理的内容。

恢复

无法干净地撤销单次剪切:错误剪切会与旁边的填充词和静音剪切合并。要恢复片段,请调用 update_clip,并传入开始操作前从 get_clip 保存的 cuts。cuts 会替换片段的整个剪切列表。你工作期间,用户可能会手动编辑视频:保留当前 get_clip 中既不是你添加的、也不在保存列表里的所有剪切;只有在满足以下条件时才发送 cuts: []:保存列表为空且当前片段没有需要保留的剪切,或用户要求移除所有剪切。若要采用不同的处理方式重做,请先恢复,再重新执行。

返回片段的剪切调用已成功;即使后续结果似乎没有包含这些剪切,也不要再次发送。如果剪切调用失败或结果不明确,请在重试前重新读取转录文本:已剪掉的单词不会出现在其中。若 cut_clip_by_transcript 报告找不到某些单词索引,说明这些单词已经被剪掉:删除对应范围,只发送其余范围一次。切勿盲目重复剪切。

评论

支持 Markdown