字幕のタイミングはなぜずれるのか
タイミングのずれは物理的な測定の問題であり、ツールの手抜きではありません。何がキューを動かすのか、なぜ再文字起こしが悪化させるのか、強制アラインメントがどう解消するのかを説明します。
字幕を作り終えたのに、クリップの終盤では全体が0.5秒早い——そんな経験があれば、それが「ずれ」です。字幕ツールへの最も多い不満であり、世の中のほとんどの説明は同じ点で間違っています。症状をバグとして語るのですが、実際には算数の問題です。
ずれは品質ではなく測定の問題
字幕ファイルは、キューごとにひとつの主張をしています。この言葉はこの時刻とこの時刻の間に発話された、という主張です。作るには、発話の開始と終了を測る必要があります。
測定を難しくする要因が二つあります。
連続した発話には、もともと隙間がありません。 ナレーションでは文の境界はイントネーションで示され、無音では示されません。無音で区切る認識器は、節の途中に境界を置いたり、二文をひとつのキューに押し込んだりします。
画面に出したい文字は、ファイルの中の音ではありません。 人は 2016 を「にせんじゅうろく」と読み、Mr. を「ミスター」と読み、声に出したことのない名前も読みます。音声しか聞けないシステムは綴りを推測するしかなく、推測が台本と食い違うたびに、文字がタイミングに対してずれます。
キュー1本あたりのずれはたいてい小さいものです。ファイルを壊すのは累積です。12秒ごとに40ミリ秒ずれれば、20分の動画の終わりには9秒の遅れになります。
再文字起こしが悪化させる理由
既定の流れはこうです。音声認識を走らせ、時刻付きの単語を得て、SRTに整形し、人間が文字を直す。
問題は最後の工程にあります。聞き間違えた Alignesert を AlignSRT に直す——より長い文字列で、行内の位置も違います。プラットフォームはキューを折り返し直します。折り返しが変われば、同じ表示時間に入る文字数が変わり、次のキューは古い折り返しを前提に組まれていたのに、その前提が崩れます。3分の地点で一語直せば3分の境界が動き、それを40回やれば、ファイルは終盤で目に見えてずれます。
文字の修正とタイミングの修正は同じ編集作業なのに、この流れはそれらを別々の工程として扱っています。
強制アラインメントは問いを入れ替える
強制アラインメントは問題を反転させます。「どの言葉が話されたか」を問いません。それはもう分かっています——台本が手元にあるからです。問うのはこうです。この正確なテキストとこの音声が与えられたとき、各単語はどこにあるのか。
アライナーはテキストから音素列を組み、その列に最もよく一致する経路を音声の中で探します。単語の並びは台本で固定されているので、推測すべき綴りはなく、後から直す文字もありません。画面に出る文字は書いた文字そのままで、タイミングはそこから導かれます。
実務上の帰結は三つです。
- 人名・ブランド・専門用語が構造的に正しい。 それらは聞かれたのではなく、与えられたからです。
- 折り返しの再計算が不要。 文字を直しても境界は動きません。文字は入力であって、直すべき出力ではないからです。
- 不確かさが局所的で見える。 良いアライナーは行ごとの信頼度を返すので、疑わしい5行を見ればよく、400行を抜き取り検査する必要はありません。
それでもあなたのせいになる唯一のケース
強制アラインメントは、音声と台本が同じことを言っていると前提します。ナレーションを録り直した、編集で一行削った、話者がその場で言い換えた——その場合アライナーは、音声と合わない台本を突き合わせる必要があり、その区間を低い信頼度で置くか、明示的に印を付けます。
これは実際の制約で、アップロード前に知っておく価値があります。アラインメントの精度の上限は、録音がテキストにどれだけ忠実かで決まります。やらないのは、それらしい言葉を黙ってでっち上げて穴を埋めることです。
30秒でファイルを確認する
納品前に、ずれが最初に現れる二箇所を見ます。
- 最も長い連続区間の最後のキュー。 そこで遅れていれば、何かが累積しています。
- 固有名詞を含む行。 名前が書いた通りに綴られていればテキスト駆動のアラインメントです。機械が聞いた通りに綴られていれば、それはアラインメントの看板を掲げた文字起こしです。
このサイトでは30分のアラインメントが無料です。デモではなく実際のファイルで両方の確認を走らせるのに足ります。