关于 TrimScript
TrimScript 是面向演讲、教程、播客等口述视频的本地转录编辑器,编码 Agent 的修改会以建议形式等待确认。原始媒体保持不变,编辑记录保存在 JSON 项目文件中。
主要功能
- 01本地语音转录
- 02按转录文本剪辑视频
- 03批量删减填充词与停顿
- 04音频清理与文本校正
- 05导出 MP4、字幕、WAV 和 FCPXML
- 06可审核的 Agent 修改建议
适用场景
- 01剪辑演讲、教程、播客或访谈
- 02删减填充词和过长停顿
- 03审核 Agent 提出的剪辑再决定是否采用
MCP 相关
TrimScript 内置 MCP 服务,允许 Claude Code、Codex 等 MCP 客户端读取转录文本并提出删除片段或校正文本的建议。建议会显示在编辑器中,由用户确认,不会自动应用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| media | string | 是 | |
| language | string | 否 |
详细介绍
TrimScript
通过编辑转录文本来剪辑视频。 在你的设备上运行。免费且开源。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 mesh | ACE up the sleeve | Going Long | |
|---|---|---|---|
| 时长 | 32.9 分钟 | 40.2 分钟 | 36.2 分钟 |
| 移除时长(修剪填充词、缩短停顿后) | 5.2 分钟 | 3.4 分钟 | 6.5 分钟 |
| 导出中仍能听到的填充词 | 9 | 11 | 31 |
| 导出时长与预期的差值 | -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。
致谢
- whisper.cpp 和 OpenAI 的 Whisper small.en 权重(MIT),通过 pywhispercpp(MIT)运行
- 可选:NVIDIA 的 Parakeet TDT 0.6B v2(CC BY 4.0),采用 mlx-community 的 MLX 转换版本,通过 parakeet-mlx(Apache 2.0)运行(
trimscript[parakeet]、--engine parakeet) - noisereduce,MIT
- FFmpeg,作为独立程序调用,不随 TrimScript 一同分发
- 编辑器 UI:React、基于 Radix UI 的 shadcn/ui 组件、Tailwind CSS、Sonner、clsx 和 tailwind-merge(MIT)、class-variance-authority(Apache 2.0)、Lucide 图标(ISC,部分基于 Feather 衍生,MIT)。完整许可证文本随软件包一同提供,见 THIRD_PARTY_NOTICES.md 和
src/trimscript/static/THIRD_PARTY_LICENSES.txt。 - 演示语音:Nari Labs 的 Dia,Apache 2.0
商标
Final Cut Pro 是 Apple Inc. 的商标。DaVinci Resolve 是 Blackmagic Design 的商标。Claude Code 是 Anthropic 的商标。Codex 是 OpenAI 的商标。提及这些名称仅为说明 TrimScript 可与之配合使用。TrimScript 是一个独立项目,与这些公司均无关联,也未获得其赞助或认可。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。