MiningCat

Python / Flask

MiningCatは、Pythonで開発しているフリーソフトウェアで、ローカルのWebインターフェースを備え、イマージョンと「センテンスマイニング」による語学学習のためのツールです。学習中の言語で読み、観て、遊び、自分の辞書で単語を調べ、気に入った文を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)。

インターフェースはローカルのWebアプリケーション(Flask、Bootstrap)で、レイヤー構造(ドメイン、アプリケーション、インフラストラクチャ、インターフェース)で設計されています。Linux、macOS、Windowsでテストされており、1,200件以上のテストと、カバレッジ80%以上を必須とするCIを備えています。

対応言語

中国語(繁体字・簡体字)、広東語、台湾語(台語)、日本語、韓国語、ベトナム語、ロシア語、英語、フランス語、ドイツ語、イタリア語、スペイン語、ポルトガル語、ポーランド語。

台湾語については、三つの表記体系(漢字、台羅、白話字)を読み取り相互に変換し、Whisperが対応していないため専用のローカル音声エンジンを使います。

GitHub ドキュメントを見る

このプロジェクトはオープンソースで、AGPL-3.0ライセンスで公開されています。

ギャラリー