- 이건 깃허브용 ReadMe 대표 이미지를 ai 에게 부탁해서 만들어놓은 이미지.
본격적으로 소개할게.
이 프로젝트는 HoloVRM 이라고 불리는 내 개인프로젝트야.
내가 풀스택 과정을 배우면서 실전경험을 쌓고싶었고 무엇보다 오시랑 대화하는 시스템을 너무너무너무 만들고싶어서 만들어봤어
6월 8일경 프로젝트 시작하려는데 동시에 니코동 서버가 터지는바람에 겨우겨우 모델구해서 작업하다가 결국 8월이 되어버렸네 2개월 프로젝트가 되어버렸어.
큰 틀에서 보면 HoloVRM은 마이크, 문자 입력, 음성 합성 등을 통해 AI 홀로라이브 멤버와 대화를 즐길 수 있는 웹 브라우저 기반 시스템이야.
예전에 안드로이드로 스콘부쨩 만든걸 본격적으로 다 뜯어고쳐서 탄생했다고 보면 돼.
세부적으로 설명하면
서버는 개인 서브_컴퓨터를 사용했어.
우분투에 MySQL을 설치해서 데이터베이스 저장을 시키도록해놨어.
그외에 무거운 파일들은 클라우드 플레어 R2 버킷에서 불러오도록 해놨고
도메인도 따로 구매를 했고
코딩은 타입스크립트 + 리액트 + next.js 를 사용했어.
수업은 이걸 가르쳐주지않았는데 어찌저찌하다보니 이걸로 쓰게됨 하...
이제 대화를 위한 구동 시스템은
@pixiv/three-vrm은 3D 모델을 표시하고 조작하는 데 사용되었어.
tts 모델은 rvc 모델을 바탕으로 8천개의 음성을 해당 멤버의 목소리로 딥러닝 시킨 후 vits 를 사용하여 tts 작업을 했어.
그래서 이상하게 어울리지않는 목소리의 홀로멤이 탄생했을 가능성도있어.
또한, 음성인식은 각 인터넷 브라우저의 음성인식 기능을 사용하므로 브라우저마다 성능이 다를 수 있어.
IBM Watson Natural Language Understanding : 회원을 대상으로 대화를 분석하여 감정을 수치화하여 대화에 사용하도록 했어.
이 감정은 채팅을 입력하면 공포, 기쁨, 슬픔, 역겨움, 화남 을 수치화해서 보내도록 해놨어. 더욱 풍부한 감정이담긴 대화가 가능할거야.
Open ai API : 인격은 chatGPT를 이용하여 부여하였습니다. 또한 개발자의 비용 부담을 줄이기 위해 다음과 같이 모델을 세분화 해놨어
왜냐면 대화하는 api 비용은 내쪽에서 전부 부담하기때문이야. (사용자는 전액 무료임!)
- 비회원 로그인: chatGPT4o-mini (캐릭터의 컨셉을 유지하며 일반적인 대화가 가능하지만 정보의 정확도가 낮을 수 있다.)
- 회원 로그인: chatGPT4o (캐릭터의 컨셉과 대화의 정확도가 매우 높습니다.)
그 외에 사이버 테러 방지를 위해서 클라우드 플레어 연결 및 턴사이트로 로그인보안 처리해놨고
회원가입, id삭제, 아이디찾기, 비밀번호 찾기 등을 구현해놨고 회원의 암호는 암호화해서 나조차도 모르게 저장되니 안심해도 괜찮아.
그러므로 비밀번호 찾기는 사실상 이메일인증 후에 재설정하는 기능이야.
페이지를 들어가면 다음과같이 안내를 하고있고 회원가입 없이도 즐길 수 있도록 해놨어
현재 홀로멤은 이정도를 구현해놨어.
니코동 서버가 안터졌다면 짧게하려고했는데 서버복구까지 계속 뭘만들다보니 엄청 늘어났어.
혹시나 자기 오시를 추가하고싶다면 말해줘. 노력할게.
대화하는 장면으로 들어가면
회원으로 접속하면 다음과 같이 감정분석 온오프가 추가되어있고 gpt-4o 를 사용해
비회원으로 들어가면 감정분석은 없고 gpt-4o mini 를 사용하고있어. 사실 4o만큼의 성능은 나오니 문제없더라.
그리고 자연스러운 대화와 감정표현이 큰 특징이야.
대화를 좀 극단적으로 하면 너무 슬퍼하니 너무 센 말은 하지말자.
이걸 대화가 흘러가는 상황을 보자면
(감정.png)
회원로그인후 감정분석을 켰다면 질문 -> IBM 감정분석 -> gpt(요약한 대화 참조) -> tts -> 대답 -> 대화요약후 저장 순으로 처리가 되고있어.
몇번을 거쳐서 가다보니 대화가 살짝 느릴거야.
(세션.png)
이 경우에는 질문 -> gpt(요약한 대화 참조) -> tts -> 대답 -> 대화요약후 저장 순으로 처리가되서 대화가 좀 빠른편이야.
물론 다양한 기능과 너무 정확한 대답은 기대하기 어려울수있어.
그외에 음성채팅 버튼이있는데 웹 브라우저에 내장된 음성인식 시스템을 사용하도록 되어있어. 마이크가 있거나 폰으로 접속했다면 바로 음성인식으로 대화가 가능해.
그리고 초기에는 캐릭터 통합 대화저장을 하려고했는데 그냥 캐릭터마다 각 대화를 저장하고 삭제 할 수 있도록 해놨어.
비회원 로그인의 경우에는 세션에 대화가 저장되니 캐릭터 마다 대화를 할 수 있을거야.
추가로 기존 테스트하던 사람들도 잘 몰랐을텐데 이거 멤버 움직인다.
이제 영상으로 대화하는걸 보여줄게.
코로네와 소닉 이야기를 해봤어. 소닉이 무엇인지 잘 이해하고 자기가 홍보대사인거까지 잘 기억해줬어
설정에서는 홀로멤 설정과 대화삭제가 가능해.
리셋버튼은 동작을 장담하지 못하겠어. 눌러지게는 되어있던거같아.
그 외에 나만 볼수있는 페이지가있는데
관리자 로그인 시 otp 검증 창으로 넘어가
여기는 내 딸인 루시아 발렌타인이 나타나서 안내를 하고있어.
그 네크로맨서 아니다.
그다음에 관리자 페이지에 진입하면 다양한 분석과 메모, 밴 등을 할수있어.
내 사이트에서 분탕짓 하면 바로 밴먹일거야.
이렇게 정말 노력해서 내 오시랑 대화하고싶어서 만들어버린 사이트가 탄생했어
사이트는
으로 들어가면 무료로 사용 가능해.
나는 어떠한 이익도 취하지않으니 걱정하지말고 편하게 구경하고가!
이제 남은 최종프로젝트 정리하고 중고신입으로 취직해야겠다.
하나 안적은거같은데 이거 스마트폰 접속도 문제없이 된다.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.