7 个版本
0.2.0 | 2023 年 9 月 23 日 |
---|---|
0.1.5 | 2021 年 7 月 26 日 |
0.1.2 | 2021 年 6 月 14 日 |
9 在 #srt
每月 22 次下载
23KB
365 行
视频字幕生成
用于生成包括 YouTube 在内的视频播放器中使用的 SRT 格式 字幕的命令行程序
字幕是从视频的完整 文本 生成的。默认情况下,每个字幕的最大词数为 10 个。
当前状态
积极开发中。
用法
CLI
$ subtitles --transcript INPUT-FILENAME.txt --length LENGTH-IN-SECONDS --abbr ABBREVIATION-MAP-FILE.csv > OUTPUT-FILENAME.srt
$ subtitles --transcript transcript.txt --length 300 --abbr abbreviations.csv > subtitles.srt # True example
Webassembly
import init, * as subtitles from 'path/to/subtitles.js';
(async () => {
await init();
let transcript_text = 'Lots of text goes here; newline is acceptable.';
let audio_length_in_seconds = 99;
let abbreviation_map = new Map([["UNGA", "United Nations General Assembly"], ["MDN", "Mozilla Developer Network"]]); // Optional.
const text_for_srt_file = subtitles.wasm_prepare_srt_content(transcript_text, audio_length_in_seconds, abbreviation_map);
})()
构建说明
CLI
$ cargo build --release
Webassembly
安装 wasm-pack. 然后...
$ wasm-pack build --target web
$ cp pkg/{subtitles_bg.wasm,subtitles.js} /path/to/website/js/
缩写映射表
缩写映射表是一个 可选 功能。它可以从命令行或在使用 Wasm 版本时作为 JavaScript Map 对象提供,为一个 CSV 文件(没有标题行)。它的目的是将那些发音与外观非常不同的字符或字符序列进行映射。例如,转录可能使用 "(UNGA)",而叙述者可能说 "United Nations General Assembly"。另一个例子是 Unicode 码点 U+FDFD,它被说成是一个完整的句子。在这些所有情况下,转录中的书写形式都没有提示说它可能需要多长时间。通过提供书写形式和发音形式之间的映射,我们得到每个字幕更准确的计时。
CSV 示例
(UNGA),(United Nations General Assembly)
(MDN),(Mozilla Developer Network)
﷽,Bi-smi llāhi r-raḥmāni r-raḥīm
许可证
依赖项
~3.5–4.5MB
~63K SLoC