JGallardo17/AVSR-Live
🎙️ AVSR: Reconocimiento del Habla Audio-Visual en Tiempo Real
AVSR (Audio-Visual Speech Recognition) es un sistema avanzado diseñado para solucionar uno de los problemas más comunes en los modelos de Inteligencia Artificial de voz: las alucinaciones acústicas.
Los modelos como Whisper a menudo generan texto ("alucinaciones") cuando hay ruido de fondo o silencios prolongados, asumiendo erróneamente que alguien está hablando. Este proyecto soluciona esto implementando una Fusión Tardía (Late Fusion): combina el audio en tiempo real con el seguimiento visual de los labios a través de la cámara web. Si el modelo detecta "palabras" pero tus labios están cerrados, el texto se descarta automáticamente.
✨ Características Principales
- Fusión Audio-Visual: Combina el análisis acústico (Faster-Whisper) con la visión computacional (MediaPipe) para validar si realmente estás hablando.
- Interfaz Web Moderna: Cliente frontend en el navegador con acceso a cámara/micrófono, diseño glassmorphism y modo oscuro.
- Streaming por WebSockets: Transmisión multiplexada de audio PCM y video JPEG de altísima velocidad sin latencia perceptible.
- Procesamiento Asíncrono: La interfaz visual corre a 30 FPS fluidos mientras la transcripción de IA ocurre en segundo plano de manera no bloqueante.
- 100% Local y Privado: Todo el procesamiento (Visión e Inteligencia Artificial) se ejecuta en tu propia máquina. Ningún dato se envía a la nube.
🛠️ Tecnologías
- Backend: Python, FastAPI, WebSockets, Uvicorn, OpenCV.
- IA de Audio: Faster-Whisper (modelo
smalloptimizado en int8). - IA de Visión: MediaPipe FaceLandmarker (API de Tareas).
- Frontend: Vanilla JavaScript, HTML5, CSS3,
getUserMediaAPI.
🚀 Instalación y Uso
1. Clonar el repositorio
git clone https://github.com/TU_USUARIO/audio_visual_asr.git
cd audio_visual_asr2. Crear un entorno virtual e instalar dependencias
Requiere Python 3.10 o superior.
# Crear entorno
python -m venv venv
# Activar (Windows)
venv\Scripts\Activate.ps1
# Activar (Linux/Mac)
source venv/bin/activate
# Instalar librerías
pip install -r requirements.txt3. Ejecutar el servidor
El sistema iniciará la descarga automática del modelo Whisper (la primera vez) y levantará el servidor local.
python -m app.main4. Abrir la Aplicación
- Abre tu navegador (Chrome, Edge o Firefox).
- Entra a http://localhost:8000.
- Haz clic en "Iniciar" y concede los permisos de cámara y micrófono.
- ¡Habla a la cámara! Podrás ver los puntos de rastreo labial sobre tu rostro y las transcripciones filtradas en tiempo real.
🧠 ¿Cómo funciona internamente?
- Calculo del LOD (Lip Opening Distance): El servidor usa MediaPipe para encontrar tu rostro y calcular la distancia promedio entre 3 pares de puntos específicos de tus labios.
- Umbral de Decisión: Si el LOD supera
0.0150, la boca está abierta o articulando. Si es menor, está en silencio. - Fusión: Cuando Whisper devuelve una frase, se revisa el historial del LOD de esos mismos segundos. Si estuviste en silencio, la frase se descarta como "Alucinación filtrada".
📘 ¿Eres desarrollador? Para entender a fondo la arquitectura, el flujo de datos asíncrono y los detalles de cada archivo del proyecto, consulta la Guía del Desarrollador (GUIA_DESARROLLADOR.md).
Desarrollado como una solución tolerante a fallos para Inteligencia Artificial Acústica.
