Aplicación Flutter para sincronización labial de avatar 3D con audio en tiempo real.
Esta aplicación permite sincronizar los movimientos labiales de un avatar 3D con audio en tiempo real o pregrabado. Utiliza técnicas avanzadas de análisis fonético, control facial y transiciones suaves para lograr una sincronización labial realista y natural.
- Detección de 25 fonemas mapeados a 15 visemas específicos
- Ajuste dinámico de intensidad según el nivel de audio
- Simulación de análisis espectral para determinar fonemas
- Sistema de blendshapes para control preciso de expresiones faciales
- Parpadeo natural con timing variable y aleatorio
- Micro-expresiones faciales sincronizadas con el habla
- Movimientos coordinados de mandíbula, mejillas y lengua
- Transiciones adaptativas según el contexto fonético
- Sistema de anticipación para movimientos más naturales
- Curvas de aceleración para animaciones orgánicas
- Proyección de tendencias basada en historial de visemas
- Flutter 2.10.0 o superior
- Dart 2.16.0 o superior
- Dispositivo con soporte para renderizado 3D (OpenGL ES 3.0 o superior)
- Espacio de almacenamiento: 100MB mínimo
- Clona este repositorio:
git clone https://github.com/webmasterscity/avatar_lip_sync.git- Navega al directorio del proyecto:
cd avatar_lip_sync- Instala las dependencias:
flutter pub get- Ejecuta la aplicación:
flutter run- Inicia la aplicación
- Selecciona un archivo de audio o utiliza el micrófono
- Observa cómo el avatar mueve los labios sincronizados con el audio
- Navega a la pantalla "Avatar 3D con Lipsync Avanzado"
- Ajusta los parámetros de sincronización:
- Duración de transición (50-200ms)
- Factor de anticipación (0-50%)
- Selecciona un archivo de audio o utiliza el micrófono
- Observa la sincronización labial avanzada con transiciones suaves
Puedes crear tu propio avatar 3D realista visitando Ready Player Me:
- Crea un avatar personalizado (con foto o manualmente)
- Descarga el modelo en formato GLB
- Reemplaza el archivo
assets/avatar.glben el proyecto
Modifica los parámetros en lib/controllers/advanced_lipsync_controller.dart:
baseTransitionDuration: Duración base de transición entre visemasanticipationFactor: Factor de anticipación para movimientos naturales- Mapeo de fonemas a visemas en
PhoneticAnalyzer.phonemeToViseme
La aplicación está estructurada en tres capas principales:
-
Capa de UI: Widgets y pantallas para la interfaz de usuario
lib/screens/: Pantallas principaleslib/widgets/: Componentes reutilizables
-
Capa de Control: Lógica de sincronización labial
lib/controllers/phonetic_lipsync_controller.dart: Análisis fonético básicolib/controllers/advanced_lipsync_controller.dart: Interpolación y control avanzado
-
Capa de Modelo: Datos y estructuras
lib/models/: Definiciones de datos y estructuras
- La detección de fonemas es simulada; una implementación real requeriría análisis de audio avanzado
- No todos los modelos GLB tienen los mismos blendshapes, lo que puede afectar la calidad
- El rendimiento puede variar en dispositivos de gama baja
- La integración JavaScript para control de blendshapes puede tener limitaciones en algunas plataformas
- Implementar análisis de audio real con FFT
- Integrar modelo ML para detección precisa de fonemas
- Optimizar rendimiento con procesamiento en isolates
- Mejorar compatibilidad con diferentes estructuras de modelos 3D
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
- Avatar 3D: Ready Player Me
- Modelo de visemas: Basado en investigaciones de Disney y Carnegie Mellon University
- Implementación Flutter: Desarrollado por Manus Agent