CoolFace
Datasetpublic

Kannguyen/avatar-realtime-voice-chat-research

Nghiên cứu: Tích hợp Avatar Head cho Real-time Voice Chat Tài liệu nghiên cứu các dự án tương tự và nguồn avatar thay thế để tích hợp vào ứng dụng real-time voice chat. Mục lục 1. Các dự án tương tự 1.1 Production-Ready 1.2 Frameworks khác 1.3 AI Video Generation (cần GPU server) 2. Nguồn Avatar thay thế 2.1 Tương thích trực tiếp (drop-in) 2.2 VRM Format (cần convert qua Blender) 2.3 Marketplace chung 3. Yêu cầu kỹ thuật cho Avatar 4. Cách tích hợp với… See the full description on the dataset page: https://huggingface.co/datasets/Kannguyen/avatar-realtime-voice-chat-research.

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes5downloads
Dataset Card

Nghiên cứu: Tích hợp Avatar Head cho Real-time Voice Chat

Tài liệu nghiên cứu các dự án tương tự và nguồn avatar thay thế để tích hợp vào ứng dụng real-time voice chat.

Mục lục


1. Các dự án tương tự

1.1 Production-Ready

Dự ánMô tảLink
met4citizen/TalkingHeadJS class thuần, GLB avatar, lip-sync real-time, chỉ cần Three.js. Hỗ trợ ElevenLabs, Azure TTS, OpenAI, Gemini.GitHub
met4citizen/HeadAudioAudioWorklet phân tích audio → viseme real-time. Kết nối trực tiếp với WebRTC audio stream. MFCC + Mahalanobis classifier, ~14KB model.GitHub
met4citizen/HeadTTSTTS trên browser với Kokoro, feed trực tiếp vào TalkingHead.GitHub
EdgeSpeakerToàn bộ AI chạy trên browser: WebLLM + Kokoro TTS + Whisper + TalkingHead. Không cần server.Website
Gabber.devCommercial platform, Three.js + Next.js + RPM avatars. Có tutorial chi tiết.Website

1.2 Frameworks khác

Dự ánMô tảĐặc điểmLink
pixiv/ChatVRMVRM avatars + OpenAI chat (Next.js)Anime-style, VRM formatGitHub
semperai/amicaVRM + multi-LLM + TTS, full appCó UI sẵn, hỗ trợ local LLMGitHub
wass08/r3f-lipsync-tutorialReact Three Fiber + Rhubarb lip-syncReact-based, pre-computed visemeGitHub
yeemachine/kalidokitMediaPipe face tracking → VRM/Live2DVTuber style, webcam-drivenGitHub
pixiv/three-vrmVRM loader cho Three.jsLibrary cơ sở, MITGitHub
DialogLabMulti-avatar group conversations dùng TalkingHead (UVA/Google)Nghiên cứuGitHub

1.3 AI Video Generation (cần GPU server)

Khác paradigm: tạo video 2D từ ảnh tĩnh + audio, cần GPU mạnh, không real-time tương tác.
Dự ánStarsMô tảLink
SadTalker~16kCVPR 2023. Audio → 3DMM → face animation từ 1 ảnh.GitHub
MuseTalk~12kReal-time lip sync trong latent space, 30fps trên RTX 3090.GitHub
LivePortrait~14kPortrait animation hiệu quả, controllable.GitHub
fantasy-talking~1.6kVideo diffusion transformer, chất lượng cao.GitHub
SyncTalk~1.6kNeRF-based synchronized talking head (CVPR).GitHub

2. Nguồn Avatar thay thế

2.1 Tương thích trực tiếp (drop-in)

Các nguồn này có sẵn 52 ARKit blendshapes + 15 Oculus viseme blendshapes, dùng được ngay không cần chỉnh sửa.

NguồnGiáĐặc điểmLink
Ready Player MeFree (NC)Mặc định của TalkingHead. Tạo avatar từ selfie. Đầy đủ ARKit + Oculus visemes.readyplayer.me
AvaturnFree (NC)Photo-realistic từ selfie. Avatar Type-2 (T2) tương thích hoàn toàn với TalkingHead.avaturn.me
MPFB (MakeHuman for Blender)Free, CC0/CC-BYOpen source Blender extension. Parametric control hoàn toàn. Có hướng dẫn tích hợp TalkingHead chi tiết.makehumancommunity.org
Microsoft RocketBoxFree, MIT115+ characters có ARKit blendshapes. Cần re-rig qua Mixamo.GitHub
Avatar SDK / MetaPersonCommercialPhoto-realistic từ photos. Cần Blender scripts rename eye/shapekey (có sẵn trong TalkingHead repo).avatarsdk.com

2.2 VRM Format (cần convert qua Blender)

TalkingHead có hướng dẫn convert VRM → GLB chi tiết.

NguồnGiáĐặc điểmLink
VRoid StudioFreeAnime-style. App tạo avatar, export VRM.vroid.com
VRoid HubFree (kiểm tra license từng model)10,000+ VRM models.hub.vroid.com
BOOTH.pmFree/Paid3000+ free VRM VTuber models. Marketplace Nhật.booth.pm
Open Source AvatarsFree, CC0Curated free VRM registry.opensourceavatars.com
VIVERSE Avatar CreatorFreeWeb-based VRM maker (HTC).avatar.viverse.com
NexyyFree/PaidVRM avatar marketplace.nexyy.com

2.3 Marketplace chung

⚠️ Cảnh báo: Đa số avatar trên các marketplace này KHÔNG có viseme blendshapes. Cần thêm thủ công bằng Faceit Blender add-on (~$35).
NguồnFormatGiáLink
SketchfabGLB/FBX/OBJFree & Paidsketchfab.com
MixamoFBXFree (Adobe account)mixamo.com
TurboSquidGLB/FBXFree & Paidturbosquid.com
CGTraderVariousFree & Paidcgtrader.com

3. Yêu cầu kỹ thuật cho Avatar

Để avatar hoạt động với lip-sync trong TalkingHead, bắt buộc phải có:

3.1 Rig (Xương)

  • —Mixamo-compatible rig (cấu trúc xương chuẩn Mixamo)

3.2 ARKit Blend Shapes (52 shapes)

Biểu cảm khuôn mặt:

eyeBlinkLeft, eyeBlinkRight, eyeLookDownLeft, eyeLookDownRight,
eyeLookInLeft, eyeLookInRight, eyeLookOutLeft, eyeLookOutRight,
eyeLookUpLeft, eyeLookUpRight, eyeSquintLeft, eyeSquintRight,
eyeWideLeft, eyeWideRight, jawForward, jawLeft, jawRight, jawOpen,
mouthClose, mouthFunnel, mouthPucker, mouthLeft, mouthRight,
mouthSmileLeft, mouthSmileRight, mouthFrownLeft, mouthFrownRight,
mouthDimpleLeft, mouthDimpleRight, mouthStretchLeft, mouthStretchRight,
mouthRollLower, mouthRollUpper, mouthShrugLower, mouthShrugUpper,
mouthPressLeft, mouthPressRight, mouthLowerDownLeft, mouthLowerDownRight,
mouthUpperUpLeft, mouthUpperUpRight, browDownLeft, browDownRight,
browInnerUp, browOuterUpLeft, browOuterUpRight, cheekPuff,
cheekSquintLeft, cheekSquintRight, noseSneerLeft, noseSneerRight,
tongueOut

3.3 Oculus Viseme Blend Shapes (15 shapes)

Lip-sync (đồng bộ môi):

viseme_sil    - Im lặng
viseme_PP     - P, B, M
viseme_FF     - F, V
viseme_TH     - Th
viseme_DD     - D, T, N
viseme_kk     - K, G
viseme_CH     - Ch, J, Sh
viseme_SS     - S, Z
viseme_nn     - N, L
viseme_RR     - R
viseme_aa     - A
viseme_E      - E
viseme_I      - I
viseme_O      - O
viseme_U      - U

3.4 Format

  • —GLB (GLTF Binary) — bắt buộc

4. Cách tích hợp với Voice Chat

4.1 Architecture

┌──────────────┐     WebRTC      ┌──────────────┐
│  Voice Chat  │ ──────────────► │ Remote Audio  │
│    Client    │                 │   Stream      │
└──────────────┘                 └──────┬───────┘
                                        │
                                        ▼
                                ┌───────────────┐
                                │  HeadAudio     │
                                │  (AudioWorklet)│
                                │  MFCC → Viseme │
                                └──────┬────────┘
                                       │
                                       ▼
                                ┌───────────────┐
                                │  TalkingHead   │
                                │  (Three.js)    │
                                │  3D Avatar     │
                                └───────────────┘

4.2 Code tích hợp

javascript
import { TalkingHead } from "@met4citizen/talkinghead";
import { HeadAudioNode } from "./modules/headaudio.mjs";

// 1. Khởi tạo avatar
const container = document.getElementById("avatar-container");
const head = new TalkingHead(container, {
  ttsEndpoint: "/api/tts",  // hoặc dùng ElevenLabs, Azure, etc.
  modelFPS: 30,
});

// Load avatar GLB
await head.showAvatar({
  url: "./models/avatar.glb",
  body: "F",            // "F" = female, "M" = male
  avatarMood: "neutral",
  lipsyncLang: "en",    // ngôn ngữ lip-sync
});

// 2. Setup audio worklet cho lip-sync từ audio stream
await head.audioCtx.audioWorklet.addModule("./modules/headworklet.mjs");
const headAudio = new HeadAudioNode(head.audioCtx);
await headAudio.loadModel("./dist/model-en-mixed.bin");

// 3. Kết nối WebRTC remote audio stream
const remoteStream = peerConnection.getRemoteStreams()[0]; // WebRTC stream
const source = head.audioCtx.createMediaStreamSource(remoteStream);
source.connect(headAudio);

// 4. Map viseme values → avatar blendshapes
headAudio.onvalue = (key, value) => {
  head.setMorphTarget(key, value);
  // key = "viseme_aa", value = 0.0 ~ 1.0
};

// 5. Animation loop
function animate(dt) {
  headAudio.update(dt);
  requestAnimationFrame(animate);
}
requestAnimationFrame(animate);

4.3 Lip-sync Libraries

LibraryApproachRuntimePhù hợp
HeadAudio (met4citizen)MFCC audio → visemeBrowser AudioWorklet, real-time✅ WebRTC voice chat
TalkingHead built-inText → phoneme → visemeBrowser, real-time✅ TTS text có sẵn
Rhubarb Lip-sync WASMAudio file → mouth cue JSONBrowser WASM, pre-computed❌ Không real-time
Azure Speech SDKTTS với viseme eventsCloud, real-time✅ Dùng Azure TTS
ElevenLabsTTS với alignment dataCloud, real-time✅ Dùng ElevenLabs TTS

5. So sánh tổng hợp

5.1 Theo paradigm

Tính năngTalkingHead (3D Browser)ChatVRM/Amica (VRM Browser)SadTalker/MuseTalk (AI Video)
Chạy trên browser✅✅❌ (cần GPU server)
Real-time tương tác✅✅❌ (batch processing)
Full-body avatar✅Một phần❌ (chỉ mặt)
Lip-syncRule-based (0 latency)Khác nhauNeural network
Vật lý tóc/vải✅ (DynamicBones)Spring bonesN/A
DependenciesThree.js onlyReact/Next.jsPython/PyTorch/CUDA
Chất lượng hình ảnh3D stylizedAnimePhotorealistic

5.2 Theo nguồn avatar

NguồnGiáTương thíchChất lượngDễ dùng
Ready Player MeFree⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
AvaturnFree⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
MPFB (Blender)Free⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Microsoft RocketBoxFree⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
VRoid StudioFree⭐⭐⭐ (cần convert)⭐⭐⭐⭐⭐⭐⭐⭐
SketchfabFree/Paid⭐⭐ (thiếu viseme)⭐⭐⭐⭐⭐⭐⭐

6. Khuyến nghị

Phương án nhanh nhất

TalkingHead + HeadAudio + avatar từ Ready Player Me - Cài đặt: npm install @met4citizen/talkinghead - Tạo avatar: readyplayer.me (2 phút) - Kết nối WebRTC audio → HeadAudio → lip-sync - Toàn bộ client-side, không cần GPU server

Phương án avatar đẹp nhất

Avaturn (photo-realistic từ selfie) hoặc MPFB (parametric trong Blender)

Phương án anime

VRoid Studio → convert VRM → GLB theo hướng dẫn TalkingHead

Phương án nhiều avatar có sẵn

Microsoft RocketBox — 115+ characters, MIT license, free

Tài liệu tham khảo

<!-- ml-intern-provenance -->

Generated by ML Intern

This dataset repository was generated by ML Intern, an agent for machine learning research and development on the Hugging Face Hub.

  • —Try ML Intern: https://smolagents-ml-intern.hf.space
  • —Source code: https://github.com/huggingface/ml-intern

Usage

python
from datasets import load_dataset

dataset = load_dataset("Kannguyen/avatar-realtime-voice-chat-research")