
만들면서 잘 될까 긴가민가 했는데 결론부터 말하면 예상보다 꽤 괜찮은 물건이 나온거 같음.
영어, 일본어, 한국어 채팅 다 인식할 수 있고 채팅에 대한 대답을 일본어 (유우카 TTS)로 말하면서 3개 국어 자막을 생성함.
인적사항(소속, 직업, 좋아하는 거, 생일 등)이나 세계관에 대해서도 학습이 되어 있음.(완벽하진 않음)
조금 더 개선하고 오늘 저녁 6시에 유튜브에서 시험삼아 뱅송 한 번 킬 듯? 키게 되면 5시 쯤 글 한 번 씀.
뱅송 컨셉은 유우카 짱의 수학과 회계 방송임.
아래는 기술적인 부분이 궁금한 블붕이들을 위한 글
------------------------------------------------------------------------------------
파이프 라인은 아래처럼 구성되었음.
---파이프라인---
유튜브 채팅 폴링
→ [챗큐] → 영어로 번역→ Inworld AI로 대답 텍스트 생성 → 일본어로 번역
→ [대답큐] → TTS로 음성 데이터 생성
→[음성큐] → Rest API (Flask) → 클라이언트 (유니티)
------------------
각 과정은 아래의 AI들을 이용하였음
DeepL: AI 기반 번역 솔루션
유우카 TTS: kdrkdrkdr님이 학습시킨 모델 이용
Inworld AI: 게임 NPC용 대화 AI 솔루션
치명적인 문제점이 있는 데 여러 개의 비싼 AI 연산을 때려 박아서 만들었기 때문에 단일 대답을 생성하는 데 약 20~30초 정도의 시간이 소요된다는 점임.
래이턴시를 개선하려면 돈 때려 박아서 비싼 클라우드 컴퓨터 빌리는 건데, 수익이 없는 지라 그건 논외고.
대신에 여러 단계로 쪼개서 데이터가 단일 방향으로 흐르도록 파이프라이닝하고 각 단계에서 생성된 데이터를 버퍼큐에 넣어서 각 단계들이 병렬처리가 가능하도록 해서 총 쓰루풋을 크게 늘렸음. 결론적으로 단일 대답에 대한 지연은 크지만, 연속된 채팅에 대해서는 지연이 거이 없도록 쓰루풋을 크게 개선하는데 성공했음.
(첨언하자면 성능 모니터링을 했을 때 TTS처리에서 가장 큰 지연시간이 발생했음.)
한 가지 맘에 안드는 게 더 있는데, Inworld AI라는 게임 NPC용 대화 AI 솔루션을 이용했는데 얘가 게임 세계관 학습시킬 수 있는 솔루션이라서 채택했음. 근데 세계관 학습도 어느 정도 잘 되고, 말도 잘하는데, 게임용 솔루션이라서 그런지 말을 너무 길게하고 미사여구를 너무 많이 붙힘. 말 좀 짧게 하도록 개선하긴 했는데 그래도 김.
---------------------------------------------
읽어줘서 고맙고
내가 만든 다른 것도 구경하구 가~
댓글 41
이왜진
완벽히 이해했음, ai 유우카가 곧 신음소리를 나한테 들려준다는것

무친 보배