LRC を SMI に変換
字幕テキストを貼り付けることもできます
オプション
元のファイルに終了時刻がない場合(プレーンテキストや LRC)に使います。出力の時間軸は変換ではなくここで生成されるため、この値がそのまま表示時間になります。
この変換で変わること
1 項目が失われるか、判断が必要です
- タイミング
字幕の終了時刻(元の形式が記録していないため、出力側は変換ではなく生成されます)
この一覧は、読み込んだファイルではなく、この2つの形式の機能対応表から作られています。形式としては許されているが対応表が扱っていない機能を使っている場合、そのファイルではさらに多くが失われることがあります。
LRC の字幕を SMI に変換するページです。ファイルをドラッグするか、テキストを貼り付けてください。SMI 版がその場で返ります。変換はすべてブラウザ内で完結するため、アップロードはなく、アカウントも要りません。
この二つの形式は保存できるものが違い、その差は見た目だけではありません。終了時刻の置き場所が SMI にありません。上の一覧はファイルの内容ではなく、二つの形式がそれぞれ表現できるものから作られます。そのため、ファイルを読み込む前から答えは同じです。
1 ファイルでも、シーズン全体でも構いません。キューが順番に処理し、結果は 1 つの ZIP にまとめてダウンロードできます。
例
LRC の典型的なファイルを SMI に変換
入力
[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.出力
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=12000>
<P>First line of the song.
<SYNC Start=15300>
<P>
<SYNC Start=15300>
<P>Second line.<br>Second line, translated.
<SYNC Start=18000>
<P>
<SYNC Start=18000>
<P>
<SYNC Start=21500>
<P>
<SYNC Start=21500>
<P>Final line.
<SYNC Start=23500>
<P>
</BODY>
</SAMI>
この出力で失われるのは終了時刻です。それ以外は行単位で一致します。
同じ変換を、乱れた入力で行う
入力
[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]出力
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=3000>
<P>Out of order.
<SYNC Start=5500>
<P>
<SYNC Start=5500>
<P>Leading zero omitted, one decimal.
<SYNC Start=7000>
<P>
<SYNC Start=7000>
<P>Second with no centiseconds.<br>Repeated chorus line.
<SYNC Start=9000>
<P>
<SYNC Start=9000>
<P>Repeated chorus line.
<SYNC Start=12000>
<P>
<SYNC Start=12000>
<P>
<SYNC Start=14000>
<P>
</BODY>
</SAMI>
実在するファイルによくある損傷です。混在した改行コード、余分な空白、空のフィールド。上の整った例と比べると、パーサーがどこまで許容するかが分かります。
よくある質問
LRC の各字幕の終了時刻は SMI でどうなりますか?
LRC は行が始まる時刻だけを記録し、終了時刻は持ちません。歌詞プレイヤーは次の行が始まるまでその行を出し続けるため、終了時刻は冗長だからです。LRC の終了時刻はすべて落ち、開始時刻はそのまま残ります。
LRC を SMI に変換すると、出力はどんな形になりますか?
出力は SMI です。字幕番号もタイムコード行もなく、各字幕は <SYNC Start=…> タグとその下の <P> になります。SYNC は画面の内容を置き換えるため、画面を空に戻す <P> </P> のブロックが直後に入ります。LRC の各字幕ブロックは、同じ順序・同じ本文のまま 1 つの字幕になります。
LRC の 2 行の字幕は SMI でどう出力されますか?
間に <br> が入る 2 行になります。SAMI が強制改行を書く記法です。2 行が 1 つの字幕に属するという対応は残り、プレイヤーはまとめて表示します。
LRC の字幕の順序は SMI でも保たれますか?
はい。変換の途中で開始時刻の昇順に並べ替えます。最も早いものが先頭で、どの形式もプレイヤーもその順序を前提にしています。LRC の字幕が順不同だった場合、SMI では順序が直ります。これは内容ではなくファイル構造の変更で、意図した動作です。
SMI を LRC に戻す変換はできますか?
できます。ただし逆方向には独自の損失一覧があります。SMI から LRC への変換では終了時刻・スタイル・画面位置・精度・形式固有の内容が失われます。上の一覧と違うのは、二つの形式が保存できるものが違うからです。
LRC から SMI への変換で文字コードは引き継がれますか?
いいえ。出力は UTF-8、改行コードは LF、BOM なしです。入力が UTF-16 や Windows のシングルバイト文字コードでも、読み込み時にデコードされます(その場合は結果パネルに表示されます)。出てくるのは常に同じ UTF-8 の SMI です。