跳到主要内容
SubtitleMatrix

TXT 转 CSV

格式转换纯文本稿
或者粘贴字幕文本

选项

当源文件没有结束时间时使用(纯文本、LRC)。输出里的时间轴是在这里生成的,不是转换来的,所以填多少就是多少。

这次转换会改变什么

有 1 项会被丢弃或需要你决定

  • 时间

    时间轴本身——源文件不记录任何时间,因此输出的时间轴是生成的,而不是转换来的

这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。

TXT 没有时间信息,所以 TXT 转 CSV 的起止时间是在这一步生成的:第一行从 0 开始,之后每行接着上一行的结束;每行时长由页面的“时长”参数统一决定,默认 2 秒。

产物是带表头的表格,列依次为 `start,end,text`。时间码写到毫秒,正文里出现逗号、引号、换行或首尾空白时整格会加引号,格内的双引号写成两个,读回来仍是同一格内容;表头固定是第一行,没有额外的元数据或注释行。

有损说明只列一项:时间轴不是文件自带的。CSV 没有样式、定位和卡拉OK字段,但 TXT 里本来也没有这些可丢,所以不会凭空多报。

生成的表适合先落到表格软件里校对,再交给别的工具。多个 TXT 可以一次拖入,串行生成、打包下载;全程在浏览器里,文件不上传,CSV 用逗号分列,适合再导入表格软件或脚本批量处理,时间列与正文列一一对应,行数等于原文的非空行数。

示例

一份典型的 TXT 文件转成 CSV

输入

The quick brown fox jumps over the lazy dog.

Second paragraph, first line.
Second paragraph, second line.

输出

start,end,text
00:00:00.000,00:00:02.000,The quick brown fox jumps over the lazy dog.
00:00:02.000,00:00:04.000,"Second paragraph, first line."
00:00:04.000,00:00:06.000,"Second paragraph, second line."

这份产物丢掉了时间轴(它由本站排定);文字按行进入 `text` 列,顺序不变。

同一转换遇到带 BOM 与空行的 TXT

输入


Hello world.

Second block.

输出

start,end,text
00:00:00.000,00:00:02.000,Hello world.
00:00:02.000,00:00:04.000,Second block.

真实文件常带 BOM、Windows 换行、前后空白和多层空行。可以对照上面那份干净样例,看看解析器能容忍到什么程度。

常见问题

TXT 转 CSV 的时间列是怎么来的?

是生成的。第一行从 0 开始,之后每行接着上一行的结束,每行长度由“时长”参数决定;TXT 里没有任何原始时间可以转换,所以有损说明会点明这一项。

TXT 转 CSV 每行默认给多长时间?

默认 2000 毫秒,也就是 2 秒。参数对所有行生效,所以三行文本会得到 0–2 秒、2–4 秒、4–6 秒三个槽位。

TXT 转 CSV 的表头有哪几列?

固定三列:`start`、`end`、`text`。起始与结束用 `00:00:00.000` 形式的毫秒时间码,正文放在第三列。

TXT 转 CSV 时空白行会变成空记录吗?

不会。空白行只作段落分隔,不生成记录;每条非空行对应一行表格,所以产物里没有只有时间的空行。

TXT 转 CSV 的正文里有逗号或引号怎么办?

按 CSV 规则转义:含分隔符、引号、换行或首尾空白的格子整体加双引号,格内的双引号写成两个。这样逗号不会被误当成列分隔符,读回来仍是同一段文字。

TXT 转 CSV 的输出用什么编码和换行符?

输出固定是 UTF-8、Unix 换行符、不带 BOM。输入 TXT 若是别的编码,会先解码并在结果面板里说明。

相关工具