自动同步字幕,以配合视听内容与深度神经网络和强制对齐。

subaligner的Python项目详细描述


Build StatusCodecovPython 3.8Python 3.7Python 3.6Documentation StatusGitHub licensePyPIDocker Hub

依赖关系

FFmpeg和{a10}

$ apt-get install ffmpeg espeak libespeak1 libespeak-dev espeak-data

或者

^{pr2}$

安装

# Install from PyPI (pre-emptive NumPy)
$ pip install numpy 
$ pip install subaligner

或者

# Install via pipx
pipx install subaligner

或者

# Install from GitHub via Pipenv
...
[packages]
numpy = "*"
subaligner = {git = "ssh://git@github.com/baxtree/subaligner.git", ref = "<TAG>"}
...

或者

# Install from source

$ git clone git@github.com:baxtree/subaligner.git
$ cd subaligner
$ make install && source .venv/bin/activate

或者

# Use dockerised installation

$ docker run -v `pwd`:`pwd` -w `pwd` -it baxtree/subaligner bash

对于Windows10上的用户:Docker Desktop是目前唯一的选择。 假设您的媒体资产存储在d:\media下。打开内置命令提示符、PowerShell或Windows终端并运行:

docker pull baxtree/subaligner
docker run -v "/d/media":/media -w "/media" -it baxtree/subaligner bash

使用

# 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

或者

# 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

{cd2>将保存在副标题^处。有关CLI的详细信息,请运行subaligner_1pass --helpsubaligner_2pass --help或{}。在

支持的格式

字幕:SubRip、TTML、WebVTT、(高级)SubStation Alpha、MicroDVD、MPL2和TMP

视频:MP4、WebM、Ogg、3GP、FLV和MOV

高级用法

您可以使用自己的视听文件和字幕文件训练新模型:

$ subaligner_train -vd VIDEO_DIRECTORY -sd SUBTITLE_DIRECTORY -tod TRAINING_OUTPUT_DIRECTORY

然后你可以用上面提到的命令来同步字幕。有关如何训练和优化您自己的模型的更多详细信息,请参考Subaligner Docs。在

解剖学

由于各种原因,字幕可能与其伴生的视听媒体文件不同步,包括在直播流中由语音到文本引入的延迟,或在后期制作过程中涉及人工干预的校准和校正。在

一个模型被训练成同步的视频和字幕对,然后在两阶段对齐方法的指导下用于预测偏移量和方向。在

第一阶段(全球协调):

第二阶段(平行单独定线):

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaScriptJavaNashorn实例方法   无论我编写什么代码,GUI中的java按钮始终位于左上角   java Hibernate没有EntityManager的持久性提供程序   用Proguard插件混淆java jar   java JPanel不显示组件?(六边形网格)   java如何转换。x是单线程的吗?   JavaFX图像获取图像路径   Gson和方向更改的java问题   java Maven在构建时包含不同的文件   java在存储在Crudepository中的POJO中嵌入Jackson JsonNode   运行安卓studio的java方法   由于Java页面为空,W7无法安装Android SDK   在用java打开excel文件时,我遇到了以下错误:警告:使用本地非内置名称   java组件未出现在我的formPanel上   java方法paintComponent(图形g)不起作用   javaapi设计建议   java MobileFirst适配器到Servlet   安卓在Java中实现ArrayList。处理getUnique、addBefore和removeLast