Skip to content
/ voida Public

🔊 A real-time communication service enabling seamless interaction between deaf and hearing individuals

License

Notifications You must be signed in to change notification settings

gyudol/voida

Repository files navigation

🔊 VOIDA

청각장애인과 비장애인이 실시간으로 소통할 수 있는 커뮤니케이션 서비스
입술 움직임을 인식해 음성으로 변환하는 기술과 STT(Speech-To-Text)를 통해 텍스트를 제공하는 기능을 함께 활용하여, 누구나 쉽게 참여할 수 있는 실시간 대화 플랫폼을 제공합니다.

목소리가 보이다, 이곳에서 모이다, VOIDA

  • 개발 기간 : 2025.07.07 ~ 2025.08.22 (7주)
  • 플랫폼 : Web & Desktop App
  • 개발 인원 : 6명
  • 기관 : 삼성 청년 SW·AI 아카데미 13기


🔎 목차


🌟 팀원 구성


🍖 김규찬
(Backend & DevOps)


🏋️‍♀️ 이석재
(Backend & Leader)


👻 이혜원
(Backend & JiraOps)

- 인프라 및 CI/CD 파이프라인 구축·운영
- Spring: OpenVidu 세션 / Release API 구현
- FastAPI 기반 Webhook Handler 서버 구현
- 협업 및 이벤트 알림 자동화 파이프라인 구축
- 대기방 / 초대코드 API 구현
- WebSocket / STOMP 기반 채팅 API 구현
- Spring: AWS S3, MongoDB 연동
- Security, OAuth2, SMTP 기반 인증 API 구현
- 마이페이지 / 세션 락 API 구현
- OpenAI 기반 STT, TTS API 구현
- Lip Model → Runpod 마이그레이션

🐶 김수민
(Backend & AI)


🍔 이민희
(Frontend & Design)


🍥 이진모
(Frontend & Docs)

- Lip Reading 모델 학습 및 최적화
- 구화 인식 / 번역 / TTS 파이프라인 구축
- FastAPI 기반 Lip Model 서버 구현
- OpenVidu 음성 연결, Signaling 채팅 구현
- STT / Lip Reading 결과 음성 세션 연동
- STOMP 기반 실시간 채팅 구현
- 튜토리얼 / 대기방 / 라이브 세션 구현
- LiveRoom 오버레이 창, 단축키 매핑 구현
- 공식 웹 사이트 다운로드 페이지 구현
- 로그인 / 회원가입 / 마이페이지 구현

🔽 설치 파일 및 모델 리소스

구분 파일 용량 설명
💻 Desktop App VOIDA_Setup_1.0.13.exe 204.2 MB Windows Desktop App 설치 파일
⚖️ Weight encoder_int8.bin 178.7 MB 인코더 가중치
(backend-lip-model/models)
⚖️ Weight vsr_trlrs2lrs3vox2avsp_base.pth 955.5 MB Lip Reading 가중치
(backend-lip-model/models)
🤖 Model model.bin 467.9 MB 기타 모델
(backend-lip-model/models/lip-model)

🛠️ 기술 스택

🌕 Frontend

VSCode
TypeScript HTML5 CSS3
Electron.js React Vite React Router


Category Stack
Language TypeScript 5.8.3
Runtime Environment Node.js 22.17.0, Electron 37.3.0
Framework React 19.1.0, React Router 7.7.0
Library STOMP.js 7.1.1, SockJS Client 1.6.1, OpenVidu Browser 2.31.0,
Zustand 5.0.6, Axios 1.10.0, Emotion 11.14.0
IDE Visual Studio Code 1.103.1

🌑 Backend

IntelliJ IDEA Java Gradle
MySQL MongoDB Redis
Spring Boot Spring Security JWT Hibernate Swagger
OpenAI

Category Stack
Language Java 17
Framework Spring Boot 3.4.5
Library Spring Security, Spring Validation, Spring Data JPA,
Spring Data MongoDB, Spring Data Redis, Springdoc OpenAPI 2.8.7,
Spring Cloud AWS S3, Spring Security OAuth2 Client, Spring Mail,
Spring WebSocket, Spring WebFlux, OpenVidu Java Client 2.31.0,
Apache HttpMime 4.5.14
Database MySQL 9.3.0, MongoDB 8.0.11, Redis 7.4.5
IDE IntelliJ IDEA 2025.1.3 (Ultimate Edition)
Build Tool Gradle 8.14.3

🤖 AI

VSCode Python
FastAPI OpenCV Gunicorn
Mediapipe NumPy SciPy
OpenAI

Category Stack
Language Python 3.9.13
Runtime Environment Uvicorn[standard] 0.35.0, Gunicorn 22.0.0
Framework FastAPI 0.116.1
Library Torch 2.8.0, Openvino-dev 2024.1.0, Ctranslate2 4.6.0,
opencv-python-headless 4.9.0.80, Mediapipe 0.10.14, Sentencepiece 0.2.0,
Transformers 4.45.2, Argostranslate 1.9.6, Numpy 1.26.4,
Scipy 1.13.1, Openai 1.99.9
IDE Visual Studio Code 1.103.1

⚙️ DevOps

Docker Jenkins Nginx OpenVidu
Ubuntu Amazon EC2 Amazon S3 AWS CloudFront
FastAPI Python

Category Spec
Instance Type T2.XLARGE
CPU 4 vCPUs
RAM 16 GB
Storage (Disk) SSD: 320 GB, HDD: 6 TB
Docker v28.1.1
Docker Compose v2.38.2
Jenkins 2.520
Nginx nginx/1.18.0
OpenVidu 2.31.0 (Pro Edition)
Webhook Handler FastAPI 0.116.1, Python 3.11-slim, Uvicorn[standard] 0.35.0

🤝 Collaboration

GitLab Figma Notion Git Discord Jira


🌐 시스템 아키텍처

🖧 System Architecture

🚀 CI/CD Architecture

📢 Collaboration & Event Notification

❌ Jenkins Pipeline Failure ✅ Jenkins Pipeline Success
🗨️ Jira Issue Notification 🔀 Merge Request Created Notification

📲 기능 구성

데스크톱 앱 다운로드 회원가입
일반 사용자 튜토리얼 구화 사용자 튜토리얼
마이페이지 대기방 생성
대기방 채팅 대기방 설정
라이브 세션 (일반 사용자) 라이브 세션 (구화 사용자)

📂 디렉터리 구조

🌕 Frontend

Frontend-App
📦frontend-app
 ┣ 📂electron
 ┃ ┣ 📂assets
 ┣ 📂public
 ┃ ┣ 📂fonts
 ┃ ┗ 📂logo
 ┣ 📂src
 ┃ ┣ 📂apis
 ┃ ┃ ┣ 📂auth
 ┃ ┃ ┣ 📂core
 ┃ ┃ ┣ 📂live-room
 ┃ ┃ ┣ 📂meeting-room
 ┃ ┃ ┣ 📂stomp
 ┃ ┃ ┗ 📂tutorial
 ┃ ┣ 📂assets
 ┃ ┃ ┣ 📂category
 ┃ ┃ ┣ 📂icons
 ┃ ┃ ┣ 📂images
 ┃ ┃ ┣ 📂logo
 ┃ ┃ ┣ 📂profiles
 ┃ ┃ ┗ 📂test
 ┃ ┣ 📂components
 ┃ ┃ ┣ 📂auth
 ┃ ┃ ┣ 📂common
 ┃ ┃ ┣ 📂live-room
 ┃ ┃ ┣ 📂main
 ┃ ┃ ┃ ┣ 📂modal
 ┃ ┃ ┣ 📂meeting-room
 ┃ ┃ ┃ ┣ 📂chat
 ┃ ┃ ┃ ┣ 📂members
 ┃ ┃ ┃ ┗ 📂modal
 ┃ ┃ ┃ ┃ ┣ 📂info
 ┃ ┃ ┃ ┃ ┗ 📂setting
 ┃ ┃ ┣ 📂my-page
 ┃ ┃ ┃ ┣ 📂modal
 ┃ ┃ ┃ ┗ 📂tab
 ┃ ┃ ┣ 📂tutorial
 ┃ ┃ ┃ ┣ 📂modal
 ┃ ┣ 📂hooks
 ┃ ┣ 📂pages
 ┃ ┃ ┣ 📂auth
 ┃ ┃ ┣ 📂tutorial
 ┃ ┣ 📂stores
 ┃ ┣ 📂styles
 ┃ ┣ 📂types
 ┣ 📜.env
 ┣ 📜.gitignore
 ┣ 📜.prettierrc
 ┣ 📜db.json
 ┣ 📜eslint.config.js
 ┣ 📜index.html
 ┣ 📜package-lock.json
 ┣ 📜package.json
 ┣ 📜README.md
 ┣ 📜tsconfig.app.json
 ┣ 📜tsconfig.json
 ┣ 📜tsconfig.node.json
 ┗ 📜vite.config.ts
Frontend-Web
📦frontend-web
 ┣ 📂dist
 ┃ ┣ 📂assets
 ┃ ┣ 📂fonts
 ┃ ┣ 📂logo
 ┣ 📂public
 ┃ ┣ 📂fonts
 ┃ ┗ 📂logo
 ┣ 📂src
 ┃ ┣ 📂assets
 ┃ ┃ ┣ 📂icons
 ┃ ┃ ┣ 📂image
 ┃ ┃ ┣ 📂logo
 ┃ ┃ ┗ 📂show
 ┃ ┣ 📂components
 ┃ ┣ 📂pages
 ┃ ┣ 📂styles
 ┣ 📜.gitignore
 ┣ 📜.prettierrc
 ┣ 📜Dockerfile
 ┣ 📜eslint.config.js
 ┣ 📜index.html
 ┣ 📜package-lock.json
 ┣ 📜package.json
 ┣ 📜README.md
 ┣ 📜tsconfig.app.json
 ┣ 📜tsconfig.json
 ┣ 📜tsconfig.node.json
 ┗ 📜vite.config.ts

🌑 Backend

Backend-Core
📦backend-core
 ┣ 📂gradle
 ┃ ┗ 📂wrapper
 ┣ 📂src
 ┃ ┣ 📂main
 ┃ ┃ ┣ 📂java
 ┃ ┃ ┃ ┗ 📂com
 ┃ ┃ ┃ ┃ ┗ 📂bbusyeo
 ┃ ┃ ┃ ┃ ┃ ┗ 📂voida
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂constant
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂auth
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂util
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂chat
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂live
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂liveroom
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂model
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂out
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂meetingroom
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂enums
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂member
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂constant
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂enums
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂release
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂in
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂out
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂vo
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂global
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂ai
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂stt
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂tts
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂aspect
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂health
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂mail
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂util
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂properties
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂redis
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂dao
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂security
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂constant
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂filter
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂handler
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂oauth2
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂jwt
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂oauth2
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂util
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂support
 ┃ ┃ ┗ 📂resources
 ┃ ┗ 📂test
 ┃ ┃ ┗ 📂java
 ┃ ┃ ┃ ┗ 📂com
 ┃ ┃ ┃ ┃ ┗ 📂bbusyeo
 ┃ ┃ ┃ ┃ ┃ ┗ 📂voida
 ┣ 📜.gitattributes
 ┣ 📜.gitignore
 ┣ 📜build.gradle
 ┣ 📜Dockerfile
 ┣ 📜gradlew
 ┣ 📜gradlew.bat
 ┣ 📜README.md
 ┗ 📜settings.gradle
Backend-Lip-Model
📦backend-lip-model
 ┣ 📂app
 ┃ ┣ 📂core
 ┃ ┃ ┣ 📂datamodule
 ┃ ┃ ┣ 📂espnet
 ┃ ┃ ┃ ┗ 📂nets
 ┃ ┃ ┃ ┃ ┣ 📂pytorch_backend
 ┃ ┃ ┃ ┃ ┃ ┣ 📂decoder
 ┃ ┃ ┃ ┃ ┃ ┣ 📂encoder
 ┃ ┃ ┃ ┃ ┃ ┣ 📂frontend
 ┃ ┃ ┃ ┃ ┃ ┣ 📂transformer
 ┃ ┃ ┃ ┃ ┣ 📂scorers
 ┃ ┃ ┣ 📂preparation
 ┃ ┃ ┃ ┣ 📂detectors
 ┃ ┃ ┃ ┃ ┗ 📂mediapipe
 ┃ ┃ ┣ 📂spm
 ┃ ┃ ┃ ┗ 📂unigram
 ┣ 📂models
 ┃ ┣ 📂m2m100_418M-ct2
 ┣ 📜.env
 ┣ 📜.gitignore
 ┣ 📜Dockerfile
 ┗ 📜requirements.txt

📦 프로젝트 산출물

🖼️ 화면 설계서

🗄️ ERD

✅ Swagger API Docs

Backend-Core
Backend-Lip-Model

📅 Jira Issues

자세히
자세히

자세히

About

🔊 A real-time communication service enabling seamless interaction between deaf and hearing individuals

Resources

License

Stars

Watchers

Forks