# Vocero — Asistente Digital de Voz ## ¿Qué es Vocero? Vocero es un asistente digital conversacional avanzado que opera completamente a través de voz, implementando una pipeline **Speech-to-Speech (S2S)** en tiempo real. Permite a los usuarios interactuar de forma natural mediante diálogo hablado, sin necesidad de interfaces gráficas ni escritura. El nombre "Vocero" evoca la figura del portavoz: un sistema que escucha, comprende, razona y responde con voz clara y coherente, actuando como intermediario entre el usuario y el conocimiento disponible. --- ## Arquitectura General Vocero se compone de cinco módulos encadenados en una pipeline de baja latencia: 1. **Detección de Actividad Vocal (VAD)** — Identifica cuándo el usuario empieza y termina de hablar, filtrando el silencio y el ruido de fondo. 2. **Reconocimiento de Voz (STT / Speech-to-Text)** — Transcribe el audio del habla a texto utilizando modelos optimizados. 3. **Modelo de Lenguaje (LLM)** — Procesa el texto transcrito, razona sobre la consulta y genera una respuesta textual coherente. Incluye un sistema **RAG server-side** que inyecta contexto de la base de conocimiento en cada turno de forma transparente. 4. **Síntesis de Voz (TTS / Text-to-Speech)** — Convierte la respuesta textual en audio natural con acento y tono apropiados. 5. **Streaming en Tiempo Real** — Todos los módulos se ejecutan en paralelo mediante el protocolo **OpenAI Realtime**, permitiendo respuestas incrementalmente (streaming) en lugar de esperar el final de cada etapa. Todo esto está orquestado por un servidor **FastAPI + Uvicorn** con un pool de unidades de pipeline (`PipelineUnit`) que manejan múltiples sesiones concurrentes. --- ## Características Principales ### 🎙️ Conversación por Voz Completamente Natural - Interacción manos libres ideal para entornos industriales, automoción, atención al cliente o asistencia personal. - Latencia baja gracias al procesamiento por fragmentos (chunks) de audio. ### 📚 Base de Conocimiento (RAG Server-Side) - Vocero cuenta con una **Knowledge Base (KB)** local de documentos en formato Markdown, texto plano y JSONL. - El sistema indexa automáticamente los documentos usando embeddings multilingües (`paraphrase-multilingual-MiniLM-L12-v2`). - Antes de cada respuesta del LLM, el **RAGRetriever** busca los fragmentos (chunks) más relevantes de la KB y los inyecta directamente en el prompt del modelo. - La KB se puede actualizar en caliente vía API HTTP (`/v1/rag/`) sin necesidad de reiniciar el servicio. - La persistencia en disco (archivos NPZ para los embeddings y JSONL para metadatos) evita la reindexación completa en cada arranque. ### 🌍 Multilingüe - Diseñado principalmente para **español** (`es`) e **italiano** (`it`), con soporte para inglés (`en`) gracias a los modelos de embedding multilingües. - El header del prompt RAG se adapta al idioma configurado. - El TTS utiliza modelos específicos con voces y acentos naturales (ej: acento chileno para el español). ### ⚙️ Escalable y Concurrente - El parámetro `--num_pipelines` define cuántas sesiones WebSocket simultáneas se pueden atender. - Gestión de procesos en producción mediante **PM2** con logs, reinicio automático y monitorización. - Compatible con arquitecturas **ARM64/NVIDIA Grace Blackwell (GB10)** y GPU CUDA para máxima eficiencia. ### 🔄 Actualización Dinámica del Conocimiento - La KB se puede recargar en caliente con el endpoint `/v1/rag/reload`. - Los documentos se añaden o eliminan vía API REST sin detener el servicio. - El sistema de **lock reentrante (RLock)** garantiza operaciones thread-safe sobre el índice. --- ## Casos de Uso Típicos - **Asistente de Información Interna**: Empresas que necesitan un portavoz virtual que conozca manuales, normativas y procedimientos internos. - **Atención al Cliente por Voz**: Call centers automatizados, quioscos interactivos, terminales de atención pública. - **Guía Turístico Audiovisual**: Museos, parques, ciudades que ofrecen información hablada contextualizada. - **Asistente Industrial**: Técnicos que necesitan consultar manuales o procedimientos mientras tienen las manos ocupadas. - **Educación y Formación**: Tutores virtuales que explican conceptos y responden preguntas en voz alta. --- ## Ventajas Tecnológicas - **RAG "invisible"**: A diferencia de sistemas que muestran fuentes citadas, Vocero integra el contexto directamente en el razonamiento del LLM, ofreciendo respuestas fluidas. - **Sin dependencia de APIs externas en el edge**: Todo el pipeline (STT, LLM, TTS, RAG) se puede ejecutar on-premise o en hardware local. - **Persistencia inteligente**: La primera indexación es lenta, pero las siguientes son casi instantáneas gracias al cache NPZ. - **API de administración completa**: Endpoints `/v1/rag/*` para listar, añadir, eliminar y recargar documentos con simples peticiones HTTP/curl. --- ## En Resumen **Vocero es mucho más que un chatbot con voz**: es un asistente digital de confianza, que escucha, comprende el contexto de tu organización y responde con voz natural, apoyándose en una base de conocimiento actualizable en tiempo real. Su arquitectura modular y su foco en el procesamiento del habla en tiempo real lo hacen ideal para escenarios donde la conversación humana es el canal principal.