GPT Image 2.5 Flare & Sunburst が EvoLink で利用可能にGPT Image 2.5 を試す
音声波形に沿って位置を合わせた金属製の字幕バー
活用事例

字幕のタイミングを直す方法:全体のずれ・徐々に広がるずれ・局所的な誤差

EvoLink Team
EvoLink Team
製品チーム
2026年10月16日
10 分

字幕が二秒早く出るので後ろへ移動したところ、冒頭は合っても末尾は合わない。字幕のタイミング修正では、まず誤差の変化を測ります。

冒頭・中盤・末尾で、同じ発音の字幕時刻と音声時刻を記録します。 差が一定なら平行移動、徐々に変わるなら時間倍率、編集点で急変するなら局所的な調査が必要です。

実際の納品動画で字幕時刻を測る

元字幕を保存し、確認中の動画版を固定します。はっきりした単語を選び、両方で同じ出来事を比較します。字幕の終了と発話全体の開始を混ぜて測らないようにします。

以下は架空の参照点で、ファイル先頭からの秒数です。

参照点字幕時刻s実測音声時刻v差v−s
冒頭1012+2
中盤110114+4
末尾210216+6

誤差は増えています。二秒を足すだけでは、冒頭は合っても末尾は四秒早いままです。これは時間線の対応例であり、字幕を発音よりどれだけ先行させるかという可読性の基準ではありません。時間の対応を直してからプロジェクトの表示規則を適用します。

全体移動・倍率補正・区間修正を選ぶ

形態最初の方法確認対象
各点の差がほぼ一定全字幕の開始・終了を同じ量移動ファイルの起点、書き出しオフセット
差がほぼ直線的に変化二点で対応を作り、第三点を検証時間倍率の違い。フレームレートと断定しない
編集後に急にずれる影響区間を分けて再配置素材の増減、異なる編集版
一部の単語だけ不正該当区間を音声に再対応認識境界、音声アラインメント
Subtitle Editの公式文書には全体の時刻調整とポイント同期があります。測定後に対応する機能を選びます。プレーヤー上の一時的な遅延調整は視聴用であり、納品には字幕ファイルの修正と保存が必要です。

二つの参照点から補正を計算する

字幕時刻sから補正時刻vへの変換をv=a×s+bとします。冒頭と末尾から次の関係になります。

a = (216 - 12) / (210 - 10) = 1.02
b = 12 - 1.02 * 10 = 1.8
v = 1.02 * s + 1.8
中盤の確認: 1.02 * 110 + 1.8 = 114

この例では中盤も一致します。別の動画で第三点が一致しなければ全体変換は不適切です。二点なら必ず直線が引けるため、計算に使っていない位置の確認が重要です。

開始・終了の両方へ同じ変換を適用します。10–12秒の字幕は12–14.04秒になります。次のJavaScriptは秒数を処理し、その後SRTやVTTの書式へ変換します。

function retimeCue(cue, a, b) {
  if (!Number.isFinite(a) || a <= 0 || !Number.isFinite(b)) {
    throw new Error("Invalid timing transform");
  }
  const start = Math.round((a * cue.start + b) * 1000) / 1000;
  const end = Math.round((a * cue.end + b) * 1000) / 1000;
  if (!Number.isFinite(start) || !Number.isFinite(end) || start < 0 || end <= start) {
    throw new Error("Invalid cue interval");
  }
  return { ...cue, start, end };
}

負の時刻を黙ってゼロにせず、確認対象にします。変換と丸め後の重複も調べます。複数話者の字幕では重なりが意図的な場合もあるため、自動削除せず一覧化します。

AIには測定値を整理させる

提供した字幕と動画の参照時刻を分析してください。
一定のずれ、ほぼ直線的なずれ、区間の不連続、資料不足に分類します。
実測値だけを使ってください。
v=a*s+bを提案するなら、使用した二点と未使用点での確認を示します。
媒体情報なしにフレームレートが原因と断定しないでください。
字幕IDと文字を変えず、変換、残差、対象区間、書き出し検査を返します。
単語時刻は捏造しません。
入力:動画版、字幕、実測参照点、表示規則。
EvoLink Gemini 4ページのAgentまたはAPIで測定表を送れます。計算とファイル検査は確定的なコードで行い、モデルには形態や不足測定を整理させます。文字依頼だけで録音を聴き、新たな参照点を得ることはできません。

まず本文の三つの実測点を送ります。a=1.02、b=1.8、未使用の中盤点114を確認し、確定後に決定的な関数でコピーを処理して再生確認します。

書き出した字幕を再確認する

ID、言語、本文、話者表示を保ちます。SRTはミリ秒の前がカンマ、WebVTTは小数点です。納品動画と開き直し、三つの参照点、編集境界、短い字幕、重複を確認します。

分割文字起こしは、各区間の起点を足して元ファイルの全体時刻に戻してから補正します。局所時刻のまま変換すると別の誤差になります。一部だけ違うなら区間と変換を記録し、正しい部分は引き延ばしません。

抜けや重複した発言は時刻計算では直せません。文字起こしへ戻ります。単語アラインメントは音声を読み、対象言語に対応する道具で行い、結果を抽聴します。ミリ秒表示は正確な単語位置の証明にはなりません。

元ファイル、測定点、変換、出力、再生確認を残します。用語の誤記は用語集による校正で扱います。

よくある質問

正の差は足しますか、引きますか?

本文では音声時刻−字幕時刻です。正なら字幕を後へ移します。道具ごとの符号規則も確認します。

一定の移動で徐々に広がるずれを直せますか?

一か所は合いますが、変化するずれには検証済み倍率か区間調整が必要です。

ずれの増加はフレームレートの証拠ですか?

断定できません。媒体情報と編集履歴も確認します。

焼き込み字幕も同じ方法ですか?

外部字幕ファイルは編集できますが、映像に描画済みの文字には別の動画編集が必要です。

文字起こし時刻へ同じ式を使えますか?

同じ元時間線との関係が成立する場合だけです。分割起点を戻し、既知点で確認します。

出力後はどこまで確認しますか?

参照点、編集境界、指摘区間を最低限確認し、納品要件に応じて抽出範囲を広げます。

参考資料

統一APIでAIモデルを利用する

モデルの機能と現在の料金を比較し、APIドキュメントに沿って用途に合うモデルを組み込みましょう。