為女兒做了一個可以給日語注音的 Markdown 編輯器——YomiNote
一個在日本讀小學五年級的中文背景孩子,讀得懂漢字、卻念不準日語 —— YomiNote 就是為這件事寫的。
女兒在日本上小學五年級了。
學校的日常生活說簡單日語沒問題,簡單的作業也能完成,但有件事一直讓她頭疼——朗讀。
中文背景的孩子學日語,會出現一個有趣的現象:漢字的「意思」反而是最容易的部分。 看到「環境問題」,能猜出是「環境問題」。看到「交流」也知道和人與人之間的往來有關。意思能猜出來。
難的是把它順順地念出來。
「交流」到底是 こうりゅう 還是別的讀法?
「環境」是 かんきょう 對吧,那「問題」呢,もんだい 嗎?漢字在日語裡有時候音讀、有時候訓讀,規則又細。即便對著課本,她也常常念錯一兩個。文章一長,朗讀練習就很費力了——意思她懂,但每念三五個字就要停下來確認讀音。
我想幫她解決這件事。
那種「顯而易見」的需求
最樸素的想法是:
把她要練的文章輸進一個工具,所有漢字頭頂自動飄上假名,列印出來或者就在螢幕上對著念,專心練流暢度。
這件事在 HTML 裡有一個對應的標籤,叫 <ruby>,存在了二十年——日本網站到處都在用,專門給漢字標讀音。
但是在 Markdown 裡,幾乎沒有任何編輯器原生支援它,因為大部分寫 Markdown 編輯器的人,壓根用不到這個功能。
所以我決定自己寫一個 Markdown 編輯器。
YomiNote 做了什麼
簡單說,它做了三件事。
一、自動給漢字注音。
你不用做任何額外操作。把文章貼進左邊,右邊的預覽裡所有漢字頭頂都飄著假名。背後是一個叫 kuroshiro 的形態分析器,配合 kuromoji 的日語詞典,全部離線運行,一秒鐘搞定。
列印出來就是一份帶注音的朗讀材料;不列印的話,把螢幕推到她面前,效果一樣。
二、給片假名外來詞標上英文原詞。
日語裡有大量像「コンピュータ」「オフィス」「インターフェース」這樣的外來詞,它們其實是英文的扭曲音譯。但對孩子來說,認出 katakana 不等於能一眼看出是哪個英文單字——「マネージャー」她得念三遍才反應過來是 "manager"。
YomiNote 會在預覽裡把原詞悄悄標在 katakana 上邊。識別速度立刻高出一截,「哦原來是這個英文詞」那種小小的頓悟,每篇文章會發生好幾次。
這部分依靠的是 JMdict——一份由社區維護了三十年的開源日語辭典,本身就是一件值得敬重的事。
三、一套自訂注音語法。
有時候我想給一個不是漢字的詞——比如某個人名、地名、或者自造的術語——單獨加注音。我設計了一個 {原文|讀音} 的小語法,寫起來不囉嗦,渲染出來就是漂亮的注音格式:
今天在 {渋谷|しぶや} 開會,認識了一位 {マネージャー|manager}。
三個字符,零學習成本。
離線可用
YomiNote 沒有雲端、沒有帳號、不聯網。
技術上的原因很樸素:分詞詞典和片假名 JSON 本身不大,沒有理由放在遠端,讓使用者每次打開筆記都等一次 HTTP 請求。因為固定分詞有時也區分不出音讀訓讀,所以在這裡得鄭重聲明下:
這個工具主要是實現了輔助注音排版,並不能保證注音完全正確,一定要自己檢查修改。
Markdown 檔案就存在本地電腦裡就好了,你可以自己選擇放到雲端儲存。
寫給「讀不準這些字」的人
我做的幾個工具都是小工具,不是給所有人都用得著。
但每一個工具背後,都站著一個具體的小問題。YomiNote 站著的那個問題,是一個在日本讀書、看得懂漢字、卻念不準日語的五年級小孩——她需要的不是更聰明的 AI,而是一份安靜地把讀音標好的文件。
週末寫了寫程式碼。所以就有了 YomiNote。
如果你身邊也有一個這樣的人——孩子、學生、自己——這工具是給他們的。
鄭重聲明:這個工具只能輔助注音,不能保證完全正確,一定要自己檢查修改。