smacke/ffsubsync
Automagically synchronize subtitles with video.
解決する課題
FFsubsyncは、字幕をビデオまたはオーディオファイルと自動的に同期させ、字幕が正しい開始地点に表示され、話されている対話と一致するようにする、言語に依存しないツールです。
仕組み
このツールは、字幕とオーディオを整列させるために3段階のプロセスを使用します:
- 離散化: オーディオストリームと字幕の両方を10msのウィンドウに分割します。
- 音声検出: 各ウィンドウに音声が存在するかどうかを判断します。字幕については、字幕がアクティブであるかどうかに基づいて判断し、オーディオについては、WebRTCやSilero VADなどの音声活動検出器(VAD)を使用します。
- 整列: 音声パターンをバイナリ文字列として扱い、高速フーリエ変換(FFT)を使用してそれらを整列させ、最適なスコアのオフセットを効率的に見つけ出します。これにより、計算量は O(n^2) から O(n log n) に削減されます。
対象ユーザー
コンテンツの言語に関係なく、ビデオファイルと字幕の同期がずれているユーザーや、字幕ファイルのバルク同期を行う必要があるユーザーに適しています。
ハイライト
- 柔軟なリファレンス: ビデオ/オーディオファイル、または正しく同期された別の字幕ファイルに対して同期します。
- ブラウザベースのバージョン: ffmpeg.wasmを使用したクライアントサイドの同期ツールを提供するため、ファイルがユーザーのコンピュータから離れることはありません。
- 堅牢なエンコーディング: クラッシュを防ぐために、レガシーな文字エンコーディング(例:Windows-1251、GBK)を自動的に検出します。
- 高度な同期オプション: 広告による中断のようなファイル中盤の区切りを処理するための、実験的な分割整列モード(
--split-penalty)が含まれています。 - 統合: コマンドラインツール、Dockerイメージ、またはPythonライブラリとして使用できます。
- Whisper統合: 既存の字幕がないビデオの参照として、Whisper.cppのトランスクリプトを使用することをサポートしています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト