# 개요
한국어 채팅을 읽고 일본어 음성으로 대답하는 유우카 AI를 만들어봤음.
# 시연 영상
# 동기
원래 나는 게임 쪽이 메인이고 Chat GPT 같은 LLM쪽 AI는 별로 관심 없었는데 이번에 Inworld AI라는 게임 NPC용 솔루션이 나왔더라고
세계관이나 신장, 성격, 생일, 학교 같은 구체적인 정보도 학습시킬 수 있더라고. 궁금하기도 하고 성능 테스트 좀 해볼겸 한 번 만들어봤어.
# 작동과정
1. 유튜브 API를 통해 유튜브 스트리밍 채팅을 읽어온다.
2. DeepL(AI 기반 번역)을 통해 영어로 번역한다.
3. Inworld AI를 통해 대답을 영어로 생성한다.
4. 일본어로 번역한다.
5. 유우카 TTS로 음성파일 생성
# Inworld AI
아래는 Inworld AI에서 내가 학습시킨 유우카 NPC AI야.
https://inworld.ai/arcade/3QIYFdM9FHUYEbCw
영어만 인식하고 영어로 대답해.
Inworld AI 사용법은 진짜 간단해서 개발자 아닌 블붕이들도 10분이면 배울 수 있으니 관심있으면 캐릭터 챗봇 한번 만들어봐.
# 개선할 점
금토 2일 동안 밤새서 단기간에 진행한 프로젝트여서 이후 새로 작업한다면 개선할 설계가 꽤 있다고 생각함.
- TTS 처리 한 번에 약 50초가 발생함
→ 추론에 걸리는 시간이 훨씬 짧은 모델로 교체하고 고성능 클라우드나 로컬에서 연산을 진행해야 함
- 3단 버퍼큐로 인해 매우 과거의 질문에 대한 대답을 제공하게 된다.
→ 병목현상이 심한 TTS에만 버퍼큐를 적용하고 추가적으로 TTS 처리 부분만 멀티 프로세싱을 통해 병렬처리를 적용하는게 좋을 것 같다.
- DeepL의 한국어 관련 번역 성능이 생각보다 좋지 않음
→ 파파고가 더 좋을 것 같음 (다만, 파파고는 무료 API 제공량이 매우 적음)
- 고유명사 번역 오류
→ 번역 전처리 단계 추가: 지명, 학교명, 캐릭터 명에 대한 번역 테이블을 만들고 번역 API 호출 전에 고유명사만 미리 번역을 한다.
- 짧게 진행한 프로젝트여서 백엔드 데이터처리에만 집중하고 클라이언트에 감정표현, 애니메이션 등의 기능을 넣지 않았지만, 넣으면 더 좋을 것 같음.
- 관리 및 디버깅 기능 부족
→ 시간상 핵심 로직에만 집중했지만, 연산 상태를 모니터링할 수 있는 대시보드 GUI가 있으면 좋을 것 같다.
# 소스코드
https://github.com/ClearSky-S/Yuuka_AI_Brain
소스 코드를 공개해놨으니 개선하고 싶은 사람있으면 자유롭게 참고바람.
다만, 환경 변수 셋팅, 백엔드 세팅 같은 설명을 자세히 적어서 아무나 쓸 수 있게 만들면 비슷한 AI가 무분별하게 양산될 것 같아서 셋팅에 관한 설명은 따로 적지 않았음.
작동과정도 위에서 다 설명했고 소스코드도 다 공개해놨고 복잡한 코드도 없어서 기본적인 개발실력만 된다면 이해는 매우 쉬울거라고 생각함.
---------------------
친애하는 완장님께
그 저번에 본계로 글 올린게 인방이라고 짤리고 14일 차단을 먹었던데...
그냥 운용 테스트 해볼 겸 딱 한 번 방송 킨거고
만드는데 몇 십 시간 걸리고
이런거 개발 후기 글 올릴데도 디씨 밖에 없는데
또 짤리면 슬퍼요 ㅠㅠ
댓글 21


대단하네
아무래도 방송 켠다고 홍보하는건 진자 인방영역이라서 폭파된거 아닐까 싶음
나도 이제 여친 있다