Subtitle Correction logo

Subtitle Correction

Community
sugarforever
subtitle-correction

Correct subtitle files (.srt) generated from speech recognition. Use when the user uploads subtitle files and asks to correct, fix, or proofread subtitles, especially for technical content like programming tutorials, AI/ML courses, or any content with domain-specific terminology. Supports Chinese and English subtitles with intelligent error detection and correction while preserving exact timeline information.

Overview

Publishersugarforever
Repository01coder-agent-skills
Skill namesubtitle-correction
Stars
139
Forks
37
Bundled files
3
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 3 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by sugarforever on GitHub. Read the source before you install it.

Installation

Install the Subtitle Correction AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/sugarforever/01coder-agent-skills/tree/main/skills/subtitle-correction
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/sugarforever/01coder-agent-skills.git /tmp/01coder-agent-skills
mkdir -p .claude/skills
cp -r /tmp/01coder-agent-skills/skills/subtitle-correction .claude/skills/subtitle-correction
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Subtitle Correction in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Subtitle Correction on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Subtitle Correction is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Subtitle Correction Skill

This skill corrects speech recognition errors in subtitle files while strictly preserving timeline information.

Interactive Workflow

Step 1: Request Terminology from User

IMPORTANT: Before starting any correction, ALWAYS ask the user for domain-specific terms.

Prompt the user with:

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

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

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

For English users:

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`

Step 2: Confirm Understanding

After receiving terms, confirm by:

  1. Listing the terms received
  2. Identifying the likely domain/context (AI/ML tutorial, web dev, etc.)
  3. Asking if there are any additional terms before proceeding

Example response:

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

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

还有其他需要补充的术语吗?如果没有,我将开始修正字幕。

Step 3: Process with Terms

Use the provided terms to:

  1. Build a mental model of expected vocabulary
  2. Identify likely speech recognition errors
  3. Apply consistent corrections throughout

When User Doesn't Provide Terms

If user says "没有" / "no" / "直接开始":

  1. Proceed with correction using built-in patterns
  2. Flag uncertain corrections for user review
  3. After completion, ask if any terms were missed

Core Workflow

  1. Read the subtitle file - Load the .srt file provided by the user
  2. Identify error patterns - Recognize common speech recognition mistakes
  3. Apply corrections - Fix errors while preserving timestamps exactly
  4. Output corrected file - Return or save based on user's context

Strict Rules

Timeline Preservation

  • NEVER modify timestamps - Keep all 00:00:00,000 --> 00:00:00,000 lines exactly as-is
  • NEVER change subtitle numbering - Preserve sequence numbers
  • NEVER merge or split subtitle entries - One-to-one correspondence

Error Categories

1. Phonetic Errors (同音字/谐音错误)

Common in Chinese speech recognition:

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

Speech recognition often fails on:

  • Framework names: LangChain, LangGraph, OpenAI, PyTorch, TensorFlow
  • Programming terms: API, SDK, runtime, checkpointer, middleware
  • Code identifiers: snake_case names, function names, class names
3. English-Chinese Mixed Content
  • Luncheon/lunch → langchain
  • open EI/open Email → OpenAI
  • land GRAPH → langgraph
  • a memory Server → MemorySaver
4. Code-Related Terms

Convert spoken descriptions to proper format:

  • "underscore" → "_" in variable names
  • "dot" → "." in method calls
  • Recognize camelCase, snake_case, PascalCase patterns

User-Provided Terminology

When users provide a terminology list, use it as the primary reference for corrections:

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

These terms indicate:

  • Expected proper spellings of technical terms
  • Context about the content domain
  • Hints for identifying speech recognition errors

Processing Strategy

For Long Files (>200 lines)

  1. Process in chunks using view_range parameter
  2. Maintain context across chunks
  3. Build complete corrected file incrementally

For Technical Content

  1. Identify the domain (AI/ML, web dev, etc.)
  2. Build mental model of expected terminology
  3. Apply domain-specific corrections consistently

Quality Checks

Before outputting:

  • Verify all timestamps unchanged
  • Verify subtitle count unchanged
  • Check terminology consistency throughout
  • Ensure no orphaned corrections (partial fixes)

Common Correction Patterns

Chinese AI/ML Course Content

ErrorCorrectionContext
蓝犬/蓝卷/LanternLangChainFramework name
绘画会话Session/conversation
拖/tourtoolTool concept
checkpoint组件checkpointer组件Memory component
源数据元数据Metadata
大约模型大模型Large model
中间键中间件Middleware

Code Identifiers

SpokenWritten
user underscore 001user_001
thread underscore idthread_id
create underscore agentcreate_agent
runtime dot stateruntime.state

Output Format

When saving, use -corrected suffix:

  • Input: filename.srt
  • Output: filename-corrected.srt

Validation Script

Use scripts/subtitle_tool.py to validate and analyze subtitle files:

bash
# 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"

Diff Output Formats

Terminal Output (Default)

Shows word-level changes with colors:

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

[3] 00:00:08,000 --> 00:00:12,500
  我们可以用它来创建[-绘画-]{+会话+}应用程序
  • [-deleted-] - Text removed (shown in red in terminal)
  • {+added+} - Text added (shown in green in terminal)
  • Use --all to show unchanged entries too
HTML Report (Recommended for Review)

Generates a full comparison report with:

  • All entries displayed (changed and unchanged)
  • Side-by-side columns: Original | Corrected | Diff View
  • Visual highlighting: Red strikethrough for deletions, green for additions
  • Summary statistics: Total entries, changed count, unchanged count
  • Jump links: Quick navigation to changed entries
  • Change indicators: Yellow dot marks changed rows
bash
python scripts/subtitle_tool.py diff original.srt corrected.srt --html diff_report.html

Then open diff_report.html in a browser.

Validation Workflow

  1. Before correction: Run analyze to identify potential errors
  2. After correction: Run validate to ensure structural integrity
  3. Review changes: Run diff --html report.html to generate a visual comparison report

Validation Checks

  • Entry count matches original
  • All timestamps unchanged
  • All sequence numbers preserved
  • No formatting corruption

Example Interaction

Interaction 1: User uploads file without terms

User: 帮我修正这个字幕文件

Claude:

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

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

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

User: LangChain, Agent, OpenAI, LangGraph, checkpointer

Claude:

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

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

User: 没有了,开始吧

Claude: [Proceeds with correction workflow]

Interaction 2: User provides terms upfront

User: 帮我修正字幕,术语:LangChain, OpenAI, Agent

Claude: [Confirms terms, then proceeds directly]

Correction Process

  1. Read uploaded .srt file
  2. Run analyze to identify potential errors
  3. Apply corrections using provided terms as primary reference
  4. Run validate to confirm structural integrity
  5. Save corrected file with -corrected suffix
  6. Generate diff report and present summary of changes
  7. Offer HTML report: Ask user if they want an HTML diff report for easier review

Output: Provide categorized summary of corrections made.

After completion, prompt user:

修正完成!我可以生成一个 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?

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Subtitle Correction AI skill do?

Correct subtitle files (.srt) generated from speech recognition. Use when the user uploads subtitle files and asks to correct, fix, or proofread subtitles, especially for technical content like programming tutorials, AI/ML courses, or any content with domain-specific terminology. Supports Chinese and English subtitles with intelligent error detection and correction while preserving exact timeline information.

Why use Subtitle Correction on TypingMind?

Because you install it once and use it with any model. Subtitle Correction is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Subtitle Correction in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/sugarforever/01coder-agent-skills/tree/main/skills/subtitle-correction. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Subtitle Correction?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Subtitle Correction?

As many as you like. As long as a model supports skills, you can use Subtitle Correction with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Subtitle Correction AI skill free?

Yes. It is published on GitHub by sugarforever under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇