Miron - Native macOS OCR ve Çeviri

Mimari

Apple Vision & Ollama

macOS OCR işlemi için Apple Vision Framework, güçlü yerel çeviri işlemleri için de Ollama altyapısı kullanıldı. Tamamen yerel, donanım hızlandırmalı bir çözüm.

Performans

25 FPS Akıllı Kaydırma

Oyun veya kamera hareketlerini bekletmeden OCR kutularının 25 FPS (40ms) hızında akmasını sağlayan Optical Flow donanım hızlandırma tabanlı kaydırma takibi.

Arayüz

Akıllı ve Hayalet Arayüz

Çeviri kutularında tıkla-geç (click-through) desteği. Böylece oyun veya aktif uygulama kullanımını kısıtlamaz, arkaplanı şeffaf bırakır.

Miron macOS OCR Çeviri

Proje Hakkında

Miron, tamamen yerleşik teknolojiler üzerine inşa edilmiş bir ekran okuma ve çeviri uygulamasıdır. Apple Vision framework ile anlık metin sınır kutularını (bounding boxes) okuyarak metni çıkartır ve Ollama üzerinden sağlanan (ör: translategemma) yerel yapay zeka modelleriyle çeviri işlemini tamamlar.

Teknolojiler

macOS (Quartz) Apple Vision Framework Python 3.9+ Ollama LLM (translategemma)

✨ Özellikler

  • Native macOS OCR (Apple Vision): Apple'ın kendi donanım hızlandırmalı Vision Framework'ü sayesinde çok hızlı ve hatasız metin okuma. Pikselleri Retina ekran (points) ölçeklerine göre milimetrik hizalar.
  • Donanım Hızlandırmalı Kaydırma Takibi (Optical Flow): Oyun oynarken sayfayı veya kamerayı kaydırdığınızda, OCR işlemini beklemeden çeviri kutuları 25 FPS (40ms) hızla anlık olarak metinle birlikte kayar (VNTranslationalImageRegistrationRequest).
  • Ollama ile Yerel veya Google ile Hızlı Çeviri: İster Ollama üzerinden internete bağlanmadan gizlilik odaklı kaliteli çeviri, isterseniz de tek tıkla Google Translate tabanlı deterministik "Hızlı Çeviri" (anlık) moduna geçiş imkanı.
  • Akıllı UI: Orijinal metnin tam üzerine, sinematik bir altyazı gibi Türkçe çeviriyi yerleştirir. Arka planı tamamen şeffaf bıraktığı ve fare tıklamalarını yoksaydığı için oyunu oynamaya veya bilgisayarı kullanmaya engelsiz devam edebilirsiniz. Uzun süre yazı bulunmazsa 7 saniye içerisinde ekrandan otomatik kaybolur.
  • Sistem Çubuğu (System Tray) Kontrolü: Kapatma, "Oyun Modu"na geçiş veya "Hızlı Çeviri" gibi ayarları sağ üst köşedeki "M" ikonundan saniyeler içinde değiştirebilirsiniz.
  • Geri Bildirim Döngüsü Koruması: Miron, kendi çizdiği çeviri metnini OCR aşamasında görmezden gelerek sonsuz döngüleri engeller.

🚀 Kullanım (Nasıl Kullanılır?)

  • Ekranda beliren mor çerçeveyi, çevirmek istediğiniz metnin (örneğin bir oyun altyazısı) üzerine sürükleyip boyutlandırın. F tuşuna basarak tam ekran yapabilirsiniz.
  • Çerçevenin içine çift tıklayın veya sağ üstteki Menü Çubuğu (System Tray) ikonundan "Taramayı Başlat" seçeneğine tıklayın.
  • Çeviri modundayken pencere hayalet (click-through) moda geçer, yani pencerenin arkasına, oyununuza rahatça tıklamaya devam edebilirsiniz.
  • Çeviri tamamlandığında arka plan tamamen şeffaf şekilde Türkçe metin orijinalinin tam üzerine yansıtılır!
  • Taramayı durdurmak, Oyun Modu'nu (Kaydırma takibi olmadan tam ekran çeviri) veya Hızlı Çeviri'yi etkinleştirmek için sağ üst köşedeki M (Miron) ikonuna tıklayabilirsiniz. Çıkış işlemini de yine buradan yapmalısınız.

🛠 Kurulum ve Gereksinimler

Uygulama, Quartz ve Apple Vision Framework kullandığı için sadece macOS üzerinde çalışır. Bilgisayarınızda Python 3.9+ ve Ollama (çalışır durumda) kurulu olmalıdır.

Ollama Modeli İndirme: Terminali açıp uygulamanın çeviri için kullandığı modeli indirin:

ollama run translategemma

Bağımlılıkları Yükleme: Projeyi bilgisayarınıza klonladıktan sonra, bir sanal ortam oluşturun ve gereksinimleri yükleyin:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Ekran Kaydı İzni: Uygulamanın ekranı okuyabilmesi için Sistem Ayarları > Gizlilik ve Güvenlik > Ekran Kaydı bölümünden Terminal'e (veya IDE'nize) izin vermeniz gerekmektedir.

Projeyi Başlatma: Sağlanan shell betiğini çalıştırabilirsiniz:

./run.sh

⚙️ Yapılandırma (config.py)

Uygulamanın çalışma mantığını miron/config.py üzerinden özelleştirebilirsiniz:

  • ollama_model: Kullanılacak LLM modeli (Varsayılan: translategemma).
  • ocr_interval_ms: Ekranın kaç milisaniyede bir taranacağı (Varsayılan: 2000).
  • system_prompt: Yapay zekaya giden, çevirinin nasıl yapılacağını belirten direktif.
Projelere Dön