top of page
검색
  • 작성자 사진윤서윤

딥러닝 음성봇 웹배포 프로젝트

최종 수정일: 3월 21일


서비스 시연 영상


평소 음성 및 자연어처리에 관심이 많아서 진행한 프로젝트입니다.


웹에서 실시간으로 사용자의 음성을 인식해 STT로 변환한 후 챗봇의 대답을 TTS로 음성으로 리턴하는 방식으로 구성되어있습니다.





모든 작업을 파이썬으로 진행하려 했으나 HTML만으로는 사용자의 음성을 실시간으로 받아 올 수 없었고 자바스크립트를 활용해야 했기 때문에 자바스크립트로 STT/TTS를 구현했습니다. 자바스크립트에서 사용자 음성을 입력 받아 텍스트로 변환하고 변환한 텍스트를 파이썬으로 전달해줍니다. 파이썬에서는 전달 받은 텍스트로 챗봇의 답변을 예측해서 리턴합니다. 리턴한 텍스트를 자바스크립트로 전달해주면 자바스크립트 내에서 TTS로 챗봇의 답변을 읽습니다.


토크나이징은 util.py로 따로 파일을 생성해서 모델 학습 파일과 챗봇 구현 파일에 모두 임포트해서 활용했습니다.


보통 자연어에는 RNN을 많이 사용하지만 최근 CNN을 활용한 텍스트처리도 시도되고 있어서 저도 CNN을 활용해서 학습을 해봤습니다. 웹배포를 해야하기 때문에 학습한 모델을 h5 파일로 저장하고 인텐트 파일에서 추출한 어휘 사전과 클래스도 따로 피클 파일로 저장했습니다.


형태소 분석에는 konlpy를 활용했습니다. 자바를 활용하기 때문에 로컬에서 시험해볼 때 JVM 경로 문제로 골치가 조금 아팠지만 금방 해결했습니다. 이 챗봇 구현 파일은 앱 실행파일에서 임포트해서 활용 할 파일입니다.



앱 실행 파일은 최대한 간략하게 구성했습니다.



nginx+flask+wsgi 로 배포를 했기 때문에 app.ini 파일도 생성을 해줬습니다.



최종 배포에 사용한 서버는 aws의 lightsail에서 생성을 했습니다. 그리고 사용자의 음성을 실시간으로 받기 위해 마이크 권한을 얻어야 했는데 그러기 위해서는 https 서버를 구축 할 필요가 있었습니다. 그래서 nginx로 서버를 구축하고 오픈ssl로 인증서를 발급 받아 https 서버를 생성했습니다. 무료인증서인 탓에 도메인에 접속했을 때 신뢰할 수 없는 인증서로 분류되어 바로 접속이 되지 않는 단점이 있습니다.

조회수 92회댓글 0개

최근 게시물

전체 보기

コメント


게시물: Blog2_Post
bottom of page