User:Lihaohong/注音机器人
如题,是一个给日语曲目注音的机器人。源代码在GitHub。提示:虽然有少量注释和文档,但是因为代码又乱又长,有些地方可能会比较难懂。
原理
- 利用User:東東君开发的歌词注音插件的同款Yahoo api获取日语注音。大多数注音都是正确的,只有少数错误。
- 从Vocaloid Lyrics Wiki抓取罗马音歌词。
- 使用2的罗马音修正1的注音。
编辑摘要
有时候,机器人的编辑摘要不会给出任何信息,如Special:差异/5802803/5803069。这表明机器人认为没有需要复核的转换。但是,如果Yahoo和Vocaloid Lyrics Wiki同时给出了错误的读音,程序不会给出任何提示。
如果Yahoo的读音被Vocaloid Lyrics Wiki纠正,且纠正后的读音不在jamdict词典中,则在编辑摘要中给出警告。如"瞬:またた=>まばた"的意思是“瞬”的读音由Yahoo标的matata修正为mabata。例如Special:差异/5801235/5803053。
程序提出的更改可以被手动取消,例如Special:差异/5801162/5803022中,決的注音由けっ变成了None,这个bug在歌词含有字符“っ”时很常见。当操作者怀疑程序出问题时,可以手动取消这个更改,保留Yahoo的原注音。
Special:差异/5801162/5803022的编辑摘要包含返:?;家:?;居:?;湧:?以表明这四个汉字在萌百的日语歌词中出现了,但是不在Vocaloid Lyrics Wiki的日语歌词中。观看PV后可以发现萌百的歌词与PV不一致,因此需要手动修正歌词并注音[注 1]。
复核注音
作者会手动复查程序给出提示的地方,并修正比较离谱的、显眼的问题。但是有可能有一些小错没有被发现。
程序状况
目前还在跑一次程序就要修三个bug的阶段。
偶尔会遇到严重bug(死循环),经常遇到某行无法用罗马音复核的状况。
此外,在处理~20个页面后就会被WAF。
为什么使用机器人
一开始作者是会用東東君的注音工具注音,然后听歌复核的。但是给DAYBREAK FRONTLINE注音的时候发现自己跟不上,于是只能用Vocaloid Lyrics Wiki(简称VLW)的罗马音核对。因为核对工作很机械化,萌生了用自动化程序核对注音的想法。
一开始以为很简单(毕竟作者不会日语,对日语的复杂程度没有心理准备),后来发现二在VLW被写成2、罗马音转写不规则、难以判断っ的读音、VLW注错音等问题。但是程序的犯错次数可以接受,基本上所有可能出问题的地方都在编辑摘要标注了。
其实一开始是想整个自动去除图片黑边的半自动化机器人的,之前的条目辅助工具已经加入了这个功能,人工复核图片处理的结果也很快。但是作者没有覆盖图片的权限,所以就做了这个工作量更大且更容易出错的机器人。