返回札记列表

为女儿做了一个可以给日语注音的 Markdown 编辑器——YomiNote

一个在日本读小学五年级的中文背景孩子,读得懂汉字、却念不准日语 —— YomiNote 就是为这件事写的。

YomiNote工具日语

女儿在日本上小学五年级了。

日常学校里生活能说简单日语,简单的作业也能完成,但有件事一直很头疼——朗读。

中文背景的孩子学日语,会出现一个有趣的现象:汉字的"意思"反而是最容易的部分。 看到「環境問題」,能猜出是"环境问题"。看到「交流」也知道和人与人之间的来往有关。意思能猜出来。

难的是把它顺顺地念出来。

「交流」到底是 こうりゅう 还是别的读法?

「環境」是「かんきょう」对吧,那「問題」呢,「もんだい」吗?汉字在日语里有时候音读、有时候训读,规则又细。即便对着课本,她也常常念错一两个。文章一长,朗读练习就很费力了,意思她懂,但每念三五个字就要停下来确认读音。

我想帮她解决这件事。

那种"显而易见"的需求

最朴素的想法是:

把她要练的文章输进一个工具,所有汉字头顶自动飘上假名,打印出来或者就在屏幕上对着念,专心练流畅度。

这件事在 HTML 里有一个对应的标签,叫 <ruby>,存在了二十年——日本网站到处都在用,专门给汉字标读音。

但是在 Markdown 里,几乎没有任何编辑器原生支持它,因为大部分写 Markdown 编辑器的人,压根用不到这个功能。

所以我决定自己写一个Markdown编辑器。

YomiNote 做了什么

简单说,它做了三件事。

一、自动给汉字注音。

你不用做任何额外操作。把文章粘进左边,右边的预览里所有汉字头顶都飘着假名。背后是一个叫 kuroshiro 的形态分析器,配合 kuromoji 的日语词典,全部离线运行,一秒钟搞定。

打印出来就是一份带注音的朗读材料;不打印的话,把屏幕推到她面前,效果一样。

二、给片假名外来词标上英文原词。

日语里有大量像「コンピュータ」「オフィス」「インターフェース」这样的外来词,它们其实是英文的扭曲音译。但对孩子来说,认出 katakana 不等于能一眼看出是哪个英文单词——「マネージャー」她得念三遍才反应过来是 "manager"。

YomiNote 会在预览里把原词悄悄标在 katakana 上边。识别速度立刻高出一截,"哦原来是这个英文词"那种小小的顿悟,每篇文章会发生好几次。

这部分依靠的是 JMdict——一份由社区维护了三十年的开源日语词典,本身就是一件值得敬重的事。

三、一套自定义注音语法。

有时候我想给一个不是汉字的词——比如某个人名、地名、或者自造的术语——单独加注音。我设计了一个 {原文|读音} 的小语法,写起来不啰嗦,渲染出来就是漂亮的注音格式:

今天在 {渋谷|しぶや} 开会,认识了一位 {マネージャー|manager}。

三个字符,零学习成本。

离线可用

YomiNote 没有云、没有账号、不联网。

技术上的原因很朴素:分词词典和片假名JSON本身不大,没有理由放在远端,让用户每次打开笔记都等一次 HTTP 请求。因为固定分词有时也区分不出音读训读,所以在这里得郑重声明下: 这个工具主要是实现了辅助注音排版,并不能保证注音完全正确,一定要自己检查修改。

Markdown 文件就存在本地电脑里就好了,你可以自己选择放到云存储。

写给"读不准这些字"的人

我做的几个工具都是小工具,不是给所有人都用得着。

但每一个工具背后,都站着一个具体的的小问题。YomiNote 站着的那个问题,是一个在日本读书、看得懂汉字、却念不准日语的五年级小孩——她需要的不是更聪明的 AI,而是一份安静地把读音标好的文档

周末写了写代码。所以就有了 YomiNote。

如果你身边也有一个这样的人——孩子、学生、自己——这工具是给他们的。

郑重声明:这个工具只能辅助注音,不能保证完全正确,一定要自己检查修改。