기능과 활용
실시간 립싱크를 중심으로 VisionAI의 입력, 출력, 확장 기능과 활용 시나리오를 살펴봅니다.
VisionAI은 문장이나 음성을 받아 인물 영상의 입 모양을 합성하고 재생하는 서버입니다. STT, LLM과 TTS를 조합해 대화형 아바타를 구성할 수 있지만, 말하는 영상만 필요하면 텍스트나 음성 입력부터 시작할 수 있습니다.
핵심 기능
| 기능 | 용도 | 현재 상태 |
|---|---|---|
| 실시간 립싱크 | 음성 특징에 맞춰 입 모양을 생성 | Wav2Lip 실행 확인 |
| 텍스트 구동 | 입력 문장 → TTS → 아바타 영상 | 한국어 Echo 확인 |
| 음성 파일 구동 | 기존 오디오로 아바타 재생 | WAV 업로드 확인 |
| 사용자 아바타 | 영상에서 프레임과 얼굴 좌표 생성 | 새 인물 생성 확인 |
| WebRTC | 브라우저에서 영상과 음성 수신 | 로컬 재생 확인 |
| 녹화 | 세션 영상을 MP4로 저장 | 영상·음성 녹화 확인 |
| 발화 중단 | 현재 발화와 대기 음성 큐 비우기 | API 제공, 별도 시나리오 검증 필요 |
| Chat | LLM 답변을 음성으로 읽기 | 별도 제공자 설정 필요 |
| 음성 인식 | 사용자 음성을 텍스트로 변환 | 추가 모델·의존성 필요, 미검증 |
아바타 모델
현재 로컬 실행 진입점에는 wav2lip, musetalk, ultralight가 등록되어 있습니다. 모델을 바꾸면 해당 모델의 가중치와 호환 아바타 데이터도 준비해야 합니다.
- Wav2Lip: 현재 Mac 테스트에서 사용하는 모델입니다. 입력 음성과 256×256 얼굴 이미지를 이용해 입 모양을 합성합니다.
- MuseTalk: 다른 립싱크 방식입니다. 별도 모델 다운로드와 전처리가 필요하며 현재 Mac에서는 시험하지 않았습니다.
- Ultralight: 모델에 맞는 별도 인물 데이터가 필요합니다. 현재 설치에서 실행을 확인하지 않았습니다.
README에 소개된 모든 과거 모델이 현재 실행 진입점에 그대로 존재하는 것은 아닙니다. 실제 코드의 등록 상태를 확인하고 선택하세요.
출력과 확장
기본 권장 출력은 WebRTC입니다. 브라우저가 서버와 연결해 음성과 영상을 받습니다. RTMP, RTC push, 가상 카메라도 코드에 제공되지만 출력 장치, 중계 서버와 의존성을 별도로 구성해야 합니다.
사용자 행동 영상, 대기 영상과 음성을 구성하는 액션 옵션도 있습니다. 동시 세션 수는 max_session으로 정하지만, 값을 늘리는 것만으로 해당 동시 접속 성능이 보장되지는 않습니다.
실시간의 의미
립싱크 영상이 재생되는 동안 프레임을 계속 생성·전달하는 것과, TTS가 첫 음성 조각부터 즉시 전달되는 것은 구분해야 합니다.
현재 Edge TTS 어댑터는 문장의 음성을 모두 받은 뒤 내부 음성 프레임을 공급합니다. 따라서 긴 문장은 발화 시작까지 더 기다릴 수 있습니다. Azure TTS 어댑터는 음성 합성 콜백으로 조각을 전달하는 코드가 있으며, 별도 서비스 설정과 실행 검증이 필요합니다.
공개 버전의 /humanaudio는 음성 파일 업로드입니다. 외부 TTS의 지속적인 PCM 스트림을 직접 넣는 API로 해석하지 마세요. 외부 PCM 입력이 필요하면 선택 버전의 지원 여부와 별도 입력 어댑터를 확인해야 합니다.
활용 시나리오
| 활용 | 시작 방법 | 추가 연결 |
|---|---|---|
| 안내·전시 화면 | 정해진 문장을 Echo로 재생 | UI 버튼, 안내 문장 목록 |
| 교육·제품 설명 | 텍스트 또는 녹음 음성 재생 | 재생 순서와 녹화 |
| 웹 서비스 캐릭터 | WebRTC 화면에 /human 연결 |
앱의 이벤트와 세션 관리 |
| 대화형 상담 | 음성 → 텍스트 → 답변 → 영상 | STT, LLM, 업무 데이터 |
| 방송 화면 | RTMP 또는 가상 카메라 검토 | 방송 도구와 출력 장치 |
현재 사용자에게 필요한 실시간 말하는 영상 재생은 WebRTC + Wav2Lip + Edge TTS 조합으로 확인했습니다. 대화 기능은 이 흐름에 단계적으로 추가할 수 있습니다.
확인 자료
- 공식 프로젝트 기능과 구조
- 로컬 소스:
app.py,avatars/base_avatar.py,tts/edge.py,tts/azure.py - 실제 실행 기록:
LiveTalking/README-MAC-TEST.md