CI / ruff (push) Has been cancelled
CI / mypy (push) Has been cancelled
CI / pytest (push) Has been cancelled
CI / package (push) Has been cancelled
CI / Install smoke (${{ matrix.label }}) (linux, ubuntu-latest) (push) Has been cancelled
CI / Install smoke (${{ matrix.label }}) (macos-arm64, macos-14) (push) Has been cancelled
77 lines
5.3 KiB
Markdown
77 lines
5.3 KiB
Markdown
# 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.
|