MiningCat

Python / Flask

MiningCat 是我使用 Python 開發的自由軟體,搭配本機網頁介面,透過沉浸式學習與「sentence mining」(句子擷取)來學習語言:用正在學的語言閱讀、看影片、玩遊戲,在自己的字典中查詢單字,並把喜歡的句子做成 Anki 卡片。

它把通常需要好幾個工具才能完成的事(閱讀器、查詞字典、影片播放器、製卡)整合在同一個應用程式裡,而且一切都在自己的電腦上執行,不會傳送任何資料到網路上。

功能

  • 電子書閱讀器(EPUB、TXT、HTML、Markdown),也能閱讀漫畫,其文字由 OCR 辨識,支援橫排與直排。
  • 影片播放器:播放本機影片,以及 YouTube、Instagram、Bilibili 的影片,字幕中的每個字詞都可以點擊查詢。
  • 電玩遊戲:透過 OCR 讀取對話框,連同截圖一起傳送到可以擷取句子的頁面。
  • 支援 Yomitan 格式的查詞字典:動詞變化還原、日語高低音調、發音,以及單字在詞頻表中的排名。
  • 學習進度追蹤:依狀態為單字上色、每篇文本的理解率,並依詞頻推薦「i+1」句子(只有一個生字的句子)。
  • Anki 卡片(單字、讀音、釋義、句子、音訊、圖片、翻譯)可透過 AnkiConnect 傳送或匯出為 .apkg;單字狀態會依 Anki 牌組自動更新。
  • 轉換器:從有聲書與其電子書、單獨的電子書(文字轉語音),或沒有字幕的影片(語音轉錄,或以 OCR 擷取內嵌字幕),製作帶有同步字幕的 MP4 影片。

技術細節

MiningCat 串接多個在本機執行的 AI 模型:以 Whisper(faster-whisper)與 Qwen3-ASR 進行語音轉錄、將電子書文字與有聲書進行強制對齊(stable-ts、Meta 的 MMS)、語音合成(edge-tts、MMS-TTS)、OCR(Apple Vision、EasyOCR、owocr),以及離線翻譯句子與字幕(Meta 的 NLLB-200,或參考前幾句字幕上下文的 Qwen3)。

介面是本機網頁應用程式(Flask、Bootstrap),採分層架構(領域、應用、基礎設施、介面)。專案在 Linux、macOS 與 Windows 上測試,擁有超過 1,200 個測試,CI 要求至少 80% 的覆蓋率。

支援語言

國語(繁體與簡體)、粵語、台語、日語、韓語、越南語、俄語、英語、法語、德語、義大利語、西班牙語、葡萄牙語與波蘭語。

台語方面,MiningCat 能讀取並轉換三種書寫系統(漢字、台羅與白話字),並使用專門的本機語音引擎,因為 Whisper 不支援台語。

GitHub 查看說明文件

這是一個開源專案,採用 AGPL-3.0 授權發布。

圖片集