VocaRig, sesten ARKit uyumlu dudak ve çene blendshape değerleri üreten bir eğitim ve çalışma zamanı projesidir. FaceRig ifade kanallarını yönetirken VocaRig konuşma artikülasyonuna odaklanır: ağız, dudak ve çene hareketleri ayrı bir akışta üretilir.
- Ses girdisinden 21 dudak/çene kanalına ve 52 ARKit blendshape çıktısına dönüşüm
- Streaming kullanım için GRU tabanlı dudak senkron modeli
- FastAPI tabanlı VocaRig Lab arayüzü
- Sentetik veri üretimi ve BEAT tabanlı işlenmiş veri hazırlama
- Eğitim, checkpoint, metrik takibi ve ONNX export akışı
- CPU/CUDA cihaz seçimi ve
fp32/ CUDA içinfp16_ampeğitim desteği
configs/ Eğitim ve export ayarları
data/audio/ Varsayılan ses örnekleri
data/mesh/ ARKit avatar/mesh varlıkları
data/processed/ BEAT gibi işlenmiş veri setleri
data/synthetic/ Üretilmiş sentetik veri setleri
models/trained/ Final model, ONNX ve metrik çıktıları
models/training_checkpoints/ Eğitim sırasında ara checkpoint dosyaları
scripts/ Repo içinden çalıştırılan yardımcı komutlar
src/vocarig/ Ana Python paketi
tests/ Birim ve API testleri
Python sürümü 3.14+ olmalı.
py -3.14 -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -e .VocaRig Lab arayüzünü başlat:
.\.venv\Scripts\python.exe scripts\run_ui.pyTarayıcıdan aç:
http://127.0.0.1:8010
Arayüzden model seçilebilir, ses dosyasıyla inference yapılabilir, gerçek zamanlı deneme çalıştırılabilir, veri seti seçilebilir, eğitim başlatılabilir ve ONNX export alınabilir.
ses -> özellik çıkarımı -> streaming GRU -> ARKit blendshape frame'leri
Offline ses dosyaları da aynı streaming hattı kullanır. Fark sadece verinin gerçek zamandan hızlı beslenmesidir.
Sentetik veri üret:
.\.venv\Scripts\python.exe scripts\generate_synthetic_data.pyBEAT tabanlı yaklaşık 1 saatlik VocaRig veri seti hazırla:
.\.venv\Scripts\python.exe scripts\prepare_beat_vocarig.py --forceVarsayılan çıktılar:
data/synthetic/synthetic_vocarig.npz
data/processed/beat_vocarig_1h.npz
Eğitim arayüzü data/synthetic ve data/processed altındaki .npz dosyalarını otomatik listeler.
Model eğit:
.\.venv\Scripts\python.exe scripts\train_model.pyBelirli veri setiyle eğit:
.\.venv\Scripts\python.exe scripts\train_model.py --data data/processed/beat_vocarig_1h.npzÖnemli eğitim ayarları configs/train_config.yaml içindedir:
- epoch, batch size, learning rate ve validation split
- sequence window/stride
- teacher forcing schedule
- pose, velocity, jerk, silence ve range loss ağırlıkları
- erken durdurma, divergence ve plateau kontrolleri
- checkpoint ve metrik yolları
Final çıktılar zaman damgalı olarak models/trained/ altına yazılır:
vocarig_lipsync_gru_YYYYMMDD-HHMMSS.pt
vocarig_lipsync_gru_YYYYMMDD-HHMMSS.onnx
vocarig_lipsync_gru_YYYYMMDD-HHMMSS_training_metrics.json
Seçili ya da config içindeki checkpoint'i ONNX formatına aktar:
.\.venv\Scripts\python.exe scripts\export_onnx.pyBelirli checkpoint için:
.\.venv\Scripts\python.exe scripts\export_onnx.py --checkpoint models/trained/vocarig_lipsync_gru_YYYYMMDD-HHMMSS.pt.\.venv\Scripts\python.exe -m unittest discover -s testsVocaRig Lab başlıca şu uçları kullanır:
GET /api/statusGET /api/datasetsGET /api/modelsPOST /api/models/selectPOST /api/inferPOST /api/infer/audioPOST /api/infer/realtimePOST /api/train/startPOST /api/exportPOST /api/benchmark
Statik varlıklar:
/mesh/ARKitMesh.glb/audio/voice-sample.wav
Lisans bilgisi için LICENSE dosyasına bakın.