kirinonakar/ocr_trans

ocr_trans

22
GitHub 스타
5
포크
Rust
언어
MIT
라이선스
2026.06.30
최근 푸시
2026.04.13
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
이 프로젝트는 실시간 화면 번역이 필요한 Windows 사용자에게 적합하며, 특히 VLM 기반 번역의 정확성과 사용자 정의 가능한 UI를 중시하는 경우 유용합니다. 로컬 AI 모델을 선호하거나 Gemini API를 사용하려는 개발자에게도 좋은 참고 자료가 될 수 있습니다.

강점

  • 실시간 화면 OCR 및 번역을 VLM 기반으로 제공하여 정확도가 높습니다.
  • Windows 전용 기능(Mica, 클릭 통과, 자격 증명 관리자)을 적극 활용하여 사용자 경험을 향상시킵니다.
  • 다양한 API(Gemini, LMStudio, Ollama)를 지원하고 외부 설정 파일로 유연하게 구성할 수 있습니다.

약점

  • Windows 전용으로 설계되어 다른 OS에서는 사용할 수 없습니다.
  • 로컬 AI 모델 사용 시 상당한 하드웨어 리소스가 필요할 수 있습니다.
  • 초기 설정 시 Rust 및 C++ 빌드 도구 설치가 필요하여 진입 장벽이 있을 수 있습니다.

주의사항

  • API 키를 `gemini.txt` 파일에 평문으로 저장하므로 보안에 주의해야 합니다.
  • 로컬 모델 사용 시 권장 모델(gemma-4-26b-a4b 등)이 명시되어 있지만, 실제 성능은 하드웨어에 따라 크게 달라질 수 있습니다.
  • 프로젝트가 아직 초기 단계(21 stars)이므로 버그나 변경 사항이 있을 수 있습니다.

시작 가이드

  • 릴리스 페이지에서 미리 빌드된 바이너리를 다운로드하여 빠르게 테스트해 보세요.
  • Gemini API 키를 준비하거나 로컬 LMStudio/Ollama 서버를 설정하세요.
  • 선택한 영역의 번역 품질과 성능을 실제 사용 사례(예: 자막 번역)에서 평가해 보세요.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

VLM 기반 Rust OCR 번역기

VLM(비전-언어 모델)을 기반으로 한 Rust와 Slint로 구축된 실시간 화면 OCR 및 번역 도구입니다.

<img src="screenshot.png" alt="screenshot1" width="50%">

기능

  • 현대적인 UI: 다크 모드, 글래스모피즘, 메인 제어 창에 Windows 11 Mica 배경 지원.
  • 전환 가능한 오버레이: OCR 프로세스를 중단하지 않고 번역 상자를 숨기거나 표시할 수 있는 전용 토글 및 로직.
  • 대화형 영역 선택: 마우스를 드래그하여 번역할 영역을 정확히 선택할 수 있습니다. Escape 키로 취소 가능.
  • 자동 자동화: 영역을 선택하면 즉시 캡처 프로세스가 시작되어 결과를 바로 확인할 수 있습니다.
  • 변경 감지: 화면 변경을 감지하여 불필요한 API 호출을 방지하는 지능형 로직.
  • 사용자 정의 가능한 오버레이: 배경색, 텍스트 색상, 투명도 및 별도 텍스트 상자를 즉시 변경하여 취향에 맞게 조정할 수 있습니다.
  • 텍스트 상자 모드 및 클릭 통과: 텍스트 상자 모드를 활성화하면 오버레이의 닫기 버튼이 숨겨지고 클릭 통과 상호작용이 활성화되어 캡처 영역 뒤에 있는 애플리케이션을 클릭할 수 있으면서도 번역 경계를 볼 수 있습니다.
  • 동적 크기 조정: 선택한 영역 내에서 텍스트에 맞게 글꼴 크기가 자동으로 조정됩니다.
  • 클립보드 동기화: 번역된 텍스트가 자동으로 시스템 클립보드에 복사되어 다른 곳에서 쉽게 사용할 수 있습니다.
  • 다중 API 지원:
  • Google Gemini: API 키는 Windows 자격 증명 관리자에 일반 자격 증명으로 저장되며 x-goog-api-key 헤더와 함께 전송됩니다.
  • LMStudio / Ollama: OpenAI 호환 로컬 AI 엔드포인트와 함께 작동합니다. (기본값: unsloth/gemma-4-26b-a4b-it 또는 사용자 정의)
  • 권장: gemma-4-26b-a4b (최상의 균형), gemma-4-31b-it (최고 품질), qwen3.5-9b (빠름)
  • 더 빠른 응답을 위해 thinking 비활성화
  • 외부 설정 파일:
  • gemini.txt: 현재 작업 디렉토리 또는 실행 파일 디렉토리에서 Google Gemini API 키를 자동으로 로드합니다. 값이 발견되면 Windows 자격 증명 관리자에 저장됩니다.
  • system_prompt.txt: 사용자 정의 번역 지침을 자동으로 로드합니다.
  • model.txt: LMStudio의 기본 모델 이름을 자동으로 로드합니다.
  • 조정 가능한 창의성: Temperature 슬라이더(0.0 - 1.0)를 사용하여 번역 일관성과 창의성을 제어할 수 있습니다.
  • 전역 단축키:
  • Win + Alt + A: 영역 선택 트리거.
  • Win + Alt + P: 번역 프로세스 시작 또는 중지.

사전 요구 사항

  • Rust: Rust 설치
  • C++ 빌드 도구: windows-rsslint에 필요합니다.

시작하기

📥 다운로드

릴리스 페이지에서 최신 버전을 다운로드할 수 있습니다.

수동 빌드

  1. 저장소를 클론합니다.
  2. (선택 사항) 현재 작업 디렉토리 또는 실행 파일 옆에 gemini.txt(API 키용) 및 system_prompt.txt(사용자 정의 지침용)를 생성합니다.
  3. cargo run --release를 실행합니다. 또는 cargo build --release를 실행하여 바이너리를 생성합니다.
  4. 메인 창을 엽니다:
  • 제공자(LMStudio 또는 Google Gemini)를 선택합니다.
  • SELECT AREA를 클릭하고 번역할 영역(예: 자막)을 드래그하여 선택합니다.
  • 캡처가 자동으로 시작됩니다. STOP 버튼으로 일시 중지하거나 Win + Alt + A로 영역을 다시 선택할 수 있습니다.
  • Overlay 체크박스를 사용하여 실행 중에 번역 텍스트를 숨기거나 표시할 수 있습니다.
  • Textbox 모드를 사용하여 번역을 별도의 드래그 가능한 창으로 이동할 수 있습니다.

🎨 사용자 정의

  • 글꼴 크기 옆의 ▼ Style 버튼을 클릭하여 사용자 정의 옵션을 표시합니다.
  • 배경색: 어두운, 밝은, 종이 같은 테마를 포함한 다양한 프리셋 중에서 선택할 수 있습니다. 선택한 색상이 강조 표시됩니다.
  • 텍스트 색상: 선택한 배경에 대해 읽기 쉬운 대비 색상을 선택합니다.
  • 투명도: 슬라이더를 사용하여 오버레이를 통해 원래 화면이 얼마나 보이는지 조정합니다. 변경 사항이 실시간으로 반영됩니다.
  • 동적 크기 조정: 애플리케이션이 선택한 영역 내에서 내용에 맞게 글꼴 크기를 자동으로 조정합니다.
  • 텍스트 상자 모드: 오버레이를 활성 상태로 유지하면서(10% 불투명도) 번역 결과를 별도의 크기 조정 가능한 창에 표시할 수 있습니다. 이 모드에서는 오버레이의 닫기 버튼이 숨겨지고 클릭 통과 상호작용이 활성화되어 캡처 영역 뒤에 있는 애플리케이션을 클릭할 수 있습니다.

프로젝트 구조

  • src/main.rs: 오케스트레이션, 이벤트 루프 및 UI 로직.
  • src/capture.rs: 화면 캡처 및 변경 감지.
  • src/api.rs: 다중 모드 AI 클라이언트(Gemini/OpenAI).
  • src/win_utils.rs: Windows 특화 UI 해킹(계층 창, 클릭 통과, Mica).
  • ui/main.slint: Slint용 현대적인 UI 정의.

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

원본 저장소: kirinonakar/ocr_trans

라이선스: MIT

게재 제외를 원하시면 삭제 요청을 보내주세요.