5 个稳定版本
2.0.0 | 2019年10月10日 |
---|---|
1.1.0 | 2019年9月10日 |
1.0.2 | 2019年8月16日 |
1.0.1 | 2019年8月15日 |
1.0.0 | 2019年8月14日 |
#134 在 视频 中
205KB
4.5K SLoC
简介
alass
是一个用于同步电影字幕的命令行工具。
它可以自动纠正
- 常数偏移量
- 由于广告间隔、导演剪辑等引起的分割
- 不同的帧率
对齐过程不仅快速准确,而且与语言无关。这意味着您可以将对齐字幕到不同语言的影片。
alass
代表 "自动语言无关字幕同步"。
Windows (64位) 可执行文件
从这里获取最新可执行文件:这里!只需下载并解压缩存档。文件 alass.bat
是命令行工具。
Linux (64位) 可执行文件
从这里获取最新可执行文件:这里!要运行可执行文件,需要安装 ffmpeg
和 ffprobe
。您可以使用环境变量 ALASS_FFMPEG_PATH
(默认 ffmpeg
)和 ALASS_FFPROBE_PATH
(默认 ffprobe
)来更改它们的路径。
用法
最基本的命令是
$ alass movie.mp4 incorrect_subtitle.srt output.srt
您还可以使用 alass
将不正确的字幕对齐到另一个字幕
$ alass reference_subtitle.ssa incorrect_subtitle.srt output.srt
您还可以调整算法尝试避免引入或删除分割的程度
# split-penalty is a value between 0 and 1000 (default 7)
$ alass reference_subtitle.ssa incorrect_subtitle.srt output.srt --split-penalty 10
介于 5 到 20 之间的值最有用。超过 20 的值会错过一些重要的分割,而低于 5 的值会引入许多不必要的分割。
如果您只想移动字幕,而不引入分割,可以使用 --no-splits
# synchronizing the subtitles in this mode is very fast
$ alass movie.mp4 incorrect_subtitle.srt output.srt --no-splits
目前支持 .srt
、.ssa/
.ass
和 .idx
文件。支持所有常见的视频格式作为参考文件。
性能和结果
从视频中提取音频需要大约 10 到 20 秒。计算对齐通常需要 5 到 10 秒。
对齐通常非常完美 - "良好字幕"的百分比约为88%到98%,具体取决于你对"良好字幕"的定义有多严格。从OpenSubtitles.org
下载随机字幕的错误率约为50%(样本大小N=118)。在测试数据库中的所有字幕行(不是字幕文件)中,同步后
- 50%的字幕与目标位置偏差在50ms以内
- 80%的字幕与目标位置偏差在100ms以内
- 90%的字幕与目标位置偏差在400ms以内
- 95%的字幕与目标位置偏差在800ms以内
与(可能不是完美)的参考字幕相比。
如何编译二进制文件
安装Rust和Cargo然后运行
# this will create the lastest release in ~/.cargo/bin/alass-cli
$ cargo install alass-cli
该项目使用的语音活动模块是用C编写的。因此,需要一个C编译器(gcc
或clang
)来编译此项目。
要使用alass-cli
与视频文件一起使用,需要安装ffmpeg
和ffprobe
。它用于提取原始音频数据。您可以使用环境变量ALASS_FFMPEG_PATH
(默认ffmpeg
)和ALASS_FFPROBE_PATH
(默认ffprobe
)来设置alass
使用的路径。
从源代码构建
如果您想从源代码构建和运行项目
$ git clone https://github.com/kaegi/alass
$ cd alass
$ cargo build
$ cargo run -- movie.mp4 input.srt output.srt
配置
所有参数都可以用于cargo build
,也可以用于cargo install
和cargo run
。
统计信息
您可以使用以下方式激活alass
中的统计模块
# Important: you have to be inside `alass-cli`! Otherwise the parameter is ignored.
$ cargo build --features statistics
$ cargo run -- --statistics-path ./some/folder
这将在./some/folder
中创建统计文件。您可以使用--statistics-required-tag
仅生成统计信息。
统计模块允许您更好地理解/调试算法。
警告:即使没有生成统计文件,使用此配置也会将算法速度降低50%或更多。
FFmpeg作为库
您还可以在编译时将ffmpeg
链接为动态库。库实现可以大约快2到3秒提取音频。不幸的是,编译更困难,错误处理仅非常基础,可能仍然存在错误。
您必须从alass-cli/Cargo.toml
中删除所有以它开始的行的"# FFMPEG-LIB
"。然后使用
# Important: you have to be inside `alass-cli`! Otherwise the parameters get ignored.
$ cargo build --no-default-features --features ffmpeg-library
别名设置
对于Linux用户:建议将文件夹路径添加到您的系统路径,并为alass
设置别名到alass-cli
。将其添加到您的~/.bashrc
(或您喜欢的shell的配置文件)中
export PATH="$PATH:$HOME/.cargo/bin"
alias alass="alass-cli"
文件夹结构
此cargo
工作区包含两个项目
-
alass-core
它提供算法它针对开发者,他们想在他们的项目中使用相同的算法。
-
alass-cli
它是官方的命令行工具它针对最终用户,他们想纠正他们的字幕。
库文档
打开 README 来自 alass-core
。
备注
此程序过去被称为 aligner
。这使得在搜索引擎上找到它变得几乎不可能,因此选择了 alass
。
依赖关系
~25MB
~380K SLoC