잘못된 형식의 이미지 링크입니다.
https://github.com/smacke/subsync
동영상의 음성을 분석한뒤, 자막 싱크를 음성에 딱 맞게 바꿔줍니다. 장점은 언어와 관계 없이 작동한다네요. 데모용이긴 하지만 VLC에 자막 자동 싱크 기능을 추가하는 패치까지 내놨습니다.
기본적인 작동원리는 간단하네요. 동영상을 10ms 간격으로 끊어서 음성을 포함하면 1, 음성을 포함하지 않으면 0으로 표시하고, 자막도 동일하게 자막이 표시되는 부분은 1, 표시되지 않는 부분은 0으로 표시합니다. 그럼 2진수 배열이 만들어질텐데, 자막 배열을 10ms 단위로 조정하면서 최적의 싱크를 찾는 방식이네요.
꽤나 신박한게 2진수 배열의 최적 싱크를 일일히 비교해서 찾는다면 O(n^2) 시간이 필요한데, 이를 효율적으로 계산하기 위해 FFT를 이용한 알고리즘을 사용했고, 그 결과 복잡도를 O(nlogn)까지 줄였다네요. 이런데에도 FFT를 쓰다니;; 오늘도 공부할게 많다는걸 느낍니다.
더 무서운건 이거 엊그제 있었던 해커톤에서 나온 프로젝트라 36시간짜리 작품입니다....
천재들이 정말 많군요.
저걸 36시간만에 ㄷㄷ