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 转录文本作为没有现有字幕的视频的参考。
相关
- 项目
- 项目
- 项目
- 项目
- 项目