日语发音库mdd改进方法

日语词条有点特殊,有平假名、片假名、汉字以及各种混合的形式,mdict对这方面也没有兼容性。从字典角度来说,物书堂的产品就是标杆,但这个目标就有点远了。目前比较容易下手的就是发音库了。我期望的发音库有以下目标:
1,固有的平/片/汉字混合词条能正常发音,主要为平假名+汉字,少量片假名+汉字,可能存在部分平假名+片假名
2,全平假名词条,以及对应的全汉字词条
3,全片假名词条
4,其他组合,目前看到有数字+汉字的,还有数字+平假名的,以及字母+假名,字母+汉字等等
5,纯数字、字母。

目前网络上我能找到的日语发音库(欧陆独立发音库)只有一个,大概有6w多词条,大小200M多。这个库应该也是从NHK的库里提取加工的,但由于日语的特性,大部分都是汉字或者假名加汉字的词条,可以说缺失很多。因此萌生了制作改进版的想法。
制作源就是这个日语发音库;另一个源就是NHK发音词典,我这次使用的是2018版,图片等修正的版本,mdd大概是800M多。
感谢原作者们!
说下制作方法和过程。
1,2个源库解包,包括2018版的mdx文件,后续会修改发音文件的路径和文件名,所以必须要修改mdx。后面主要针对2018版的mdd操作。
2,用python脚本扫描2018版的mdx,查找词条以及链接词条对应的发音文件,形成词条清单和发音文件清单。用这两份清单生成一个powershell脚本,以达根据既有词条扩充词库的目的;另一方面,生成对应的txt,链接正确的发音文件。
3,执行powershell脚本跑出所有词条的spx,以及将使用到的原spx复制一份至bak目录,方便后续处理。
4,将输出的txt打包成mdx。
5,使用另一个python脚本将所有含片假名的词条,再生成一份对应平假名的词条。
6,处理一下新的data目录,此时里面应该有原2018mdd解出的所有内容,加上脚本跑出来根目录下20w+的新词条spx,以及一个bak目录。现根据bak目录把spx目录中一样的文件全部删除,这些文件已经没用了,然后把bak目录移出data自己留存或者直接删除也可以;再者,把data根目录下的新词条spx进行处理,将文件名包含半角符号的以及以半角字符开头并包含全角字符的文件保留,其他词条移入原语音库(200M的那个)的解包目录里,有重名的可以选择覆盖旧的或者直接删除新的,总之有份能用的就行。
7,打包两个data目录,形成mdd,2018的mdd可以依旧作为资源文件使用;新的发音库mdd可以作为独立发音库使用,欧路里文件名加上.1即可识别;新mdx需要同时配套这两个mdd文件一起使用。

附python脚本,说明:
mdictrelinkvoice是从readmdict复制修改的,请和原readmdict放在一起使用;另一个脚本可以单独使用,用来把片假名文件转成平假名。
py.zip (7.6 KB)

已知遗留问题:
1,平假名转片假名,长音转换不完美,后续待修正;缺少汉字转假名
2,我的目标中,第1点的所有内容目前都来自原词条,但原词条可能不完善;原词条未完全提取处理
3,在目标第1点满足的情况下,第2、3点是可以满足的
4,目标第4点待补充,需要再深入研究欧路字典的"坑"
5,目标第5这个待定,感觉和英语发音库有冲突哈

1 个赞

楼主,可以看一下这个帖子里面的

所有的词头的假名都做了平假名和片假名两个版本(汉字词再加上汉字词头),据我所知用批处理替换就很容易做到

帖子里面的链接
链接: https://pan.baidu.com/s/1Yj_MLJcxHf5zW24PfZtJCg 提取码: 5smy

5 个赞

这个版本有些问题,明显丢了少量的词,其他有没有问题未考证。一开始我就是用这个版本提取mdx的,后来发现有问题,改回2018版。
————
补充一下思路:用NHK词典主要就是为了听发音,因此理论上只要有独立发音库即可,mdx其实都无所谓。但目前发音库还不完善,所以mdx有时还是要“看”一下的,2018版是“原版”不会有错,虽然用起来略麻烦,但一般不会经常使用,我都是把NHK词典放最后。

3 个赞

可惜2016年,NHK出了新版的。。。
如果有新版的就好了。。。

NHK 日本語発音アクセント新辞典

好的,这个版本确实我自己用的时候发现有的词查不到,期待楼主的大制作!

2 个赞

需要等大神来分享了。不过现在的应该也够用,发音主要还是对初学者的帮助比较大,尤其是日语这种,自带语音,只是语调会拿捏不准。

我也是用着不爽才动手的,目前改完自我感觉良好,后续啥时候再动就不好说了。抛砖引玉哈 :face_with_hand_over_mouth:

旧版,应该是1998那个。2018有人重新做了mdx,所以就用2018代指了。

对的
2016的新版,目前只看到物书堂的有iso版的。。。

https://news.nhk-book.co.jp/archives/10093

LZ你好,请问一下怎么把NHK词典的音频导入anki呢?

1 个赞

不好意思,我只用过欧陆和mdict,其他的基本都没用过 :sweat_smile:

这个链接失效了
补一个物书堂的链接:NHK 日本語発音アクセント新辞典

请问可以分享完成的发音库吗?python不太会使用,谢谢

我只有一个 Yomichan 格式的『NHK 日本語発音アクセント新辞典』,不知道大佬能不能把它转换成 MDict 格式的词典。NHK日本語発音アクセント新辞典v2.zip (2.0 MB)

1 个赞

我在pdawiki上面分享过一个我转制的,因为最近比较忙,没有时间加入平假名的查询,等我空下来了,我会整理一下。

2 个赞

这个还清楚为什么这个词典APP会不支持,我用的是普通的CSS手段,难道是词典APP对css文件的加载有问题?

对了,你下载了同一个文件夹里面的css文件吗?

感谢分享,但这个貌似不能当作mdict或是欧陆的单独发音库使用?

我不太了解单独发音库的原理,如果有相关的介绍的文章请给我介绍一下,多谢!