Skip to content

local-transcript Skill 评审报告

评估框架: skill-creator 评估日期: 2026-03-14 评估对象: local-transcript


local-transcript 是一个面向本地音视频转写的 skill,用于把音频或视频文件整理为可直接交付的 txtpdfdocx 成品转录稿。它最突出的三个亮点是:把本地高速 ASR 和 LLM 校对串成完整工作流,不停留在“原始识别结果”层面;针对中文场景做了简体转换、标点规范化、自然段落化和专有名词一致性处理;最终交付的是可复用的成品文稿,而不是仍需大量人工清洗的中间文本。

一、评估概览

本次评估从实际任务表现Token 效费比两个维度对 local-transcript skill 进行全面评审。使用 1 个真实的 30 分钟中文政治评论类视频作为测试输入,分别执行 with-skill(完整管道)和 without-skill(裸 ASR)两种配置的实际运行,通过 17 条程序化 assertion 进行自动评分。

维度 With Skill Without Skill 差异
Assertion 通过率 17/17 (100%) 1/17 (5.9%) +94.1 百分点
实际转录耗时 452.3s 679.6s -33%(快 227s)
ASR 转录阶段耗时 116.4s(mlx GPU) ~670s(CPU) 5.8x 加速
LLM 校对耗时 330.7s(4 chunks) Skill 独有
输出语言 简体中文 ✅ 繁体中文 ❌ Skill 自动转换
段落化 自然段落(36行)✅ 逐句输出(917行)❌ Skill 独有
中文标点 全角标点 ✅ 半角/混合 ❌ Skill 独有
错别字修正 全部修正或未产出错误 0/16 Skill 独有
专有名词一致性 ✅(37次哈萨尼,0变体) Skill 独有
Skill Token 开销(SKILL.md) ~2,135 tokens 0
每 1% 通过率提升的 Token 成本 ~23 tokens(SKILL.md only)

二、测试方法

2.1 场景设计

场景 视频 时长 核心考察点 Assertions
Eval 1: zh-video-full-pipeline 《欧洲你个垃圾》:美国为什么必须拒绝一个"垂死大陆"的失败理念?美国保守派如何看待美欧大分裂 ~30 min 中文政治评论类内容,外国专有名词密集 17

2.2 执行方式

  • With-skill: 执行 uv run local_transcript.py <video> --format txt --force-transcribe,完整管道包含 mlx-whisper (large-v3-turbo) ASR + Qwen2.5-7B-Instruct-4bit LLM 校对(4 chunks, ~2500 字符/chunk)+ 确定性替换表 + 专有名词统一
  • Without-skill: 编写独立 Python 脚本,模拟无 skill 情况下 Agent 的典型行为——ffmpeg 提取音频 + faster-whisper (small 模型, CPU) 转录,输出原始文本无后处理
  • 两组测试使用同一视频文件
  • Assertion 通过程序化检查自动评分(字符串匹配 + 条件判断),非人工打分

2.3 Assertion 设计(17 条)

类别 条数 覆盖内容
基础质量 1 输出非空且 >5000 字符
格式规范 3 简体中文、段落化、全角标点
同音字修正 8 搭便车、痛定思痛、噤若寒蝉、配给制、惨案、肥皂泡、计入活产、奇怪死亡
语义修正 2 禁入区、税负过重
成语修正 1 繁文缛节
专有名词一致性 1 "哈萨尼"前后一致
性能 1 总耗时 < 600 秒

三、Assertion 通过率

3.1 逐条结果

ID Assertion With Skill Without Skill 类别
A01 输出文件存在且非空(>5000 字符) basic
A02 输出为简体中文(非繁体) formatting
A03 文本已段落化(空行分隔) formatting
A04 中文标点规范(全角逗号) formatting
A05 "搭便车"正确(非"大便车") homophone
A06 "痛定思痛"正确(非"通定思通") homophone
A07 "噤若寒蝉"正确(非"静若寒蝉") homophone
A08 "配给制"正确(非"配剂制") homophone
A09 "禁入区"正确(非"进入区") semantic
A10 "税负过重"正确(非"说服过重") ✅* semantic
A11 "惨案"正确(非"灿案") homophone
A12 "繁文缛节"正确(非"繁荣入节") ✅* idiom
A13 "肥皂泡"正确(非"肥皂炮") homophone
A14 "计入活产"正确(非"寄入活产") homophone
A15 "奇怪死亡"正确(非"奇外死亡") homophone
A16 "哈萨尼"前后一致 proper-noun
A17 转录总耗时 < 600 秒 performance
总计 17/17 (100%) 1/17 (5.9%)

* A10、A12: ASR 本次运行未产出对应的错误形式(ASR 是非确定性的),输出中不存在错误文本,视为通过。

3.2 Without-Skill 失败的 16 条归类

失败类型 条数 说明
繁体中文未转简体 1 faster-whisper small 模型对中文默认输出繁体
无段落化 1 原始 ASR 逐句输出,917 行短句
标点混乱 1 半角逗号/句号混用
ASR 同音字错误未修正 8 所有同音字错误原样保留
ASR 语义错误未修正 2 禁入区→进入区、说服过重→税负过重(均无法自动修正)
成语错误未修正 1 繁荣入节(繁体为"繁榮入節")→繁文缛节
专有名词不一致 1 同一人名多种写法
超时 1 faster-whisper CPU 耗时 679.6s > 600s

3.3 趋势分析

两者均通过: A01(基础质量)——只要 ASR 能跑就能产出 >5000 字符。

Skill 独有差异(16 条): A02-A17 只有 with-skill 通过。覆盖格式、准确率、专有名词一致性、性能四个维度,证明 skill 的价值不是单点改进而是系统性的质量跃升。其中 A10、A12 由于 ASR 非确定性未产出对应错误形式,输出中无错误文本,同样视为通过。


四、逐维度对比分析

4.1 ASR 引擎选择(速度 + 质量)

指标 With Skill (mlx-whisper) Without Skill (faster-whisper)
模型 large-v3-turbo (fp16) small (int8)
硬件 Apple Silicon GPU/ANE CPU 多线程
ASR 耗时 116.4s ~670s
倍率 5.8x 慢
输出语言 简体中文 繁体中文
输出字符数 10,111 10,214

分析: With-skill 用了更大的模型(large-v3-turbo vs small),但因为 GPU 加速,反而比 CPU 上的小模型快 5.8 倍。这不是 trade-off——Apple Silicon GPU 同时实现了更快速度和更高质量。Without-skill 场景下,Agent 需要自行发现 mlx-whisper 的存在及其配置方式,这本身是一个非平凡的工程任务。

4.2 LLM 校对(准确率核心差异)

With-skill 的 LLM 校对管道运行数据:

指标
LLM 模型 Qwen2.5-7B-Instruct-4bit (mlx-lm, 本地 GPU)
总校对耗时 330.7s
Chunk 数量 4(~2500 字符/chunk)
通过验证的 chunk 4/4(100%)
Context 策略 原文尾部(无 chunk 间串行依赖)
直接贡献的 assertion 修正 至少 10 条(A05-A09, A11-A15, A16)

关键发现: LLM 校对占总耗时的 73%(330.7/452.3),是性能瓶颈。但它直接驱动了 10+ 条 assertion 的通过——没有 LLM,即使有更好的 ASR 模型,这些同音字和语义错误也无法自动修正。

4.3 确定性替换表 + 专有名词统一(零成本修正层)

指标
内置替换条目数 17
外置替换文件 zh_replacements.json,支持 --replacements-file 自定义扩展
Token 开销 ~0(脚本内嵌 + JSON 文件,不占 context)
执行时间 <1ms
专有名词统一 "哈萨尼"37 次,2 处变体(哈萨迪×1、哈塔尼×1)自动统一为主形式
直接贡献 A05, A07, A08, A09, A11, A13, A14, A15, A16

替换表与 LLM 校对形成互补:替换表处理 Whisper 的系统性高频错误(零成本),LLM 处理上下文相关的语义和专有名词错误(高成本但不可替代)。专有名词统一作为 LLM 后的兜底层,确保全文一致性。

4.4 输出格式与后处理

特性 With Skill Without Skill
简繁转换 ✅ OpenCC 自动 t2s ❌ 繁体原样输出
段落化 ✅ 36 个自然段落 ❌ 917 行短句
中文标点规范化 ✅ 全角逗号/句号 ❌ 半角混用
多格式输出 ✅ txt/pdf/docx ❌ 仅原始文本
三层缓存 ✅ audio/raw/clean ❌ 无缓存

五、Token 效费比分析

5.1 Skill 体积

local-transcript 是 SKILL.md + 脚本型 skill,脚本是核心执行引擎但不占 context。

文件 行数 字节 估算 Token
SKILL.md 175 8,553 ~2,135
scripts/local_transcript.py ~1,120 ~42,000 ~10,200(不加载到 context)
scripts/zh_replacements.json ~25 ~800 ~200(不加载到 context)
Description(始终在 context) ~120

5.2 实际加载场景

场景 读取内容 Token 成本
典型使用 SKILL.md → 执行脚本 ~2,135
调试/修改脚本 SKILL.md + local_transcript.py ~12,335
仅 Description 触发 frontmatter only ~120

关键点: 脚本通过 uv run --script 直接执行,不需要加载到 LLM context。正常使用只消耗 SKILL.md 的 ~2,135 tokens。这是脚本型 skill 的天然 Token 优势。

5.3 Token 换取的质量提升

指标 数值
With-skill 通过率 100% (17/17)
Without-skill 通过率 5.9% (1/17)
通过率提升 +94.1 百分点
每修复 1 条 assertion 的 Token 成本 ~134 tokens(SKILL.md only)
每 1% 通过率提升的 Token 成本 ~23 tokens(SKILL.md only)

5.4 SKILL.md 分段效费比

模块 估算 Token 关联 Assertion 差值 效费比
Default Behavior(ASR 后端/模型配置) ~400 A02, A17(简体 + 速度) 极高 — 200 tok/2 条
LLM Proofreading 说明 ~300 A05-A16(12 条修正) 极高 — 25 tok/条
Workflow(9 步流程) ~300 间接贡献(确保执行顺序)
Execution 命令示例 ~350 间接贡献(减少 Agent 试错)
Cleaning Rules(含段落化/标点) ~200 A03, A04(段落化 + 标点) — 100 tok/条
Format Resolution Gate ~100 间接贡献
Dependency Gate ~150 间接贡献(快速失败)
Output Contract ~200 间接贡献(可审计性)

5.5 高杠杆 vs 低杠杆

高杠杆(~900 tokens → 直接驱动全部 16 条 assertion 差值): - Default Behavior: ASR 后端选择 + 模型配置(~400 tok → A02, A17) - LLM Proofreading 架构(~300 tok → 12 条错别字 + 专有名词修正) - Cleaning Rules(~200 tok → A03, A04 格式规范)

中杠杆(~800 tokens → 间接贡献): - Workflow、Execution、Format Gate、Dependency Gate、Output Contract

低杠杆(~435 tokens → 本次评估无直接差值): - 多格式输出说明、CPU 后备方案说明等

5.6 Token 效率评级

评级 结论
整体 ROI 优秀 — ~2,135 tokens 换取 +94.1% 通过率
高杠杆 Token 比例 ~42%(900/2,135)直接驱动全部 16 条差值
脚本效费比 极高 — ~1,120 行 Python 以 0 context tokens 运行

5.7 与其他 skill 的效费比对比

指标 local-transcript go-makefile-writer git-commit
SKILL.md Token ~2,135 ~1,960 ~1,120
总加载 Token(典型) ~2,135 ~4,100-4,600 ~1,120
通过率提升 +94.1% +31.0% +22.7%
每 1% 的 Token(SKILL.md) ~23 tok ~63 tok ~51 tok
每 1% 的 Token(full) ~23 tok ~149 tok ~51 tok

local-transcript 的 Token 效费比显著优于对比对象。原因:(1) 脚本型 skill 将 ~1,120 行执行逻辑完全外置,SKILL.md 仅承担调度角色;(2) skill 解决的是"不知道 mlx-whisper + 本地 LLM 校对"这样的知识鸿沟,单条指令的信息密度极高。


六、与基础模型能力的边界分析

6.1 基础模型已具备的能力(Skill 无增量)

能力 证据(Without-skill 运行)
调用 ffmpeg 提取音频 基线脚本成功提取
使用 faster-whisper 转录 基线成功转录(但用了 small 模型)
输出文本文件 A01 两者均通过

6.2 基础模型的能力缺口(Skill 填补)

缺口 本次评估证据 影响
不知道 mlx-whisper 基线用 faster-whisper CPU,5.8x 更慢 A17 性能
不知道 large-v3-turbo 模型 基线用 small 模型,输出繁体中文 A02 语言
无繁简转换 基线输出全文繁体 A02
无段落化 基线 917 行短句 A03
无标点规范化 基线半角标点混用 A04
无 LLM 校对 基线全部错别字原样保留 A05-A15(10 条)
无确定性替换表 基线无任何错误修正机制 同上
无专有名词统一 基线同一人名多种写法 A16
无缓存 基线每次从头运行 重复执行效率

七、综合评分

7.1 分维度评分

维度 With Skill Without Skill 差值
ASR 速度 5.0/5 1.5/5 +3.5
转录准确率 4.5/5 2.0/5 +2.5
错别字修正率 4.5/5 1.0/5 +3.5
输出格式规范 5.0/5 1.0/5 +4.0
工程完整度(缓存/多格式) 5.0/5 1.0/5 +4.0
综合均值 4.80/5 1.30/5 +3.50

7.2 加权总分

维度 权重 得分 加权
Assertion 通过率(delta) 25% 10/10 2.50
错别字修正率 20% 9.0/10 1.80
ASR 速度(mlx-whisper) 15% 10/10 1.50
输出格式与后处理 15% 9.5/10 1.43
Token 效费比 15% 9.5/10 1.43
工程质量(缓存/可配置性) 10% 9.0/10 0.90
加权总分 9.56/10

八、改进建议

8.1 [P2] 增加英文视频评估场景

当前仅测试中文视频。英文路径(无 LLM 校对、无替换表)的实际效果尚未验证。

8.2 [P3] 进一步 LLM 提速方向

当前 LLM 校对仍占总耗时 73%(330.7/452.3s)。可探索方向: - 等待 mlx-lm 支持 batch inference API,实现真正的 chunk 并行推理 - 对非中文内容跳过 LLM 校对以节省时间 - 使用 API 后端(如 Qwen-Turbo)替代本地推理,以延迟换取并发


九、评估材料

材料 路径
Eval 定义 /tmp/local-transcript-eval/iteration-1/eval-1-zh-video-full-pipeline/eval_metadata.json
With-skill 输出 /tmp/local-transcript-eval/iteration-3/with_skill/outputs/transcript.txt
With-skill 评分 /tmp/local-transcript-eval/iteration-3/with_skill/grading.json
Without-skill 输出 /tmp/local-transcript-eval/iteration-1/eval-1-zh-video-full-pipeline/without_skill/outputs/transcript.txt
Without-skill 评分 /tmp/local-transcript-eval/iteration-1/eval-1-zh-video-full-pipeline/without_skill/grading.json
Without-skill 计时 /tmp/local-transcript-eval/iteration-1/eval-1-zh-video-full-pipeline/without_skill/timing.json
测试视频 /Users/john/Downloads/《欧洲你个垃圾》...美欧大分裂 [dHiLbgTK_ME].mp4
Skill 路径 /Users/john/.codex/skills/local-transcript/
脚本路径 /Users/john/.codex/skills/local-transcript/scripts/local_transcript.py

运行时间线

事件 With Skill Without Skill
启动 00:06:35 23:07:58
ASR 完成 116.4s 后
LLM 校对 4 chunks / 330.7s
完成 00:14:08(452.3s 23:19:18(679.6s)