跳到主要内容
SubtitleMatrix

CSV 转 LRC

或者粘贴字幕文本

这次转换会改变什么

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

  • 时间

    字幕条的结束时间(输出格式只记录字幕条何时开始)

  • 精度

    时间精度——输出的时间刻度更粗,因此每个时间戳都会四舍五入到最接近的 10 毫秒

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

这一页把 CSV 转成 LRC,也就是歌词文件。输入一张字幕表,输出一行一句、带方括号时间戳的文本;转换在浏览器里完成,不上传。

丢两样。第一是结束时间:LRC 只记一行从什么时候开始,播放器会让它一直显示到下一条开始,所以每条 CSV 的结束时间都被丢掉,起始时间原样保留。第二是精度:CSV 写到毫秒,LRC 写到百分秒,00:00:04.126 会舍成 [00:04.13]。

一条两行的字幕在 LRC 里写成两行、共用同一个时间戳,这是 LRC 表示“这两句一起出现”的方式。产物按起始时间升序;输入可以是一份,也可以是整季:有表头时按 start、end、text 认列,没有表头时按前三列顺序读。CSV 没有标题字段,所以产物里不会出现 [ti:] 标签,这一点与 SSA 转 LRC 不同。

输出是 UTF-8、Unix 换行、无 BOM。整季可以一次拖入,串行处理,最后打包成一个 ZIP 下载。

示例

一份典型的 CSV 文件转成 LRC

输入

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."

输出

[00:01.00]The quick brown fox.
[00:04.00]Jumps over, the lazy dog.
[00:07.00]Two lines here.
[00:07.00]And a second one.

这份产物丢掉了结束时间与毫秒精度;其余部分逐行一致。

同一转换遇到一份脏文件

输入

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

输出

[00:01.00]Hello there, friend.
[00:05.00]Second line.
[00:10.00]End before start.
[00:12.00]Unquoted comma in text, right here.

真实文件里常见的损坏:混合换行、散落的空白、留空的字段。可以对照上面那份干净样例,看看解析器能容忍到什么程度。

常见问题

CSV 转 LRC 后,每条字幕的结束时间去哪了?

LRC 只记录一行开始的时间,播放器会让它一直显示到下一条开始,所以结束时间是多余的。每条 CSV 的 end 都被丢掉,start 原样保留。

CSV 转 LRC 的时间戳为什么变短了?

LRC 的时间写到百分秒,CSV 写到毫秒。00:00:04.126 会舍成 [00:04.13],单条移动不超过 5 毫秒;顺序不变,也没有一条被拉长。

CSV 转 LRC 的产物长什么样?

像 LRC:没有编号,每行开头是一个方括号时间戳,后面直接跟正文;没有文件头,也不写标题标签。

CSV 转 LRC 后,一条两行字幕怎么表示?

写成两行,共用同一个时间戳。LRC 就是靠“时间相同”来表示这两句属于同一条字幕,播放器会一起显示。

CSV 转 LRC 之后,再转回 CSV 会丢什么?

会丢结束时间。LRC 里根本没有这个值,回程只能按下一行的开始时间或默认时长去补,那份清单和去程这一份不同。

CSV 转 LRC 会写出标题吗?

不会。CSV 没有标题字段,LRC 的 [ti:] 也就没有来源;产物只有时间戳与正文。

相关工具