cyber-xiaoya/cyber-xiaoya-live
赛博小雅直播版 · 组件版数字人(Vidu s2)· 免费开源 AGPL-3.0 · 作者:天工开帧(抖音/B站/YouTube 同名)
사이보그 샤오야 라이브 버전(Cyber Xiaoya Live) — 한 문장으로 설명
이것은 무료 오픈소스 "디지털 휴먼 라이브 방송" 소프트웨어 스위트입니다. 브라우저에서 가상 캐릭터(디지털 휴먼)를 조작할 수 있고, 시청자가 탄막을 보내거나, 당신이 타이핑하거나 노래를 요청하면 디지털 휴먼이 말하고, 동작하고, 입모양을 맞춥니다. 화면은 Douyin, Bilibili 등의 라이브 방송 플랫폼으로 송출할 수 있습니다.
핵심 포인트: 이것은 "다운로드하면 바로 플레이"할 수 있는 완성품이 아닙니다. 제공되는 것은 소프트웨어 전체(스테이지 조작 페이지 + 로컬 브리지 서비스 + 탄막/재생목록/녹화 전체 체인)이지만, 작성자本人的 캐릭터, 음색, 페르소나, 동작 라이브러리, 노래 라이브러리 및 API 키는 포함되지 않습니다 — 이러한 것들은 모두 직접 준비해야 합니다. README에 따르면 따라 하면 약 1시간이면 실행할 수 있습니다.
실제로 무엇을 할 수 있는가
README의 실사 스크린샷과 데모에서:
- 시청자가 라이브 방송에서 탄막을 보냄(예: "선글라스 꺼내서 써") → 탄막이 시스템에 들어감 → 디지털 휴먼이 실제로 "선글라스 꺼내서 쓰는" 동작을 실행
- 디지털 휴먼은 동시에 말합니다. 대사는 LLM(대규모 언어 모델)이 생성하고, 로컬 TTS(텍스트 음성 변환)로 음성을 합성합니다
- 스트리머 측에는 "스테이지 페이지"(로컬 웹 페이지)가 있으며, 왼쪽에는 디지털 휴먼 화면 + 실시간 자막, 오른쪽에는 빠른 명령, 요청곡 재생목록, 참조 이미지 패널, 하단에는 채팅 입력, 동작 직접 전송, 중단, 설정 등이 있습니다
어떻게 실행되는가
README에는 아키텍처 다이어그램이 있으며, 쉽게 설명하면:
브라우저 스테이지 페이지 ──텍스트──▶ 로컬 브리지(FastAPI) ──▶ Vidu 클라우드(디지털 휴먼 화면 렌더링)
▲ │
│ LLM이 대사 생성 → TTS가 음성 합성 → 오디오 스트림
└──── 화면 구독 ◀──────────────────── Vidu가 입모양+동작 렌더링
- Vidu(클라우드 서비스)는 "화면으로 변환"만 담당: 텍스트와 오디오를 주면 디지털 휴먼의 입모양, 표정, 동작을 렌더링하고 송출합니다
- 나머지는 모두 자신의 컴퓨터에서 실행: LLM은 "생각"(대사 생성), TTS는 "발성", 탄막 처리, 요청곡, 녹화 다운로드를 담당
- 스테이지 페이지는 로컬 웹 페이지(
http://127.0.0.1:8795/stage)이며, 공개 네트워크가 필요 없습니다
왜 이런 설계인가: 클라우드 음성 인식/LLM/TTS 패키지를 구매할 필요가 없고, 비용은 Vidu의 렌더링 비용(초당 1크레딧)뿐입니다. 음색, 페르소나, 재생목록은 모두 자신의 손에 있으며, 제3자를 거치지 않습니다.
준비해야 할 것(필수)
| 항목 | 설명 |
|---|---|
| Windows 10/11 + NVIDIA GPU(VRAM ≥8GB) | 렌더링은 클라우드지만 TTS는 로컬에서 실행 |
| Vidu 계정 + API 키 | 디지털 휴먼 렌더링 및 송출, 초당 과금(1크레딧/초), 잔액 <45크레딧이면 시작 불가 |
| LLM API 키(DeepSeek 또는 임의의 OpenAI 호환) | 디지털 휴먼의 "두뇌", 대사 생성 |
| TTS 서비스(OmniVoice) | 로컬에서 실행, WSL2 + CUDA 필요, 그렇지 않으면 소리 없음 |
| ffmpeg | 오디오 디코딩은 모두 이것을 사용 |
선택: 탄막 수집기(설치하지 않으면 수동 타이핑만 가능), 요청곡 라이브러리, 카메라/송출 소프트웨어(OBS 등, 화면을 플랫폼에 송출하려는 경우에만 필요).
준비 단계 개요
- Vidu 계정: 등록, 충전, "캐릭터" 생성(정면 사진 또는 동영상 업로드),
avatar_id획득. 선택적으로 동작 라이브러리 생성하여library_id획득. API 키 생성(형식:vda_xxx) - LLM API 키: 기본은 DeepSeek. 키를 텍스트 파일로 저장하고 경로를 설정에 입력
- 로컬 환경: Python 3.12 + uv로 의존성 설치 + ffmpeg
- TTS(가장 막히기 쉬운 단계): 프로젝트는 OmniVoice만 지원. 권장 방법은 WSL2(Windows의 Linux 하위 시스템)에서 OmniVoice 서비스를 실행. NVIDIA 드라이버 + 최소 8GB 사용 가능한 VRAM 필요(작성자 실측 안정적으로 약 11GB 사용). 음색 소스: 속성 "디자인" 음색(참조 오디오 불필요) 또는 자신의 녹음 클론(3~10초, 단문, 16kHz 모노, 배경음 없음)
- (선택) 탄막 연결: 동봉된 저장소 "사이보그 샤오야·탄막 수집기"(Douyin/Bilibili/YouTube/视频号 지원)를 사용하거나 직접 수집기를 작성하여 고정 형식으로 브리지의
/api/danmaku엔드포인트에 HTTP 요청 전송 - (선택) 요청곡 재생목록: mp3/flac/wav 파일을
audio/디렉토리에 넣기만 하면 됨 config.json설정: Vidu 키, 캐릭터 ID, 동작 라이브러리 ID, LLM 키 경로, 페르소나 프롬프트(반드시 자신의 것으로 변경), TTS 주소, 음색 디렉토리 등 입력- 시작:
python -m src.main실행 또는 원클릭 스크립트 더블 클릭, 스테이지 페이지 열기, "연결 시작" 클릭, 5~15초 기다리면 화면이 나옵니다. 연결하면 과금이 시작되므로 테스트 후 반드시 연결 해제
스테이지 페이지에서 할 수 있는 것
- 중앙: 디지털 휴먼 화면 + 자막 + 동작 명령 효과
- 하단 입력 상자: 타이핑으로 대화(LLM → TTS → 발화)
- 🎬 직접 전송: 동작 명령을 LLM을 거치지 않고 Vidu에 직접 전송
- 🕹 빠른 명령: 클릭 한 번으로 전송. 편집, 드래그 정렬, 이름 변경, 새로 만들기 가능
- 🎵 요청곡 재생목록: 노래 재생(가사 자막 포함)
- 🖼 참조 이미지: 의상 변경 / 상품 들기 / 배경 변경
- ⏺ 자동 녹화: Vidu 서버에 이 세션을 녹화시키고, 재생이 끝나면 자동으로 로컬에 다운로드
- ⚙ 설정: 음색, 오프닝 멘트, 자막 위치, 블랙리스트 단어 등
저장소에 의도적으로 포함되지 않은 것
README에 명시( "다운로드 후 실행 안 됨" 방지):
- ❌ 캐릭터(이미지/동영상/캐릭터 모델) — 직접 Vidu에 업로드해야 함
- ❌ 클론 음색(참조 오디오, 음색 모델)
- ❌ 페르소나 프롬프트 본문, 카피, 재생목록, 동작 라이브러리 내용
- ❌ 어떤 API 키, 쿠키, 계정 자격 증명
- ❌ OmniVoice 모델 가중치(수 GB), Python 의존성 환경(2GB+), 노래 라이브러리 오디오
- ❌ 탄막 수집기(별도 프로젝트)
이것은 숨기는 것이 아닙니다: 캐릭터, 음색, 페르소나는 각 스트리머 자신의 것이며, 또한 이 프로젝트를 2차 판매하는 것을 방지하는 경계입니다. 코드는 완전하지만, 부족한 것은 "당신 자신의 콘텐츠"입니다.
라이선스 및 저작권
- 코드: GNU AGPL-3.0
- 자료 및 브랜드: NOTICE 파일 참조, AGPL 범위 밖
- 제3자 의존성은 requirements.txt 참조
중요 알림
- 영구 무료 오픈소스, 유일한 공식 소스는 GitHub 저장소. 유료 판매, 대리 다운로드, 대리 배포는 모두 미승인
- 공식 QQ 그룹, WeChat 그룹 없음, 유료 강의나 설치 서비스 판매하지 않음. "공식 답변 그룹" "내부 버전" "라이선스 버전" "대리 배포" 등의 명목으로 비용을 청구하는 것은 모두 가짜입니다
- 작성자: 天工开帧, Douyin, Bilibili, YouTube, 블로그 등에서 팔로우 가능
- 프로젝트 문제는 우선 GitHub Issue에 제출(공개적으로 확인 가능)
자주 묻는 질문
- Vidu에 연결 안 됨 / 401: API 키가 올바른지, 잔액이 ≥45크레딧인지 확인
- 소리가 안 나옴: 99%는 TTS가 실행되지 않음. 먼저 curl로 OmniVoice 서비스가 실행 중인지 확인
- WSL2 재시작 후 연결 안 됨: IP가 변경됨. 새 IP를 확인하여 설정 변경
- 화면 끊김 / 지연 큼: TTS와 렌더링이 VRAM을 경쟁. OmniVoice의
--graph-buckets매개변수 줄이기 - 다른 TTS로 변경 가능한가: 코드는 현재 OmniVoice만 구현. 다른 것을 연결하려면 직접 어댑터 레이어를 작성해야 함
한 문장 요약: 이것은 "디지털 휴먼 라이브 방송"의 오픈소스 소프트웨어 스위트로, 코드는 완전하고 무료이지만 캐릭터, 음색, 페르소나, API 키를 직접 준비해야 하며, README를 따라 하면 약 1시간이면 실행할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트