このプロジェクトについて
FFsubsyncは、字幕を動画や参照字幕ファイルと自動的に同期するための、言語に依存しないコマンドラインツール、Pythonライブラリ、およびブラウザベースのユーティリティです。テキストのタイミングをマルチメディアファイル内の正しい開始点に合わせます。
### 仕組み
コアとなる同期アルゴリズムは、主に3つのステップで動作します:
1. 動画ファイルの音声ストリームと字幕の両方を10ミリ秒のウィンドウに離散化します。
2. 各ウィンドウに音声が含まれているかどうかを判定します。字幕は直接解析され、音声ストリームはWebRTCに組み込まれたものなど、既製の音声アクティビティ検出器(VAD)を使用して分析されます。
3. 高速フーリエ変換(FFT)畳み込みアプローチによるマッチ数の最大化を通じて、結果として得られるバイナリ文字列をアライメントし、計算量をO(n log n)にまで削減します。
### 主な特徴
- **複数の参照タイプ:** 動画ファイル、音声ファイル、正しく同期された参照字幕ファイル(.srt)、またはリモートURLと同期できます。
- **ブラウザベース版:** WebAssembly(ffmpeg.wasm)を介してインストールなしで完全にクライアント側で実行でき、ファイルがローカルに留まることが保証されます。
- **堅牢なエンコーディング検出:** 複数のフォールバック検出器を使用して、レガシーな字幕テキストのエンコーディング(Windows-1251、GBK、Shift-JIS、BOM付きUTF-16など)を自動的に推測します。
- **高度な同期オプション:** フレームレート補正、黄金分割探索の比率、ファイル途中のカットに対応する区分的アライメント(`--split-penalty`)、代替VADバックエンド(Auditok、Silero/PyTorch)をサポートします。
- **Dockerサポート:** GitHub Container Registryを通じてプリビルド済みコンテナイメージが利用可能です。
- **PythonライブラリAPI:** カスタム進捗コールバック付きでプログラムから呼び出すことができます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.