mcpField
T
TrimScript

TrimScript

本地服务
github.com/SilverNine媒体与设计03 周前更新

关于 TrimScript

TrimScript 是面向演讲、教程、播客等口述视频的本地转录编辑器,编码 Agent 的修改会以建议形式等待确认。原始媒体保持不变,编辑记录保存在 JSON 项目文件中。

主要功能

  1. 01本地语音转录
  2. 02按转录文本剪辑视频
  3. 03批量删减填充词与停顿
  4. 04音频清理与文本校正
  5. 05导出 MP4、字幕、WAV 和 FCPXML
  6. 06可审核的 Agent 修改建议

适用场景

  1. 01剪辑演讲、教程、播客或访谈
  2. 02删减填充词和过长停顿
  3. 03审核 Agent 提出的剪辑再决定是否采用

MCP 相关

TrimScript 内置 MCP 服务,允许 Claude Code、Codex 等 MCP 客户端读取转录文本并提出删除片段或校正文本的建议。建议会显示在编辑器中,由用户确认,不会自动应用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"silvernine-trimscript": {
"command": "uvx",
"args": [
"trimscript"
]
}
}
}
启动命令uvx trimscript

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypitrimscript0.1.0

工具

8

收录的工具列表 · 更新于 2 周前

参数类型必填说明
mediastring是
languagestring否

详细介绍

TrimScript

ci

通过编辑转录文本来剪辑视频。 在你的设备上运行。免费且开源。AI 剪辑会以建议的形式呈现,由你审核批准。

删除重新开始的开场、删减填充词、逐条试听剪辑,然后缩短停顿

删除重新开始的开场,删减填充词,按 Tab 键逐条试听剪辑,缩短停顿:时长从 48.1 s 降至 27.6 s。演示中的讲话内容为合成内容:脚本和幻灯片专为本演示编写,语音由 Dia 生成。

▶ 观看 50 秒演示:先看相同的剪辑,再看 Claude Code 如何通过 MCP 服务建议删减内容。

uvx trimscript open my-video.mp4

需要 uv 和 ffmpeg(brew install ffmpeg、apt install ffmpeg、winget install ffmpeg)。转录、剪辑和导出都在你的设备上运行:无需账号,也不会上传。如果你连接编码 Agent,该 Agent(以及它背后的模型服务)会读取转录文本。

状态:早期阶段。在配备 Apple Silicon 的 macOS 上开发。CI 会在每次推送时,于 macOS、Linux 和 Windows 上端到端运行(转录、删除、导出);目前编辑器本身只在 macOS 上使用过。

功能

  • 本地转录,使用 whisper.cpp,并通过提示词保留所有“um”和“uh”,而不是将它们清理掉。目前仅支持英语。首次运行时会下载模型(约 470 MB)。
  • 删除文本,视频就会跳过对应内容。 选中词语,按 ⌫。被删除的部分会折叠成一个小标签,其中显示节省的秒数,让页面呈现为剪辑完成后的样子。选中标签并按 ⌫ 即可恢复,也可以通过一个开关显示所有已删除文本。播放预览时会跳过已删除的部分。
  • 删减填充词会一次性删除所有 um 和 uh;缩短停顿会缩短所有超过一秒的停顿,同时保留少许静音。然后按 Tab 键逐条试听剪辑,听取每处剪辑前后各一秒半的内容;按 ⌫ 可恢复一处剪辑,按 ⌘Z 可全部恢复。
  • 定位遗漏声音会跳到转录文本中两个词之间未被识别为词语的语音(识别器跳过的声音、呼吸声或半个词),并播放该片段。由你试听并决定。
  • 微调任意拼接处,每次调整 10 ms,并试听拼接处前后的内容。
  • 清理音频:通过一个开关即可降噪、调整音量、进行轻度压缩,并将响度调至 -14 LUFS。录音时长不会改变。
  • 修正误听词语(E),无需改动媒体文件。字幕使用修正后的文本。
  • 导出 MP4、WAV、SRT/VTT 字幕,或导出 FCPXML,以便在 Final Cut Pro 或 DaVinci Resolve 中继续编辑,并保留所有可调整的剪辑点。
  • 不会破坏任何内容。 编辑内容保存在视频旁的一个易读 JSON 文件中。原始文件永远不会被修改,导出文件也不会覆盖原始文件。

与编码 Agent 搭配使用

TrimScript 自带 MCP 服务,因此 Claude Code、Codex 或任何 MCP 客户端都能读取转录文本并提出剪辑建议。Agent 的剪辑绝不会静默应用:它们会作为带有原因说明的建议显示在已打开的编辑器中,由你决定。

claude mcp add trimscript -- uvx trimscript mcp

然后可以提出以下要求:

  • “在 my-video.mp4 中,我在视频中途重新开始了演示。建议删除第一次尝试的部分。”
  • “讲话者的产品名是 Acme,请修正转录文本中所有误听该名称的地方。”

工具:transcribe、get_transcript、suggest_removal、correct_text、list_edits、withdraw、enhance_voice、export。

同样的操作也可在命令行中执行:

trimscript transcribe talk.mp4
trimscript show talk.mp4 --words      # transcript with item ids
trimscript remove talk.mp4 w120 w188 --reason "repeats the intro"
trimscript fillers talk.mp4            # remove every um and uh
trimscript pauses talk.mp4             # tighten pauses over a second
trimscript accept talk.mp4             # accept the agent's suggestions
trimscript export talk.mp4 -o talk-edit.mp4

键盘

按键功能
拖动、Shift+点击选择词语
⌫移除所选内容;如果已经移除,则恢复该内容
Space播放编辑内容
双击从该词开始播放
Tab / Shift+Tab切换到下一个 / 上一个建议(若没有待处理的建议,则切换到下一个 / 上一个编辑),并试听其前后内容
Enter / Shift+Enter接受 / 拒绝所选建议;选择一段内容会接受其中的所有建议
L试听所选内容或已移除部分的前后内容
← → / Shift+← →将所选已移除部分的起点 / 终点移动 10 ms
E更正所选内容的文本
⌘Z / Shift+⌘Z撤销 / 重做

工作原理

  • 每个已移除部分都覆盖一段转录项(词语、填充词、停顿)。移除时长根据词语推算,因此预览和导出结果始终一致。
  • 编辑点落在词语中间,或在遇到停顿时保留一小段静音。语音识别器往往会把句末词语延长到后续静音中;TrimScript 会将词语边界回退到语音实际结束的位置。
  • 导出时会按完整视频帧切分,并以约 1 毫秒的精度切割音频,因此无论有多少处编辑,声音都不会与画面错位。
  • 编辑器、CLI 和 MCP 服务都会读写同一个项目文件。可从任何位置进行编辑;已打开的编辑器会实时更新。在编辑器中撤销只会还原编辑器自身所做的更改。

真实演讲测试

测试了 3 场来自 38C3 的单人演讲。每场演讲都按以下步骤处理:转录、修剪填充词、缩短停顿、开启 Clean audio 后导出,再用更大的模型(Whisper large-v3-turbo)重新转录导出内容,以检查剩余内容。

LoRa meshACE up the sleeveGoing Long
时长32.9 分钟40.2 分钟36.2 分钟
移除时长(修剪填充词、缩短停顿后)5.2 分钟3.4 分钟6.5 分钟
导出中仍能听到的填充词91131
导出时长与预期的差值-0.20 秒-0.16 秒-0.10 秒
响度-14.1 LUFS-14.3 LUFS-14.3 LUFS
转录耗时1.2 分钟1.8 分钟1.7 分钟
  • 三场演讲共修剪了 582 个填充词;导出后仍能听到 51 个。填充词数量反映的是识别器听到的内容,并非对任何演讲者的评判。
  • 保留词语中有 3.0% 至 4.5% 在第二份转录中的识别结果不同。大多数差异都远离编辑点:这是两个不同识别器对术语的理解不同,并非编辑时截断了词语。
  • 在 M1 Pro 上测得。测试方法和原始数据:spikes/e2e-real。

演讲内容:"Building Your First LoRa Mesh Network From Scratch",演讲者 WillCrash;"ACE up the sleeve: Hacking into Apple's new USB-C Controller",演讲者 stacksmashing;以及 "Going Long! Sending weird signals over long haul optical networks",演讲者 Ben Cartwright-Cox。由 C3VOC 在 38C3 录制,并以 CC BY 4.0 许可发布于 media.ccc.de。录音不属于此代码库,且未经过修改;这里只报告测量结果。演讲者并未审阅或认可 TrimScript。

范围

通过转录文本编辑录制语音由来已久,至少从 Whittaker 和 Amento 的《Semantic Speech Editing》(CHI 2004)以及 Berthouzoz、Li 和 Agrawala 的《Tools for Placing Cuts and Transitions in Interview Video》(SIGGRAPH 2012)开始就有相关研究,此后也出现在许多编辑器中。TrimScript 是一种小巧、独立、本地化的实现,面向演讲、教程、播客、访谈等口语录音。

它没有多轨时间线、屏幕录制、声音克隆或协作功能。需要完整编辑器时,请导出 FCPXML。

致谢

商标

Final Cut Pro 是 Apple Inc. 的商标。DaVinci Resolve 是 Blackmagic Design 的商标。Claude Code 是 Anthropic 的商标。Codex 是 OpenAI 的商标。提及这些名称仅为说明 TrimScript 可与之配合使用。TrimScript 是一个独立项目,与这些公司均无关联,也未获得其赞助或认可。

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。