ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Claude Code提高工作效率案例:将视频培训转化为文本资料

Claude Code提高工作效率案例:将视频培训转化为文本资料 1. 视频培训转文本的真实痛点与场景拆解我手头有一批内部培训视频单集 40 分钟到 90 分钟不等加起来十几个小时。问题是这些视频只能在公司内网电脑上播放回家路上、通勤地铁里、周末咖啡馆里都看不了。更麻烦的是我想检索某个具体知识点时只能靠拖进度条反复试听效率极低。把视频转成可检索的文本资料这个需求就变得非常刚性。传统做法是手动听写或者用一些在线转写工具。手动听写 1 小时视频大概要花 3 到 4 小时十几个小时就是 40 多小时完全不现实。在线转写工具虽然快但输出的是大段无结构的纯文本没有分段、没有标题、没有关键点提炼检索体验依然很差。而且很多工具对专业术语识别不准后期校对成本高。我想要的最终产物是每集视频对应一个结构化的 Markdown 文件包含章节标题、要点摘要、关键术语表并且全文可被 grep 或编辑器全局搜索。这样我就能像查文档一样查培训内容而不是像看录像一样看培训内容。这个场景的核心链路是音视频 → 转写文本 → 分段清洗 → 结构化 Markdown 归档。其中转写和清洗校对环节可以交给大模型来完成而 Claude Code 作为 AI 智能体能把这些步骤串成可批量执行的流程。我实测下来用 Claude Code 配合统一的 API 通道把十几个小时的课程整理时间从几十小时压缩到了分钟级。适合谁参考手头有大量培训视频、会议录像、课程录播需要转成可检索文本资料的人。不需要你是程序员只要能跑几条命令、会改配置文件就行。2. TaoToken 统一 Key/API 通道的前置准备在开始写脚本之前先要把模型调用通道准备好。Claude Code 本身是一个智能体工具它需要调用大模型来完成转写后的清洗、分段、校对等任务。如果每个模型都单独配 Key、单独改 Base URL批量处理时会非常混乱。我用 TaoToken 来统一管理 Key 和 API 通道一个 Key 走通所有模型调用。TaoToken 的定位是统一的大模型 API 接入层官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。它的 API 入口是 https://taotoken.net/api 注意这个地址不带 UTM 参数配置时直接用这个。你需要先拿到 API Key。进入控制台创建 Key 的路径是https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。创建好之后Key 只在创建时显示一次记得复制保存。模型选择方面我这次用的是 GLM 系列模型来做文本清洗和结构化。你可以在模型对话页面先测试一下模型效果https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。如果只是做转写文本的清洗和分段普通对话模型就够用如果要做更复杂的结构化提炼和术语抽取可以用能力更强的模型。对于长期做编码和 Agent 类任务的人可以考虑 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。这个适合需要频繁调用模型、批量处理大量文件的场景。接入文档在这里https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。API Keys 管理页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。配置的核心三件套是Base URL、API Key、Model ID。Base URL 用 https://taotoken.net/api API Key 用你刚创建的Model ID 根据你选的模型填。这三样在后面的配置文件里都会用到。如果你用 Claude Code 的 Anthropic 兼容模式可以参考这个入口https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode_anthropicutm_campaignrewrite 。它说明了如何把 Claude Code 的请求指向统一的 API 通道。3. 可复制的目录约定与批量处理配置这一节给出完整的目录结构和配置文件你可以直接复制修改。先约定目录video2text/ ├── input/ # 放原始视频或音频文件 │ ├── lesson01.mp4 │ ├── lesson02.mp4 │ └── ... ├── transcript/ # 转写后的原始文本 │ ├── lesson01.txt │ └── ... ├── output/ # 结构化 Markdown 输出 │ ├── lesson01.md │ └── ... ├── scripts/ │ ├── transcribe.sh # 音视频转写脚本 │ └── structure.py # 结构化处理脚本 └── config/ └── settings.json # 模型调用配置转写环节我用的是本地语音识别工具先把音视频转成纯文本这一步不依赖大模型。转写完成后再用大模型做清洗、分段、结构化。这样分工的好处是转写成本低、速度快大模型只处理文本token 消耗可控。配置文件config/settings.json内容如下注意 Base URL 和 Model ID 要和你实际使用的一致{ base_url: https://taotoken.net/api, api_key: sk-你的Key粘贴在这里, model_id: glm-5.3, temperature: 0.3, max_tokens: 8192, system_prompt: 你是一个培训资料整理助手。请把用户提供的视频转写文本整理成结构化 Markdown要求1. 按内容逻辑分章节每章有二级标题2. 每章开头用一句话概括要点3. 保留关键术语和数字4. 删除口语化重复和语气词5. 输出纯 Markdown不要额外说明。 }如果你用 Claude Code 的配置文件通常在项目根目录的.claude/settings.json或用户目录下。核心是设置环境变量或配置项让 Claude Code 知道走哪个 API 通道。一个可参考的配置片段{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的Key粘贴在这里, ANTHROPIC_MODEL: glm-5.3 } }注意 Base URL、API Key、Model ID 这三件套必须齐全缺一个都会导致请求失败。Model ID 要填你实际可用的模型标识不要照抄示例。批量处理脚本scripts/structure.py的核心逻辑import json import os import requests with open(config/settings.json, r, encodingutf-8) as f: cfg json.load(f) headers { Authorization: fBearer {cfg[api_key]}, Content-Type: application/json } def structure_text(raw_text): payload { model: cfg[model_id], temperature: cfg[temperature], max_tokens: cfg[max_tokens], messages: [ {role: system, content: cfg[system_prompt]}, {role: user, content: raw_text} ] } resp requests.post( f{cfg[base_url]}/v1/chat/completions, headersheaders, jsonpayload, timeout120 ) resp.raise_for_status() return resp.json()[choices][0][message][content] for name in os.listdir(transcript): if not name.endswith(.txt): continue with open(ftranscript/{name}, r, encodingutf-8) as f: raw f.read() result structure_text(raw) out_name name.replace(.txt, .md) with open(foutput/{out_name}, w, encodingutf-8) as f: f.write(result) print(fdone: {out_name})这个脚本会遍历transcript/下所有 txt 文件逐个调用模型做结构化输出到output/目录。你可以根据实际模型调整max_tokens如果单集文本很长可能需要分段处理。4. 验证请求与成功结果演示配置写好后先别急着批量跑用单个文件验证一下请求是否通。最直接的方式是用 curl 发一个最小请求curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d { model: glm-5.3, messages: [ {role: user, content: 把这句话整理成 Markdown 标题第一章 系统概述} ] }如果返回正常你会看到 JSON 里choices[0].message.content有内容。如果返回 401说明 Key 有问题如果返回 model not found说明 Model ID 填错了。验证通过后跑单个文件的完整流程。先转写一个视频得到transcript/lesson01.txt然后手动跑一次结构化python scripts/structure.py观察output/lesson01.md的内容。我实测下来一段 40 分钟视频的转写文本大约 8000 到 12000 字模型输出结构化 Markdown 后大约 3000 到 5000 字包含 5 到 8 个章节标题每个章节有要点概括。关键术语和数字基本都能保留口语化的重复和语气词被清理掉了。成功的结果应该长这样## 第一章 系统架构概述 本章介绍系统的整体架构和核心模块划分。 ### 1.1 分层设计 系统采用三层架构接入层、业务层、数据层。接入层负责协议解析和请求路由业务层处理核心逻辑数据层负责持久化。 ### 1.2 关键模块 - 模块 A负责身份认证支持多种认证方式 - 模块 B负责数据同步同步延迟控制在 200ms 以内 - 模块 C负责日志采集日均处理 500 万条这样的结构可以直接被编辑器全局搜索也可以被 grep 检索。我试过用grep -r 同步延迟 output/就能快速定位到相关章节比拖进度条快太多了。批量跑的时候建议先跑 2 到 3 个文件确认输出质量稳定再全量跑。如果某个文件输出异常单独重跑那个文件即可不用全部重来。5. 本篇常见错误与排查对照这一节列出我踩过的坑和对应的报错信息你遇到时可以对照排查。401 Unauthorized最常见的原因是 API Key 没填对或者 Key 前面多了空格、少了sk-前缀。检查settings.json里的api_key字段确认和 TaoToken 控制台创建的一致。另外注意Key 只在创建时显示一次如果忘了就重新创建一个。local proxy failed / connection refused这个报错通常出现在 Base URL 配置错误时。确认你填的是https://taotoken.net/api不要多写/v1或少写/api。有些工具会自动拼接路径你需要看文档确认它期望的 Base URL 格式。如果工具要求填到/v1那就填https://taotoken.net/api/v1。reading choices: unexpected end of JSON input这个报错说明请求返回了非 JSON 内容通常是请求被拦截或返回了 HTML 错误页。检查你的请求头是否完整特别是Content-Type: application/json和Authorization。另外确认max_tokens没有超过模型上限超限时有些通道会返回异常。OAuth 相关报错如果你用 Claude Code 的 Anthropic 兼容模式可能会遇到 OAuth token 相关的提示。这时候不要走 OAuth 流程直接用 API Key 方式配置。参考 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode_anthropicutm_campaignrewrite 里的说明把认证方式改成 Key。模型返回内容为空检查model_id是否拼写正确以及该模型是否在你的账号权限范围内。有些模型需要单独开通。可以先在模型对话页面测试同一个 Model ID 是否能正常返回。批量处理中途卡住如果某个文件特别长模型处理时间会超过默认超时。把timeout参数调大或者把长文本切成两段分别处理再合并。我一般把单次请求的输入控制在 6000 字以内超过就分段。输出 Markdown 格式混乱如果模型输出的标题层级不对或者混入了额外说明文字调整system_prompt明确要求「只输出 Markdown不要任何解释性文字」。temperature 调低到 0.2 到 0.3 之间输出会更稳定。6. 长期使用与效率提升建议这套流程跑通之后我把它固化成了一个日常工具。每次有新培训视频丢进input/目录跑两条命令几分钟后output/里就有结构化 Markdown。十几个小时的课程从原来的几十小时整理时间压缩到了分钟级。如果你需要频繁处理这类任务建议把脚本封装成命令行工具加上参数支持指定单个文件或整个目录。另外可以加一个简单的去重逻辑已经处理过的文件跳过避免重复消耗 token。对于需要长期做编码和 Agent 类任务的场景Coding Plan 会更划算https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。它适合高频调用模型的批量处理需求。模型选择上GLM 系列在中文文本清洗和结构化方面表现稳定术语保留和分段逻辑都比较符合预期。如果你处理的培训内容涉及大量英文专业术语可以换用其他更擅长英文的模型测试对比。最后提醒一点转写环节的准确率直接影响后续结构化质量。如果本地语音识别对某些专业术语识别不准可以在system_prompt里加一个术语对照表让模型在清洗时自动纠正。这个技巧对技术类培训特别有用。
返回列表