AI大模型分析电影写微小说项目:字幕文件清理工具 - Subtitle Cleaner

一个简单高效的Python工具,用于清理ASS和SRT字幕文件,提取纯文本台词,去除所有格式标记、时间码和特效代码。

🎯 项目简介

在日常的视频处理、字幕制作或文本分析工作中,我们经常需要从字幕文件中提取纯文本内容。然而,原始的字幕文件包含大量的格式信息(如时间码、样式定义、特效代码等),这些信息会干扰我们对纯文本内容的使用。这个工具可以自动批量处理ASS和SRT字幕文件,提取干净的台词文本。

✨ 主要功能

  • 支持多种格式:自动识别并处理ASS和SRT两种主流字幕格式
  • 智能清理
    • ASS文件:去除[Script Info][V4 Styles]Format:等格式信息
    • SRT文件:去除序号、时间码行(如00:00:24,290 --> 00:00:27,700
    • 通用处理:去除所有花括号内的特效代码(如{\3c&HFF8000&}
  • 批量处理:一键处理整个文件夹中的所有字幕文件
  • 编码兼容:自动检测并处理UTF-8、GBK、GB2312、UTF-16等多种编码
  • 保持原结构:按原始文件名生成对应的清理后文件

📁 项目结构

1
2
3
4
5
6
7
8
9
10
subtitle-cleaner/
├── clean_subtitles.py # 主程序文件
├── download_srt/ # (输入)原始字幕文件存放目录
│ ├── video1.ass
│ ├── video2.srt
│ └── ...
└── cleaned_srt/ # (输出)清理后的文本文件目录
├── video1_cleaned.txt
├── video2_cleaned.txt
└── ...

🚀 快速开始

安装要求

  • Python 3.6+
  • 无需安装额外依赖库

使用方法

  1. 准备文件:将所有要处理的ASS和SRT字幕文件放入download_srt文件夹

  2. 运行脚本

    1
    python clean_subtitles.py
  3. 查看结果:清理后的纯文本文件将保存在cleaned_srt文件夹中

运行示例

1
2
3
4
5
6
7
8
9
10
11
12
输入文件夹: download_srt
输出文件夹: cleaned_srt
开始处理字幕文件...
已处理: example.ass -> example_cleaned.txt
生成台词: 5 行
前几句台词:
1. 明朝景泰年间 宦官专权
2. 在京城设立十二监 十三库
3. 四司 八局及二十四衙门
--------------------------------------------------
处理完成!共处理 1 个字幕文件
清理后的文件保存在: cleaned_srt

🔧 技术特点

ASS文件处理逻辑

  1. 只提取以Dialogue:开头的行
  2. 分割并获取第10个逗号后的文本内容
  3. 去除所有{...}格式的特效代码

SRT文件处理逻辑

  1. 跳过纯数字的序号行
  2. 跳过包含-->的时间码行
  3. 保留纯文本台词行,同样去除特效代码

编码处理机制

脚本会自动尝试多种编码格式读取文件:

  • UTF-8
  • GBK
  • GB2312
  • UTF-16

💡 应用场景

  1. 视频内容分析:提取视频对话用于文本分析
  2. 字幕翻译辅助:获取干净文本进行翻译
  3. 学习笔记制作:从教学视频中提取讲解内容
  4. 内容摘要生成:基于字幕文本生成视频摘要
  5. 语音识别校对:对比语音识别结果与原始字幕

📝 代码示例

核心清理函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def clean_srt_content(content):
"""清理SRT字幕文件内容"""
lines = content.split('\n')
cleaned_lines = []
i = 0
n = len(lines)

while i < n:
line = lines[i].strip()

# 跳过序号行和时间码行
if line.isdigit() or '-->' in line:
i += 1
continue

# 保留并清理台词行
if line:
line = re.sub(r'\{[^}]*\}', '', line)
line = line.strip()
if line:
cleaned_lines.append(line)

i += 1

return '\n'.join(cleaned_lines)

🔄 扩展性

项目具有良好的扩展性,可以轻松添加以下功能:

  1. 支持更多字幕格式:如SSA、VTT等
  2. 添加文本后处理:如去除广告词、标准化标点
  3. 集成翻译API:自动翻译提取的文本
  4. 导出多种格式:如JSON、CSV、Markdown

📊 性能特点

  • 高效处理:单文件处理时间通常在毫秒级
  • 内存友好:逐行处理,避免大文件内存溢出
  • 容错性强:单个文件出错不影响其他文件处理
  • 日志详细:实时显示处理进度和结果预览