一次将字幕转换为电子书的尝试

上个月女朋友为了学习日语发给我 逃げるは恥だが役に立つ 的字幕,让我帮她转成可以方便查看修改的格式,于是我便折腾了一会,用了一些工具将 .str 文件转换成了 .epub.pdf

用到的工具: Calibre, pandoc

用正则表达式删除字幕内的非必要内容

打开 .str 文件是发现里面的内容差不多是这样的

1
00:00:00,510 --> 00:00:04,030
对我来说  你已经不是轻易地可以去放弃的人

2
00:00:04,030 --> 00:00:06,250
你为什么要说这样的话

3
00:00:06,650 --> 00:00:08,870
这样会让我越来越喜欢你啊

4
00:00:11,480 --> 00:00:14,650
所以我才讨厌这样  只有我在单相思

稍作分析后觉得用正则表达式匹配替换应该是最快的,于是乎便写了正则 \n[1-9][0-9]{0,2}\n\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3} 用来匹配这一部分的内容,然后替换成空格。

1
00:00:00,510 --> 00:00:04,030

把这些编号和时间去掉之后,发现字幕里面还有一些这样的内容(看起来像是定义了字幕的特殊位置,但想要用文本看的话就没必要了)。

{\fs16}{\an8}{\pos(190,5)}RoBoHoN  夏普公司开发的便携型机器人手机

于是便用 \{(.*)\} 匹配然后替换掉 {\fs16}{\an8}{\pos(190,5)}(简单粗暴)。

这样基本上就把所有多余的内容都删除好了。

将各个字幕文件合并

  1. 首先为每个字幕加上标题,方便生成目录。
1
2
3
4
5
6
7
8
9
# 第1话 プロの独身男と秘密の契約結婚

这个吗

是会议用的资料 上面拜托我收集数据

注意事项吗

准确程度和工作速度
  1. 将文件合并(这里我用脚本来合并)
1
2
3
4
5
#!/bin/bash
for i in {1..10}
do
    cat $i.str >> final.md
done
  1. 使用 pandoc 将 .md 文件转换成 .docx 文件(因为 Calibre 支持 .docx 转其他格式)。
1
pandoc -o 中文_逃げるは恥だが役に立つ.docx final.md

使用 Calibre 转换成电子书

  • 添加元数据 (Metadata)

打开 Calibre 将 .docx 文件导入, 编辑元数据,添加书名和作者民,方便在设备上查看,还可以添加封面(不过我是用 Calibre 自动生成的封面,因为它生成的封面还不错)

使用 Calibre 修改元数据

  • 转换电子书

使用 Calibre 自带的 转换书籍 就可以非常方便地将 .docx 转换为 .epub.pdf (如果是在小屏幕设备看的话用 .epub 最好,一般能有不错的排版,如果是在 Kindle 看的话,用 .mobi 格式则更好, .pdf 则方便在大屏幕设备如 iPad 和 PC 上使用。)

示例

转换成功就可以发送到相应的设备上查看了(这里贴出我制造的 .epub 格式在 iBook 上的显示效果)

在 iBook 上查看 .epub

阅读更多

update site interface
加载评论