本文經 J-Compass 編輯流程調查與事實查核;編輯團隊於發布前審核資料來源及準確性。 了解我們的編輯方法 →
本譯文僅供參考,以方便閱讀。內容以英文版本為準。 閱讀英文原文 →
Mokuro:針對日文漫畫的 OCR 工具
Mokuro 是一款免費且開源的命令列工具,能夠對日文漫畫進行光學字元辨識(OCR)。12 這使得 Yomitan 等快顯字典可以直接讀取漫畫頁面中的文字。對於能夠藉助懸浮字典閱讀小說散文、卻在圖片形式的漫畫前受阻的學習者而言,Mokuro 正是那個將掃描版漫畫分鏡轉化為可查詞頁面的關鍵工具層。
概述
漫畫頁面在本質上是點陣圖,即彩色像素網格。對於瀏覽器來說,對話對白框只是一堆像素,底層沒有任何文字可供懸浮字典掃描。Mokuro 彌合了這一鴻溝:它預先辨識出每個頁面上的日文字元,並在畫面之上鋪設一層不可見但可被選取的文字層。
Mokuro 的功能
作者將 Mokuro 簡明地定義為一款「在瀏覽器中帶有可選取文字閱讀日文漫畫」的工具,並且「專為希望藉助 Yomitan 等快顯字典閱讀日文原版漫畫的日語學習者而設計」。2 Mokuro 是開源專案,完全在終端機中執行。你可以透過 pip3 安裝它,並使用 mokuro 命令執行。12
Mokuro 本身並不直接執行字元辨識。它協同排程了兩個底層依賴項:負責定位頁面文字位置的 comic-text-detector,以及負責讀取偵測到的文字的 manga-ocr。2
最終產生的實際結果是一個帶定位的疊加層。Mokuro 會記錄辨識出的文字,以及每個對話框或分鏡的邊界框座標(即文字區域的位置)。隨後,頁面就可以在渲染原始圖像的同時,在對應位置對齊不可見但可選取的文字。2 所有的辨識都在前期離線完成:「所有處理均在離線完成(閱讀之前)」。2
對於安裝和執行的工具而言,專案出處十分重要。Mokuro 和 manga-ocr 均出自同一作者 kha-white 之手。Mokuro 程式碼庫採用 GPL-3.0 授權,而 manga-ocr 則採用獨立的 Apache-2.0 授權。14
它在數位化閱讀工具鏈中的定位
Mokuro 是數位化閱讀工具鏈中專門針對漫畫的一環。對於基於圖像的漫畫,它所扮演的角色正如瀏覽器端電子書閱讀器針對 EPUB 小說一樣:在原本沒有文字的地方呈現可選取的文字,從而讓字典層有內容可讀。(這一類比旨在闡明其定位,而非功能完全等同。散文端工具和字典本身均在其他專文中討論。)
它位於字典的上游,兩者並非競爭關係。Mokuro 負責產生可選取文字,而懸浮字典負責讀取文字。Mokuro 的既定目標正是「與 Yomitan 等快顯字典搭配使用」。2
處理工作流程的運作原理
處理單行本是一次性的準備步驟,在打開漫畫閱讀之前執行。整個流程從包含頁面圖像的資料夾出發,經過文字偵測與 OCR,最終產生網頁閱讀器能夠開啟的 .mokuro 檔案。
環境要求與安裝
Mokuro 需要「Python 3.10 或更新版本」。2 在安裝前,需要注意一點:「由於 PyTorch 依賴項的原因,最新的 Python 發行版可能尚未獲得支援」。最新發布的 Python 可能會導致安裝失敗,因此稍微保守一點的 3.1x 版本是更穩妥的選擇。2
安裝本身只需一條命令:
pip3 install mokuro
GPU 是可選的。Mokuro 完全可以在 CPU 上執行。程式碼庫說明指出,安裝支援 CUDA 的 PyTorch 以啟用 GPU 加速這一步「可以跳過」。12 僅使用 CPU 也能正常運作,只是耗時更長,且官方未給出具體的耗時參考資料。
此處列出的命令、參數選項及 Python 版本要求反映了上游程式碼庫的現狀。特定版本的行為以引入該行為的發布說明為準。處於活躍開發階段的工具可能會更改其介面,因此如果存在差異,請以 README 的最新說明為準。2
處理單卷漫畫
Mokuro 採用「每卷一個資料夾」的檔案配置:你只需將 mokuro 命令指向包含單卷漫畫各頁圖像的目錄即可。處理單卷的命令為:
mokuro /path/to/manga/vol1
也可以透過列出多個路徑,在一次調用中處理多卷:
mokuro /path/to/manga/vol1 /path/to/manga/vol2 /path/to/manga/vol3
如果各卷存放在同一個父目錄下,可以將 Mokuro 直接指向父目錄。README 給出的目錄結構範例如下:
manga_title/
├─vol1/
├─vol2/
├─vol3/
└─vol4/
然後執行:
mokuro --parent_dir manga_title/
這是針對每卷執行的一次性離線步驟,在閱讀前完成:「所有處理均在離線完成(閱讀之前)」。2 你只需支付一次處理時間成本。之後便可以隨時反覆閱讀,無需再進行額外的 OCR 處理。
Mokuro 的輸出內容
官方持續維護的標準輸出格式為 .mokuro 檔案。該格式「在 0.2.0 版本中引入」,並且「僅包含 OCR 結果與詮釋資料(Metadata)」。換句話說,它將辨識出的文字及其位置資訊與漫畫圖像本身分離開來。2
為了保持向下相容,Mokuro 仍會產生舊版的 HTML 檔案,但 README 將該方式標記為舊版特性,並指出其「將不再進行進一步開發」。2 新建構的流程應遵循 .mokuro 搭配網頁閱讀器的路線。HTML 輸出主要是為照顧既有舊環境,而非用於新設定。
以下是引自 README 選項列表的常用參數:2
| 參數選項 | 功能說明 |
|---|---|
--force_cpu | 「即使 CUDA 可用,也強制使用 CPU。」 |
--disable_ocr | 「產生不含 OCR 結果的 mokuro/HTML 檔案。」 |
--disable_html | 「停用舊版 HTML 輸出。」 |
閱讀體驗
單卷處理完成後,便可在瀏覽器中進行閱讀。正是這層可選取的疊加層,使得在畫面上進行常規文字選取以及懸浮字典取詞成為可能。
開啟已處理的漫畫
對於主流推薦路徑,你只需在 reader.mokuro.app 的網頁閱讀器中,將 .mokuro 檔案與漫畫圖像一同載入。25 README 對此表述得十分直接:「在網頁閱讀器中將 .mokuro 檔案與漫畫圖像一同載入」。2
舊版 HTML 路徑的開啟方式有所不同。較早的 HTML 輸出可以直接在瀏覽器中連按兩下開啟。根據 README 說明:「你可以將產生的 HTML 檔案連同漫畫圖像傳輸到另一台裝置(如手機)並在那裡閱讀」。2
無論哪種方式,辨識出的文字都會以可選取文字疊加層的形式覆蓋在每個分鏡或對話框之上。這使得分鏡導覽與常規的瀏覽器文字選取均可在圖像上正常運作。2
搭配 Yomitan 進行懸浮查詞
這正是該方案價值的體現。隨著可選取文字覆蓋在頁面上,懸浮字典就能像掃描普通網頁文字一樣對其進行解析。只需將滑鼠懸停在生詞上,讀音、釋義與音調就會立即彈出。2 「Yomitan (Yomichan):懸浮查詞字典工作流程」一文對該字典層進行了詳盡介紹。
兩者的依賴關係是單向的。Mokuro 僅提供可選取的文字,本身不附帶任何釋義,因此實際的查詞功能完全來自於讀取這些文字的 Yomitan 或類似字典。2
從查詞到匯入 Anki
在漫畫疊加層上查到生詞後,你可以透過字典的製卡流程直接將其擷取為 Anki 卡片,這與在普通文字中查詞完全一致。一鍵製卡的技術細節請參見「Yomitan + Anki:一鍵製卡設定」。從閱讀中建構牌組的完整方法體系,請參閱「例句擷取:從閱讀素材中建構專屬日語 Anki 牌組」。
Mokuro 為該工作流程帶來的最大提升是拓展了輸入語料的範圍。此前因為只是純圖像而無法擷取的漫畫,在疊加層就位後,便成了源源不絕的卡片製作來源。
注意事項
「允許存取檔案網址」設定陷阱
舊版離線本機 HTML 路徑在 Chromium 核心瀏覽器中有一個需要注意的地方。當從 file:// 位址開啟 Mokuro HTML 檔案時,Yomitan 擴充功能在獲得擴充功能的「允許存取檔案網址」權限之前,是無法掃描該頁面的。6 Yomitan 官方文件在「掃描本機檔案與 PDF」一節中明確提出了該要求:「為了在 Chrome 中對本機檔案使用 Yomitan,必須首先在擴充功能頁面中勾選 Yomitan 的 允許存取檔案網址 核取方塊」。6
託管在 reader.mokuro.app 的網頁閱讀器則完全避開了這個問題。由於它透過 https:// 而非 file:// 提供服務,因此根本不會涉及檔案網址權限的開關。256 具體的權限勾選步驟已記錄在「Yomitan (Yomichan):懸浮查詞字典工作流程」中。如果你走的是本機 HTML 路徑,請按那裡的說明操作。
OCR 辨識效果優異,但並非完美
manga-ocr 雖經過專門訓練,但作者也坦承了其明確的局限性。偶爾出現辨識錯誤是正常現象,並不代表程式出錯。關於文字長度:「OCR 支援多行文字,但文字越長,出現錯誤的機率就越大」。3 關於手寫體:「它很可能無法處理手寫文字」。3
在空白區域還會出現一種特性:「該模型總是試圖辨識圖像上的某些文字,即使完全沒有文字……它甚至可能會『幻想』出一些看起來很逼真的句子」。作者指出,這在正常使用中通常不會造成實際困擾。3
面對這些情況,依靠疊加層本身的設計即可輕鬆應對,無需額外變通方案。因為辨識出的文字是可選取的,遇到辨識錯誤的生詞時,讀者可以直接重新劃選或手動查詞。上游程式碼庫並未聲稱具體的準確率百分比,因此本文亦不做主觀斷言。
適合閱讀的素材選擇
Mokuro 能讓生肉漫畫變得可查詞,但它不能替你挑選漫畫,也不能對其難度進行分級。它是一款處理與閱讀工具,而非推薦引擎。12 如需選擇符合當前程度的漫畫作品,請參閱「針對日語學習者的漫畫分級指南」。
參見
- Yomitan (Yomichan):懸浮查詞字典工作流程
- Yomitan + Anki:一鍵製卡設定
- ttu-reader:瀏覽器端日語電子書閱讀器
- ASBPlayer:針對動漫的字幕例句擷取
- 針對日語學習者的漫畫分級指南
- 例句擷取:從閱讀素材中建構專屬日語 Anki 牌組