Walk Tutor: 노트북에서 오프라인으로 실행되는 음성 DSA 코치
요약
Walk Tutor는 사용자가 걸으면서도 데이터 구조 및 알고리즘(DSA) 연습을 할 수 있도록 설계된 오프라인 음성 코치입니다. faster-whisper로 음성을 텍스트화하고, Ollama를 통해 Gemma 3 1B 모델이 코칭 답변을 생성합니다. 이 시스템은 키보드 없이도 문제 풀이 과정을 지원하며, 사용자의 발언에 기반하여 피드백을 제공합니다.
핵심 포인트
- 노트북에서 완전히 오프라인으로 작동하는 DSA 연습 도구입니다.
- 음성 인식(faster-whisper)과 LLM(Gemma 3 1B via Ollama)을 결합했습니다.
- 사용자의 발언에 따라 코칭하며, 키보드 입력이 필요 없습니다.
- 핵심 아이디어 기반의 키워드 체크 시스템으로 모델 신뢰성을 높였습니다.
이 글은 Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass에 제출하는 내용입니다.
제가 만든 것 (What I Built)
Walk Tutor는 화면을 응시하지 않고도 데이터 구조 및 알고리즘(DSA) 연습을 할 수 있는 음성 코치입니다. 이 프로그램은 문제 설명을 읽어주고, 사용자가 자신의 접근 방식을 소리 내어 설명하면 힌트나 후속 질문으로 답변합니다. "다음 문제", "반복", 또는 "종료"라고 말할 수 있어 시작한 후에는 키보드가 전혀 필요 없습니다.
저는 3학년 학생이며, 대부분의 연습을 노트북 앞에 앉아서 합니다. 그래서 저는 걸으면서도 연습할 수 있도록 이 프로그램을 만들었습니다.
코드 (Code)
GitHub logo ramya2006sri / walk-tutor
Walk Tutor
산책 중에 사용하는 음성 DSA 코치입니다. 노트북에서 완전히 오프라인으로 실행됩니다.
작동 방식 (How it works)
- 음성 인식(Speech to text): faster-whisper
- 코치: Ollama를 통한 Gemma 3 1B
- 음성 출력(Speech out): pyttsx3
- 이 코드는 핵심 아이디어를 가지고 사용자의 답변을 확인하며, 모델은 피드백만 작성합니다.
설정 (Setup)
- Ollama를 설치하고 다음 명령어를 실행합니다:
ollama pull gemma3:1b pip install -r requirements.txtpython walk_tutor.py
음성 명령어: "next problem", "repeat", "quit".
제작 과정 (How I Built It)
모든 것이 제 Windows 노트북에서 로컬로 실행됩니다:
- Ollama를 통한 Gemma 3 1B가 코치의 답변을 작성합니다.
- faster-whisper (오픈 소스 Whisper)가 제 음성을 텍스트로 변환합니다.
- pyttsx3는 Windows에 내장된 목소리를 사용하여 답변을 말해줍니다.
- 작은 Python 루프가 제가 말을 시작하고 멈추는 것을 감지하므로, 버튼 누름이 필요 없습니다.
디자인의 계기가 된 교훈: 제 첫 번째 버전에서는 Gemma가 제 답변을 판단하게 했습니다. 1B 모델은 너무 순응적이었습니다. 저는 링크드 리스트를 역순으로 하여 브라켓 매칭 문제를 해결할 것이라고 말했고, 그것을 훌륭한 접근 방식이라고 평가했습니다.
그래서 저는 작업을 분할했습니다. 각 문제는 핵심 아이디어를 나타내는 몇 가지 키워드를 가지고 있습니다(예: Valid Parentheses의 경우, 'stack'이라는 단어). 코드는 이 키워드들을 통해 제 답변을 확인하고 판결을 내립니다. Gemma는 피드백만 작성하며, 이는 반드시 그 판결을 따라야 합니다. 이것이 작은 모델을 신뢰할 수 있게 만들었습니다. 트레이드오프는 키워드 체크가 단순하다는 것입니다. 잘못된 솔루션에서 올바른 단어를 말해도 통과될 수 있습니다.
테스트하는 동안 고친 다른 것들: 긴 답변 도중에 저를 끊었기 때문에, 일시 정지 시간(pause time)과 답변 제한을 늘렸습니다.
Open Innovation이 중요한 이유?
- 오프라인으로 작동합니다. 모델을 한 번 다운로드한 후에는 인터넷 연결이 필요 없으며, 이는 신호가 없는 트레일에서 중요합니다.
- 제 목소리는 제 노트북에 머뭅니다. 제가 통제하지 않는 서버로 아무것도 전송되지 않습니다.
- 실행 비용이 들지 않습니다. API 키도 없고 사용료 청구서도 없습니다.
- 작동 방식을 바꿀 수 있습니다. 저는 코치 규칙을 다시 작성하고 코드 검증 판결을 직접 추가했습니다. 폐쇄형 채팅 API를 사용했다면, 이런 방식으로 모델의 약점을 우회할 수 없었을 것입니다.
수상 부문
Gemma 활용 최우수
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기