- 서비스명: 번역의 민족
- 개발 기간: 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초 이내 보장
- 번역 실패 시 원본 한국어 텍스트로 자동 폴백
- 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 서버가 자동 우회
- 원본 음성·TTS·자막·시각 이벤트 4채널이 동일
currentDelay로 정렬 - 최근 20번 실측 P90 + jitter 마진으로 2~20초 범위 자동 조정
- 지연이 늘어나면 즉시 증가, 줄어들면 점진적으로 수렴
- 강사는 Electron 앱 실행, 수강자는 LAN 브라우저 접속으로 별도 설치 불필요
- 여러 수강자 동시 접속 지원, 개인별 음성·자막·언어 모드 독립 설정
- 강의 종료 후 5분 grace 동안 자막 파일 다운로드 가능
- 강사 원본 음성·영어 TTS·자막·시각 이벤트(판서/페이지/커서) 4채널이 처리 시간이 각기 다름
- 최근 20번 실측값의 P90 + jitter 마진을
currentDelay로 산정해 가장 느린 채널에 맞춰 정렬 - 지연 급증 시 즉시 반영, 회복 시 점진적 수렴으로 빨리 감기 현상 방지
currentDelay범위: 2초(하한) ~ 20초(상한) 자동 조정
- 마이크·화면 토글을 PC 재협상 없이
replaceTrack(null)swap으로 처리 — 학생 측 오디오 파이프라인 유지 - P2P 우선 시도, 실패 시 내장 TURN 서버(node-turn, UDP+TCP)로 자동 우회
- SSAFY 같은 사내망 P2P 차단 환경에서도 화면 공유·음성 전달 동작
- Whisper turbo(CTranslate2 int8) → NLLB-200(CT2 int8) → piper-tts-web(WASM) 전 구간 로컬 처리
- 슬라이드 번역: Surya OCR → Qwen3-VL-4B(4bit/8bit 자동 양자화) 로컬 추론
- 음성·슬라이드 원문이 외부 서버로 전송되지 않음 — HuggingFace Hub은 모델 최초 다운로드에만 사용
- PyInstaller로 백엔드 exe 패키징 → electron-builder → Inno Setup으로 setup.exe 생성
- 강사 PC에 설치 시 백엔드·TURN 서버 자동 기동, 수강자는 브라우저만으로 접속
- VRAM 용량에 따라 4bit/8bit 자동 선택으로 6GB 카드도 지원
|
|
|
|
![]() 김도영 |
![]() 윤상훈 |
![]() 이하영 |
|
|
|
|
![]() 진윤세 |
![]() 한민지 |
![]() 황수빈 |





