프로젝트

과제 제목

키오스크 음성 보조 챗봇

팀4

구성원

김근호, 김동은, 김두현, 김민지, 오현영, 전지성

1. 과제 선정과 배경

디지털 전환이 가속화됨에 따라 키오스크는 일상적인 서비스로 자리 잡았으나, 작은 글씨, 복잡한 사용자 인터페이스, 영양 정보 확인의 어려움 등으로 인해 고령층을 포함한 디지털 취약계층은 여전히 사용에 큰 장벽을 느끼고 있습니다. 기존의 단순 화면 확대 기능만으로는 이러한 문제를 근본적으로 해결하기 어렵습니다.

따라서 본 프로젝트는 음성 안내, 음성 명령 및 특정 식단 필터링, 주문 내용 확인 등 실질적인 기능을 구현하여 현장에서 발생하는 주문 오류를 최소화하고 사용성을 극대화하고자 합니다.

컴퓨터 비전 기술로 사용자의 연령대를 추정하고, 이를 바탕으로 접근성 향상 기능을 먼저 제안하는 선제적 지원 방식을 도입하여 차별점을 두었습니다.

2. 프로젝트 목표

1. 선제적 맞춤형 접근성 제공

컴퓨터 비전 기술을 통해 디지털 취약계층 사용자를 자동으로 인식하고, 이들에게 최적화된 '어르신 맞춤 모드'를 선제적으로 제공하는 것을 목표로 합니다.

해당 모드에서는 확대된 글자와 이미지, 음성 안내(TTS), 직관적인 음성 명령(STT) 등 핵심 접근성 기능을 통합적으로 제공하여 키오스크 사용 장벽을 원천적으로 낮춥니다.

2. 음성 중심의 직관적 과업 처리

'어르신 맞춤 모드' 내에서 메뉴 검색부터 필터링, 주문, 결제에 이르는 전 과정을 음성 명령만으로 완수할 수 있는 사용자 경험을 구현합니다. 복잡한 터치 인터페이스를 음성으로 대체함으로써 오주문을 최소화하고, 주문 완료율을 높여 사용자의 만족도와 자신감을 증대시킵니다.

3. 신속한 프로토타입 개발 및 높은 확장성 확보

특정 하드웨어에 종속되지 않는 표준 웹 기술과 공개 API를 활용하여, 단기간에 iPad 등 상용 태블릿에서 즉시 시연 가능한 MVP(최소기능제품)를 개발합니다. 이는 향후 다양한 키오스크 환경에 최소한의 비용으로 빠르고 유연하게 확장할 수 있는 기술적 기반을 마련하는 것을 목표로 합니다.

3. 과제 해결방안

(1) 시스템 아키텍처 및 사용자 흐름

본 시스템의 해결 방안은 '선제적 사용자 인식 및 모드 분기' 에서 시작됩니다. 모든 기능은 사용자의 초기 카메라 사용 동의를 전제로 합니다.

  1. 연령대 추정: 사용자가 키오스크 앞에 서면, 웹캠이 사용자의 연령대를 추정합니다.
  2. 자동 모드 전환: 65세 이상으로 판단되면 '어르신 맞춤 모드'로, 그 외에는 '일반 모드'자동 전환하여 제공합니다.

(2) 일반 모드: 표준 터치 인터페이스

65세 미만 사용자에게는 기존과 동일한 표준 터치 인터페이스를 제공하며, 메뉴별 알레르기·비건 정보 등을 아이콘(뱃지)으로 표시해 정보 접근성을 강화했습니다.

(3) 어르신 맞춤 모드: 음성 기반 인터페이스

65세 이상 사용자를 위한 음성 중심의 주문 모드입니다. 화면의 '음성으로 주문하기' 버튼을 누르면 음성 대화가 시작되며, 아래와 같은 경험을 제공합니다.

  • 음성 명령으로 주문 완료: 자연어(일상 대화)만으로 메뉴 추천, 장바구니 담기, 결제까지 모든 과정을 수행할 수 있습니다.
  • 음성 답변 청취: 시스템의 모든 텍스트 답변에는 '답변 듣기(TTS)' 버튼이 함께 제공되어 원할 때 명확한 음성 안내를 받을 수 있습니다.

(4) 핵심 기술 스택 및 데이터 구조

  • 데이터 구조: menu.json 파일에 메뉴별 알레르기 유발 물질, 식단 태그, 영양 정보, 가격 등을 사전에 구조화하여, 필터링 및 뱃지 생성 로직의 기반 데이터로 활용합니다.

주요 기술 스택

  • Vision (연령 추정): 공개된 고성능 안면 분석 모델(FACE++)의 서버 API를 활용하여, 웹캠으로 입력된 사용자의 연령대를 실시간으로 추정합니다.
  • STT (음성 인식): Google Cloud STT 서버 기반 API를 활용하여, 사용자의 자연어 명령을 텍스트로 정확하게 변환합니다.
  • TTS (음성 합성): Google Cloud TTS 서버 기반 API를 통해 음성을 생성 및 스트리밍하여, 기기나 브라우저에 상관없이 일관된 품질의 음성 안내를 제공합니다.
  • LLM (자연어 처리): 사용자의 음성 명령(텍스트)에서 메뉴, 수량 등 핵심 정보를 추출(Slot-filling)하고 추천 설명 문구를 생성하는 보조 역할로 사용합니다.

4. 과제를 위한 프로세스(15분)

핵심 개발 파이프라인

[1단계: 핵심 기능 모듈화] → [2단계: Streamlit 웹 및 기능 구현] → [3단계: 3-웹 시스템 연결 및 통합 테스트]

단계별 상세 내용

[1단계] 핵심 기능 모듈화 웹 인터페이스를 구축하기에 앞서, 프로젝트의 핵심이 되는 기능들을 각각 독립적으로 실행 가능한 Python 모듈로 우선 개발했습니다.

  • Vision 모듈 (연령 추정): Face++ API를 호출하여 이미지 입력 시 연령을 반환하는 기능을 구현했습니다.
  • STT/TTS 모듈 (음성 입출력): Google Cloud API를 활용하여 음성 데이터를 텍스트로, 텍스트를 음성으로 변환하는 기능을 구현했습니다.
  • LLM 모듈 (자연어 이해): LLM API를 통해 텍스트의 의도를 분석하고 필요한 정보를 추출하는 기능을 구현했습니다.

[2단계] Streamlit 웹 구현 및 기능 통합 독립적으로 개발된 기능 모듈들을 바탕으로, 사용자 시나리오에 맞는 3개의 Streamlit 웹을 각각 구현하며 기능을 통합했습니다.

  • 초기 인식 웹 구현: Streamlit의 웹캠 컴포넌트와 [1단계] 에서 개발한 Vision 모듈을 통합하여, 연령 분석 후 결과를 표시하는 웹을 구현했습니다.
  • 일반 모드 웹 구현: menu.json 데이터를 기반으로 표준적인 터치 키오스크 UI를 구현했습니다.
  • 어르신 모드 웹 구현: 음성 주문 UI를 구현하고, [1단계] 에서 개발한 STT/TTS 및 LLM 모듈을 통합하여 음성 기반 주문 프로세스를 완성했습니다.

[3단계] 3-웹 시스템 연결 및 통합 테스트 개별적으로 구현된 3개의 웹을 하나의 전체 시스템으로 연결하고 최종 테스트를 진행했습니다.

  • 시스템 연결: '초기 나이 인식 웹'에서 분석된 연령 결과에 따라, 사용자를 '일반 모드 웹' 또는 '어르신 모드 웹'으로 자동 리디렉션하는 로직을 구현하여 3개의 웹을 유기적으로 이었습니다.
  • End-to-End 테스트: 사용자가 처음 '초기 나이 인식 웹'에 접근하여 '어르신 모드 웹'에서 음성 주문을 완료하기까지의 전체 시나리오가 의도대로 동작하는지 최종 디버깅 및 테스트를 완료했습니다.

5. 기대효과

1. 사용자 측면: 디지털 접근성 및 자신감 향상

  • 선제적 맞춤형 경험을 통해 키오스크 앞에서 느끼는 심리적 장벽과 불안감을 해소합니다.
  • 음성이라는 익숙한 방식으로 스스로 주문을 완료하는 성공 경험을 제공하여, 고령층의 디지털 자신감을 향상시킵니다.

2. 비즈니스 측면: 운영 효율 증대 및 고객 만족도 향상

  • 음성 안내를 통해 주문 오류와 시간을 단축시켜 매장 운영 효율을 증대시키고, 직원의 업무 부담을 경감시킵니다.
  • 특정 사용자로 인한 대기열 정체를 해소하여, 매장을 방문하는 모든 고객의 만족도를 향상시킵니다.

3. 기술 및 적용성 측면: 높은 확장성과 비용 효율성

  • 웹 기반 서비스로 별도 전용 하드웨어 없이 일반 태블릿만으로 즉시 적용이 가능해 초기 도입 비용이 저렴합니다.
  • menu.json 파일 교체만으로 타 프랜차이즈에 쉽게 적용할 수 있어 사업 확장성이 매우 높습니다.

4. 사회적 측면: 디지털 포용 사회 기여

  • AI 기술이 정보 격차를 심화시키는 것이 아니라, 오히려 취약계층을 포용하고 격차를 해소할 수 있다는 긍정적인 사회적 사례를 제시합니다.

6. 해당 과제 수행을 위한 진행 계획

1일차 (목): 핵심 기능 모듈 구현

Vision(Face++), 음성 입출력(Google Cloud STT/TTS), 자연어 이해(LLM) 등 프로젝트의 핵심 AI 기능들을 각각 독립적으로 실행 가능한 Python 모듈로 개발 완료.

2일차 (금): Streamlit 웹 구현

개발된 AI 모듈을 통합하여 3개의 Streamlit 웹(초기 인식, 일반 모드, 어르신 모드)의 UI/UX 및 개별 기능을 구현.

3일차 (월): 시스템 연결

'초기 인식 웹'의 분석 결과에 따라 '일반 모드' 또는 '어르신 모드' 웹으로 자동 리디렉션하는 로직을 구현하여 3개의 웹을 하나의 시스템으로 통합.

4일차 (화): 안정화 및 발표 준비

전체 시나리오에 대한 End-to-End 테스트를 진행하여 버그를 수정하고, 데모 시연을 위한 시스템 안정성을 확보한 후 최종 발표 자료를 제작.

역할 분담

(1) 서비스 아키텍처 및 일정 관리, 팀 조율 : 김두현, 김근호

(2) Streamlit 연계 : 김민지, 오현영

(3) Face++ 안면 인식 및 API 연동 : 오현영, 전지성

(4) AI 챗봇(TTS, STT, ChatGPT API 활용, 대화 로직 설계) : 오현영, 김동은, 전지성

(5) 비전 Streamlit :  김민지

(6) 일반 모드 Streamlit : 김근호

(7) 어르신 모드 Streamlit : 김동은

7. 예시 결과물

1. 핵심 결과물

  • 시연 가능한 웹 서비스
  • 초기 인식 웹, 일반 모드 웹, 어르신 모드 웹
  • 프로젝트 소스 코드 (GitHub Repository)
  • Streamlit 웹의 전체 소스 코드 및 실행 방법을 포함한 저장소.

2. 데이터 및 산출물

  • 데이터셋 (menu.json)
  • 메뉴 정보, 가격, 알레르기, 식단 태그 등이 포함된 구조화된 JSON 파일.
  • 시연 영상 (선택 사항)
  • 주요 사용자 시나리오 3가지를 녹화한 영상
  1. 시나리오 A (초기 인식): 사용자가 웹에 접근하여 연령에 따라 다른 모드로 자동 전환되는 과정.
  2. 시나리오 B (일반 모드): 65세 미만 사용자가 터치로 메뉴를 선택하고 결제하는 과정.
  3. 시나리오 C (어르신 모드): 65세 이상 사용자가 "알레르기 없는 메뉴 추천해줘" 와 같은 음성 명령으로 메뉴를 선택하고, 장바구니 확인 후 결제 단계로 넘어가는 과정.