| name | srt-to-markdown |
| description | 将 SRT 字幕文件整理为结构完整、行文通顺的 Markdown 文档。适用于讲座、直播、访谈等口语转录的结构化整理。 |
SRT 字幕 → 结构化 Markdown
将一个或多个 SRT(SubRip)字幕文件转化为结构完整、逻辑通顺、适合阅读或出版的 Markdown 文档。
适用场景
- 讲座/课程录屏的字幕整理
- 直播回放的精华提取
- 访谈/对话节目的文字稿整理
- 会议记录的结构化
输入
用户提供:
- 一个或多个
.srt 文件的路径
- (可选)主题分类或章节提示
- (可选)输出格式偏好(单篇 / 分章节 / LaTeX)
工作流程
第一步:读取与清洗
-
读取 SRT 文件,跳过:
- 序号行(纯数字行)
- 时间戳行(
HH:MM:SS,mmm --> HH:MM:SS,mmm)
- 空行
- 只保留文本行
-
清洗零宽字符:移除 ASR 平台嵌入的隐形水印
- U+200B(零宽空格)
- U+200C(零宽非连接符)
- U+200D(零宽连接符)
- U+FEFF(BOM / 零宽不换行空格)
- U+2060(词连接符)
- 正则:
[\u200b\u200c\u200d\ufeff\u2060]
-
合并连续文本行为段落:
- 同一句话可能被拆成多行(SRT 每行约 30-40 字)
- 以句号、问号、感叹号为断句依据合并为完整段落
- 去除重复行(ASR 偶尔重复输出)
第二步:口语转书面语
这是最关键的一步。ASR 转录的原始文本通常:
- 完全没有标点符号(最常见)
- 口语化严重("然后"、"就是说"、"对吧"、"嗯")
- 存在大量 ASR 识别错误
2.1 补充标点
逐段阅读,根据语义和语气补充完整标点:
- 陈述句加句号
- 疑问句加问号
- 列举用顿号或逗号
- 引用加引号
- 注意书名号(中文特有)
2.2 修正 ASR 错误
ASR 对专业术语的识别错误率极高。常见模式:
| 错误类型 | 示例 |
|---|
| 同音替换 | "康复周期" → "康波周期"、"美丽时钟" → "美林时钟" |
| 人名误识 | "包贝尔" → "鲍威尔"、"吴京" → "吴清" |
| 机构名 | "道具部门" → "政府效率部(DOGE)" |
| 术语误读 | "心智生产力" → "新质生产力" |
| 音译名 | "布伦森森林" → "布雷顿森林" |
修正策略:
- 根据上下文语境判断正确术语
- 同一术语在全文中统一修正
- 不确定的标注
[?] 供人工复查
- 外国人名首次出现时附注原文:如"鲍威尔(Jerome Powell)"
2.3 口语→书面语转换
| 口语特征 | 处理方式 |
|---|
| 语气词("嗯"、"啊"、"对吧") | 删除 |
| 重复表述 | 保留表意最清晰的一次 |
| 口头禅("就是说"、"然后呢") | 删除或替换为书面连接词 |
| 散乱长句 | 拆分为短句,调整语序 |
| 口语化词汇 | 替换("搞" → "推行"、"弄" → "实施") |
注意:保留讲者的分析风格和个人特色,不要过度书面化。比喻、类比、生动表达应当保留。
第三步:结构化组织
3.1 识别主题段落
阅读清洗后的全文,识别:
- 话题转换点(讲者说"接下来我们聊..."、"第二个问题是...")
- 自然的逻辑分界
- 独立完整的论述单元
3.2 构建层级结构
# 章标题(对应整个视频/讲座的主题)
> 章首引言(提炼全章最核心的一句话)
## 节标题(对应一个完整话题)
### 小节标题(对应话题下的子论点)
正文段落...
---
*来源:视频标题或原始文件名*
命名规范:
- 章标题:概括性强,如"多重周期叠加:为什么经济比较困难"
- 节标题:对应一个完整话题,如"朱格拉周期:投资驱动的 9-10 年波动"
- 小节标题:对应具体论点,如"资本边际效率递减的直觉"
3.3 添加章首引言
每章开头添加一段 blockquote 引言:
- 从正文中提炼最精彩、最有概括力的一句话
- 或由讲者的核心观点凝练而成
- 控制在 1-2 句话
第四步:质量检查
第五步:输出
根据用户需求选择输出格式:
Markdown(默认):直接输出结构化 .md 文件
LaTeX:转换为 LaTeX 格式
# → \chapter{}
## → \section{}
### → \subsection{}
- blockquote →
\begin{quote}...\end{quote}
- 来源 →
\source{}(自定义命令)
- 百分号等特殊字符需转义
多文件合并:当多个 SRT 文件属于同一主题时
- 按逻辑顺序排列
- 合并为统一章节结构
- 去除重复内容(同一讲者在不同场次可能重复相同论点)
处理特殊内容类型
对话/访谈节目
- 保留说话人标识:
**主持人**:、**嘉宾A**:
- 对话格式不拆分为段落,保留问答节奏
直播问答
- 问题用粗体或引用格式标出
- 回答按主题归类,而非按时间顺序
系列讲座
性能建议
- 单个 SRT 文件通常 2000-5000 行,可直接读取处理
- 超过 10 个文件时,使用 Agent 工具并行处理
- 大型项目(50+ 文件)建议先用脚本批量清洗,再逐章精修
示例
输入(SRT 原文,无标点):
1
00:00:01,000 --> 00:00:03,500
今天我们来聊一聊经济周期
2
00:00:03,500 --> 00:00:07,000
很多朋友问经济到底什么时候能变好
3
00:00:07,000 --> 00:00:11,500
要回答这个问题绕不开经济周期理论
输出(结构化 Markdown):
## 经济周期理论:分析的钥匙
很多朋友问:经济到底什么时候能变好?要回答这个问题,绕不开经济周期理论。