美丽 (Meili)는 "아름다운"을 의미합니다.

중국어 학습 HUD • 로컬 번역 • 텍스트 음성 변환
이것은 무엇인가요?
Meili (美丽)는 중국어를 실시간으로 번역하고, 병음과 의미를 투명한 오버레이로 표시하는 소프트웨어입니다.
기능
1. 감시 영역
- 시작 시 시스템 대화 상자에서 공유할 창을 선택합니다.
- 오버레이를 클릭하여 스트림의 고정 프레임을 열고, 그 위에 상자를 그려 감시 영역을 설정합니다 (마우스 오른쪽 클릭 또는 Esc로 취소).
- 앱은 공유 창의 해당 영역을 계속 감시합니다. 3초마다 해당 영역의 중국어를 읽고 새 줄이 나타날 때만 번역합니다.
- 오버레이를 마우스 오른쪽 버튼으로 클릭하여 영역을 지웁니다.
2. 학습 카드
- 각 결과는 한자, 병음 (
pypinyin), CC-CEDICT의 단어 분해, 그리고 번역 (로컬 MarianMT,Helsinki-NLP/opus-mt-zh-en)을 표시합니다. - 카드는 오버레이의 하단 중앙에 가로로 배치됩니다. 앱은 비디오 위에서도 읽기 쉽게 텍스트에 윤곽선을 그려 표시합니다.
3. 선택 번역
- 데스크톱의 중국어 텍스트를 선택하면 앱이 동일한 파이프라인을 통해 실행합니다: CJK 필터 → 카드 → 번역.
4. 단축키
Ctrl+Alt+S를 눌러 화면을 캡처합니다. 앱이 OCR을 수행하고 발견된 중국어를 번역합니다.
5. 텍스트 음성 변환
- NeuTTS (로컬 신경망 TTS, 선택 사항, 설정에서 활성화).
- gTTS 대체.
- 앱은 해당 중국어 또는 영어로 한자 또는 번역을 말합니다.
6. 브라우저 확장 프로그램 (Chromium)
- 페이지에서 중국어 텍스트를 선택하면 확장 프로그램이 페이지 내 번역 툴팁을 표시합니다.
- 확장 프로그램은
127.0.0.1:8263의 로컬 백엔드와 통신합니다. - 확장 프로그램은 페이지 컨텍스트를 메모리에만 유지합니다. 디스크에 아무것도 쓰지 않습니다.
설치
사전 요구 사항
- Python 3.12+
- Node.js (최신 LTS, 브라우저 확장 프로그램용)
- Tesseract OCR (
chi_sim및engtraineddata 포함,data/tessdata/에 포함됨) - PyGObject + GStreamer + PipeWire GStreamer 플러그인 (Wayland에서 포털 공유용)
- Chromium 기반 브라우저 (확장 프로그램용)
설정
# 시스템 종속성 (Arch Linux)
./scripts/install_dependencies.sh
# Python 종속성
make install-pip
# 선택 사항: NeuTTS
make vendor
# 브라우저 확장 프로그램
make build-extension
# 구성
cp config/example_config.yaml config/config.yaml
구성
config/config.yaml을 편집합니다:
ocr:
engine: "pytesseract"
languages: ["en", "zh"] # chi_sim이 한자 작업을 수행합니다.
translation:
service: "helsinki-nlp"
model: "Helsinki-NLP/opus-mt-zh-en" # 중국어 -> 영어
target_language: "en"
performance:
use_gpu: false
neutts_enabled: false # vendor/neutts 및 src/assets/voice_ref.wav 필요
use_gpu: false는 번역 모델을 CPU에서 실행합니다.
실행
make run
확장 프로그램 로드
- 빌드:
make build-extension chrome://extensions를 열고 개발자 모드를 활성화합니다.- "압축 해제된 확장 프로그램 로드"를 선택하고 확장 프로그램 빌드 출력 (
src/extension/dist)을 선택합니다.
프로젝트 구조
Meili/
├── src/
│ ├── mesly/ # Python 애플리케이션
│ │ ├── capture/ # 포털/PipeWire 창 스트리밍, 화면 캡처
│ │ ├── config/ # 설정 및 시스템 사양
│ │ ├── dictionary/ # CC-CEDICT 조회, 병음, 분할
│ │ ├── ocr/ # Tesseract OCR + CJK 전용 필터링
│ │ ├── server/ # FastAPI 백엔드 (확장 프로그램 엔드포인트)
│ │ ├── translation/ # 로컬 MarianMT (opus-mt-zh-en) 서비스
│ │ ├── tts/ # NeuTTS / gTTS 음성 합성
│ │ ├── utils/ # 로깅, 단축키
│ │ └── window/ # PyQt5 HUD 오버레이
│ └── extension/ # Chromium 확장 프로그램 (선택하여 번역)
├── data/ # 포함된 tessdata + CC-CEDICT
├── config/ # 런타임 구성
├── vendor/ # NeuTTS (선택 사항)
├── scripts/ # 설치 스크립트
└── main.py # 진입점
기여
기여를 환영합니다. 개발 지침은 AGENTS.md를 참조하십시오:
- 최상위 레벨에서 가져오기
- 모듈을 폴더로 분리
- 확장 프로그램에서 클래스 사용