Chuyển LRC sang JSON
Hoặc dán văn bản phụ đề
Tùy chọn
Dùng khi nguồn không có thời điểm kết thúc (văn bản thuần, LRC). Dòng thời gian trong kết quả được tạo ra ở đây chứ không phải được chuyển đổi, nên đây chính là con số bạn nhận được.
Chuyển đổi này thay đổi điều gì
1 thứ bị bỏ hoặc cần một quyết định
- Mốc thời gian
thời điểm kết thúc của cue — nguồn không ghi chúng, nên thời điểm của kết quả sẽ được tạo ra chứ không phải được chuyển đổi
Danh sách này đến từ ma trận năng lực của hai định dạng này, không phải từ tệp cụ thể bạn đã tải lên. Một tệp cụ thể có thể mất nhiều hơn nếu nó dùng các tính năng mà định dạng cho phép nhưng ma trận không mô hình hóa.
Trang này chuyển LRC sang JSON. Bạn thả tệp vào hoặc dán văn bản, rồi nhận lại phiên bản JSON. Quá trình chạy trong trình duyệt: không tải tệp lên máy chủ và không cần tài khoản.
Hai định dạng không lưu cùng một thứ: LRC chỉ ghi lúc một dòng bắt đầu, không có mốc kết thúc, còn JSON cần cả start và end cho mỗi cue. Khoảng thời gian còn thiếu phải được suy ra, và đó là mất mát được liệt kê phía trên.
Một tệp hay cả album đều được: hàng đợi xử lý lần lượt và trả kết quả về cùng một tệp ZIP.
Ví dụ
Một tệp LRC điển hình, chuyển sang JSON
Đầu vào
[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.Kết quả
{
"version": 1,
"title": "Sample Song",
"cues": [
{
"start": 12000,
"end": 15300,
"lines": [
"First line of the song."
]
},
{
"start": 15300,
"end": 18000,
"lines": [
"Second line.",
"Second line, translated."
]
},
{
"start": 18000,
"end": 21500,
"lines": [
""
]
},
{
"start": 21500,
"end": 23500,
"lines": [
"Final line."
]
}
]
}
Bị mất trong kết quả: thời gian. Phần còn lại khớp từng dòng.
Cùng phép chuyển đổi với một tệp lộn xộn
Đầu vào
[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]Kết quả
{
"version": 1,
"cues": [
{
"start": 3000,
"end": 5500,
"lines": [
"Out of order."
]
},
{
"start": 5500,
"end": 7000,
"lines": [
"Leading zero omitted, one decimal."
]
},
{
"start": 7000,
"end": 9000,
"lines": [
"Second with no centiseconds.",
"Repeated chorus line."
]
},
{
"start": 9000,
"end": 12000,
"lines": [
"Repeated chorus line."
]
},
{
"start": 12000,
"end": 14000,
"lines": [
""
]
}
]
}
Đây là kiểu hỏng thật của tệp lời nhạc — tag metadata lẫn với lời, mốc không đều, dòng trống. So với ví dụ gọn ở trên để thấy bộ phân tích bỏ qua được gì.
Câu hỏi thường gặp
Trường end trong JSON được tính thế nào khi nguồn là LRC?
Lấy start của cue kế tiếp; cue cuối cộng 2000 ms. LRC không có end, nên đây là giá trị suy ra và là phần thời gian bị mất được liệt kê phía trên.
JSON xuất ra từ LRC chứa những trường gì?
Một mảng cues, mỗi cue có start, end và mảng lines. Cue từ LRC không mang id vì LRC không có số thứ tự; metadata của LRC không được chuyển thành trường riêng.
Mốc thời gian LRC khi sang JSON có chính xác đến mili giây không?
Có. LRC ghi [00:04.12] và JSON ghi 4120; [01:23.45] thành 83450. Không mất phần lẻ nào, vì LRC chỉ có hai chữ số thập phân nên giá trị luôn là bội số của 10 ms.
Cùng một mốc có nhiều dòng LRC thì thành gì trong JSON?
Chúng thành một cue với mảng lines gồm nhiều phần tử. Cách này giữ được ý nghĩa nhóm của LRC, khác với việc tách thành nhiều cue có cùng start.
Tag [ti:] và [ar:] của LRC có thành trường trong JSON không?
Không. Chúng là metadata của tệp lời nhạc, không phải cue, nên không được chuyển. Nếu cần giữ, một tệp LRC gốc vẫn là nguồn đầy đủ hơn JSON xuất ra.
JSON có giữ thứ tự dòng của LRC không?
Có, các cue được sắp theo start tăng dần. Nếu tệp LRC gốc đặt mốc lộn xộn, JSON xuất ra sẽ được xếp lại; nội dung từng dòng không đổi.