Skip to content

Yebin46/integrated-counsel-system-for-child

Repository files navigation

integrated-counsel-system-for-child

자연어처리, 음성합성, 감정분석을 활용한 아동청소년 심리상담 통합시스템 개발 프로젝트

Project Diagram

project diagram

Hardware

  • 스피커의 하드웨어는 라즈베리파이 3B+ 모델을 사용하여 제작
  • STT를 위한 음성인식모듈을 사용하기 위해 마이크 보드 및 스피커를 보이스 쉴드에 연결

Process

  • 본 프로젝트에서는 자연어처리, 음성합성, 감정분석 총 3가지 모델 사용. 와이파이를 통해 각 모델을 실행하는 로컬PC에서 samba 서버를 사용하여 라즈베리파이의 공유 폴더에 접근함
  • 개발자가 다른 조치를 취하지 않아도 모든 프로세스가 연속적으로 이뤄지도록 하기 위해 Watchdog 패키지를 이용하여 input파일이 새로 생성되는 이벤트가 발생하면 자동으로 모델의 input으로 들어가도록 개발함

Natural Language Processing

자연어처리를 활용한 상담 답변 텍스트(.txt) 생성 (transformer)

Dataset

심리상담 질문과 정신건강의학과 전문의 외 5명의 전문가 답변, 고민 Q&A 파트 질문과 여성가족부의 답변을 크롤링하여 사용

Transformer for local PC

  • 사용자의 음성이 라즈베리파이에서 STT된 결과(stt_result.txt)가 공유 폴더 내에 저장되면 자연어처리 모델의 Watchdog observer가 이벤트를 인식하여 Transformer의 input으로 들어가도록 구현
  • Transformer의 결과로 반환된 답변(answer.txt)을 공유폴더에 생성

진행 방법

  1. local PC에서 가상환경을 만들어 requirements.txt 설치
  2. test.py에서 사용자에 맞게 경로 변경 : RASP_DIR, WORK_DIR, DIRECTORY_WATCH(stt_result.txt 생성 경로)
  3. 터미널에서 아래 코드 실행
python test.py

Voice Synthesis

상담 답변 텍스트(.txt)를 음성(.wav)으로 합성 (multi-speaker-tacotron2)

Tacotron for local PC code

Google Colab에서 Tacotron2를 training한 후 checkpoint를 저장하여 local PC에서 사용. Watchdog를 활용해 Transformer의 output인 answer.txt가 업데이트되면 자동으로 음성 합성 모델의 input으로 들어가도록 구현 (synthesizer.py 참조)

진행 방법

  1. local PC에서 가상환경을 만들어 requirement.txt 설치
  2. checkpoint를 알맞은 PATH에 저장한 후 터미널에서 아래 코드 실행
python synthesizer.py --load_path CHECKPOINT_PATH

Sentiment Analysis

내담자의 음성과 텍스트를 사용해 감정을 분석 (multi-modal-transformer)

Dataset

데이터셋은 총 4가지 열(idx, audio, sentence, emotion)로 구성된 pickle 파일 형식으로 전처리

(이 때, audio는 pydub의 AudioSegment를 통해 1차원 벡터로 변환한 형태)

Sentiment Analysis Website

웹 어플리케이션 형태로 내담자의 감정 분석 결과 레포트 제공

Project stack

  • Flask
  • SQLite
  • html/css/js
  • pytorch

Multi-modal transformer for local PC code

Multi-modal-transformer를 training한 후 checkpoint를 app/analysis/model에 저장하여 사용.

라즈베리파이가 내담자의 음성 파일을 bin 파일로 저장하면 wav 파일로 변환 후 1차원 벡터로 최종 변환 (analysis/index.py 참조)

내담자의 발화 음성을 텍스트로 변환하여 저장된 데이터를 1차원 벡터와 매핑하여 감정 분석 모델의 input으로 들어가도록 구현

Component Diagram

component diagram

Gallery

  • 초기 화면 main
  • 개인 프로필 profile
  • 감정 분석 레포트 report

Based on

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published