メインコンテンツへスキップ
SubtitleMatrix

字幕の重なりを検出

品質チェック重なっている字幕
字幕テキストを貼り付けることもできます

オプション

タイミングを数える基準のフレームレートです。形式のページでは MicroDVD が必要とする値で、同形式は時間をフレーム番号で保存します。フレームレートのページでは、そのファイルがどのレートを前提に作られたか(字幕が合わせて作られた版)を指し、ページの2つ目の欄には実際に使う動画のレートを入れます。よく使われるのは 23.976、24、25、29.97、30、50、59.94、60 です。間違えると時間軸全体がずれます。フレームレートのページでは、ずれは固定量ではなく比率で生じます。

字幕の重なりとは、前の cue が終わる前に次の cue が始まり、2 つが同じ画面を共有している状態です。この頁はそうした箇所を 1 件ずつ見つけ、2 つの cue が何ミリ秒重なっているかを報告します。ファイルは書き換えません。元のファイルはそのまま残り、返ってくるのは PDF または CSV でダウンロードできるレポートです。

重なりは、それだけで誤りというわけではありません。2 人が言葉をかぶせている場面、手作業でタイミングを直した箇所、別の形式から変換した字幕では重なりが生まれますし、意図的なものもあります。それでも一覧にする価値があるのは、プレーヤーは同じ瞬間に 2 つの cue を同じ場所へ描けないからです。実際に何が見えるかはプレーヤーが決めてしまい、ファイルに書かれている内容と一致するとは限りません。見るべき数字は共有しているミリ秒数です。400 ms の重なりはちらつきに見えますが、数秒に及ぶと、どこか別の場所から cue を貼り間違えた可能性が高くなります。

このレポートは、検査できなかったことも書きます。終了時刻を持たない形式は重なりを測れませんし、終了が開始より前にある cue は読み込み時に修復されます。その修復は検出行とは別に、レポートの先頭に記録されます。問題のないファイルでもレポートは出ます。「検査したが何も見つからなかった」と「検査できなかった」は別の文であり、この頁はその 2 つを混ぜません。処理はすべてブラウザ内で完結し、シーズン全体をまとめてキューに流すこともできます。

例

1 秒を共有する 2 つの cue

字幕

1
00:00:01,000 --> 00:00:04,000
First line.

2
00:00:03,000 --> 00:00:06,000
Second line, starting early.

レポートが検出するもの

Overlapping cues — 1 found

Severity   Cues   Start          End            Measured
Error      1, 2   00:00:03.000   00:00:04.000   1000 ms

2 番目の cue が、1 番目がまだ画面にあるうちに始まっています。測っているのは共有している区間、つまり 1 番目の終了から 2 番目の開始までであり、どちらかの cue の長さではありません。

接している cue は重なりではない

字幕

1
00:00:01,000 --> 00:00:02,000
First line.

2
00:00:02,000 --> 00:00:03,000
Second line, touching.

レポートが検出するもの

Overlapping cues — Nothing found

Checks run   1
Cues         2

2 番目の cue は 1 番目が終わったのと同じミリ秒に始まっています。これは正しいタイミングなので何も報告されませんが、レポートには検査が実行されたことが残ります。これは検査できなかったファイルとは別の状態です。

長い cue の内側に入れ子になった cue

字幕

1
00:00:00,000 --> 00:00:10,000
Long opening line.

2
00:00:01,000 --> 00:00:02,000
Nested inside it.

3
00:00:03,000 --> 00:00:04,000
Also nested inside it.

レポートが検出するもの

Overlapping cues — 2 found

Severity   Cues   Start          End            Measured
Error      1, 2   00:00:01.000   00:00:02.000   1000 ms
Error      1, 3   00:00:03.000   00:00:04.000   1000 ms

短い 2 つの cue はどちらも長い cue と重なっており、互いには重なっていません。比較の相手は直前の cue ではなく、それまでに到達した最も遅い終了時刻です。だから直前の cue が届いていなくても、2 つ目の短い cue は検出されます。

よくある質問

この頁では、どのような状態を字幕の重なりと判定しますか?

開始時刻が、ファイル内でそれまでに到達した最も遅い終了時刻より前にある cue です。単に接しているだけの cue、たとえば 00:00:04,000 に終わる cue と 00:00:04,000 に始まる cue は重なりではなく、一覧にも出ません。1 ミリ秒の重なりは重なりなので報告されます。

この検査は字幕ファイルを書き換えますか?

いいえ。ファイルを読んでレポートを出すだけで、タイムコードは 1 つも書き換えません。重なりを取り除くのは別のツールです。検査と修復を分けておくと、渡したレポートが、この頁がすでに編集した版ではなく、元のファイルについての記述になります。

重なっている時間はどうやって計算されますか?

後から始まる cue の開始から、2 つの終了時刻のうち早いほうまでをミリ秒で測ります。長い cue の完全な内側にある cue なら、その cue の全体が重なりです。比較は直前の cue ではなく、それまでに到達した最も遅い終了時刻に対して行うため、同じ瞬間に 3 つの cue が重なれば検出は 2 件になります。

どの字幕形式を重なり検査に使えますか?

開始と終了の両方を持つ 10 形式です。SRT、WebVTT、ASS、SSA、SBV、SMI、MicroDVD、TTML、JSON、CSV が該当します。LRC とプレーンテキストは 1 行につき 1 つの時刻しか持たないため比較できず、先に変換する必要があります。

ダウンロードするレポートには何が含まれますか?

ファイル名、読み込んだ形式、cue 数、フレームを持つ形式ならフレームレートを記したヘッダー、読み込み中に修復した箇所の行、そして検査ごとの節があります。各検出には cue 番号、両方のタイムコード、測定したミリ秒数が入ります。同じ内容を、読むための PDF と、表計算で並べ替えるための CSV の両方で用意します。

重なりがあるのに、再生すると問題なく見えるのはなぜですか?

同じ瞬間に 2 つの cue が来たとき、何を描くかを決めるのはプレーヤーであり、その判断はファイルの中にはありません。後の cue を出すもの、積み重ねるもの、位置指定のある cue が目立たない隅に収まることもあります。レポートが示すのはファイルに実際に書かれている内容であり、それが直せる対象です。

シーズン全体を一度に検査できますか?

できます。複数のファイルをまとめて投入すると 1 つずつ検査され、それぞれにレポートが付きます。レポートは zip にまとめてダウンロードでき、進捗はファイル単位で表示され、途中で停止しても余計なものが残りません。

関連ツール