mcpField
S
subtitle-correction

subtitle-correction

github.com/sugarforever创意与媒体139537 次安装1 周前更新
代码仓库

关于 subtitle-correction

subtitle-correction 是用于修正字幕语音识别错误的技能,面向需要校对 SRT 字幕的人。它先收集领域术语,并严格保留时间戳、编号和条目结构,还提供校验与差异报告。

主要功能

  1. 01根据术语修正识别错误
  2. 02保持时间戳和字幕编号不变
  3. 03保留条目数量且不合并拆分
  4. 04校验结构并生成差异报告
  5. 05支持 HTML 差异查看

适用场景

  1. 01校对技术教程中的专有名词
  2. 02修复 SRT 字幕的同音误识别
  3. 03确认修正未改变字幕时间轴

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sugarforever/01coder-agent-skills --skill subtitle-correction

安装后在 Claude Code 中输入/subtitle-correction确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
srt-format.md
terminology.md
scripts/
subtitle_tool.py

详细介绍

字幕纠错技能

此技能用于纠正字幕文件中的语音识别错误,同时严格保留时间轴信息。

交互式工作流

步骤 1:向用户询问术语

重要:开始任何纠错前,务必先询问用户是否有领域专用术语。

向用户提示:

在开始修正之前,请提供一些关键术语,帮助我更准确地识别和修正语音识别错误:

1. **专有名词**:人名、品牌名、产品名等(如:Anthropic、Claude)
2. **技术术语**:框架、库、工具名称(如:LangChain、OpenAI、PyTorch)
3. **领域词汇**:行业特定词汇(如:checkpointer、middleware、runtime)
4. **其他关键词**:视频中频繁出现的重要词汇

请用逗号分隔,例如:`LangChain, Agent, OpenAI, checkpointer`

面向英语用户:

Before I begin correction, please provide key terms to help me accurately identify speech recognition errors:

1. **Proper nouns**: Names, brands, products (e.g., Anthropic, Claude)
2. **Technical terms**: Frameworks, libraries, tools (e.g., LangChain, PyTorch)
3. **Domain vocabulary**: Industry-specific terms (e.g., checkpointer, middleware)
4. **Other keywords**: Important words that appear frequently

Please separate with commas, e.g.: `LangChain, Agent, OpenAI, checkpointer`
步骤 2:确认理解

收到术语后:

  1. 列出收到的术语
  2. 判断可能的领域/背景(AI/ML 教程、Web 开发等)
  3. 询问是否还有其他术语,然后再继续

回复示例:

收到以下术语:
- 技术框架:LangChain, LangGraph, OpenAI
- 技术概念:Agent, checkpointer, runtime

看起来这是一个 LangChain 智能体开发的教程视频。

还有其他需要补充的术语吗?如果没有,我将开始修正字幕。
步骤 3:根据术语处理

使用提供的术语来:

  1. 建立预期词汇的心理模型
  2. 识别可能的语音识别错误
  3. 在全文中统一应用纠正
用户未提供术语时

如果用户表示“没有”/“no”/“直接开始”:

  1. 使用内置模式进行纠错
  2. 标记不确定的纠正,供用户审核
  3. 完成后询问是否有遗漏的术语

核心工作流

  1. 读取字幕文件 - 加载用户提供的 .srt 文件
  2. 识别错误模式 - 识别常见的语音识别错误
  3. 应用纠正 - 修正错误,同时原样保留时间戳
  4. 输出修正后的文件 - 根据用户的使用场景返回或保存文件

严格规则

保留时间轴
  • 绝不修改时间戳 - 完全保留所有 00:00:00,000 --> 00:00:00,000 行
  • 绝不更改字幕编号 - 保留序列编号
  • 绝不合并或拆分字幕条目 - 保持一一对应
错误类别
1. 语音错误(同音字/谐音错误)

中文语音识别中的常见错误:

  • 会话 ↔ 绘画(huìhuà)
  • 元数据 ↔ 源数据(yuán shùjù)
  • 本课 ↔ 本科(běnkè)
  • 示例 ↔ 事例(shìlì)
  • 实践 ↔ 时间(shíjiàn)
2. 技术术语错误

语音识别经常无法正确识别:

  • 框架名称:LangChain、LangGraph、OpenAI、PyTorch、TensorFlow
  • 编程术语:API、SDK、runtime、checkpointer、middleware
  • 代码标识符:snake_case 名称、函数名称、类名称
3. 中英混合内容
  • Luncheon/lunch → langchain
  • open EI/open Email → OpenAI
  • land GRAPH → langgraph
  • a memory Server → MemorySaver
4. 代码相关术语

将口述描述转换为正确格式:

  • 变量名中的“underscore” → "_"
  • 方法调用中的“dot” → "."
  • 识别 camelCase、snake_case、PascalCase 模式

用户提供的术语

用户提供术语列表时,应将其作为纠错的主要参考:

用户提供的术语:LangChain,Agent,OpenAI,LangGraph

这些术语表明:

  • 技术术语的预期正确拼写
  • 内容领域的背景
  • 识别语音识别错误的线索

处理策略

对于长文件(>200 行)
  1. 使用 view_range 参数分块处理
  2. 在各块之间保持上下文
  3. 逐步构建完整的修正文件
对于技术内容
  1. 识别领域(AI/ML、Web 开发等)
  2. 建立预期术语的心理模型
  3. 统一应用领域专用纠正
质量检查

输出前:

  • 确认所有时间戳均未更改
  • 确认字幕数量未更改
  • 检查全文术语是否一致
  • 确保没有未完成的纠正(只修正了一部分)

常见纠正模式

中文 AI/ML 课程内容
错误纠正上下文
蓝犬/蓝卷/LanternLangChain框架名称
绘画会话会话/对话
拖/tourtool工具概念
checkpoint组件checkpointer组件记忆组件
源数据元数据元数据
大约模型大模型大模型
中间键中间件中间件
代码标识符
口述书写
user underscore 001user_001
thread underscore idthread_id
create underscore agentcreate_agent
runtime dot stateruntime.state

输出格式

保存时,请使用 -corrected 后缀:

  • 输入:filename.srt
  • 输出:filename-corrected.srt

验证脚本

使用 scripts/subtitle_tool.py 验证和分析字幕文件:

# Validate corrected file preserves structure
python scripts/subtitle_tool.py validate original.srt corrected.srt

# Show word-level diff with colored output (default, changes only)
python scripts/subtitle_tool.py diff original.srt corrected.srt

# Show ALL entries (changed and unchanged) in terminal
python scripts/subtitle_tool.py diff original.srt corrected.srt --all

# Generate HTML diff report (recommended for review)
python scripts/subtitle_tool.py diff original.srt corrected.srt --html report.html

# Show simple line-based diff (original/corrected lines)
python scripts/subtitle_tool.py diff original.srt corrected.srt --simple

# Disable colors for piping to files
python scripts/subtitle_tool.py diff original.srt corrected.srt --no-color

# Analyze file for potential speech recognition errors
python scripts/subtitle_tool.py analyze input.srt --terms "LangChain,OpenAI"
差异输出格式
终端输出(默认)

以颜色显示词级别的更改:

[1] 00:00:01,500 --> 00:00:04,500
  今天我们来学习[-Luncheon-]{+LangChain+}框架

[3] 00:00:08,000 --> 00:00:12,500
  我们可以用它来创建[-绘画-]{+会话+}应用程序
  • [-deleted-] - 删除的文本(在终端中显示为红色)
  • {+added+} - 添加的文本(在终端中显示为绿色)
  • 使用 --all 也显示未更改的条目
HTML 报告(建议用于审阅)

生成完整的对比报告,包含:

  • 显示所有条目(已更改和未更改)
  • 并排列:原文 | 修正后 | 差异视图
  • 视觉高亮:删除内容显示为红色删除线,添加内容显示为绿色
  • 统计摘要:条目总数、更改数量、未更改数量
  • 跳转链接:快速导航到已更改的条目
  • 更改标记:黄色圆点标记已更改的行
python scripts/subtitle_tool.py diff original.srt corrected.srt --html diff_report.html

然后在浏览器中打开 diff_report.html。

验证工作流
  1. 修正前:运行 analyze,识别潜在错误
  2. 修正后:运行 validate,确保结构完整
  3. 审阅更改:运行 diff --html report.html,生成可视化对比报告
验证检查
  • 条目数量与原文件一致
  • 所有时间戳保持不变
  • 所有序列号均已保留
  • 未发生格式损坏

交互示例

交互 1:用户上传文件时未提供术语

用户:帮我修正这个字幕文件

Claude:

在开始修正之前,请提供一些关键术语,帮助我更准确地识别语音识别错误:

1. **专有名词**:人名、品牌名、产品名
2. **技术术语**:框架、库、工具名称
3. **领域词汇**:行业特定词汇
4. **其他关键词**:视频中频繁出现的重要词汇

请用逗号分隔,例如:`LangChain, Agent, OpenAI`

用户:LangChain、Agent、OpenAI、LangGraph、checkpointer

Claude:

收到以下术语:
- 技术框架:LangChain, LangGraph, OpenAI
- 技术概念:Agent, checkpointer

这是一个 LangChain 相关的技术教程。还有补充吗?

用户:没有了,开始吧

Claude:[开始修正工作流]

交互 2:用户提前提供术语

用户:帮我修正字幕,术语:LangChain、OpenAI、Agent

Claude:[确认术语后,直接开始]

修正流程
  1. 读取上传的 .srt 文件
  2. 运行 analyze,识别潜在错误
  3. 以提供的术语为主要依据进行修正
  4. 运行 validate,确认结构完整
  5. 使用 -corrected 后缀保存修正后的文件
  6. 生成差异报告,并提供更改摘要
  7. 提供 HTML 报告:询问用户是否需要 HTML 差异报告,以便更轻松地审阅

输出:提供已完成修正的分类摘要。

完成后,提示用户:

修正完成!我可以生成一个 HTML 差异报告,方便您在浏览器中查看所有修改。
需要生成 HTML 报告吗?

Correction complete! I can generate an HTML diff report for easier review in your browser.
Would you like me to generate the HTML report?

评论

支持 Markdown