HSK 말하기 테스트 AI 구축하기: Gemini를 활용한 실시간 성조 채점
요약
Gemini 2.5 Flash를 활용하여 사용자의 중국어 성조와 문법을 실시간으로 채점하는 HSK 말하기 테스트 AI 구축 과정을 소개합니다. Web Audio API를 통한 음성 데이터 처리와 백엔드에서의 PCM 변환 과정을 상세히 다룹니다.
핵심 포인트
- Gemini 2.5 Flash를 활용한 실시간 음성 전사 및 채점 구현
- Web Audio API를 이용한 브라우저 기반 음성 데이터 트랜스코딩
- WebM 형식을 Gemini가 지원하는 WAV/PCM 형식으로 변환하는 엔지니어링 해결책
- FastAPI와 Google Cloud Run을 활용한 서버리스 백엔드 아키텍처
HSK 말하기 테스트 AI 구축하기: Gemini를 활용한 실시간 성조 채점
저는 성조와 문법을 실시간으로 채점하는 무료 중국어 말하기 평가 도구를 만들었습니다. 그 뒤에 숨겨진 엔지니어링 과정을 소개합니다.
문제점
HSK (중국어 능력 시험)에는 말하기 영역(HSKK)이 있지만, 대부분의 학습자는 자신의 수준을 스스로 평가할 수 없습니다. 온라인 튜터는 비용이 많이 듭니다. 일반적인 AI 대화 도구들은 성조를 채점하지 않습니다.
그래서 저는 ToneTutor를 만들었습니다. 이는 사용자의 말하기 수준을 추정하고 약점을 파악하는 3분 분량의 구어체 HSK 테스트입니다.
기술 스택 (Tech Stack)
프론트엔드 (Frontend):
- Web Audio API (사용자 음성 녹음 → PCM → LINEAR16)
- React + TypeScript (실시간 전사(transcript) 표시)
백엔드 (Backend):
- Google Cloud Run 기반의 FastAPI (Python)
- Gemini 2.5 Flash (실시간 대화 + 전사 채점)
- Firestore (사용자 세션 + 결과)
도전 과제:
Web Audio API는 WebM 형식으로 녹음합니다. 하지만 Gemini는 LINEAR16 (WAV) 형식을 기대합니다. 또한 iOS Safari는 WebM을 지원하지 않습니다. 그래서 다음과 같이 해결했습니다:
- 브라우저(Web Audio context)에서 WebM → PCM으로 트랜스코드(Transcode)
- 백엔드로 원시(raw) PCM 바이트 전송
- 백엔드에서 PCM을 WAV 헤더로 감싸서 Gemini Speech-to-Text로 전송
- Gemini가 전사 내용을 분석하고 HSK 수준 추정치 제공
채점 루프 (The Grading Loop)
python
async def grade_session(transcript: str):
...
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기