
딸(5세)을 위한 AI 과외 선생님 만들기 ③ - 영어 문구 연습 기능 추가 편
요약
5세 아이를 위한 AI 영어 학습 앱에 쉐도잉(Shadowing) 기능을 추가한 개발 사례를 소개합니다. 몬스터를 소재로 활용하여 학습 동기를 부여하고, Gemini API와 Web Speech API를 활용한 효율적인 학습 설계 방식을 다룹니다.
핵심 포인트
- 몬스터를 소재(Hook)로 활용하여 일상 영어 단어 학습 유도
- 학습 효과를 높이기 위해 번역 노출을 능동적 선택 사항으로 설계
- 비용 절감을 위해 Gemini로 문구를 사전 생성하여 데이터화
- Web Speech API를 활용한 비용 효율적인 음성 출력 구현
지난 기사에서는 Gemini API의 비용에 대해 썼습니다.
이번에는 딸을 위한 학습 지원 앱에 새롭게 추가한 영어 문구 연습 기능에 관한 내용입니다.
영어 회화는 일주일에 몇 번, 실제 강사와 레슨을 하고 있습니다. 그 레슨 음성을 녹음하여 AI에게 평가하게 하는 메커니즘은 처음부터 설계에 포함되어 있었습니다. 다만, 그것만으로는 '일주일에 몇 번밖에 사용할 수 없는 기능'이 되어 버립니다.
매일 5~10분이라도 계속할 수 있는 무언가가 필요하다는 상사(아내)의 의견을 받아, 이번에 문구 연습 기능을 추가했습니다.
영어 학습에 있어서 지속적인 인풋(Input)과 아웃풋(Output)의 반복이 중요하다는 점은 틀림없다고 생각합니다.
주 몇 회의 레슨은 그 자체로 가치가 있지만, 레슨과 레슨 사이의 공백이 생깁니다. 특히 5세 아이는 공백이 생기면 지난번 내용을 완전히 잊어버리는 경우가 많습니다.
그래서 매일 할 수 있는 '짧은 연습'으로서, **문구 쉐도잉 (Shadowing)**을 도입하기로 했습니다.
쉐도잉 자체는 오래전부터 있던 학습법이지만, 5세 아이에게 '어떤 문구를 연습할 것인가'라는 동기 부여가 필요했기에, 그 부분도 예의 그 몬스터를 소재로 삼기로 했습니다.
처음 생각한 것은 '몬스터의 이름을 영어로 말하는 연습'이었지만, 이것은 일상 영어 회화에는 별로 도움이 되지 않는다는 것을 깨달았습니다.
그래서 방침을 바꾸어, 몬스터를 소재(Hook)로 삼으면서 실제로는 일상에서도 사용할 수 있는 영단어를 익히는 설계로 했습니다.
구체적으로는 타입 이름·색상·형용사·동사를 문구의 소재로 사용하고 있습니다.
오늘의 몬스터 = 불 타입 (Fire type) 인 경우
문구 1: "It is a Fire type." → 타입 이름 (Fire, Water, Electric...)
문구 2: "It can fly." → 동사 (fly, swim, run...)
...
Fire나 Water, big이나 small은 몬스터 문맥에서 익힌 후에도 일상에서 사용할 수 있습니다. 몬스터는 어디까지나 '입구'라는 위치입니다.
초기 UI에서는 영어와 일본어를 동시에 표시했었지만, 이것은 그만두었습니다.
일본어가 거기에 있으면 5세 아이는 반드시 그쪽을 보게 됩니다. 영어의 소리와 의미가 뇌 속에서 결합되기 전에 일본어로 답이 보여버리기 때문에, 쉐도잉의 효과가 떨어진다고 생각했습니다.
대신, 「무슨 뜻이야?」라는 버튼을 탭했을 때만 일본어 번역이 나오는 설계로 했습니다. 의미를 능동적으로 확인하는 번거로움을 넣음으로써, 영어를 먼저 처리하도록 유도하는 것이 목적입니다.
당초에는 「오늘의 몬스터는 ○○입니다!」라는 발표 화면을 만들었지만, 이것도 없앴습니다.
문구 자체가 힌트가 되고 있으므로, 연습하면서 「무슨 몬스터일까?」라고 생각할 수 있는 것이 게임으로서 더 재미있을 것이라고 판단했기 때문입니다.
평가 후, 스티커 이미지 생성을 기다렸다가 그 스티커가 정답 확인이 되는 흐름으로 구성했습니다.
문구 3개를 연습 (몬스터는 비공개)
↓
AI 종합 평가
...
모든 몬스터 분량의 문구를 어떻게 준비할지가 첫 번째 과제였습니다.
「사전에 Gemini에게 생성하게 한다」라는 안도 있었지만, 매번 돈을 들여 생성할 수는 없으므로, 사전에 데이터 파일로 작성해 둡니다.
각 몬스터에 3개의 문구, 카테고리(타입·색상·형용사·동사·특징)를 갖는 구조로 만들었습니다.
// 발췌·이미지
export const CHARACTER_PHRASES: CharacterPhrase[] = [
{
...
모든 몬스터 × 3개 문구로, 합계 453개의 문구가 되었습니다.
샘플 음성은 Web Speech API를 사용하고 있습니다. 브라우저 표준이므로 추가 비용이 들지 않습니다.
다만, 기본값으로는 OS의 저품질 음성이 사용됩니다. speechSynthesis.getVoices()
로 이용 가능한 음성 목록을 가져와서, 실적이 있는 네이티브 영어 음성을 우선적으로 선택하도록 했습니다.
const GOOD_VOICES = [
"Samantha", // macOS / Safari (US 여성)
"Google US English", // Chrome
...
리스트에 있는 음성을 찾을 수 없다면 브라우저의 기본값에 맡깁니다. 어설픈 폴백(Fallback)보다는 기본값이 더 나은 경우가 있었기 때문입니다.
말하는 속도는 rate: 0.4 (통상 속도의 40%)를 기본으로 하고, 더 느린 rate: 0.1
버튼도 나란히 배치했습니다.
[IMG:1] 「들어보자」 「🐢 천천히」 버튼이 나란히 있는 화면
녹음에는 MediaRecorder API를 사용하고 있습니다.
버튼을 누르면 녹음 시작, 다시 한 번 누르면 정지라는 단순한 설계입니다. 녹음 후에는 자신의 목소리를 다시 들을 수 있는 버튼도 마련했습니다.
몇 번이고 다시 녹음할 수 있으며, 마지막에 녹음한 음성만이 평가로 전송됩니다.
const recorder = new MediaRecorder(stream);
recorder.ondataavailable = (e) => chunks.push(e.data);
recorder.onstop = () => {
...
3개 구절의 녹음이 끝나면, 한꺼번에 Gemini에게 보내 종합 평가를 받습니다.
const response = await ai.models.generateContent({
model: "gemini-3.5-flash",
contents: [
...
한 번의 요청(Request)에 3개의 음성 파일과 프롬프트(Prompt)를 묶어서 보냅니다. 나누어 보내는 것보다 문맥을 한꺼번에 전달할 수 있어 종합 평가에 적합하다고 생각했습니다.
2026년 7월 시점에서는 gemini-3.5-flash를 사용하고 있지만, 정확도나 비용 상황을 보고 향후 다른 모델로 변경할 가능성도 있다고 생각합니다.
첫 번째 프롬프트는 「망설여지면 good을 선택한다」, 「5~6세 수준의 발음을 고려한다」라는 방침으로 설정했습니다.
실제로 작동시켜 보니, 무음인 상태로 보내도 「정말 잘했습니다」라는 답변이 돌아오는 상황이 발생했습니다.
원인은 프롬프트의 느슨함에 있었습니다. 평가 기준을 엄격하게 다시 작성하여 다음과 같은 점을 명시했습니다.
- 무음 또는 거의 무음인 경우는 반드시
try로 할 것 - 「어찌어찌 말하고 있다」는
good이지excellent가 아님 - 일본어 억양이 강한 경우는
good이하로 처리 excellent는 정말로 발음을 잘했을 경우에만 부여
평가는 아이의 동기 부여와 직결되므로, 너무 관대하면 의미가 없고 너무 엄격하면 의욕이 꺾입니다. 이 균형은 아직 조정 중입니다.
- 히라가나·가타카나 평가
- 영어 구절 연습 (쉐도잉 (Shadowing) + AI 평가)
- 영어 채널 선택 (구절 / 레슨)
- 스티커에 획득 채널 기록
- 영어 회화 레슨 평가 (강사 음성 업로드)
- 피아노 평가
- UI 제대로 만들기
- 평가 정확도 개선 (진행 중)
매일 지속할 수 있는 장치로서 구절 연습 기능을 추가했습니다.
몬스터를 소재로 삼음으로써 「오늘의 몬스터는 무엇일까?」라는 동기가 생기게 했으며, 실제로 배울 수 있는 단어는 타입 이름·색상·형용사·동사 등 일상에서도 사용할 수 있는 것들로 구성했습니다.
일본어 번역을 즉시 보여주지 않는 설계나, 몬스터를 마지막까지 숨기는 퀴즈 요소는 5세 아이의 집중력을 끌어내기 위한 UX(사용자 경험)적인 장치입니다.
평가 프롬프트의 느슨함은 여전히 조정 중입니다. AI의 평가를 아이의 학습에 사용할 경우, 정확도와 동기 부여의 균형을 어떻게 맞출지는 하루아침에 결정될 문제가 아니라고 느낍니다.
다음에는 강사와의 레슨 음성을 사용한 영어 회화 평가 구현을 진행하겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기