smacke/ffsubsync
Automagically synchronize subtitles with video.
해결하는 문제
FFsubsync는 자막을 비디오 또는 오디오 파일과 자동으로 동기화하여 자막이 올바른 시작 지점에 나타나고 말하는 대화와 일치하도록 보장하는 언어 중립적 도구입니다.
작동 방식
이 도구는 자막과 오디오를 정렬하기 위해 3단계 프로세스를 사용합니다:
- 이산화(Discretization): 오디오 스트림과 자막을 모두 10ms 단위의 윈도우로 분할합니다.
- 음성 감지(Speech Detection): 각 윈도우에 음성이 있는지 여부를 결정합니다. 자막의 경우 자막이 활성화되어 있는지 여부를 기준으로 하며, 오디오의 경우 WebRTC 또는 Silero VAD와 같은 음성 활동 감지기(VAD)를 사용합니다.
- 정렬(Alignment): 음성 패턴을 이진 문자열로 취급하고 고속 푸리에 변환(FFT)을 사용하여 정렬함으로써 최적의 오프셋을 효율적으로 찾아내며, 복잡도를 O(n^2)에서 O(n log n)으로 줄입니다.
대상 사용자
콘텐츠 언어와 관계없이 자막이 비디오 파일과 맞지 않는 사용자 및 자막 파일의 일괄 동기화가 필요한 사용자에게 적합합니다.
주요 특징
- 유연한 참조: 비디오/오디오 파일 또는 이미 올바르게 동기화된 다른 자막 파일을 기준으로 동기화합니다.
- 브라우저 기반 버전: ffmpeg.wasm를 사용하는 클라이언트 측 동기화 도구를 제공하여 파일이 사용자의 컴퓨터를 떠나지 않습니다.
- 강력한 인코딩 지원: 충돌을 방지하기 위해 레거시 문자 인코딩(예: Windows-1251, GBK)을 자동으로 감지합니다.
- 고급 동기화 옵션: 광고 편집과 같은 파일 중간의 끊김을 처리하기 위한 실험적인 분할 정렬 모드(
--split-penalty)를 포함합니다. - 통합: 명령줄 도구, Docker 이미지 또는 Python 라이브러리로 사용할 수 있습니다.
- Whisper 통합: 기존 자막이 없는 비디오의 참조로 Whisper.cpp 트랜스크립트를 사용하는 것을 지원합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트