关联主题:: Skills索引
同级::
下一级::
001|逐字稿 Skill(Transcript)
一句话说明
“逐字稿”是一个本地转写 Skill:先取得音频,再用 FunASR 在本机完成语音识别;视频和普通音频走快速转写,播客/访谈可以额外进行 VAD、说话人分离、补标点和语义分段,最后输出可继续编辑的文稿。
本页边界
本页记录当前安装的 Backtthefuture/video-transcript 实现。下载只是输入准备的一环;它真正的核心价值是“本地模型转写 + 机器预整理 + 后续文稿整理”,不是把文件上传到通义听悟。
1. 基本信息
| 字段 | 内容 |
|---|---|
| Skill 编号 | 001 |
| 展示名称 | 逐字稿 |
| 英文名称 | Transcript |
| 上游名称 | 视频文案提取(video-transcript) |
| 历史名称 | 音频下载并转写 |
| 适用平台/场景 | B站、YouTube、抖音、小红书、微信视频号、小宇宙,以及本地视频/音频;播客/访谈支持说话人分离 |
| 类型 | 开源 |
| 许可证 | MIT |
| 当前状态 | 已安装 |
| 命令别名 | /video-transcript |
| 关联系统 | S-004 逐字稿系统 |
物理目录暂时保留为 video-transcript,因为上游脚本会从这个目录名定位自身的 scripts/。对用户和 Skill 注册表显示的名称统一为“逐字稿”,因此这是一个逻辑 Skill 的两个兼容副本,不是两个不同的 Skill。
2. 它如何把声音变成合适的文稿
视频/音频链接或本地文件
↓
取得可处理的音频,必要时转成 WAV
↓
FunASR 本地模型识别语音并生成文字、时间区间
↓
播客/访谈:VAD 切分语音 + ASR + 标点 + 说话人分离
↓
preorganize.py 机器预整理:合并碎片、去除明显噪声、形成段落
↓
LLM 只对文稿做小范围 patch,补标题、修错字、整理版式
↓
逐字稿、SRT 字幕或“整理优化版”这里的“合适”不是指模型把原话改写成摘要,而是分层保留:底层结果尽量保留原始识别内容,上层再进行可追踪的分段、修正和排版。视频默认交付整理优化版;播客则重点保留说话人区块和时间信息。
2.1 视频路径:快速本地识别
- 视频音轨被取出后,使用 FunASR 的 SenseVoice-Small。
- 该路径面向视频文案和单人讲解,重点是速度、中文识别和标点。
- 模型在本机运行,不需要把音频上传到云端;第一次使用需要下载模型文件,之后可复用本地缓存。
2.2 播客路径:先找“哪里有人说话”,再识别
播客/访谈会进入更重的链路:
- VAD(语音活动检测):判断音频的哪些时间段有人说话,哪些是静音、音乐或环境声,并据此切成合适的语音片段。
- ASR(自动语音识别):把每个语音片段从声波转换成文字,并保留起止时间。
- PUNC(标点恢复):根据文字上下文补逗号、句号等,让识别结果不再是一长串无标点文字。
- 说话人分离:用 CAM++ 判断不同片段属于哪个声音,输出“说话人 0/1”等区块;再根据上下文把它们整理成主持人、嘉宾等可读标签。
- 语义分段:把过短、过碎的识别片段合并成接近自然说话的段落,并生成 SRT 或 Markdown。
上游脚本中对应的本地模型是:paraformer-zh(ASR)、fsmn-vad(VAD)、ct-punc(标点)、cam++(说话人分离)。这几个模型协作完成“先切语音、再识别、再分角色、最后排版”,不是单个模型独立完成全部工作。
3. VAD 要不要下载模型?
要。VAD 不是一个抽象开关,而是一个需要模型判断的本地处理阶段。上游使用 FunASR 的 fsmn-vad 模型;首次运行时会下载并缓存它,以及同一链路需要的 ASR、标点和说话人模型。
不过“要下载模型”不等于“每次都重新下载”:模型通常只在首次使用或缓存被清理后下载。按照上游说明,视频的 SenseVoice-Small 约 234 MB;播客的 paraformer、VAD、标点和 CAM++ 组合首次准备大约需要 1 GB,实际大小会随模型版本变化。
4. 标准工作流
4.1 输入与准备
支持平台链接和本地文件。链接处理由上游的 extractor 和 yt-dlp/平台解析逻辑完成;本地文件可以跳过下载。ffmpeg 负责抽取或转换音频,浏览器自动化只在特定平台的解析需要时使用。
4.2 本地转写
核心入口是:
python scripts/transcript.py <链接或本地文件>脚本会按媒体类型选择视频或播客链路,调用 FunASR daemon 复用模型,分块处理长音频,写出带时间信息的中间结果。播客需要时可以指定说话人数,例如 --speakers 2;--doctor 用于检查依赖,--force 用于强制重新处理。
4.3 预整理与人工可读化
preorganize.py对原始识别结果做机械整理,不擅自编造内容。- 视频通常先生成
*_预整理.md,再由后续 patch 生成*_整理优化版.md。 - 播客通常生成
*_逐字稿.md和.srt,重点是时间轴与说话人区块。 make_optimized.py等脚本用于格式化或合并结果;最终的错字、人名和专业术语仍应抽查。
5. 依赖与模型
| 类别 | 作用 |
|---|---|
ffmpeg | 从视频取音频、转换采样格式 |
yt-dlp/平台 extractor | 在用户提供链接时取得媒体或音频 |
| FunASR | 本地 ASR、VAD、标点和说话人分离模型运行框架 |
| SenseVoice-Small | 视频快速转写 |
| paraformer-zh | 播客/访谈语音识别 |
| fsmn-vad | 检测有声区间、帮助切分 |
| ct-punc | 恢复标点 |
| CAM++ | 区分不同说话人 |
这些依赖和模型尚未在本次“替换 Skill”操作中执行完整安装;本次已下载并安装 Skill 文件本身。实际第一次转写前,可在 Skill 目录运行上游 install.sh,或先执行 transcript.py --doctor 检查环境。
6. 输出与质量边界
| 输出 | 用途 |
|---|---|
| 原始/中间转写 | 保留识别结果,便于定位问题和复核 |
*_预整理.md | 机器合并后的工作稿 |
*_整理优化版.md | 面向阅读、发布或后续知识整理的文稿 |
*_逐字稿.md | 播客/访谈的说话人区块稿 |
.srt | 带时间轴的字幕文件 |
质量上要区分三件事:ASR 负责“听见并写出来”,预整理负责“把碎片拼成段落”,LLM/人工整理负责“变得好读”。最后一步不应被误认为是原始逐字转写;人名、数字、术语、多人重叠说话和说话人标签仍需抽查。
7. 与旧版的关系
历史上,音频下载并转写 是苏苏与 Claude Code 于 2026-01-25 共同设计创建的本地 Skill,采用“下载/编码处理 → 上传通义听悟 → 导出文稿”的云端流程。2026-08-21 曾为它补录上游项目链接并统一对外名称;2026-08-28 才按当前确认移除旧版,安装 Backtthefuture/video-transcript 的本地 FunASR 实现。两段历史需要分开理解:旧版是本地自建工作流,当前版才是上游代码安装。
本次已从活动路径移除旧版 .agents/skills/音频下载并转写/ 与 .claude/skills/音频下载并转写/。旧版是“下载/编码处理 → 上传通义听悟 → 导出文稿”的云端流程;两份旧目录已移入 macOS 废纸篓,便于需要时恢复。
当前保留的是上游 video-transcript 的本地 FunASR 实现,展示名仍为“逐字稿”。旧名只作为历史别名保留,不再作为活动路径或工作流说明。
8. 来源与关联
- GitHub 源项目
- 源项目 SKILL.md
- 播客转写实现
diarize_asr.py - video-transcript 源项目分析
- VAD(语音活动检测)
- ASR(自动语音识别)
- Skill(AI技能)
本轮没有新建概念卡:Skill、VAD 和 ASR 均复用已有页面;FunASR、SenseVoice、Paraformer、CAM++ 暂作为实现名词,不单独扩展概念索引。
文档更新日志
- 2026.08.28|建立 001 说明页。
- 2026.08.28|删除旧版“音频下载并转写”实现说明,改为记录上游
video-transcript的本地 FunASR 实现;显示名称统一为“逐字稿(Transcript)”,补充来源与物理目录兼容说明。
🔐 GitHub 评论(Giscus)
正在连接 GitHub 评论…