关联主题:: 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 播客路径:先找“哪里有人说话”,再识别

播客/访谈会进入更重的链路:

  1. VAD(语音活动检测):判断音频的哪些时间段有人说话,哪些是静音、音乐或环境声,并据此切成合适的语音片段。
  2. ASR(自动语音识别):把每个语音片段从声波转换成文字,并保留起止时间。
  3. PUNC(标点恢复):根据文字上下文补逗号、句号等,让识别结果不再是一长串无标点文字。
  4. 说话人分离:用 CAM++ 判断不同片段属于哪个声音,输出“说话人 0/1”等区块;再根据上下文把它们整理成主持人、嘉宾等可读标签。
  5. 语义分段:把过短、过碎的识别片段合并成接近自然说话的段落,并生成 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. 来源与关联

本轮没有新建概念卡:Skill、VAD 和 ASR 均复用已有页面;FunASR、SenseVoice、Paraformer、CAM++ 暂作为实现名词,不单独扩展概念索引。

文档更新日志

  • 2026.08.28|建立 001 说明页。
  • 2026.08.28|删除旧版“音频下载并转写”实现说明,改为记录上游 video-transcript 的本地 FunASR 实现;显示名称统一为“逐字稿(Transcript)”,补充来源与物理目录兼容说明。