Instructions to use red-kit/meeting-avatar with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- CosyVoice
How to use red-kit/meeting-avatar with CosyVoice:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Meeting Avatar β a real-person avatar that attends live meetings
A production-oriented, fully pre-trained stack: a photoreal lip-synced avatar of a real person with a cloned voice and an LLM brain, served over WebRTC, ready to bridge into Zoom / Google Meet / Teams / LiveKit.
Built on OpenAvatarChat
(pinned commit 8b7b3b4, Apache-2.0) with a deployment-focused Docker image,
configs, and meeting-bridge documentation.
Live demo Space: red-kit/meeting-avatar-demo (slim image + Storage Bucket for weights β see below).
Pipeline
browser / meeting bridge (WebRTC)
ββ Silero VAD β SenseVoice ASR (local)
ββ LLM brain (any OpenAI-compatible API)
ββ CosyVoice2-0.5B zero-shot voice clone (local, streaming)
ββ MuseTalk real-time lip-sync over the person's footage
ββ avatar video+audio back over WebRTC
| Component | Model | License | Notes |
|---|---|---|---|
| Avatar (face) | MuseTalk 1.5 | MIT | lip-syncs a real video of the person β identity by construction |
| Voice | CosyVoice2-0.5B | Apache-2.0 (code) / model terms | zero-shot cloning from 5β10 s reference audio |
| ASR | SenseVoiceSmall | Apache-2.0 (code) / model terms | multilingual, local |
| VAD | Silero VAD | MIT | |
| Brain | any OpenAI-compatible API | yours | default: gpt-4o-mini @ api.openai.com |
End-to-end speech-to-speech latency: ~0.8β2.2 s on one A10G-class GPU
(upstream reports 2.2 s avg on RTX 4090). One concurrent session per GPU with
the MuseTalk config; use config/meeting_avatar_lite.yaml for lighter hardware.
Verified on GPU
End-to-end boot smoke-tested on Hugging Face Jobs (NVIDIA A10G, CUDA 12.8):
system deps β pinned clone β install β weights β boot β HTTP 200 + CosyVoice2
zero-shot synthesis on GPU (9 min, exit 0; handler load 22.5 s, warmup
synthesis rtf 1.68, both TTS processors live). Reproducible via
scripts/smoke_test.sh. Verification surfaced and fixed four real deployment
bugs, all now baked into the Dockerfile: a typeguard/typing_extensions pin
conflict, a pyarrow/NumPy wheel conflict, a stale upstream voice-asset path,
and an upstream CosyVoice warmup-call signature bug (patched at build time).
β οΈ Runtime hardware: two host shapes get the stack OOM-killed at boot
(exit 137), even though the image is identical: a10g-small (only 15 GB
system RAM) and any multi-GPU host without the single-GPU pin (a 2x-a10g
Space with 92 GB RAM did it β the stack is single-GPU by design;
CUDA_VISIBLE_DEVICES=0 is baked into the Dockerfile). Use single-GPU
hardware with β₯46 GB RAM: l40s or a10g-large, or a 32 GB+ RAM GPU box.
Deploy
Option 1 β any CUDA 12.8 host (simplest, weights baked in)
git clone https://huggingface.co/redkits/meeting-avatar && cd meeting-avatar
echo "DASHSCOPE_API_KEY=sk-your-openai-compatible-key" > .env
docker compose up --build # then open http://localhost:7860
Requires ~24 GB VRAM and β₯46 GB system RAM (A10G-large / L40S / RTX 3090 or 4090 with 32+ GB RAM). Image is ~20 GB β all weights are baked at build time; restarts never re-download.
Option 2 β Hugging Face Space (slim image + Storage Bucket)
β οΈ Do not deploy this repo's fat Dockerfile to a Space as-is. HF builds
Docker Spaces on shared builder infrastructure with a ~4 GB RAM cgroup and
no GPU, regardless of attached hardware β baking ~20 GB of weights into the
image OOM-kills the build (exit 137, OOMKilled, stage BUILD_ERROR).
The demo Space therefore uses a slim variant of this image whose entrypoint
downloads the weights once at first boot into an attached Storage Bucket.
To deploy (or duplicate the demo Space):
- Create a Docker Space and copy the demo Space's files
(
Dockerfile,scripts/space-entrypoint.sh,config/,docs/). - Settings β Secrets β add
DASHSCOPE_API_KEY(your LLM API key β the env var name is an upstream default, any OpenAI-compatible key works). - Settings β Storage buckets β create a private bucket and attach it at
mount path
/models, read-write (weights persist across restarts). - Settings β Hardware β attach
l40s(48 GB VRAM, 62 GB RAM, $1.80/h). β οΈ Nota10g-small(15 GB system RAM β OOM-killed at boot) and not multi-GPU flavors (single-GPU stack; the second GPU sits idle while billing β theCUDA_VISIBLE_DEVICES=0pin is baked in). - First boot downloads
20 GB of weights (10β20 min, placeholder page meanwhile); restarts skip the download.
Option 3 β HF Inference Endpoints
Inference Endpoints are request/response HTTP β they do not fit a long-lived WebRTC session. Use them later for a headless render API if you outgrow the single-GPU Space; the interactive avatar itself wants a persistent container (Options 1β2).
Make it your person (no training required)
Two files, both specified in docs/footage-collection-spec.md:
- Face: 1β3 min static-camera clip of the person β set
AvatarMusetalk.avatar_video_pathinconfig/meeting_avatar.yaml. - Voice: 5β10 s clean recording + exact transcript β set
CosyVoice.ref_audio_path/ref_audio_text.
Until real footage exists, the stack runs on bundled stand-in assets. For the photoreal LoRA upgrade path (Wan-S2V person LoRA), the collection spec includes what to record for that too.
Getting into meetings
See docs/meeting-bridges.md: OBS virtual camera
(zero-code, universal), Recall.ai output-media bot (production, Zoom/Meet/Teams),
or LiveKit native participant (cleanest architecture). Includes the latency
budget and the honest list of what nobody has solved yet.
Compliance β read before first use
Cloning a real person's face and voice requires their written consent, and many jurisdictions and meeting platforms require disclosing AI participants. Details in the collection spec. This repo ships stand-in assets only.
Repo layout
Dockerfile self-host image (weights baked in β NOT for HF Spaces)
docker-compose.yml self-host launcher
config/meeting_avatar.yaml production config (MuseTalk)
config/meeting_avatar_lite.yaml lightweight fallback (LiteAvatar)
docs/footage-collection-spec.md how to collect face + voice assets
docs/meeting-bridges.md Zoom/Meet/Teams/LiveKit integration routes
scripts/smoke_test.sh GPU end-to-end boot verification
For the HF Space deployment (slim Dockerfile + entrypoint + bucket), see red-kit/meeting-avatar-demo.
Upstream credits: OpenAvatarChat, MuseTalk, CosyVoice, Silero VAD, SenseVoice (FunAudioLLM).
- Downloads last month
- -