본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 16. 11:15

생성형 AI를 이용한 버추얼 방송 구축 (설계 편)

요약

Amazon Bedrock과 AWS 서비스를 활용하여 시청자와 상호작용하는 생성형 AI 기반 버추얼 방송 캐릭터 시스템의 설계 방안을 소개합니다. 시청자의 코멘트에 실시간 응답하고, 슈퍼챗 금액에 따라 캐릭터의 말투와 관계가 변하는 메커니즘을 포함합니다.

핵심 포인트

  • Amazon Bedrock(Claude)을 핵심으로 한 AWS 기반 시스템 설계
  • 시청자 코멘트와 감정 라벨을 연동한 실시간 캐릭터 제어
  • 슈퍼챗 누적 금액에 따른 캐릭터 관계치 및 말투 변화 메커니즘
  • 동기/비동기 함수 분리를 통한 레이턴시 최적화 설계

안녕하세요! Martim입니다!

이번에는 생성형 AI를 이용한 버추얼 방송 캐릭터 시스템을 설계했기에, 그 구성과 의도를 공유하고자 합니다!

  • 왜 기존 툴을 사용하지 않고 만드는가
  • 이 시스템의 특징
  • 전체 구성
  • 각 컴포넌트의 설계
  • 캐릭터 설정
  • 향후 확장 구상
  • 마치며

여러분, 이런 경험 없으신가요?

"기존 툴로 시도해 봤지만, 좀 더 이렇게 하고 싶은 기능이 있다", "사용할 수는 있지만, 내 손이 닿지 않는 곳에서 움직이고 있는 느낌이 든다"

저 또한 그렇게 느끼던 사람 중 한 명입니다.

지금은 버추얼 방송을 간편하게 실현할 수 있는 툴이나 프레임워크가 여러 개 존재합니다. 그것 자체는 매우 멋진 일입니다. 다만, 기존 툴로는 실현하기 어려운 「시청자와의 관계성을 기르는 메커니즘」을 만들고 싶었다는 것이 처음부터 설계하기로 한 이유입니다.

게다가 평소 AWS 환경에서 시스템 구축이나 생성형 AI 활용을 하고 있는 입장에서, Amazon Bedrock이나 AWS 각 서비스를 풀 활용하여 설계부터 구현까지 직접 해본다는 점에도 큰 의의를 느끼고 있습니다.

  • 시청자의 코멘트에 실시간으로 응답하는 AI 캐릭터
  • 시청자와의 관계치가 시스템상에서 변화하는 메커니즘
  • 시청자가 이름을 정하고 지식을 가르침으로써 「함께 키워나가는」 체험을 제공
  • Amazon Bedrock (Claude)를 핵심으로 둔 AWS 구성
  • 가능한 한 실제 목소리에 가깝게 만드는 음성 생성 지향
YouTube Live Chat
|
v
...

처리는 **메인 함수 (동기)**와 **데이터 저장 함수 (비동기)**로 나누고 있습니다. 레이턴시(Latency)에 직결되는 메인 처리를 가볍게 하기 위한 설계입니다.

코멘트 취득부터 Bedrock (Claude)로의 전송, 음성 생성 지시까지를 담당합니다.

def handler(event, context):
# 1. YouTube Live Chat API에서 코멘트 취득
comments = get_live_chat_comments()
...

답변 생성과 함께 **감정 라벨 (Emotion Label)**도 동시에 출력하도록 설계했습니다.

{
"reply": "그건 몰랐어요. 가르쳐 주셔서 감사합니다.",
"emotion": "happy"
...

감정 라벨을 후속 캐릭터 제어에 전달함으로써, 표정과 답변을 연동시키는 향후 확장을 고려하고 있습니다.

시청자와의 관계치는 슈퍼챗 (Super Chat) 누적 금액에 따라 티어(Tier)가 바뀌는 메커니즘입니다. 티어가 올라가면 캐릭터의 말투와 거리감이 변화합니다.

티어금액관계치
아쿠아¥200~통상
...

방송 지속 시간은 슈퍼챗 누적 금액과 연동됩니다.

  • 기본 방송 시간: 1시간
  • 슈퍼챗 ¥1,000마다 +10분 연장
  • 평일은 최장 3시간 캡 (Cap)
  • 주말은 캡 없음

YouTube Live의 isChatOwner 플래그를 사용하여, 오너 한정 커맨드를 구현합니다.

커맨드기능
!stop방송 종료
!skip현재 코멘트 스킵
!extend 30방송을 30분 연장
!ng 워드NG 워드 추가
항목내용
성별여성
...

이름은 시청자와 함께 정할 예정입니다. 함께 키워나가는 체험을 첫 순간부터 만들 수 있다고 생각합니다.

전체 플로우 (확장 후의 이미지)
YouTube 코멘트
→ AWS Lambda
...

감정 매핑 (Emotion Mapping) 예시:

EMOTION_MAP = {
"happy": {"EyeSmile": 1.0, "MouthSmile": 0.8},
"surprised": {"EyeOpen": 1.0, "BrowUp": 0.8},
...

시청자가 가르쳐 준 정보 (취미, 유행어, 로컬 네타 등)를 카테고리별로 저장하고, 후속 방송의 컨텍스트 (Context)에 포함함으로써 자연스럽게 참조하게 합니다. 컨텍스트가 비대해지지 않도록 정기적인 요약 처리도 설계에 포함되어 있습니다.

역할서비스
댓글 취득YouTube Data API v3
...

이번에는 설계 단계 (Design Phase)의 마무리입니다. 아직 직접 구현하기 전의 단계이지만, 설계를 언어화함으로써 사고를 정리할 수 있고, "이 부분은 이렇게 만드는 것이 더 좋겠구나"라는 깨달음도 얻을 수 있습니다.

이 시리즈는 앞으로도 계속 이어갈 예정이며, 캐릭터 모델 (Character Model) 제작 · AWS 구축 · 로컬 환경 구축 · 테스트 방송 · 완성까지 기사로 작성할 계획입니다!

"이런 설계가 더 낫지 않을까요?", "이 서비스가 더 적합할지도 모릅니다"와 같은 피드백은 대환영입니다! 함께 만들어가는 느낌으로 봐주시면 기쁘겠습니다.

그럼! 즐거운 AWS 라이프 되시길!

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0