Automatically aligns an out-of-sync subtitle file to its companion video/audio using Deep Neural Network and Forced Alignment.
Project description
Dependencies
apt-get install ffmpeg espeak libespeak1 libespeak-dev espeak-data
or
brew install ffmpeg espeak
Installation
# Install from PyPI (pre-emptive NumPy)
pip install numpy
pip install subaligner
or
# Install from GitHub via Pipenv
...
[packages]
numpy = "*"
subaligner = {git = "ssh://git@github.com/baxtree/subaligner.git", ref = "v0.0.8rc1"}
...
or
# Install from source
git clone git@github.com:baxtree/subaligner.git
cd subaligner
make install && source .venv/bin/activate
or
# Use dockerised installation
docker run -v `pwd`:`pwd` -w `pwd` -it baxtree/subaligner bash
Usage
# Single-stage alignment (high-level shift with lower latency)
$ subaligner_1pass -v video.mp4 -s subtitle.srt
# Dual-stage alignment (low-level shift with higher latency)
$ subaligner_2pass -v video.mp4 -s subtitle.srt
# Run alignments with the docker image
docker pull baxtree/subaligner
docker run -v `pwd`:`pwd` -w `pwd` -it baxtree/subaligner subaligner_1pass -v video.mp4 -s subtitle.srt
docker run -v `pwd`:`pwd` -w `pwd` -it baxtree/subaligner subaligner_2pass -v video.mp4 -s subtitle.srt
The aligned subtitle will be saved at subtitle_aligned.srt
. For details on CLI, run subaligner_1pass --help
or subaligner_2pass --help
.
Supported Formats
Subtitle: SubRip, TTML and WebVTT
Video: MP4, WebM, Ogg, 3GP, FLV and MOV
Anatomy
Subtitles can be out of sync with their companion audiovisual media files for a variety of causes including latency introduced by Speech-To-Text on live streams or calibration and rectification involving human intervention during post-production.
A model has been trained with synchronised video and subtitle pairs and later used for predicating shifting offsets and directions under the guidance of a two-stage aligning approach.
First Stage (Global Alignment):
Second Stage (Parallelised Individual Alignment):
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for subaligner-0.0.8rc1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32ecd8d53b86193712ac8f30e63583d6804fe869319da042c8a7a79ced26de25 |
|
MD5 | 01cce7783a85047253b8dc37a5b7c0cf |
|
BLAKE2b-256 | f9ddffa470456458519442b3ec31b6f2d95566e930e1787ca049bc07d799f166 |