一门三小时的视频课,切章节曾花剪辑师一下午——现在40分钟跑完
目标读者
写给正在做在线教育工具、知识付费SaaS,或者手里握着一批课程视频想做结构化的独立开发者和小团队。你不需要算法背景,只要会调API就能落地。
业务痛点:切章节和写摘要是两个“时间黑洞”
我接触过几个做课程平台的小团队,他们的工作流几乎一模一样:
切章节。 一门3小时的课程,剪辑师要拖动时间轴反复听,判断“这里换话题了”,手动打点。平均一门课耗时3~4小时,遇到口音重、语速快的讲师还得加倍。如果平台上有200门存量课程想做结构化翻新,按每门3.5小时算,就是700小时的人力——一个人全职干三个月。
写摘要。 切完章节还不够,每个章节要配一段简介、几个知识点标签,方便学员检索和试看定位。人工写,每个章节10~15分钟,一门30章节的课程又是5~7小时。
两项加起来,一门课的结构化成本接近一个人一天。对独立开发者来说,这直接决定了“要不要做批量课程处理”这个功能——人肉做,成本算不过来。
而用AI流水线改造后,同样的课程:转写加分析全自动,端到端约40分钟,人工只保留最后10分钟的章节边界抽检。单课成本从约8小时人力降到0.2小时,压缩约97%;存量200门课从700小时变成40小时,一周内可清完。
架构设计:四段式流水线
整体架构不复杂,核心是“把一次性的大任务拆成可重跑、可缓存的小步骤”:
课程视频文件
│
▼
[1] 抽音频 ──── ffmpeg 提取音轨,压缩为 16k 单声道
│
▼
[2] 转写 ────── Whisper 类模型,带时间戳的逐句文本
│ (结果落库缓存,后续重跑不重复计费)
▼
[3] 章节切分 ── LLM 滑动窗口读带时间戳文本,
│ 输出 [{start, end, topic}] 列表
▼
[4] 摘要生成 ── 按章节切片喂给 LLM,
输出 80字简介 + 3~5个知识点标签几个设计决策值得展开:
转写结果必须缓存。 它是整条流水线里最贵、最慢的一环(约占70%耗时)。落到对象存储后,章节算法迭代、摘要换个prompt重写,都不用重新转写。我们早期没做缓存,一次prompt调优重跑了30门课,白烧了一笔转写费——这个学费别再交。
章节切分用滑动窗口而不是整段塞入。 3小时课程的转写文本约3万字,直接塞会超出上下文且边界模糊。按20分钟窗口滑动,让模型输出窗口内的主题切换点,再做跨窗口去重合并,边界误差能控制在±15秒内,足够用于章节导航。
摘要按章节切片并限字数。 输入是章节对应的文本段,输出强制JSON格式({"summary": "...", "tags": [...]}),方便直接入库前端渲染。
关键实现步骤与核心代码
import json
def split_chapters(segments, window_min=20):
"""segments: [{'start':秒, 'end':秒, 'text':句文本}]"""
chapters = []
window_sec = window_min * 60
cursor, buf = 0, []
for seg in segments:
buf.append(seg)
if seg["end"] - cursor >= window_sec:
prompt = build_prompt(buf) # 带时间戳文本 + 输出schema
resp = llm.chat(prompt, response_format="json")
chapters += merge_points(resp["topic_breaks"], buf)
cursor, buf = seg["end"], []
if buf:
chapters.append(close_last(buf))
return merge_adjacent(chapters) # 合并相邻同主题
def gen_summary(chapter_text):
prompt = f"""你是课程编辑。为以下章节写80字以内的简介,
并提炼3-5个知识点标签,返回JSON:
{{"summary": "...", "tags": ["..."]}}
章节内容:{chapter_text}"""
return json.loads(llm.chat(prompt, response_format="json"))流程清单(落地时照着走):
- ffmpeg抽音频:
ffmpeg -i course.mp4 -ac 1 -ar 16000 audio.wav - 调转写模型,逐句时间戳结果存对象存储,key用视频hash去重
- 滑动窗口跑章节切分,人工抽检10%边界,误差>30秒的调窗口参数
- 章节切片生成摘要,JSON校验失败自动重试一次
- 全部结果写库,前端按章节时间轴渲染播放器定位
为什么统一AI网关能降维护成本
这条流水线要调两类以上模型:转写模型和对话LLM,而实际选型上你大概率会混用——比如转写用专有模型,章节切分用性价比模型,摘要换更强的模型。如果每家都直连原生SDK,你会面对:不同的鉴权方式、不同的错误码体系、各自的重试与限流逻辑、四五份账单。每接一个新模型约多出1~2天的适配与联调,出了问题还要逐家排查。
统一AI网关的价值在于:OpenAI兼容的统一协议、统一的key管理、统一的用量账单和错误监控。换模型只改一个model参数,不用动请求层代码;摘要模型想从A换到B做A/B对比,10分钟就能上线。对一个独立开发者来说,这意味着模型选型的试错成本从“天”降到“分钟”——而这恰恰是这类应用迭代最快的环节。
按前面的账算:一条流水线把单课处理从8小时压到40分钟,批量场景下一年省出的人力,足够一个小团队把精力从“体力活”挪回到产品本身。
如果你正打算动手搭建这条流水线,可以先在 https://api.thistoken.ai/register 注册一个统一网关账号,转写和LLM一个key全搞定,跑通第一门课的结构化,从今天晚上就可以开始。
---
想直接跑通示例?访问 https://api.thistoken.ai/register 注册 ThisToken.AI,获取 API Key 后即可开始。