| name | accurate-transcription |
| description | 把中文音频/视频高精度转成带时间戳的文本(会议、分享、播客、讲座、访谈、录屏、语音备忘)。 当用户想转录音频、把录音/会议/分享整理成文字稿、给视频做字幕的转录环节、或抱怨某个转录工具 英文术语/专有名词总识别错时,都应使用本 skill —— 即使没明确说"用这个 skill"。 核心方法:FunASR + whisper 双引擎互补,再用一个正交信息源(画面OCR/议程/文档/codebase)做术语正解, 最后多 agent 三方对照还原。全程本地推理、音频不外传。绝不只靠单一引擎,绝不靠上下文硬猜专有名词。 |
高精度本地转录
把一段中文语音,转成带时间戳、专有名词正确的文本。核心不是"找个更强的模型",而是让多个会犯不同错误的信息源互相纠正。
为什么这么干(核心原则,先读)
- 不要只用一个引擎。 任何单一 ASR 都有系统性短板:
- FunASR (paraformer-zh) —— 中文口语强、标点好、给逐字时间戳;但英文术语很差("Agent"→"a卷"、"loop engineering"→"lob")。
- whisper-large-v3 —— 英文术语和长句强(尤其配术语 prompt);但中文口语略逊、时间戳粗、爱合并长段。
两者错的地方往往不同 → 互为参照。
- 专有名词靠"取证",不靠"上下文猜"。 引擎听错的术语,用 LLM 结合上下文去推断会自信地猜错(踩过坑:"体力"被猜成"Feedly",实际是"体力活")。正确做法是找一个和音频正交的信息源当 ground truth:分享视频的 PPT/屏幕、会议的议程/参会名单/共享文档、技术讨论的 codebase/论文、聊天记录截图……凡是把正确写法白纸黑字摆出来的来源,照抄即可。详见
references/ground-truth.md。
- 校正要保守。 只修明显的 ASR 错误和板上钉钉的小语病(最典型:指代 AI/工具/系统时"他→它")。说话人有些话不通顺,但他确实就是这么说的——保留。修错的代价远大于漏修。网络用语保留原话。
- 隐私:全程本地。 FunASR 模型从 ModelScope 下载、whisper.cpp 本地推理,音频始终不出本机,只有首次下模型联网。要上云端 ASR(Deepgram/AssemblyAI 等更高准确度)必须先征得用户同意——那会上传音频。
依赖(一次性)
brew install ffmpeg whisper-cpp
pip3 install funasr torch torchaudio modelscope
首次跑 FunASR 会自动下载 paraformer-zh / fsmn-vad / ct-punc 到 ~/.cache/modelscope(只下模型,音频不外传)。
模型在哪台机器跑就吃哪台机器的算力:whisper.cpp 走 Metal/GPU,FunASR 走 CPU/torch。
流程
1. 抽单声道 16k 音频
ffmpeg -y -i 输入.mp4 -vn -ac 1 -ar 16000 -c:a pcm_s16le audio.wav
2. 双引擎转录
python3 scripts/transcribe.py audio.wav --whisper
whisper 的术语 prompt 来自本 skill 的 glossary.md(脚本自动读取)。两条转录时间轴同源(都基于 audio.wav),按时段对齐即可。
3. 建术语正解表(ground truth)
针对本次内容自己的正交信息源重建(不要复用上一次的)。最常见是画面 OCR:
ffmpeg -i 视频.mp4 -vf "select='gt(scene,0.06)',scale=1200:-1" -vsync vfr slides/s_%03d.jpg
让 agent 逐张 Read 图片、原样提取所有可见文字(标题/产品名/英文术语/代码/人名),汇成"错误→正解"表,追加进 glossary.md 对应小节。没有画面的纯音频,就用议程/文档/名单等替代。详见 references/ground-truth.md。
4. 多 agent 三方对照还原
把转录按时段分块(~10–15 块),每块一个 agent,给它:FunASR 原文 + 同时段 whisper 文本 + 术语正解表。逐行对照还原,再用第二个 agent 敌对验证。规则与提示词见 references/reconciliation.md。单条 turn 也能做,只是慢。
5. 保守校读(兜底小语病)
对还原后的文本整体再过一遍,极度保守:只修"他→它"(指代非人事物时)、板上钉钉的错字、孤立语气词。产出 before→after 清单让用户过目再应用。提示词见 references/reconciliation.md。
术语表怎么维护(关键)
glossary.md 分两部分:
- whisper prompt 词条 —— 通用底料,提前喂给 whisper 提升英文识别(脚本读这块)。新领域可增删。
- 错误→正解对照表 —— 每次任务根据自己的 ground truth 现场重建/扩充,不是攒一个万能词库。
铁律:别往表里塞没把握的"纠正"。看得见(画面/文档里有)才进表,看不见的宁可不动。正解 > 猜测。
这套方法能用在哪
不止视频字幕。任何"中文语音 + 有专有名词、且存在一个正交的正确来源"的场景:
- 技术分享/讲座转文字稿(ground truth = PPT)
- 团队会议纪要(ground truth = 议程/参会名单/共享文档)
- 播客/访谈整理(ground truth = show notes / 嘉宾资料)
- 代码评审录音(ground truth = codebase / PR)
没有正交来源时,本方法退化为"双引擎 + 敌对验证",仍优于单引擎。
更多细节
glossary.md — 术语表(whisper prompt 词条 + 错误正解对照 + 维护规则)
references/ground-truth.md — 怎么从画面/文档/codebase 取正交正解
references/reconciliation.md — 多 agent 三方对照 + 敌对验证 + 保守校读提示词
scripts/transcribe.py — 双引擎转录脚本(从 glossary.md 读术语 prompt)