2 个稳定版本
1.0.2 | 2024年5月23日 |
---|---|
1.0.1 | 2022年11月18日 |
1.0.0 |
|
#37 在 图像
48KB
878 行
Mangatrans
漫画转录数据格式以及将其渲染为可读格式、统计数据等多种方式。
目标
本项目的目标是能够将漫画转录作为数据编写,而不是最终结果。程序应解析此数据并从中构建各种输出形式,例如可读性、语言报告和统计数据。
转录
转录应包含漫画中的原始文本。除了原始文本外,它还可以包含额外的辅助信息,例如替换了假名的文本、罗马字文本和翻译或注释。
这样做的目的是在阅读漫画的同时保留这些信息,或者能够回过头来防止重复工作,例如确定假名的拼写。
语言报告
这是一种额外的学习日语的工具,可以在阅读和转录漫画时使用。可以包含常见的假名及其转换为平假名映射的列表。简单频率统计和排序输出的引入可能揭示了语言使用中的模式,例如最常见的单词和假名,这对于学习很有用。
统计报告
一款新颖的工具。了解哪些地点在漫画中出现的最多,谁说话最多,哪些角色之间对话频繁,以及其他新颖之处,可能对漫画粉丝来说很有趣。根据我的经验,当你逐章转录并翻译时,理解语言和处理假名要比简单地说明地点和出场角色要费力得多。这就是为什么你不妨将这些事情转录下来,因为它们并不会大幅增加工作量,而且可以产生一些非常有趣的见解。
配置
将内容转录成数据格式而不是直接消费的格式有一些优势。配置可能允许根据数据生成不同的输出。原因可能是不同人的偏好或不同的目标。如果你已经做了很多工作,并意识到你想要不同的格式,你不必重新格式化你的工作,只需生成不同的输出即可。这是项目的目标之一,因为在转录的开始阶段,我一直在更改格式。
功能列表
- 解析数据
- 图片数据:地点、角色、编号、页面
- 转录
- 翻译
- 假名图
- 从/到(指向哪个角色的方向)
- 一个或多个模式
- 通用
- 报告:包含的卷和章节,图片和音节计数
- 使用配置文件自定义
- 递归地点
- 转录
- 原文和翻译
- 假名替换
- 自动罗马字化
- 自动缩进
- 文本一致性改进
- 页面标题
- 统计
- 排名地点:出现次数,说话的音节
- 角色按出现次数排名
- 角色按说话的音节排名
- 角色按其他角色说话给他们的音节排名
- 角色对按互动中的音节说话次数排名
- 角色按整体突出度排名
- 语言报告
- 平假名/片假名按计数排名
- 假名按计数排名
- 单词按计数排名
数据格式
数据记录在toml文件中。
每个章节都应该有一个单独的toml文件。
每个文件都以有关章节的一些信息开始
# this is a comment and will be ignored by the program
manga = "日常"
author = "あらゐけいいち"
volume = 1
chapter = 1
subchapter = 0.5
title = "日常の1.5"
subchapter
字段是可选的,其余字段都是预期的。
之后,你将提供如下的图片数组
[[pic]]
# picture data
[[pic]]
# picture data
[[pic]]
# picture data
图片数据的示例
[[pic]]
nr = 2
page = 1
location = "shinonome house"
characters = ["nano"]
[[pic.text]]
# text data
[[pic.text]]
# text data
[[pic.text]]
# text data
图片编号(nr
)是必须存在的。
page
是可选的,并设置页码。如果page
不存在,则假定我们仍然在上次声明页码的同一页。每个章节必须为其第一张图片分配页码,以便知道如何继续。
location
、characters
和文本数组都是可选的。
每个章节的第一页必须有一个初始地点。文本数据的示例
[[pic.text]]
from = "nano"
to = "hakase"
lines = ["今日", "日直 でしたー"]
kmap = [
["今日", "きょう"],
["日", "につ"],
["直", "ちょく"],
]
transl = ["Today", "is my shift!"]
notes = ["This in an optional note, the transcriber may want to say something about this text."]
todo = true
from
用于描述哪个角色说了当前文本。我个人在这个字段中将叙述者视为“角色”。
to
包含这个文本指向的角色。我个人在这个字段中将观众视为“角色”。该字段是可选的。如果一个角色对自己说话或内心思考,你可以简单地省略这个字段。
lines
是一个必填字段,应是一个包含转录文本每行字符串的数组。此文本应逐字从漫画中转录,除空格外,并用于许多计算和转换。要分割单词,可以在字符之间插入ASCII空格 " "
。这些在转录输出中将被删除,但将用于如罗马音等。
kmap
是一个可选字段,用于定义汉字到平假名或片假名的映射。这用于替换。
transl
用于 lines
的翻译。它是可选的,你可能有与 lines
数组不同的 transl
数组条目。
notes
是可选的,你可以在其中写下关于此文本的注释。 todo
是可选的,当设置为 true 时,将记录此文本需要工作。如果你有错误、某些内容不完整等,你可能想将 todo = true
。这样,它将每次都记录下来,这样你就不必过一段时间就忘记它,你知道哪些项需要一些工作。将 todo = false
设置为 false 不会做任何事情,它与省略 todo
相同。
当一个汉字在文本中出现多次时,你必须给出正确的映射,次数与出现次数相同。这样,才能有相同汉字但有不同映射的句子。一个例子
[[pic.text]]
from = "yukko"
lines = ["そう考 えると", "不幸中 の 幸いって", "ヤツだね"]
kmap = [
["考", "かんが"],
["不", "ふ"],
["幸", "こう"],
["中", "ちゅ"],
["幸", "さいわ"],
]
transl = ["If you think about it that way it's a blessing in disguise."]
一个或多个模式
'一个或多个' 模式已经实现,具有向后兼容性。这意味着在可以接受多个值的数组字段中,你现在也可以省略数组,如果你只有一个值。例如,当表示哪些字符出现在图片中时,你可以写 characters = ["yukko", "mai"]
。对于单个字符,你可以写 characters = ["nano"]
。使用 '一个或多个' 模式,你可以将前者写为 characters = "nano"
。支持此模式的字段有:characters
、form
、to
、lines
、kmap
、transl
和 notes
。
示例
有关示例,请查看 example.toml
。有关 toml 语言的更多信息,请访问 https://toml.cn/en/
example.toml
和此说明书中所有示例材料,如示例行和字符,均来自漫画 日常
,作者为 あらゐけいいち
。这些材料用于教学目的。
用法
程序通过命令行界面 (CLI) 使用。
USAGE:
mangatrans [OPTIONS] <INPUTFILES>...
ARGS:
<INPUTFILES>...
OPTIONS:
-d, --outputdir <OUTPUTDIR>
-h, --help Print help information
-l, --log <log> [default: true]
-m, --mode <MODE> [default: transcribe] [possible values: transcribe, stats,
language]
-o, --outputmode <OUTPUTMODE> [default: stdout] [possible values: stdout, file]
-V, --version Print version information
示例输出
从漫画 日常的第 1 章生成的示例输出。
转录模式的部分示例输出
- 图片 65
- 文本 1
- なのちゃん
休みなんて
めずらしいね - なのちゃん
休息时间吗
めずらしいね - nano 姑娘
yasuminante
感觉怎么样? - Nano 姑娘不在这里是很罕见的事,对吧?
- なのちゃん
- 文本2
- 是不是故障了?
- 怎么了?
- 怎么了?
- 可能是故障?
- 文本3
- 停下来吧
本人还没发现
我想你应该不知道 - 停下来吧
真的还没有被发现
你应该还没想到 - chotto yamenayo-
honnin baretenaito
omotterundakara - 停下来吧,她还没发现我们知道了。
- 停下来吧
- 文本 1
统计模式输出示例
Manga: 日常
Volumes: 1
Chapters: 1
Pictures: 74
Morae spoken: 880
Locations:
street: 30 appearances, 339 morae spoken in.
roof: 19 appearances, 130 morae spoken in.
classroom: 17 appearances, 311 morae spoken in.
shinonome house: 3 appearances, 73 morae spoken in.
chimney: 2 appearances, 7 morae spoken in.
school hallway: 1 appearances, 12 morae spoken in.
school grounds: 1 appearances, 8 morae spoken in.
aioi lookalike family garden: 1 appearances, 0 morae spoken in.
Character appearances:
yukko: 33
nano: 24
mio: 19
mai: 9
kokeshi: 6
person: 5
akabeko: 5
headphones guy: 4
aioi mom lookalike: 2
nakanojo: 2
izumi: 1
crow wug: 1
hakase: 1
mono: 1
chissan lookalike: 1
Morae spoken:
yukko: 309
nano: 238
mio: 143
narator: 74
izumi: 65
headphones guy: 16
mai: 14
person: 11
nakanojo: 9
hakase: 1
Morae spoken to:
audience: 74
yukko: 73
class: 65
mio: 55
hakase: 48
mai: 42
person: 17
nakanojo: 3
Conversation pairs in morae:
mio, yukko: 114
audience, narator: 74
class, izumi: 65
hakase, nano: 48
mai, yukko: 40
mai, mio: 16
nakanojo, person: 12
person, person: 8
语言模式部分输出示例
Kanji frequencies:
降: ふ: 5
生: せい: 4
高: こう: 4
子: こ: 3
麻: ま: 3
今日: きょう: 3
赤: あか: 3
衣: い: 3
雲: のめ: 2
行: い: 2
先: せん: 2
下: くだ: 2
思: おも: 2
日: につ: 2
本: ほん: 2
直: ちょく: 2
人: にん: 2
東: しの: 2
当: あ: 2
原: はら: 2
许可证
Copyright (C) 2024 Cody Bloemhard
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
依赖项
~1.4–2.2MB
~42K SLoC