Skip to content

Latest commit

 

History

History
122 lines (76 loc) · 5.33 KB

File metadata and controls

122 lines (76 loc) · 5.33 KB

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

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) - 정경륜
  • 백엔드(교통편 및 예약 관련 기능 , 인프라 관리) - 노정훈
  • 프론트엔드 - 신재훈, 정경륜, 오윤진
  • 슬랙봇 구현(메세지 알림) - 신재훈