AI 버튜버 개발일지(1) - 구상하기

 

일단은 로컬 AI 여자친구를 만드는 방향으로 개발에 집중하겠습니다.  이 카테고리에서 개발 과정을 확인하실 수 있습니다.
 

'AI 여자친구 개발일지' 카테고리의 글 목록

안녕하세요 2jang입니다! 개발하면서 마주한 기술적 이슈들과 프로젝트 이야기, 개발자로서의 일상을 나누는 공간입니다.

2jang-dev.tistory.com

 

요즘 AI와 여자친구 롤플레잉 대화를 즐기는 사람들이 많아지고 있고, 인터넷 방송계에서는 버튜버가 확실한 트렌드로 자리잡고 있는 것 같습니다.


해외에는 뉴로사마(Neuro-sama)라는 AI 버튜버가 있지만, 한국에는 아직 본격적인 AI 버튜버가 없는 상황입니다. 이 점이 오히려 기회가 될 수 있지 않을까 싶어서 한국형 AI 버튜버를 만들어보면 재미있을 것 같다는 생각이 들었습니다.

다만 조금 걱정되는 부분은 해외에서도 성공한 AI 버튜버가 뉴로사마 정도밖에 없다는 점입니다. 다른 사람들도 시도해봤지만 실패한 것일까 하는 생각이 들기도 하고... 하지만 역으로 생각해보면 아직 아무도 제대로 시도하지 않은 영역이기 때문에 도전해볼 만한 가치가 있지 않을까 싶습니다.

가장 유명한 버튜버중 하나인 가우르 구라


진짜 여자친구 같은 느낌을 주려면 단순히 대화만 주고받는 것이 아니라, 내가 하는 활동이나 오늘 뭘 했는지에 대해 관심을 가지고 물어봐주는 것이 핵심이라고 생각했습니다.

이를 구현하기 위해 PC에서 어떤 프로그램이 실행되고 있는지, 어떤 인터넷 창이 열려있는지를 모니터링하거나, 전체 화면을 스크린샷으로 캡처해서 비전 모델로 분석하는 아이디어를 떠올렸습니다. 이렇게 하면 AI 여친이 나와 같은 화면을 보고 있다는 느낌을 줄 수 있지 않을까 생각했거든요.

 

그러면 어떻게 기술을 구현할까 생각해보니, 일단 가장 우선적으로 고려해야 할 것은 전체 프로세스의 총 딜레이를 감소시키는 것이고, 그 다음으로는 악성 프롬프트에 대해 적절한 답변을 제공하는 것, 세 번째는 실제 방송인처럼 자연스럽게 대화하도록 하는 이런 순서로 개발 하면 좋을거 같습니다.

 

다행히 1대1 대화가 아니기 때문에 올라온 채팅에서 실제 사람이 생각하고 말하는 것처럼 약간의 딜레이가 생겨도 크게 티가 나지 않을 것입니다.

영어권 AI 버튜버 뉴로사마


일단 AI 채팅 모델이라는 점을 감안해서 잡담 방송부터 시작해볼 생각입니다. 
채팅을 랜덤으로 읽는 것이 아니라 여러 개의 채팅이 올라왔을 때 그중에서 유익하거나 재미있다고 생각되는 채팅을 랭킹으로 매겨서 읽고 이에 대한 반응을 하게 하는 것입니다. 랭킹 프로세스는 아마 따로 실행될 것이고, 랭킹을 매기면서 해당 채팅이 유해하지 않은지 확인하는 절차도 함께 진행할 것 같습니다.

idle 상태도 있어야겠죠. 채팅이 안 올라올 때나 주제를 환기하고 싶을 때 일상 대화를 해보는 것입니다. 또는 거짓으로 지어낸 썰 같은 것을 푸는 것도 좋을 것 같아요.

모델은 제미나이 API를 사용할 것입니다. 4대 대형 모델 API 서비스(ChatGPT, Gemini, Claude, Grok)를 모두 테스트해본 결과 제미나이 모델이 비전 능력이 가장 좋았습니다. 또한 모델의 성능도 좋았고요.

 

이렇게 stream으로 날아온 응답이 다 도착할 때까지 마냥 기다릴 수는 없습니다. 이 사이에서도 지연을 최소화해야 하는데, stream 형식으로 날아올 때마다 즉각적으로 TTS로 변환해서 출력하게 하면 될 것 같습니다.

모델의 행동 같은 경우도 괄호 안에 이 말에 대한 행동을 넣어서 포즈를 짓게 하면 좋을 것 같고, Live2D와 연동시키면 좋을 것 같습니다.

한국의 버튜버인 고세구


생각해보니 장기기억을 하는 기능이 있어야 하네요. 이건 RAG로 구현해야 될 것 같고, 벡터 데이터베이스는 Qdrant를 쓸 것 같습니다.

비용적인 문제도 무시할 수 없는데, 채팅이 점점 길어지면 그만큼 인풋 토큰 비용이 커지기 때문에 대화를 5개 정도만 남겨놓고 앞 내용은 요약하거나 RAG에 메모리로 저장하는 방식을 고려하고 있습니다. JSON 형식 출력을 활용해서 RAG 데이터, 요약 데이터, 응답 데이터 이런 형식으로 출력하면 어떨까 생각도 하고 있습니다.

강서구에서도 버튜버가..?



그 다음 단계는 이미지 인식입니다. 단순히 채팅만 하는 것이 아니라 화면을 보고 직접 마우스나 키보드등을 조작하는 능력을 부여해주는 거죠. 스크린샷 분석은 이미지 특징 추출로 하면 될 것 같은데, 제미나이 모델의 비전 능력이 생각보다 좋아서 그냥 바로 이미지를 넣어서 응답을 생성하도록 해도 좋을 것 같습니다. 이미지 특징 추출을 로컬로 돌리면 그만큼 레이턴시가 발생하니까요.

이후에는 노래나 게임, ASMR 등의 콘텐츠를 할 수 있을 것 같습니다. 하지만 여기는 어떻게 구현해야 할지 고민중이에요. 기술적 난이도가 높을 것 같기 때문에 앞의 뼈대부터 완성하고 차근차근 살을 붙여나가야겠습니다.

긴글 읽어주셔서 감사합니다.

반응형