Automatically synchronise subtitles to companion audiovisual content with 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 via pipx
pipx install subaligner
or
# Install from GitHub via Pipenv
...
[packages]
numpy = "*"
subaligner = {git = "ssh://git@github.com/baxtree/subaligner.git", ref = "<TAG>"}
...
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
or
# Pass in single-stage or dual-stage as the alignment mode
$ subaligner -m single -v video.mp4 -s subtitle.srt
$ subaligner -m dual -v video.mp4 -s subtitle.srt
# Run alignments with pipx
$ pipx run subaligner -m single -v video.mp4 -s subtitle.srt
$ pipx run subaligner -m dual -v video.mp4 -s subtitle.srt
# Run the module as a script
$ python -m subaligner -m single -v video.mp4 -s subtitle.srt
$ python -m subaligner -m dual -v video.mp4 -s subtitle.srt
$ python -m subaligner.subaligner_1pass -v video.mp4 -s subtitle.srt
$ python -m subaligner.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
, subaligner_2pass --help
or subaligner --help
.
Supported Formats
Subtitle: SubRip, TTML, WebVTT, (Advanced) SubStation Alpha, MicroDVD, MPL2 and TMP
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.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 418d381e6b195aea68cc5c29283a0d76f6b372ce20cbaed5dbb7c8bf1aa43e5d |
|
MD5 | dbd9e77bcdca66348769c414ab62dbd9 |
|
BLAKE2b-256 | 4dfc7031ab56a0a78f2a51d515ee984ca489d3d2e12baece4e5d893ff08f6927 |