Python
Meili
Meili (美丽) ist eine Software, mit der Sie Chinesisch live übersetzen können, mit einer transparenten Überlagerung mit Pinyin und Bedeutung.
美丽 (Meili) bedeutet "schön".

MANDARIN STUDY HUD • LOKALE ÜBERSETZUNG • TEXT-TO-SPEECH
Was ist das?
Meili (美丽) ist eine Software, mit der Sie Chinesisch live übersetzen können, mit einer transparenten Überlagerung mit Pinyin und Bedeutung.
Funktionen
1. Beobachtungsbereich
- Beim Start wählen Sie das zu teilende Fenster im Systemdialog aus.
- Klicken Sie auf die Überlagerung, um einen eingefrorenen Frame des Streams zu öffnen, und ziehen Sie dann ein Feld darüber, um den Beobachtungsbereich festzulegen (Rechtsklick oder Esc bricht ab).
- Die App beobachtet diesen Bereich des geteilten Fensters weiter: Alle 3 Sekunden liest sie das Chinesisch dort und übersetzt es nur, wenn eine neue Zeile erscheint.
- Rechtsklicken Sie auf die Überlagerung, um den Bereich zu löschen.
2. Lernkarte
- Jedes Ergebnis zeigt Hanzi, Pinyin (
pypinyin), eine Wortaufschlüsselung von CC-CEDICT und die Übersetzung (lokales MarianMT,Helsinki-NLP/opus-mt-zh-en). - Die Karte befindet sich horizontal zentriert am unteren Rand der Überlagerung. Die App zeichnet den Text mit einer Umrandung, damit er über dem Video lesbar bleibt.
3. Auswahlübersetzung
- Wählen Sie chinesischen Text irgendwo auf dem Desktop aus, und die App verarbeitet ihn durch dieselbe Pipeline: CJK-Filter → Karte → Übersetzung.
4. Hotkey
- Drücken Sie
Ctrl+Alt+S, um den Bildschirm zu erfassen. Die App OCRt ihn und übersetzt jedes gefundene Chinesisch.
5. Text-to-Speech
- NeuTTS (lokales neuronales TTS, optional, in der Konfiguration aktiviert).
- gTTS Fallback.
- Die App spricht die Hanzi oder die Übersetzung, entsprechend auf Chinesisch oder Englisch.
6. Browser-Erweiterung (Chromium)
- Wählen Sie chinesischen Text auf einer Seite aus, und die Erweiterung zeigt einen In-Page-Übersetzungs-Tooltip an.
- Die Erweiterung kommuniziert mit dem lokalen Backend unter
127.0.0.1:8263. - Die Erweiterung behält den Seitenkontext nur im Speicher. Sie schreibt nichts auf die Festplatte.
Installation
Voraussetzungen
- Python 3.12+
- Node.js (neueste LTS, für die Browser-Erweiterung)
- Tesseract OCR mit
chi_simundengtraineddata (vendored indata/tessdata/) - PyGObject + GStreamer + das PipeWire GStreamer-Plugin (für die Portal-Freigabe auf Wayland)
- Chromium-basierter Browser (für die Erweiterung)
Einrichtung
# Systemabhängigkeiten (Arch Linux)
./scripts/install_dependencies.sh
# Python-Abhängigkeiten
make install-pip
# Optional: NeuTTS
make vendor
# Browser-Erweiterung
make build-extension
# Konfiguration
cp config/example_config.yaml config/config.yaml
Konfiguration
Bearbeiten Sie config/config.yaml:
ocr:
engine: "pytesseract"
languages: ["en", "zh"] # chi_sim erledigt die Hanzi-Arbeit
translation:
service: "helsinki-nlp"
model: "Helsinki-NLP/opus-mt-zh-en" # Chinesisch -> Englisch
target_language: "en"
performance:
use_gpu: false
neutts_enabled: false # benötigt vendor/neutts und src/assets/voice_ref.wav
use_gpu: false führt das Übersetzungsmodell auf der CPU aus.
Ausführen
make run
Erweiterung laden
- Erstellen Sie sie:
make build-extension - Öffnen Sie
chrome://extensions, aktivieren Sie den Entwicklermodus - Wählen Sie "Entpackte Erweiterung laden" und wählen Sie das Ausgabe-Verzeichnis der Erweiterung (
src/extension/dist)
Projektstruktur
Meili/
├── src/
│ ├── mesly/ # Python-Anwendung
│ │ ├── capture/ # Portal/PipeWire Fenster-Streaming, Bildschirmaufnahme
│ │ ├── config/ # Einstellungen und Systeminformationen
│ │ ├── dictionary/ # CC-CEDICT-Suche, Pinyin, Segmentierung
│ │ ├── ocr/ # Tesseract OCR + nur CJK-Filterung
│ │ ├── server/ # FastAPI-Backend (Erweiterungs-Endpunkt)
│ │ ├── translation/ # Lokaler MarianMT (opus-mt-zh-en) Dienst
│ │ ├── tts/ # NeuTTS / gTTS Sprachsynthese
│ │ ├── utils/ # Protokollierung, Hotkeys
│ │ └── window/ # PyQt5 HUD-Überlagerung
│ └── extension/ # Chromium-Erweiterung (Auswahl zum Übersetzen)
├── data/ # Vendored tessdata + CC-CEDICT
├── config/ # Laufzeitkonfiguration
├── vendor/ # NeuTTS (optional)
├── scripts/ # Installationsskripte
└── main.py # Einstiegspunkt
Mitwirkung
Beiträge sind willkommen. Siehe AGENTS.md für Entwicklungsrichtlinien:
- Import auf oberster Ebene
- Module in Ordner aufteilen
- Klassen in Erweiterungen verwenden