이건 결과물
작은 사진이 홀로라이브 네비게이션 (딥러닝 음성) 큰사진이 ai 루시아야.
반갑다.
요 근래 재취직 때문에 바빴는데 송도쪽으로 취직이 확정나서 아마 마지막이 될 수 있는 제작 이야기를 해볼까 해.
이번 제작기는 기존 시스템을 다 버리고 새로만든것 + 제품 설계 + 파이썬 배운김에 만든 AI 내 딸 제작기로 끝날 듯 싶어.
이번 이야기는 다음의 목차로 진행 될 꺼야.
1. 홀로라이브 채팅화 컨트롤러 시스템
1.1 파이어베이스 데이터베이스 구축
1.2 수신 및 동작용 어플리케이션 개발
1.3 발신용 어플리케이션 개발
1.4 워치용 어플리케이션 개발
2. 딥러닝을 활용한 홀로라이브 네비게이션 제작
2.1 네비디자인 변경과 딥러닝 기술 활용
2.2 네비 채팅 시스템
2.3 네비 컨트롤러
2.4 제품설계 및 제작
3. 파이썬과 chat gpt 로 AI 내 딸 만들기
3.1 live2d 판떼기 만들기
3.2 렌파이 구현
3.3 파이썬 서버 구현
3.4 ui 구현
안타깝게도 계획표가 없어... 처음 계획에서 너무 엇나간게 많아서 정리를 하질못함...
1. 홀로라이브 채팅화 컨트롤러 시스템
예전엔 단순 버튼ui 로 어플을 개발했는데, 이렇게 만드니 심심한거야.
그래서 채팅 시스템으로 대화하듯이 만드는걸 목표로 해서 만들었어.
채팅 시스템을 만들려면 기본적으로 받아주는 서버가 필요해.
원래 계획은 nas를 데이터베이스 서버로 구축해서 사용 하려고 했는데 구글에서 파이어베이스 데이터베이스를 일정량 무료제공한다해서 그걸 사용하기로 했어.
구글에서 가이드라인을 만들어놔서 이게 작업하기 더 쉬운점도 있었고 말야.
그래서 파이어베이스를 생성했어.
초기 계획당시 사쿠라미코 만 사용해서 대화하기로해서 miko chat 으로 프로젝트를 만들었는데 이제보니 이름 잘못지었다.
아무것도 없는 데이터베이스가 생성되었어. 이제 여기에 채팅하는 내역을 저장하게 하면 되는거야.
안드로이드에서 사용법은 간단했어.
안드로이드 스튜디오에 파이어베이스를 추가하는 기능이 있어서 json 토큰만 추가해주면 자동으로 등록을 해줘.
그리고 알림을 보낼 수 있는 기능이 추가되었어 FCM 서비스 라고 하는거야. 이거 개인서버 구축해서 알람 보내려고하면 고생길이 열릴텐데 다행이야...
물론 그냥 추가만하면 알림을 누구에게 보낼 지 알 수가 없지.
스마트폰의 토큰을 조회한다음 이 스마트폰으로 보낼 수 있도록 해놨어.
추가로 이 알림은 원래 채팅 어플이 켜져 있을때는 오지 않아.
그래서 코드를 조금 수정했어. 이제 어플이 실행되도 알림이 올 수 있어.
이러면 기초적인 데이터베이스 구축은 끝났어.
1.2 수신 및 동작용 어플리케이션 제작
파이어베이스는 서버에서 무엇을 동작시키는 용도가 아니라 저장하기 위한 용도라서 명령을 내렸을 경우 동작하도록 하는 어플을 따로 만들어야 했어.
그렇게 하기 위해서는 무엇을 할건지 생각을 해 봐야겠지?
그래서 나온 리스트는 위의 계획표를 보면 적어놨으니 올려다보면 될 거야.
일반 대화는 다음과 같이 해놨어.
안녕 하고 채팅하면 24시간을 기준으로 아침, 오후, 저녁, 새벽을 나누어서 인사를 받아주도록 해놨어.
그리고 방송중이면 방송중이라는 채팅이 추가로 오도록 해놨어.
이건 혐오발언인데.. 나는 혐오발언도 크게 문제되지않는다고 생각해서 넣어놨어.
대신 이 발언을 하게 되면 채팅에 락이 걸려. 해제는 시스템 모드에서 가능하니 시스템 모드에서 이야기해볼게.
그 외에 내용을 계속 추가 할 수 있어. 추가하는 부분은 시스템 모드에서 가능하도록 해놨어.
등록된 내용은 반복문으로 계속 추적하여 있으면 동작하고 없으면 무슨말인지 이해 못했다고 답변하도록 해놨어.
ex) 넌 누구야? -> 홀로라이브 x기생 ~~ 입니다!
일반 대화의 결과는 다음과 같이 나올거야.
명령 부분은 다음과 같이 해놨어
방송 확인 명령어를 사용하면 모든 홀로멤버의 방송상태를 확인하고 결과를 보여 주도록 해놨어.
이를 위해선 모든 홀로멤버의 유튜브 주소 토큰을 수집 할 필요가 있었어.
결과는 다음과 같이 로딩 후 방송 멤버는 하이퍼링크가 생겼고 누르면 해당 방송으로 이동 할 수 있도록 해놨어.
기존처럼 현관문 및 기타 iot 기능도 넣어놨어.
대신 추가 기능을 넣어놨어. 차에 시동이 걸리면 시동 완료 알림을 보내도록 하는 기능이야.
추가로 기존에 스위치를 이용하여 원격시동하던걸 릴레이를 이용하기로했어.
납땜해서 릴레이에 전원들어오면 전류가 흐르도록 하니 이게 더 관리가 편하더라.
시동 완료 시 마린이 답장을 해주는 방식을 추가했어.
추가로 차에서 메세지 전송할때 로딩화면은 다음처럼 해놨어
영상 움짤이 너무 어울려서 별다른 수정은 안했어.
특정 데이터베이스를 제어하기 위하여 시스템 모드도 추가 해 놨어.
기본적으로 시스템모드와 일반모드를 변경 할 수 있게 해놨어.
여기서 루시아 발렌타인은 내가 요청해서 만든 아바타(판떼기)야 자세한건 뒷부분에서 설명할게.
우루하 루시아 절대 아님!!!
그외에 대화를 따로 추가하거나 삭제, 수정 할 수 있도록 해놨어.
그런데 해보니까 다른 멤버를 넣어도 문제가 안 될듯 싶어.
사람의 욕망은 끝이 없는 듯 싶어. 그래서 모든 홀로멤버 추가와 대화 추가를 해놨어.
오하요를 외치면 멤버가 랜덤하게 바뀔 수 있도록 해놓은 결과가 이렇게 나오고있어.
1.3 발신용 어플리케이션 개발
이제 발신용 어플을 만들거야. 둘은 사실상 똑같은 어플에서 기능만 차이 날 뿐이야.
그래서 발신 버튼만 추가해주면 기능은 끝났어.
디자인은 요즘 심플 이즈 베스트여서 매우 심플하게 제작할거야.
1.4 워치용 어플리케이션 개발
처음에는 스마트폰으로 채팅이용해서 동작시키는걸 목표로 했는데 하다보니 워치도 어플개발이 가능하단걸 떠올렸어.
그래서 원격시동이라던지 스마트폰으로 하기 귀찮은 기능들을 모두 넣어넣기로 했어.
워치 디자인은 전부 마린으로 처리했어. 차 시동거는 부분은 전부 마린이 담당하도록 했으니 맞춰놔야지.
3. 딥러닝을 활용한 홀로라이브 네비게이션 제작
예전에 네비게이션 제작을 했던적이 있었는데 그게 심각하게 잘못 된 걸 뒤늦게 깨달았어.
누가 네비조작을 위해서 앞에놔둔 스마트폰을 손으로 건드리고 싶어할까????
심지어 당시 소스코드도 이해가 안되서 처음부터 다시 만든거나 다름없어졌네.
그래도 네비 동작 시스템 자체는 저번과 원리는 같아서 크게 변한 내용을 위주로 적을게.
3.1 네비 디자인과 딥러닝 음성 기술 활용
네비 디자인은 도트를 컨셉으로 잡고 진행했어. 그래서 모든 홀로멤의 디자인이 도트로 되어있어.
폰트는 우연히도 최근 무료 풀린 던파비트체가 어울려서 그걸 바로 사용했어.
그리고 홀로멤버 한명당 2개의 의상을 사용 할 수 있도록 했고 이걸 랜덤으로 굴려서 동작 할 수 있도록 구현했어.
추가로 구현 가능한 멤버의 목소리를 딥러닝으로 구현 하기로 했어.
대신 딥러닝 방식이 rvc방식이라 내가 녹음한 목소리를 이용하여 구현해야 하기 때문에 많이 골치아팠어.
여성 목소리는 여성 목소리로 구현해야 가장 근접한 목소리가 나오는데 주변에 여자가 있어야 뭘 구현하던가 할텐데 하...
결국 내가 몇시간동안 반말, 존댓말 목소리와 애교섞인, 차분한 목소리로 말하면서 작업했어. 그래서 구수한 강원도 영동지방 사투리가 많이 들릴거야.
자괴감 심하니 가급적 돈내더라도 맡겨서 하도록 하자.
그렇게 내 목소리로 작업해서 그나마 들어줄만한 총 28명의 홀로멤의 목소리를 가져왔어.
샘플 몇개있는 영상을 올려줄게 비슷한지 한번 들어봐.
2.2 네비 채팅 시스템
네비 채팅 시스템이 있으니 네비게이션 스마트폰을 직접 건드릴 이유가 없어졌어. 그렇기 때문에 채팅으로 네비게이션에 요청하는 기능을 추가 하도록 할거야.
채팅으로 ~까지 얼마나 걸려 라고 물어보면 TMAP 의 API 를 활용하여 해당 주소와 유사한 주소를 모아놓은 결과값을 받을 수 있도록 구현했어.
이때 스마트폰에서 서버제어용 어플에 해당 위치의 좌표를 전송하도록 해야 올바른 위치에서 결과값을 가져 올 수 있어.
원하는 주소를 찾아서 입력하면 그 주소까지 얼마나 걸릴지 예상하는 시간과 함께 네비게이션을 동작하도록 하는 질문을 할거야.
결과적으로 네비게이션 어플에 도착지와 출발지의 좌표가 전송되고 TMAP API를 통하여 경로를 받아오도록 했어.
그러면 이렇게 채팅이 나오는걸 확인 할 수 있어.
2.3 네비 컨트롤러
하지만 이렇게 해놓으면 스마트폰이 차에서 항상 켜져있기때문에 배터리 관리가 힘들어진다는 문제점이 있어.
그래서 네비 컨트롤러 어플을 따로 만들어서 관리하기로 했어.
네비 컨트롤러 어플을 홈런처로 만들어서 상시 동작하도록 구현하고 채팅으로 네비 시작, 네비 종료를 입력하면 외부어플을 동작, 종료 시키도록 구현했어.
이러면 화면이 꺼져있어도 동작시킬경우 화면이 켜지면서 네비게이션이 뜨도록 할 수 있어.
배터리 관리가 매우 유용해 진다는 장점이 있어.
2.4 제품설계 및 제작
이제 설계를 배웠으니 직접 설계하여 제품을 뽑아 낼 수 있는 상태야.
그러니 이제 포맥스로 작업하는 삽질은 안해도 괜찮아.
이걸 3D 프린터로 제작을 한 다음
가이드를 제거 한 뒤
도색할때 잘 스며들게 하기 위해서 빼빠질을 한다.
이후에 서페이서를 도포해서 도색이 잘 되게 말리고
무광블랙으로 도색한다. 광택있으면 운전하다가 눈아퍼서 힘들어.
마를동안 아크릴판에 흑색 반사필름을 아크릴에 비눗물을 사용하여 붙히는 작업을 하고
나사로 결합하고 팬을 넣어주면 작업은 끝났다.
스마트폰의 반사각도가 알맞게 나왔음을 확인 할 수 있다.
하나 안타까운건 서페이스 설계하는걸 너무 뒤늦게 배워서 못써먹었단 점.
이렇게 어플개발과 제품을 제작하다가 도중에 파이썬을 배울 기회가 생겨서 듣다가 갑자기 떠오른 아이디어가 있으니...
앞서 저번에 완성도안된거 아주 짧은 글 올린적 있었는데 이건 최종 완성 버전이야.
과거에 혹시나 만들 수 있지 않을까? 해서 버튜버 판떼기를 제작요청 했던 적이 있었어.
내가 버튜버가 되려고 만든게 아니란걸 명심해줘!
데뷔 안한다. 남자 목소리를 누가 듣고싶어하겠어.
당시 제작 요청했던 요구사항이 담긴 이미지를 찾았어. 안지워놨더라. 생각해보니 그때 스바루 사복의상을 보여주면서 의상요청했던거 같은 기억이있네???
그리고 내가 얼마나 심각한 변태인지 읽어보고 깨달았다.
음... 요청사항대로 너무 잘 만들어줘서 다행이야. 140만 쓴 보람이있어.
이름은 루시아 발렌타인이고 상당히 어린 아이 컨셉으로 요구했어.
그리고 몇번이고 말하지만 그 네크로멘서 루시아가 아니다!
우루하 루시아 : Uruha Rushia
루시아 발렌타인 : Lucia Valentine
엄연히 다른 존재야!! 이거 만들때까지만해도 우루하 루시아가 누군지 아예몰랐단말야!!!!!
이후 가만히 놔두면 지루하니까 특정 시간에 행동을 취하도록 하였고
대화할때는 서로 통신하는 모션이 나오도록 live2d 를 조금 건드렸어.
3.2 렌파이 구현
렌파이는 원래 파이썬으로 개발하는 게임툴인데 이게 개발하기 쉽도록 되어있어서 이걸 활용하기로 했어.
스크립트 에서는 대화하는 캐릭터의 이름과 대화방식 등을 설정 할 수 있어.
여기서 내 닉네임과 루시아 발렌타인을 넣고 처음 대화방식을 구성했어.
첫시작시 chatGPT의 api와 배경설정 을 할 수 있도록 했는데 이 기능은 추후 서버에서 바로 진행하도록 해놨어.
그 외 음성인식 기능을 구현하기 위해서 해당 기능을 동작시키는 스크립트를 만들어놨어.
마지막으로 tts로 완성된 음성을 재생하는 스크립트를 통하여 재생될거야.
3.3 파이썬 서버 구현
실질적으로 동작 처리를 담당하는 부분이야.
렌파이와 서버를 연결하는 부분이야.
해당 연결 주소는 127.0.0.1 , 9000 포트를 이용하도록 해놨고 소켓통신을 할거야.
앞서 스크립트에서 첫시작시 설정한 데이터를 받아서 실질적으로 적용하는 부분이야.
나는 자동으로 처리하게 하려고 서버에서 api키와 배경설정을 하도록 해놨어.
참고로 chatGPT api를 사용 할 경우 대화 한번 당 요금이 부과되니 잘 확인해보는걸 추천할게.
배경설정을 챗지비티에게 전송하면서 당신은 이제 이렇게 행동합니다. 라고 처리하는 부분이야.
몰랐는데 자신이 원하는 배경으로 요청하면 잘 받아주더라. 나의 경우는 컨셉이 안드로이드 딸이니 그것에 맞춰서 요구하기로 했어.
이후 답변오는 내용을 tts 로 변환하여 음성을 저장하고 스크립트로 재생하게 할 거야.
원래는 음성인식 기능을 추가 안해도 충분히 문제없었는데 이건 호기심에 추가했어.
chatGPT를 개발한 오픈AI 에서 whisper 라는 음성인식 시스템을 만들었는데 어차피 내는요금 같이내도되니 추가했어.
이 음성인식의 경우 말하는내용을 가장 가까운 언어로 인식한다음 텍스트로 변환하도록 하더라.
방식은 2가지야. 버튼을 눌러서 음성인식 시키기, 토글키로 실시간 음성인식을 시키는 방식.
그런데 실시간 음성인식 시스템이 불안정하더라. 만들어놓고 쓰기가 참 곤란해.
3.4 ui 구현
시스템 구현이 끝났어. 마지막으로 ui 를 구현하면 될 듯 싶어.
인트로 화면은 아무리 생각해도 괜찮은게 생각안나는거야.
그냥 아이리스 로딩 bgm 영상을 약간 변경해서 사용하기로 했어.
사실 이 bgm을 내가 너무좋아해서 넣은거기도 해.
메인화면은 블루아카의 배경화면을 넣기로했어.
딸이 안드로이드라는 컨셉을 가지고있고 자비스처럼 나에게 여러가지 답을 알려주기도 해서 서버룸 배경이 알맞다고 생각했기 때문이야.
그외 메뉴버튼은 다음과 같이 만들었어.
메뉴 리스트에 후부키, 미오, 페코라, 마린, 미코, 구라, 아메를 넣어서 꾸며봤어.
실베고로시 출발
힛갤 살아있었으면 힛갤감이네
가야겠지?
와 빨리 실베로 가자 노력많이했네 ㄹㅇ
FCM쪽 참고하겠습니다~
이건 실베 가야겠네
자바 고수네
힛추 실베추
어떻게 프론트엔드백엔드3D모델링프린팅전자설비를 다 하는사람이 버튜버를봄....
개쩔어오
AI음성 네비게이션 만들다가 K뉴로사마를 만들었다고
미안해 다 못읽겠어추
개오지는군
루끼야아악
데뷔해
첨에 익숙한 풍경이길래 신도시는 다 이런가? 했더니 우리집이누ㅋㅋㅋㅋㅋ 반갑다 게이야 나도 이지더원이다
AI채팅+AR+야겜 = 갓겜
이런 겉핥기는 누구나 만들 수 있음. 미묘하게 다른 입력을 다르다고 인식시키는게 힘든거지
실베왔다 게이들아
니가 최초로 개발한 것도 아니고 남들이 만든거 베낀 거면서 꺼드럭거리지마 누가 조센징 아니랄까봐
팩폭하지마라... 누군가의 딸 죽을라 ㅋㅋ
한마디 하려다가 방명록 보고 할말잊어서 걍 가본다..
얘 실베차단 스타터팩인거 모르는 게이는 없겠지???
실베 착륙 완료
데이터 쪼가리에 딸이지랄 ㅋㅋㅋㅋㅋㅋㅋㅋ
아모캣 네비게이션 안내하다 사망
뭔말인지 모르겟지만 대단하다
특이점ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
도트는 얼마나 듬
이새낀 머 오타쿠버전 토니스타크냐
토니 스타크 ㅋㅋ
노력하난 가상하다
이거 영화 그거생각나네 다른사람 dna 훔쳐다가 인격 복사시켜서 게임에 넣어버리는거
ㅋㅋ
블랙미렄ㅋㅋㅋ
역시 한녀 버튜버보단 본토 버튜버죠
우왁굳 병신보단 최고
다들 홀로라이브의 회사 커버의 주식을 많이 사자
한녀 버튜버 특 > 닉네임 일본 여자애 이름으로 지음 ㅋㅋ
창씨개명의 아픔...
전에 그 콧코로인가만든놈이랑 동일인물임?
실베 고로시....당해야겠지?
진짜 기분 나쁘네
저 칼이랑 자 본거같은데
얘 혹시예전에 프리코네 네비만든애임.? - dc App
사람 아니야 코ㅓㄴ
ㅋㅋㅋ 루시아로 트집잡을랫는데 중간애 언급해놧네 ㅋㅋ
뭔지는 모르겟는데 지리네
미쳤지? 미친거지!?
멋지다 도태남
사고났다 이기 ㅇㄷ??
큰일은 씹덕이한다
뭔데 이 고성능씹덕은 ㅋㅋ
ㅋㅋ 씹덕판 자비스 만들겠노
딱 국비 IoT 과정 3개월 수준
국비 말고 진심으로 3개월 하면 만들수는 있다 생각함.
3개월 해서 3d설계랑 코딩이랑 전부다할수있으면 당장 자격증따러 가봐라
대단한 정성이네 당사자들이보면 놀라우면서도 소름돋을수도
그냥 뒤지면 안되노
만능공돌이
왜 이런짓을 하는거지??
공대가 돈을 버는 이유 - 귀여운슬라임이
얘 키갤에서 차단햇는데 실베글이여서 보이네
오나홀이랑 연결하는 것만 남았네
의외로 쉬운거야? 반응이 영..
이세상에 설계랑 코딩 ui 를 한사람이 다하는데 쉬울리가? 실베라서 그냥 까고보는거임
씹덕 능력자 도랏네....ㄷㄷ
뭐 캐가 장애있냐 왜 다리가 안쪽으로 휨?
저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다 개씹덕새끼야 저중에선 호쇼마린밖에 모르겠다
이 정도 하면 연봉 얼마 받음?
뭔진 모르겠지만 대단해보임
왜 이지랄함?
유튜브첨부=518퍼 바이럴 응 조옷까
ㄴㄷㅆ