ETRI 오픈 API 공모전을 위한 개인 프로젝트 제작기 - 찾아서 발음해요! 사진의 숲

2 분 소요

2020 ETRI 오픈 API 활용 사례 공모전에 출품했던 프로젝트를 기록하기 위해 포스팅한다.

여러 공모전과 해커톤 등 다양한 활동을 해봤었지만 이번 공모전만큼은 절대로 잊을 수 없는 추억이 될 것 같다.

공모전 참가 신청서를 냈는데 참가 주최 계정 메일 서버 문제로 두번이나 메일이 전송되지 않았기 때문이다.

두번 정도 신청서를 실패하고 참가 신청 마지막 날까지 메일 전송을 실패하였는데, 그 당시엔 매우 슬펐었다.
다음날 문의처에 직접 전화를 걸어보니 참가자들이 신청을 하지 않아 공모전 참가 기간을 연장했다고 이야기하더라.
현재 메일 서버 문제로 참가신청서를 보낼 수 없는데, 참가 양식 속 메일이 정확히 적혀져 있는 것이 맞는가 질문했고, 담당자님이 그제서야 양식 속 메일이 잘못 기입이 된 것을 확인하셨다.
내가 이야기하기 전까지 메일 주소가 틀렸단 것을 몰랐던 것인데 내 문의 전화가 담당자님께 도움이 됬다는 사실이 기뻤다.

이메일을 공지사항에 띄우고 정정 메일을 돌렸으니 공모전 경쟁자가 더 많아지는 단점이 있었겠지만 공정하게 승부해서 이기는 것이 더 큰 기쁨일 것이라고 생각한다.

초등학생인 나의 사촌에게 지금 만든 프로젝트를 선물해주고 싶으나 아직 용기가 나지 않아 이야기를 꺼내지 못하고 있다.

만약 공모전에서 좋은 성적을 거두면 현재 만든 프로그램을 선물해야겠다.
좋은 성적을 받지 못한다면 하루만 슬퍼하고 내 실력 상승을 위한 좋은 비료였다고 생각해야겠다.

LearningEnglishWordsWithImages
(찾아서 발음해요! 사진의 숲)

‘찾아서 발음해요! 사진의 숲’은 ETRI API 를 이용하여 만든 저학년 어린이를 위한 영어 교육용 프로그램입니다.

사용자가 찍은 사진 혹은 임의의 사진에 대하여 사진 속에 있는 객체를 검출한 객체를 바탕으로 영어 문장을 출력합니다.

사용자가 그 영어 문장을 읽었을 때, 영어 발음을 평가해주며 현재 자신의 발음이 어떻게 들리는지 알려줍니다.

요약 동영상

프로그램 목적

코로나-19로 인하여 비대면 온라인 학습으로 자기주도 학습이 권장되고 있는 상황에서 가정 내에서 쉽게 영어를 학습할 수 있는 프로그램을 만들고자 구현하였습니다.

유아 혹은 저학년 학생들이 처음 한국어를 공부할 때 ‘차’,‘사과’와 같은 일상생활에서 흔히 마주치는 물체의 단어를 배웁니다.

‘찾아서 발음해요! 사진의 숲’ 프로그램은 자신의 일상생활 속 사진 혹은 인터넷에서 다운받은 사진들을 이용하여 시각적으로 물체의 단어를 영어 문장으로 가르칩니다.

또한 사용자가 영어 문장을 따라 읽을 경우 어떻게 발음해야 좋은 발음인 건지 배울 수 있도록 서비스를 제공합니다.

준비 사항

  • ETRI API를 발급받기
  • obdtc.py, procor.py, vrecog.py 코드에 발급받은 API 키를 입력하기
  • 프로젝트 다운 받기

사용 방법

두가지 실행 방법이 존재합니다.

  • LearningEnglishWordsWithImages.PY 실행
  • 압축 파일을 압축 해제한 후 LearningEnglishWordsWithImages.exe 실행

자세한 사용 방법은 Using Guide를 참고해주세요.

사용 API 설명

API 이름 설명
객체 검출 API 이미지 파일에서 다양한 종류의 객체 카테고리를 분류할 수 있는 객체 검출 API는 본 프로그램 내에서 사용자가 선택한 이미지 내의 검출 가능한 객체를 추출합니다.
추출한 객체는 영어 문장으로 출력해줍니다.
동일한 영어 단어의 반복 출력을 피하고자 중복된 카테고리의 객체를 제거하는 전처리 과정을 거치게 했습니다.
또한 API가 지원하는 80개의 카테고리 내에서 이미지 속 객체를 찾지 못하는 경우가 발생할 에러 상황을 대비하여 예외 처리에 대한 출력문을 같이 제공합니다.
발음평가 API 비원어민의 영어 발성에 대한 정확도를 바탕으로 만든 발음 평가 API입니다.
객체 검출을 통해 얻은 영어 단어를 바탕으로 만든 영어 문장에 대해 사용자가 Speaking 버튼을 통해 녹음합니다.녹음된 음성을 바탕으로 Good/Bad와 같은 이미지를 통해 사용자가 직관적으로 자신의 발음을 평가할 수 있도록 제공합니다.
더불어 자신의 발음에 대한 정확한 판별을 돕기 위해 이미지 하단에 사용자의 점수를 표시하도록 디자인하였습니다.
또한 발음 평가 API의 옵션 중 Script 변수를 적극적으로 활용하여 프로그램이 제공하는 객체 제시 문장과 음성 파일을 직접 비교하도록 구현하였습니다.
이를 통해 일반적인 비원어민 인식 결과가 아닌 정확한 발음 평가 서비스를 제공합니다.
음성인식 API 발음 평가 기능은 직관적으로 자신의 발음 점수를 알 수 있지만, 실제 자신의 발음이 어디가 부정확한지 알 수 없다는 단점이 존재합니다.
이를 보완하기 위해 음성 인식 API를 이용하여 자신의 발음이 실제로 어떻게 들리는지 사용자에게 알려줄 수 있도록 발음 평가 창 하단에 프로그램이 사용자가 발음한 영어 문장을 제공합니다.
API 가 보다 정확한 발음을 인식할 수 있는 자료를 제공하기 위해 사용자의 음성을 Raw PCM Data 형식의 음성파일로 저장하여 일상적으로 자주 사용하는 MP3 형식보다 더 정확한 판별을 돕도록 구현하였습니다.
더하여 음성 인식 API가 더 정확한 판별을 할수록, 발음 평가 점수 또한 더 정확해졌습니다.

비고

댓글남기기