이미지에서 복사-붙여넣기 중단: Python으로 범용 화면 번역기 만들기

발행: (2026년 2월 6일 오전 03:33 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

Introducing Lingo‑Live

Lingo‑Live는 우리 many가 겪은 좌절감에서 시작되었습니다: YouTube 동영상(또는 화면에 표시되는 어떤 콘텐츠)에서 텍스트를 복사하려고 하면 불가능합니다. 대부분은 모든 것을 손으로 직접 입력하거나 휴대폰을 꺼내 Google Lens를 사용하게 되는데, 이는 번거롭고 집중을 방해하며 전혀 이상적이지 않습니다.

Lingo‑Live는 화면에 보이는 모든 것을 즉시 번역해 주는 세련된 데스크톱 앱으로, 마치 초능력을 가진 듯한 느낌을 줍니다.

  • Invisible – 백그라운드에서 조용히 실행
  • Instant – 단축키를 누르고 영역을 선택하면 번역이 표시
  • Modern – 유리 같은 UI, 다크 모드, 블러 효과

Ctrl + Alt + T를 눌러 화면의 원하는 부분을 드래그하면, 번역된 텍스트가 현재 작업 중인 화면 위에 나타납니다.

The “Glass” Overlay

가장 까다로운 부분은 눈에 거슬리지 않으면서도 항상 위에 떠 있는 창을 만드는 것이었습니다. 저는 CustomTkinter를 사용해 프레임이 없고 반투명한 오버레이를 구현했으며, 가볍고 현대적인 느낌을 주었습니다.

  • 항상 위에 표시되어 번역이 보이도록 유지
  • 반투명하여 아래 컨텍스트를 여전히 확인 가능
  • 프레임리스 – 타이틀 바 없음; 대신 사용자 정의 드래그‑앤‑드롭 사용

그 결과는 앱이라기보다 데스크톱 위에 얹힌 레이어에 가깝습니다.

The Eyes (OCR)

단축키를 트리거하면 Lingo‑Live는 화면을 “읽으려” 하지 않습니다. 대신 다음 과정을 수행합니다:

  1. 영역을 선택하도록 함
  2. 해당 영역의 스크린샷을 캡처
  3. Tesseract OCR에 전달해 픽셀에서 텍스트를 추출
# OCR step
from PIL import ImageGrab
screenshot = ImageGrab.grab(bbox=(x1, y1, x2, y2))
text = ocr_engine.extract_text(screenshot)

여기서부터 마법이 시작됩니다—이미지를 실제 텍스트로 변환합니다.

The Brain (Translation)

OCR이 こんにちは와 같은 텍스트를 반환하면, 의미 있게 번역해야 합니다. 여기서 Lingo.dev가 등장합니다. 단순한 사전 교체가 아니라 컨텍스트를 제대로 처리해 주어 UI 텍스트, 오류 메시지, 게임 대사 등에서 큰 차이를 만들어 줍니다. 결과는 로봇처럼 보이지 않고 자연스럽습니다.

The Voice (Text‑to‑Speech)

때때로 텍스트를 읽고 싶지 않고 듣고 싶을 때가 있습니다. 저는 Edge TTS를 추가했으며, 이는 Microsoft Edge에서 제공하는 고품질 음성을 사용합니다. 이제 Lingo‑Live는 번역을 음성으로 읽어줄 수 있어 발음 연습이나 핸즈프리 상황에 유용합니다.

“물고기는 물에 사는 척추동물입니다…”

Leveling Up: AI Summarization

전체 번역도 좋지만, 때로는 핵심만 알고 싶을 때가 있습니다. Google Gemini로 구동되는 Summarize 버튼이 그 역할을 합니다:

  1. 번역된 텍스트를 Gemini에 전송
  2. Gemini가 깔끔한 한 문장 요약을 반환

즉시 요점을 파악할 수 있어 외국 기사, 긴 오류 메시지, RPG 대사 덤프 등을 스키밍하기에 최적입니다.

Make It Yours: Settings That Actually Matter

Lingo‑Live는 JSON 기반의 완전한 설정 시스템을 제공하여 경험을 자유롭게 맞춤화할 수 있습니다:

  • 단축키 변경 (예: Alt + Z)
  • 테마 전환 (다크 모드가 기본)
  • 폰트 선택 (예: Roboto → Segoe UI)
{
  "hotkey": "Ctrl+Alt+T",
  "theme": "dark",
  "font": "Segoe UI"
}

Getting Started

이 저장소는 오픈소스입니다. 클론하고 코드를 살펴보며 픽셀에서 복사‑붙여넣기를 끝내세요.

git clone https://github.com/Samar-365/lingo_live.git

Acknowledgements

특별히 @sumitsaurabh927@maxprilutskiy에게 해커톤 내내 지속적인 지도와 이 훌륭한 기회를 제공해 준 것에 감사드립니다.

Happy coding!

Back to Blog

관련 글

더 보기 »