BQ-Wang0511/TalkLikeYou-Streaming-RealTime-Demo
Real-time browser demo for Talk Like You
TalkLikeYou – 실시간 대화 헤드 데모
기능 설명 – 브라우저 기반의 데모로, 정적 포트레이트(또는 동영상)를 업로드한 오디오, 실시간 마이크 입력, 또는 챗-LLM이 생성한 발화에 맞춰 입모양을 동기화하는 대화 헤드로 변환합니다. 기존 동영상을 다브할 수도 있으며, 원본 자세와 타이밍을 유지하면서 오직 입 움직임만 교체할 수 있습니다. 또한 LLM 응답, TTS 오디오, 아바타 애니메이션을 함께 스트리밍하는 챗 에이전트로도 작동합니다.
주요 기능
- 오디오 모드 – 이미지 아바타를 업로드한 후 오디오 파일이나 실시간 마이크 입력을 제공하면, 실시간으로 입 움직임을 생성합니다.
- 비디오 다브 모드 – 소스 비디오와 새로운 오디오 트랙을 제공합니다. 데모는 원본 머리 자세를 유지하고, 오직 발화와 관련된 입 움직임만 교체합니다.
- 챗 에이전트 – 어떤 OpenAI 호환 챗, STT, TTS 서비스에도 연결할 수 있습니다. 텍스트 또는 음성 입력을 LLM에 전달하고, 응답은 텍스트, 음성 합성, 동기화된 아바타 애니메이션으로 스트리밍됩니다.
- 사전 설정된 발화 스타일 – "습관 ID"(예: 192, 166, 202)를 사용해 참조 동영상 없이 다양한 입 움직임 스타일을 전환할 수 있습니다.
- 실시간 성능 – NVIDIA RTX 3090에서는 30 FPS 이상으로 작동하며 GPU 메모리 사용량은 4GB 미만, 고해상도 얼굴 세부 정보를 제공합니다.
작동 방식 (개요)
- 아바타 등록 – 업로드된 이미지/비디오에서 얼굴을 감지하고 자르며, 얼굴 특징(중립적인 입 움직임 쉘 포함)을 캐시합니다. 이 단계는 아바타당 한 번만 수행됩니다.
- 스트리밍 렌더러 – 오디오를 청크(기본 1초)로 나누어 습관 조건부 입 움직임 생성기에 전달합니다. 흐름 매칭 포즈 브랜치(또는 Ditto-오디오 기반 포즈)가 머리 움직임을 제공합니다. 생성된 프레임은 원본 소스에 합성되어 브라우저로 스트리밍됩니다.
- 챗 통합 – 서버는 사용자 텍스트 또는 녹음된 발음을 설정된 LLM 및 TTS 엔드포인트로 전달합니다. 각 토큰/세그먼트가 도착할 때마다 해당 오디오와 아바타 프레임이 생성되어 표시됩니다.
설치
# conda 환경 생성 (Python 3.10, CUDA 12.1, cuDNN 9)
conda env create -f environment.yaml
conda activate talklikeyou-demo
# 또는 PyTorch를 수동으로 설치한 후:
pip install -r requirements.txt
요구 사항: Linux, NVIDIA GPU, FFmpeg.
데모 실행
cd TalkLikeYou-Streaming-RealTime-Demo
CUDA_VISIBLE_DEVICES=0 python app.py --host 0.0.0.0 --port 5070
# 브라우저에서 http://127.0.0.1:5070 열기
- UI에서 오디오, 비디오 다브, 또는 챗 에이전트를 선택합니다.
- 이미지(오디오/챗) 또는 비디오(비디오 다브)를 업로드하고 아바타를 등록합니다.
- 오디오 모드에서는 오디오 파일을 선택하거나 실시간 마이크를 활성화하고 스트리밍 시작을 클릭합니다.
- 비디오 다브 모드에서는 소스 비디오와 오디오 파일을 업로드하고 스트리밍을 시작합니다.
- 챗 에이전트에서는 환경 변수(또는
.env파일)로 LLM/STT/TTS 엔드포인트를 설정하고 챗 박스를 통해 상호작용합니다.
설정 요약
- 습관 ID (
Lip person ID)는 발화 스타일을 제어합니다. 추천 값은 192, 166, 202입니다. - 가이던스 강도 (
Lip guidance,Pose guidance)는 모델이 선택한 습관을 얼마나 강하게 따를지 조절합니다. - 샘플링 스텝 수 – 실시간 설정은 1 스텝. 스텝 수를 늘리면 지연이 증가합니다.
- 청크 크기 –
Motion chunk (frames)및Audio chunk (seconds)는 지연과 처리량 사이의 트레이드오프를 조절합니다. - Ditto 포즈 – 활성화 시 이미지 아바타에 Ditto의 오디오 기반 포즈 생성기를 사용합니다. 비활성화하면 포즈 습관을 선택할 수 있습니다.
- 챗 에이전트 –
TALKLIKEYOU_LLM_BASE_URL,TALKLIKEYOU_LLM_API_KEY등을 어떤 OpenAI 호환 서비스에도 연결할 수 있습니다. STT 및 TTS에도 동일하게 설정 가능합니다.
모델 체크포인트
- Hugging Face 리포지토리
doubi-killer/TalkLikeYou에서 필요한 체크포인트를 다운로드하고, README에 설명된 대로 로컬checkpoints/디렉터리에 배치하세요 (오디오 인코더,lip_motion.pt,pose_motion.pt, 런타임 자산). - 데모는 이 로컬 경로를 가리키는
runtime_config.pkl을 함께 제공합니다.
라이선스
- 데모 코드: MIT 라이선스.
- 제3자 구성 요소 (Ditto, LivePortrait)는 각각 원래 라이선스를 유지합니다 (자세한 내용은
THIRD_PARTY_NOTICES.md참조).
누가 사용할 수 있나요
- 실시간 입모양 동기화 및 아바타 애니메이션을 연구하는 연구자.
- 인터랙티브 가상 에이전트, 스트리밍 아바타, 비디오 다브 도구를 개발하는 개발자.
- 클라우드 추론 없이 가볍고 로컬에서 실행 가능한 대화 헤드 데모를 원하는 크리에이터.
문의처 – 질문은 wangbaiqin0511@gmail.com으로 보내주세요.
관련
- 프로젝트
- 프로젝트
- 프로젝트