Skip to content

제1회 SKYCC / Team 고서연 - 시니어를 위한 음성 인식 KTX기차 예약 서비스

Notifications You must be signed in to change notification settings

dhdbsrlw/SKYCC-Hackathon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 

Repository files navigation

시니어를 위한 음성 기반 예약 서비스

Problem.

스마트폰으로 모든 것이 이뤄지는 세상에 사는 요즘,

어느 가게를가든 키오스크를 어렵지 않게 만날 수 있고,  간편하게 모바일로 예매는 물론 은행 업무도 볼 수 있게 되었다.

지난 코로나19사태는 이러한 정보화 흐름을 더욱 가속화시켰다.

그런데 젋은 세대보다 상대적으로 디지털 환경이 낯선 고령층에게는, 이러한 디지털화가 그저 두려움의 대상일 뿐이다.

대다수의 고령층이 ‘사용 방법을 모르거나 어려워서’ 라는 이유로, 그 디지털 서비스의 사용을 거부하거나, 혹은 거부 당하고 있다. 그러나 기술의 발달로 인한 사회의 디지털화는 피할 수 없는 현실이다.  최근 인공지능이 발달하며, 사회의 정보화는 더욱 가속화되고 있다. 이러한 사회 흐름 속에서 고령층은 점점 이 사회로부터 소외받고 있다.

고령층이 겪는 정보 격차는 매우 심각하다.

Solution. 음성 기반 예약 서비스: 해줘잉

본 서비스는 우리 사회의 숙원 과제인 위 고령층의 정보 격차를 문제를 해소하기 위해 고안되었다.

고령층을 이 정보화 사회에 화합🤝시키는 것, 그것이 본 서비스의 궁극적인 목표다.

본 팀은 특히 대부분의 영역에서 디지털화가 이루어진 예약 서비스에 집중하였으며,

(주어진 시간을 고려하여) 그 중에서도 고령층이 주로 이용하는 KTX(교통)에 적용하여 구현하였다.

본 서비스의 핵심적 특징은 ****아래와 같다. ****

  • 고령층에게 특화된 사용자 경험을 제공하기 위한 STT (Speech-to-Text) 기술 사용
  • 고령층 친화 UI/UX (간결한 UI/UX 화면과 UX FLOW)

구현한 기능

구현한 주요 기능은 아래와 같다.

✅ **원클릭(One Click) - 원스피치(One Speech) 예약**
    1. (예약 요청) 음성 인식 후 텍스트 변환 ✅

    1-1. 프론트엔드 측에서 음성 녹음 후 http request

    1-2. 백엔드 측에서 음성 녹음 파일을 AWS S3에 업로드

    1-3. S3에 업로드된 음성녹음 파일을 AWS-transcribe를 이용하여 Text로 변환

    1-4. openai api(chatgpt)를 이용하여 변환된 text를 형식에 맞게 전처리

    1-5. 전처리된 text data로 DB에 query

    1. 요청한 예약 정보와 가장 유사한 차편을 교통편 DB 상에서 탐색 후 임시 예약 ✅

    2-1. 요청에 맞는 정확한 차편이 있을 경우, 바로 해당 차편 임시 예약

    • DB에는 korail data api를 이용하여 ktx 기차편 정보가 모두 등록되어 있음
    • 요청에는 출발 역, 도착 역, 출발 시간이 포함됨
    • 해당 데이터와 일치하는 차편이 있을 경우 임시 예약 처리

    2-2. 요청에 정확히 맞는 차편은 없을 경우, 유사한 차편 3개 대안으로 제공 후

    • 유사한 차편은 출발 역, 도착 역이 일치하고, 출발 시간 차이가 적은 순으로 3개의 record를 제공
    • 사용자에게 대안 3가지는 편리하고 알아보기 쉬운 UI로 제공, 클릭 시 임시 예약 처리
    1. 임시 예약 완료 시, 슬랙봇을 통해 (시니어 사용자 자녀에게) 임시 예약 및 결제 안내 메세지 발송 ✅
    • 만약, 예약 과정에서의 시니어의 실수 또는 기술적 에러는 예약 확인 과정에서 handling 가능
    • 에러가 있다면, 임시 예약 취소 가능
  1. 슬랙 결제 안내 메세지에서 연결되는 결제 페이지 ✅

  2. 결제 완료 시 최종 예약 확정 (예정)

기능 구현 방식

인프라

AWS S3 : 음성 파일 및 STT 변환 결과 저장

AWS Transcribe : 음성 파일 STT 변환

AWS RDS : KTX Data 저장 및 사용자 예약 정보 저장

AWS EC2 : 배포 및 서버 구동 Vercel : 프론트 서버 배포

기술스택

Front : Nextjs

Back : Nestjs + postgresql

사용 API :

Open AI ChatGpt

  • Prompt Engineering을 통한 자연어처리
    • 최종 Prompt = STT로 변환한 유저의 요청 prompt + Service Prompt

    • STT로 변환한 요청 prompt 예시

      오월 십오일 서울에서 부산가는 기차아홉시 편 예매해줘.
      
    • Service Prompt 예시

      에서 날짜와 시간, 출발지, 목적지를 구분해줘. 날짜는 2023-MM-DD, 시간은 HH:MM으로 표기하고 출력은 json 형식만 해줘. 구체적인 형식은 다음과 같아\n. {"date": 날짜\n,"time": 시간\n,"departure": 출발지\n,"destination": 목적지}
      

AWS Transcribe

  • S3에 저장한 mp4 파일을 AWS Transcribe SDK를 활용하여 STT(Speech to Text) 변환 후 S3에 JSON 형식으로 결과 저장

Slack Email 전송

korail data api

  • 존재하는 기차표 정보 제공

팀원 간 업무 분담

  • STT 음성 파일을 받아 서버에서 API에 요청(w/ AWS TRISCRIBE) - 장석원, 정경륜
  • Speech Text 전처리 (w/ ChatGPT API) - 정경륜
  • 백엔드(교통편 및 예약 관련 기능 , 인프라 관리) - 노정훈
  • 프론트엔드 - 신재훈, 정경륜, 오윤진
  • 슬랙봇 구현(메세지 알림) - 신재훈

About

제1회 SKYCC / Team 고서연 - 시니어를 위한 음성 인식 KTX기차 예약 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 71.2%
  • JavaScript 23.5%
  • HTML 3.2%
  • CSS 2.1%