Skip to content

#시각장애인을 위한 봄 점자 학습 App #GooglePlayStore #Java #Kakao Newtone API #SQLiteDatabase

Notifications You must be signed in to change notification settings

ch-Yoon/refectoring_braille

Repository files navigation

시각장애인을 위한 점자 학습 어플리케이션

'봄' 점자 학습 어플리케이션은 화면을 볼 수 없더라도 진동, 남성과 여성의 음성, 다양한 효과음으로 점자 학습을 진행할 수 있는 점자 학습 어플리케이션 입니다.

기존의 점자 학습 어플리케이션들은 눈으로 화면을 보며 점자를 학습해야 합니다. 시각장애로 인해 점자를 배워야 하는 상황이지만, 아이러니하게도 시각에 의존하여 점자를 배워야 합니다.

그렇기에, ‘봄’은 시각, 청각, 촉각을 이용하여 점자 학습이 가능하도록 개발되었습니다. 점자의 형상과 돌출 위치, 점자의 배열정보, 글자의 정보 등 점자 학습에 필요한 정보들을 전달하기 위해 세심하게 표현하였습니다

개발자 이야기

사실, 시각장애인을 위한 '봄' 점자 학습 어플리케이션은, 품질 좋은 코드로 작성되지 않았습니다. 코드를 보기 위해 들여다보면, 도대체 무슨 코드가 이리도 복잡하게 얽혀있는지, 함수명은 왜 이런지, 이런 중복 코드들은 무엇인지, 한숨이 푹 나오는 코드입니다. 어쩌면, 정리도 잘 되지 않은 package를 보며 자세히 들여다 볼 엄두도 나지 않을 수 있습니다. 이 프로젝트의 코드를 보면 시력이 떨어지실 수도 있는 점 미리 말씀드립니다.

하지만 '봄' 점자 학습 어플리케이션은, '개발자'가 되고 싶다는 마음을 불러 일으켜 준, 우리 팀의 대학 생활을 대표하는 프로젝트입니다. 우리가 생각했을 때 필요한 기능들이 아닌, 실제 사용할 시각장애인분들을 찾아가 이야기를 직접 들으며 개발했습니다. 오랜 시간동안 의사소통을 해야했고, 어떻게 기능 구현을 해야 할 지 몰라 많은 공부를 했습니다. 많이 부족한 프로젝트이지만, 코드의 품질을 떠나 참 애틋한 프로젝트입니다.

수상 내역

교외

  • 2017 서울국제발명전시회 금상 : 2018. 12. 02
  • 말레이시아 국제대회 금상 : 2017. 05. 12
  • 한이음 공모전 입선 : 2016. 12. 07

교내

  • 산학협동 산업기술대전 한국산업기술시험원장상 : 2017. 10. 18
  • 제 2회 P2P & 캡스톤 경진대회 최우수상 : 2017. 03. 15

시각장애인과 이야기하여 도출된 요구사항

시연 동영상

Watch the video

관련 URL

내용

점자 정보 구성

  • 점자 중 돌출 점은 1로, 비 돌출 점은 0으로 설정
  • 가령, 초성 기역의 경우 {{0, 1}, {0, 0}, {0, 0}}으로 표현
  • 점자 정보는 "010000" 문자열로 Json file에 구성하여 프로젝트에 탑재

image

  • Json File에 담긴 정보와 display의 좌표를 계산하여 각 점의 속성 설정

image

점자 읽기 기능

  • Touch Event의 좌표 기반으로 점자 좌표 탐색 후 이벤트 처리 구현
    • 돌출 점자 - 강한 진동 및 점자 번호 남성 음성으로 재생
    • 비 돌출 점자 - 약한 진동 및 점자 번호 여성 음성으로 재생
    • 구분선 - 약한 진동 및 종소리 재생
    • 경고선 – 약한 진동 및 경고음 재생 image

제스쳐 기능

  • Single Tab, Double Tab, Left Drag, Right Drag, Up Drag, Down Drag 구현 image

전체 메뉴 구조

  • 한 화면에 한 개의 메뉴만 존재하도록 구성
  • 총 6개의 대 메뉴와 하위 메뉴들이 존재
  • n개의 자식 node를 갖는 트리구조로 메뉴 구현

점자 번역

  • 음성 인식 모듈로부터 사용자의 음성 인식 문장을 수신
    • 음성인식 된 문장에서 공백을 제거
    • 약자 및 약어로 규정된 한글 단어를 기반으로 문장을 재귀식으로 분해
    • “그리고 얼굴” -> “그리고얼굴” -> “그리고”, “얼”, “굴” 시나리오로 구성
    • 분해 된 단어들이 담긴 List return
  • 문장 분해 모듈을 통해 문장을 단어들로 분해
  • List의 앞쪽부터 순차적으로 점자와 매칭
  • “그리고” 와 “얼”은 약자 및 약어 점자와 바로 매칭
  • “굴”의 경우 약자 및 약어가 아니므로 음소 단위로 분해하며 확인.
  • 총 3단계로 분해하며 점자와 매칭
    • 초성+모음, 종성(“구”, “ㄹ”)으로 분해하여 매칭 시도
    • 실패 시 초성, 모음+종성(“ㄱ”, “울”)로 분해하여 매칭 시도
    • 실패 시 초성, 모음, 종성(“ㄱ”, “ㅜ”, “ㄹ”)로 분해하여 매칭
    • “굴”의 경우 초성, 모음+종성(“ㄱ”, “울”)에서 매칭 성공.
  • 완성된 점자 행렬 return

image

About

#시각장애인을 위한 봄 점자 학습 App #GooglePlayStore #Java #Kakao Newtone API #SQLiteDatabase

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages