MiningCat
Python / FlaskMiningCat est un logiciel libre que je développe en Python, avec une interface web locale, pour apprendre les langues par l'immersion et le « sentence mining » : lire, regarder et jouer dans la langue qu'on étudie, chercher les mots dans ses propres dictionnaires, et transformer les phrases qui nous plaisent en cartes Anki.
Il réunit dans une seule application ce qui demande d'habitude plusieurs outils (lecteur, dictionnaire contextuel, lecteur vidéo, création de cartes), et tout tourne sur l'ordinateur : rien n'est envoyé en ligne.
Fonctionnalités
- Lecteur d'ebooks (EPUB, TXT, HTML, Markdown) et de BD ou mangas dont le texte est lu par OCR, en texte horizontal ou vertical.
- Lecteur vidéo pour les vidéos locales et celles de YouTube, Instagram et Bilibili, avec des sous-titres où chaque mot se clique.
- Jeux vidéo : les boîtes de dialogue sont lues par OCR et envoyées, avec une capture d'écran, vers une page où l'on peut miner.
- Popup de dictionnaire au format Yomitan : déconjugaison, accent tonal japonais, audio et rang du mot dans une liste de fréquence.
- Suivi de la progression : mots colorés selon leur statut, taux de compréhension de chaque texte, et phrases « i+1 » (un seul mot inconnu) recommandées selon la fréquence de ce mot.
- Cartes Anki (mot, lecture, définitions, phrase, audio, image, traduction) envoyées via AnkiConnect ou exportées en .apkg ; les statuts des mots se mettent à jour d'après les decks Anki.
- Convertisseur : des vidéos MP4 avec sous-titres synchronisés à partir d'un livre audio et de son ebook, d'un ebook seul (synthèse vocale) ou d'une vidéo sans sous-titres (transcription, ou OCR des sous-titres incrustés).
Sous le capot
MiningCat enchaîne plusieurs modèles d'IA qui tournent en local : transcription avec Whisper (faster-whisper) et Qwen3-ASR, alignement forcé du texte d'un livre sur son livre audio (stable-ts, MMS de Meta), synthèse vocale (edge-tts, MMS-TTS), OCR (Apple Vision, EasyOCR, owocr) et traduction hors ligne des phrases et des sous-titres (NLLB-200 de Meta, ou Qwen3 avec le contexte des répliques précédentes).
L'interface est une application web locale (Flask, Bootstrap) organisée en couches (domaine, application, infrastructure, interfaces). Le projet est testé sur Linux, macOS et Windows, avec plus de 1 200 tests et une CI qui exige au moins 80 % de couverture.
Langues
Mandarin (traditionnel et simplifié), cantonais, taïwanais (taigi), japonais, coréen, vietnamien, russe, anglais, français, allemand, italien, espagnol, portugais et polonais.
Pour le taïwanais, MiningCat lit et convertit ses trois écritures (Hanji, Tâi-lô et Pe̍h-ōe-jī), et utilise des moteurs vocaux locaux dédiés, Whisper ne connaissant pas cette langue.
Le projet est open-source, distribué sous licence AGPL-3.0.