MiningCat
Python / FlaskMiningCatは、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が対応していないため専用のローカル音声エンジンを使います。
このプロジェクトはオープンソースで、AGPL-3.0ライセンスで公開されています。