Skip to content

0361Team/Lecture2Quiz-iOS

Repository files navigation

iOS

image (2)

시뮬레이션

https://rectangular-octave-347.notion.site/iOS-Lecture2Quiz-2025-03-202f6f40b4248043ba0edcfee41460c2


🔍 프로젝트 개요

"Lecture2Quiz"는 수업 중 녹음한 음성을 자동으로 텍스트로 변환하고, 해당 내용을 바탕으로 퀴즈를 생성·학습할 수 있는 iOS 앱입니다. 음성 인식에는 OpenAI Whisper 기반 STT 서버를 사용하며, 사용자의 학습 지속성과 이해도를 높이기 위해 카드덱 퀴즈 UI퀴즈 세션 기록 관리 기능을 포함하고 있습니다.

STT 처리가 된 텍스트는 벡터 데이터베이스를 통해 “외부 지식 검색” + “문맥 확장” 처리를 하여 RAG 시스템 아키텍처를 통해 컨텍스트 최적화를 진행하여 Claude API를 통해 퀴즈를 생성합니다.

KakaoTalk_Photo_2025-05-30-00-55-51-1 (1)

💬  역할

모든 iOS 프론트 앱 개발을 혼자 하였습니다. 추가로 디자이너가 없는 프로젝트입니다.

프론트 개발자 - 1인

백엔드 개발자 - 2인

백엔드 + AI 개발자 - 1인


🛠 사용 기술 스택

  • Frontend: SwiftUI, MVVM 아키텍처
  • STT 처리: OpenAI Whisper (WebSocket 기반 실시간 음성 스트리밍)
  • 네트워크: Moya + REST API, WebSocket 통신
  • 오디오 처리: AVAudioEngine, AVAudioConverter, 실시간 리샘플링 및 RMS 정규화
  • UX 최적화: 퀴즈 카드덱 슬라이딩 UI, 세션 재개 기능, 뷰 상태 자동 갱신

💡 주요 기능

  • 🔊 실시간 음성 스트리밍: AVAudioEngine을 활용한 실시간 녹음 및 Whisper 서버로 음성 전송
  • 📄 STT 결과 전처리: 낮은 볼륨의 음성에 대한 RMS 기반 정규화 처리, End-of-Audio 자동 전송
  • 🧠 퀴즈 생성 및 풀이: STT 결과로부터 자동 생성된 퀴즈를 카드덱 UI로 풀고, 정답/오답 기록
  • 🔁 세션 이어풀기: 미완료된 퀴즈 세션을 이어서 풀 수 있는 기능 제공
  • 📋 퀴즈 기록 관리: 완료된 세션은 점수 확인, 미완료 세션은 이어서 풀이 기능 제공

🔎 오픈 소스 기여

실시간 Whisper STT 통신을 iOS로 구현하여 WebSocket 통신 iOS Client 코드로 기여하였습니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages