"선생님, 제가 Rice라고 했는데 친구가 Lice(이가 벼룩)라고 들었대요ㅠㅠ"
30명 수업에서 한 명 한 명 발음 체크하기... 진짜 하고 싶어도 시간이 없죠. 특히 우리 아이들이 힘들어하는 R, W, F 발음은 "다시 해봐!" 100번보다 "이렇게 해봐!" 한 번이 필요해요.
그래서 만들었어요!
카톡 보내듯 텔레그램에 녹음 파일 전송 → AI가 "어? 너 R을 L처럼 발음했네?" 바로 체크
→ "우르르~ 강아지처럼 해봐!" 우리 선생님 꿀팁까지 포함된 성적표가 이메일로 슝~!
이제 새벽에 연습해도, 100번 틀려도 괜찮아요. 지치지 않는 AI 선생님이 항상 곁에 있으니까요!
영어 발음 교육에서 가장 큰 어려움은 개인별 맞춤 피드백을 제공하는 것이에요.
특히 한국인 학습자들이 어려워하는 R, W, F 발음 등은 반복적인 연습과 구체적인 교정 지침이 필요한데요.
이를 해결하기 위해 AI 기반 영어 발음 평가 자동화 시스템을 구축했어요. 학생이 텔레그램으로 녹음 파일을 전송하면, 자동으로 STT 분석 → AI 평가 → 맞춤형 피드백 보고서를 생성하여 이메일로 전송하는 완전 자동화 시스템이랍니다.
목표:
24/7 즉시 피드백 제공
개인별 발음 특성에 맞는 구체적 조언
교사의 전문 지식과 AI의 분석 능력 결합 (RAG 방식)
학습 데이터 축적을 통한 장기적 개선 추적
사용 도구:
n8n: 워크플로우 자동화 플랫폼
Google Gemini API: AI 분석 및 피드백 생성
Google Speech-to-Text API: 음성을 텍스트로 변환 (신뢰도 점수 포함)
Google Sheets: 발음 교정 팁 데이터베이스 (RAG)
Telegram Bot: 파일 수신 인터페이스
Google Drive & Cloud Storage: 파일 저장소
Gmail: 보고서 전송
워크플로우 구성
1. 파일 수신 워크플로우 (Telegram → Google Drive)
1-1. Telegram Trigger 설정
// Trigger On: {{ ["message"] }}
// 모든 업로드된 파일을 캐치
전보 트리거의 스크린 샷
1-2. 녹음파일ID추출 노드 - 파일 ID 추출
return [{
json: {
file_id: $json.message.voice.file_id
}
}];
iPad에서 코드 편집기의 스크린 샷
1-3. Get a file - 텔레그램에서 파일 정보 가져오기
File ID:
{{ $json.file_id }}파일 얻기 화면의 스크린 샷
1-4. Upload file - Google Drive에 저장
Bucket Name:
english-pronunciationObject Name:
{{$json["name"]}}Input Data Field Name:
dataGoogle 드라이브에서 업로드 파일 옵션의 스크린 샷
2. 메인 발음평가 워크플로우
2-1. Google Drive Trigger
Google Drive에 새 파일 업로드 시 자동 실행
이 부분은 생략가능함. 하나의 워크플로우에 2개의 트리거는 동시에 발동하지 못하기 때문임.
2-2. Download file (1-4번에 이어서)
업로드된 음성 파일 다운로드
Google 드라이브 계정 설정의 스크린 샷
2-3. Create an object - Google Cloud Storage에 저장
STT API 사용을 위해 Cloud Storage에 저장
Bucket:
english-pronunciationObject Name: {{$json["name"]}}
Adobe Adobe Adobe Adobe Ado에서 물체를 만드는 방법
2-4. HTTP Request - STT API 호출
HTTP 요청 설정의 스크린 샷
JSON 부분 아래 복붙!
{
"config": {
"encoding": "OGG_OPUS",
"sampleRateHertz": 48000,
"languageCode": "en-US"
},
"audio": {
"uri": "gs://{{$node["Create an object"].json["bucket"]}}/{{$node["Create an object"].json["name"]}}"
}
}
2-5. 발음결과처리 노드 - STT 결과 처리 및 신뢰도 분석
코드 편집기의 스크린 샷
자바스크립트 내용은 아래 예시 참조!
const res = $input.first().json.results;
let fullTranscript = '';
let totalConfidence = 0;
res.forEach(r => {
const alt = r.alternatives[0];
fullTranscript += alt.transcript + ' ';
totalConfidence += alt.confidence;
});
fullTranscript = fullTranscript.trim();
return [{
json: {
transcript: fullTranscript,
confidence: (totalConfidence / res.length).toFixed(6) // 평균값
}
}];
2-6. Append row in sheet - 평가 기록 저장
Document:
n8n testSheet:
시트1Values to Send:
1열:
{{ $json.transcript }}2열:
{{ $json.confidence }}3열:
{{ new Date().toISOString() }}문서에 템플릿을 적용 할 수있는 앱의 스크린 샷
2-7. AI Agent 설정 (RAG 핵심)
AI Agent 프롬프트:
너는 초등학생을 위한 영어 발음 코치야 🎧
학생의 발음을 분석할 때 다음 단계를 따라줘:
1. **발음 문제 감지**: 학생이 발음한 문장에서 어려워하는 발음을 찾아줘
- R/L 구분 문제 (예: rice → lice)
- W 발음 문제 (예: wolf → 울프)
- F/P 구분 문제 (예: coffee → 코피)
- 기타 한국인이 어려워하는 발음
2. **키워드 추출**: 발견한 발음 문제를 아래 키워드로 분류해줘
- "R/L" - R과 L 구분 문제
- "W" - W 발음 문제
- "F" - F 발음 문제
- "TH" - TH 발음 문제
- "V" - V 발음 문제
- "Z" - Z 발음 문제
3. **CoachingTips 도구 사용**:
- 위에서 찾은 키워드로 CoachingTips 시트를 검색해줘
- 검색할 때는 정확한 키워드(예: "L", "R/L", "W")를 사용해
- 해당 키워드의 Tip을 가져와서 학생에게 전달해줘
[입력 정보]
- 학생이 발음한 문장: {{$node["발음결과처리"].json["transcript"]}}
- 신뢰도 지수: {{$node["발음결과처리"].json["confidence"]}}
[역할]
1. 신뢰도 지수를 설명해줘. (예: 0.89 → "아주 좋아요! 거의 정확했어요 😊")
2. 학생의 발음에서 문제점을 찾아 키워드로 추출해줘 (R/L, W, F, TH, V, Z 등)
3. CoachingTips 도구를 사용해서 해당 키워드의 Tip을 검색하고 알려줘
- 반드시 시트의 Keyword 열과 정확히 일치하는 값으로 검색
- 예: "really"를 "leally"로 발음 → "R/L" 키워드로 검색
4. 매칭되는 팁이 없다면, 한국인이 자주 틀리는 발음 팁을 알려줘
5. 초등학생이 따라 하기 쉬운 연습법을 추가로 제시해줘
6. 마지막에 응원의 메시지를 남겨줘!
[예시 응답 형식]
🎯 신뢰도: 0.75 → "잘했어요! 조금만 더 연습하면 완벽해질 거예요! 💪"
🔍 발견한 발음 포인트: L 발음이 어려웠구나!
💡 **꿀팁**: "라라라라라 를 다섯번 외치쇼ㅋㅋㅋㅋ"
🎮 연습 방법: 거울 보면서 혀끝을 윗니 뒤에 대고 "을~" 소리 내보기!
응원 메시지: 너무 잘하고 있어! 내일은 더 잘할 거야~ 화이팅! 🌟
[신뢰도 지수 설명 가이드]
- 0.9 이상: "완벽해요! 원어민 수준이에요! 🏆"
- 0.8~0.9: "아주 좋아요! 거의 정확했어요 😊"
- 0.7~0.8: "잘했어요! 조금만 더 연습하면 완벽! 💪"
- 0.6~0.7: "괜찮아요! 천천히 다시 해보자 🙂"
- 0.6 미만: "어려웠구나~ 선생님이랑 같이 연습해보자! 🤗"
[톤]
- 말투는 초등학생 친구처럼 친근하게 😊
- 중요한 팁은 **굵게**, 한글 발음은 "따옴표"로
- 이모지 적절히 사용 (🗣 👂 🎯 👏 🌟 💪 등)
- 어려운 용어 대신 쉬운 말 사용
- 실수해도 괜찮다는 격려 꼭 포함!
iPad에 문자 메시지를 보여주는 iPad 화면
AI Agent Tools 구성:
Google Gemini Chat Model - AI 응답 생성
Simple Memory - 대화 컨텍스트 저장
Get row(s) in sheet - CoachingTips 조회
Column:
KeywordValue: AI가 자동으로 판단하여 필요한 키워드 검색
Google Gemini 채팅 모델의 스크린 샷
간단한 메모리 설정의 스크린 샷