smacke/ffsubsync
Automagically synchronize subtitles with video.
解決的問題
FFsubsync 是一個語言無關的工具,可以自動將字幕與影片或音訊檔案同步,確保字幕在正確的起始點出現並與所說的對話保持一致。
工作原理
該工具使用三個步驟來對齊字幕與音訊:
- 離散化:將音訊串流與字幕都分解為 10ms 的窗口。
- 語音檢測:確定每個窗口中是否存在語音。對於字幕,這是基於字幕是否處於啟動狀態;對於音訊,它使用語音活動檢測器 (VAD),如 WebRTC 或 Silero VAD。
- 對齊:將語音模式視為二進位字串,並使用快速傅立葉轉換 (FFT) 對其進行對齊,從而高效地找到得分最高的偏移量,將複雜度從 O(n^2) 降低到 O(n log n)。
適用對象
無論內容語言為何,字幕與影片檔案不同步的使用者,以及需要進行字幕檔案批次同步的使用者。
亮點
- 靈活的參考:可以針對影片/音訊檔案或另一個已正確同步的字幕檔案進行同步。
- 基於瀏覽器的版本:提供使用 ffmpeg.wasm 的用戶端同步工具,因此檔案永遠不會離開使用者的電腦。
- 強大的編碼支援:自動檢測遺留字元編碼(例如 Windows-1251, GBK)以防止崩潰。
- 進階同步選項:包括用於處理檔案中間中斷(如廣告剪輯)的實驗性分段對齊模式 (
--split-penalty)。 - 整合性:可以用作命令列工具、Docker 鏡像或 Python 函式庫。
- Whisper 整合:支援使用 Whisper.cpp 轉錄文本作為沒有現有字幕的影片之參考。
相關
- 專案
- 專案
- 專案
- 專案
- 專案