Skip to content

doyoungkim-code/Bunmin

Repository files navigation

번역의 민족

🎓 대학교 강의 실시간 번역 서비스

  • 서비스명: 번역의 민족
  • 개발 기간: 2026.04.06 ~ 2026.05.21
  • 개발 인원: 6명 (AI · Frontend · Backend)

목차


💡 기획 배경

대학 강의 현장의 언어 장벽

🌍
외국인 수강생 증가
한국어 강의를 따라가지 못해 학습 공백이 생김
📝
강의 자료도 한국어
슬라이드·판서까지 한국어라 번역본 없이 내용 파악이 어려움
🔇
기존 번역 도구의 한계
음성·화면·자막이 따로 작동해 동기화가 맞지 않거나 지연이 심함
💸
고비용 클라우드 의존
외부 서버 전송을 요구해 개인정보 우려 및 비용 발생

✨ 번역의 민족 ✨

강의자는 평소대로 말하고, 수강자는 모국어로 듣는다

  • 즉각적인 번역 — 강의자의 발화가 끝나는 즉시 ASR → NMT → TTS 파이프라인으로 영어 음성 제공
  • 🖥️ 슬라이드까지 번역 — PDF 업로드만 하면 VLM이 레이아웃을 보존하며 슬라이드 전체를 영어로 변환
  • 🔒 완전 로컬 추론 — 음성·슬라이드 원문이 외부 서버로 전송되지 않고 강사 PC에서만 처리
  • 🎯 4채널 완전 동기화 — 원본 음성·TTS·자막·판서가 같은 박자로 학생에게 도착

✨ 서비스 주요 기능

🎤 실시간 음성 번역

  • Silero VAD로 발화 단위 감지 → Whisper turbo로 한국어 인식 → NLLB-200으로 영어 번역
  • 8초 강제 분할로 최악 지연 20초 이내 보장
  • 번역 실패 시 원본 한국어 텍스트로 자동 폴백

🔊 영어 TTS (수강자 브라우저 내 합성)

  • piper-tts-web(WASM)을 학생 브라우저에서 직접 실행해 백엔드 부하 제거
  • 첫 접속 후 IndexedDB에 모델 캐시 → 재접속 시 즉시 로드
  • 최대 1.2배속 재생으로 합성 지연 단축

📄 슬라이드 자동 번역

  • PDF 업로드 → Surya OCR 텍스트 추출 → Qwen3-VL-4B 번역 → 레이아웃 보존 PDF 생성
  • 페이지별 재시도·캐시 재사용으로 부분 수정 가능
  • 번역 오버레이를 학생 화면에 실시간 반영

🖥️ 화면 공유 + 판서 동기화

  • WebRTC sendonly로 강사 화면을 학생에게 실시간 전달
  • 판서(draw_begin / draw_point / draw_end)·커서·페이지 전환을 동기화된 타이밍으로 재생
  • SSAFY 같은 P2P 차단 환경은 내장 TURN 서버가 자동 우회

⏱️ 4채널 적응형 동기화

  • 원본 음성·TTS·자막·시각 이벤트 4채널이 동일 currentDelay로 정렬
  • 최근 20번 실측 P90 + jitter 마진으로 2~20초 범위 자동 조정
  • 지연이 늘어나면 즉시 증가, 줄어들면 점진적으로 수렴

🏠 멀티플레이 강의

  • 강사는 Electron 앱 실행, 수강자는 LAN 브라우저 접속으로 별도 설치 불필요
  • 여러 수강자 동시 접속 지원, 개인별 음성·자막·언어 모드 독립 설정
  • 강의 종료 후 5분 grace 동안 자막 파일 다운로드 가능

🛠️ 프로젝트 핵심 기술

⚡ 4채널 적응형 동기화 (Adaptive Sync Delay)

  • 강사 원본 음성·영어 TTS·자막·시각 이벤트(판서/페이지/커서) 4채널이 처리 시간이 각기 다름
  • 최근 20번 실측값의 P90 + jitter 마진을 currentDelay로 산정해 가장 느린 채널에 맞춰 정렬
  • 지연 급증 시 즉시 반영, 회복 시 점진적 수렴으로 빨리 감기 현상 방지
  • currentDelay 범위: 2초(하한) ~ 20초(상한) 자동 조정

🔗 WebRTC sendonly + TURN 서버 내장

  • 마이크·화면 토글을 PC 재협상 없이 replaceTrack(null) swap으로 처리 — 학생 측 오디오 파이프라인 유지
  • P2P 우선 시도, 실패 시 내장 TURN 서버(node-turn, UDP+TCP)로 자동 우회
  • SSAFY 같은 사내망 P2P 차단 환경에서도 화면 공유·음성 전달 동작

🧠 완전 로컬 AI 파이프라인

  • Whisper turbo(CTranslate2 int8) → NLLB-200(CT2 int8) → piper-tts-web(WASM) 전 구간 로컬 처리
  • 슬라이드 번역: Surya OCR → Qwen3-VL-4B(4bit/8bit 자동 양자화) 로컬 추론
  • 음성·슬라이드 원문이 외부 서버로 전송되지 않음 — HuggingFace Hub은 모델 최초 다운로드에만 사용

📦 Electron 단일 설치 파일

  • PyInstaller로 백엔드 exe 패키징 → electron-builder → Inno Setup으로 setup.exe 생성
  • 강사 PC에 설치 시 백엔드·TURN 서버 자동 기동, 수강자는 브라우저만으로 접속
  • VRAM 용량에 따라 4bit/8bit 자동 선택으로 6GB 카드도 지원

👥 팀원 소개


김도영

윤상훈

이하영

진윤세

한민지

황수빈

⚙️ 기술 스택

AI / Backend

Frontend / Client

실시간 통신

Cooperation


About

번역의 민족 | 🏆 SSAFY 자율 PJT 1위 (11개팀) 🥉 전국 전시발표회 3위 (117개팀)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors