TXT 转 SRT 字幕转换器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3f3d540b/txt-to-srt 技能,用于将 TXT 字幕文件转换为标准 UTF-8 SRT 格式。
技能介绍
解决什么问题
从字幕组、创作者或遗留工具拿到的字幕文件,往往是 .txt 纯文本而非标准 SRT:编码可能是 UTF-16LE、GBK 或 UTF-8,排版也五花八门——有的带序号块,有的每行以时间戳开头,还有的用方括号包裹时间。直接喂给播放器或后期工具,常出现乱码、时间轴错位甚至完全无法识别。
这个技能的目标是把这类 TXT 字幕清洗、转换成标准 UTF-8 SRT,无需逐个文件排查编码或手动改写格式。
核心能力
- 编码自动识别:脚本自动检测 UTF-16LE / UTF-8 / GBK 等常见编码;东亚字幕社区常见的 UTF-16LE 类 SRT 文本也能透明转换。自动检测失败时可用
--encoding gbk或--encoding utf-16-le手动指定。 - 多排版自动适配:支持三种常见格式:
- 类 SRT 的编号块(最常见)
- 时间戳开头的行
- 方括号包裹的时间戳:结束时间由下一条字幕的开始时间推算,上限 7 秒、最短 1 秒
- 多行文本保留:类 SRT 解析器正确保留多行字幕文本,不合并、不截断。
- 转换诊断报告:转换后输出检测到的编码与格式、字幕块数量、时间范围,以及校验警告(重叠时间轴、过长持续时间、空文本)。
工作流
- 识别输入:读取
.txt前 5–10 行,提前判断格式与潜在问题。 - 执行转换:运行
scripts/convert.py传入输入路径;未指定输出路径时,以.srt替换原扩展名。 - 报告结果:汇报编码、格式、块数、时间范围、警告与输出路径。
- 校验输出(可选):打开生成的
.srt抽查首尾若干块。
适用边界
- 脚本是仅用标准库的自包含 Python 3 实现;环境中若有
chardet会改善编码检测,但不是必需依赖。 - 时间轴重叠只会触发警告,不会自动修复,源文件可能需要手动编辑。
- 若提示「未检测到字幕」,说明排版可能不受支持,需查看文件前 10 行后手动调整解析方式。
- 方括号格式的推算(7 秒上限 / 最短 1 秒)是启发式规则,极端稀疏或密集的字幕可能需要后处理。
使用场景
- 从字幕组拿到GBK编码的TXT对白稿,需要转成UTF-8 SRT交给播放器或剪辑软件使用。
- 手上有UTF-16LE编码的类SRT编号块文本,要清洗为标准UTF-8 SRT再做后续处理。
- 原始字幕的时间戳用方括号包裹,没有结束时间,需要按规则推算并生成标准SRT。
- 转换后发现时间轴重叠或文本为空,需要依据诊断报告定位问题并手动修正源文件。
适合人员
- 本地下载的字幕是乱码TXT,想直接转成UTF-8 SRT在播放器里加载的个人用户。
- 从非标准渠道获取字幕、需要自行清洗格式才能用于剪辑的字幕制作者或剪辑师。
- 维护字幕转换脚本或批量处理字幕文件,需要调用转换脚本并读取诊断报告的开发工程师。
- 从外部社区收集字幕、需要处理多编码多排版TXT文件的字幕组或资源整理者。