Content
# 🚀 Orion Voice Assistant - Asistente de Voz Inteligente
Un asistente de voz bilingüe (español/inglés) que combina inteligencia artificial avanzada con herramientas especializadas para búsquedas web, navegación, y comunicación por comando de voz.
## ✨ Características Principales
- **🎤 Reconocimiento de voz bilingüe** - Español e inglés con detección automática
- **🧠 IA conversacional** - OpenAI GPT-4o-mini con streaming optimizado
- **🔍 Búsquedas web inteligentes** - Tavily AI para información actualizada
- **📍 Navegación y lugares** - Google Maps para restaurantes, hoteles y direcciones
- **📧 Comunicación automatizada** - Envío de emails y WhatsApp por voz
- **🎙️ Síntesis de voz premium** - ElevenLabs + Edge-TTS como respaldo
- **🔄 Arquitectura modular** - Diseño profesional optimizado para rendimiento
## 🏗️ Arquitectura del Proyecto
### Estructura Modular
```
copilot_mcp/
├── 📁 core/ # Módulos principales del sistema
│ ├── 🎤 audio_manager.py # Captura y reconocimiento de voz
│ ├── 🔊 tts_manager.py # Síntesis de voz (ElevenLabs + Edge-TTS)
│ ├── 🧠 ai_manager.py # Gestión de OpenAI con streaming
│ └── 🔗 mcp_manager.py # Model Context Protocol
├── ⚙️ config/
│ └── settings.py # Configuración centralizada y validación
├── 🛠️ utils/
│ ├── performance.py # Métricas y gestión de recursos
│ └── async_helpers.py # Utilidades asíncronas
├── 🖼️ ui/
│ └── interface.py # Interfaz gráfica con Flet
├── 🚀 main.py # Punto de entrada modular
├── 🎯 voice_copilot_mcp.py # Implementación legacy completa
├── 🌐 mcp_server_voice.py # Servidor MCP con 6 herramientas
├── 📋 requirements.txt # Dependencias del proyecto
└── 🔑 .env.example # Plantilla de configuración
```
### Implementaciones Disponibles
1. **`main.py`** - Versión modular optimizada (recomendada)
2. **`voice_copilot_mcp.py`** - Versión monolítica original completa
## 🔧 Instalación y Configuración
### 1. Preparar el Entorno
```bash
# Navegar al directorio del proyecto
cd copilot_mcp
# Instalar dependencias
pip install -r requirements.txt
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus claves de API (ver sección siguiente)
```
### 2. Ejecutar el Asistente
```bash
# Versión modular (recomendada)
python main.py
# O versión completa original
python voice_copilot_mcp.py
```
## ⚙️ Configuración de APIs
### APIs Obligatorias
```env
# OpenAI - Requerida para IA conversacional
OPENAI_API_KEY=sk-proj-...
# Tavily AI - Para búsquedas web inteligentes
TAVILY_API_KEY=tvly-...
# Google Maps - Para lugares y navegación
GOOGLE_MAPS_API_KEY=AIza...
```
### APIs Opcionales
```env
# ElevenLabs - Voz premium (fallback: Edge-TTS gratuito)
ELEVENLABS_API_KEY=...
ELEVENLABS_VOICE_ID=...
# Email - Comunicación por voz
EMAIL_USER=tu_email@gmail.com
EMAIL_PASS=contraseña_de_aplicacion
# Configuración del servidor MCP
PORT=10001
```
### 📧 Configuración de Email (Opcional)
Para habilitar comandos de email por voz:
1. **Habilita verificación en 2 pasos** en tu cuenta Google
2. **Genera "Contraseña de Aplicación"** específica para Orion
3. **Usa esa contraseña** en `EMAIL_PASS` (NO tu contraseña normal)
## 🎙️ Cómo Usar el Asistente
### Activación
1. **Ejecuta** `python main.py` o `python voice_copilot_mcp.py`
2. **Presiona** "🚀 Activar Orion" en la interfaz
3. **Habla** claramente cuando veas "🎤 Orion te escucha..."
4. **Espera** la confirmación inteligente antes de continuar
### Comandos por Categoría
#### 🧠 Consultas Generales (IA Interna)
- *"¿Qué es la inteligencia artificial?"*
- *"Explícame blockchain en términos simples"*
- *"Cómo programar en Python?"*
- *"Define machine learning"*
#### 🔍 Búsquedas Web (Información Actual)
- *"Busca las últimas noticias de tecnología"*
- *"Qué está pasando con ChatGPT"*
- *"Precios actuales de Bitcoin"*
- *"Investiga sobre la nueva versión de Python"*
#### 📍 Lugares y Navegación
- *"Encuentra restaurantes cerca de Bogotá"*
- *"Mejores hoteles en Madrid"*
- *"Cómo llegar al aeropuerto"*
- *"Gasolineras más cercanas"*
#### 📧 Comunicación Automatizada
- *"¿Tengo emails nuevos?"*
- *"Envía email a cliente@empresa.com: confirmo reunión"*
- *"Revisa mis correos no leídos"*
- *"Manda WhatsApp a Juan: llego tarde"*
## 📊 Características Técnicas
### Optimizaciones de Rendimiento
- **Latencia reducida 30-40%** - Paralelismo real y pools optimizados
- **Uso de memoria -25%** - Módulos cargados bajo demanda
- **Streaming en tiempo real** - Respuestas IA progresivas
- **Cache inteligente** - Reutilización de conexiones y loops
### Monitoreo en Tiempo Real
- ⏱️ Tiempo de captura de audio
- 🧠 Tiempo de procesamiento IA
- 🔊 Tiempo de síntesis de voz
- 🌐 Tiempo de consultas MCP
- 📈 Tasa de éxito/error
## 🛠️ Herramientas MCP del Servidor
El servidor MCP (`mcp_server_voice.py`) proporciona **6 herramientas especializadas**:
### 🌐 Búsqueda y Navegación
1. **`web_search`** - Búsquedas web con Tavily AI
- Información actualizada, noticias, investigación
- Respuesta directa + resultados detallados
2. **`google_maps_search`** - Lugares y navegación con Google Maps
- Restaurantes, hoteles, gasolineras
- Direcciones turn-by-turn, geocodificación
### 📧 Comunicación Automatizada
3. **`revisar_no_leidos`** - Revisa correos no leídos (IMAP)
- Conexión segura a Gmail
- Preview de asunto y remitente
4. **`enviar_correo_individual`** - Envía emails por voz (SMTP)
- Destinatario, asunto y mensaje automáticos
- Validación de formato HTML
### 📱 WhatsApp Integration
5. **`enviar_whatsapp`** - Mensajes WhatsApp directos
- Números colombianos (+57) con validación
- Envío instantáneo con PyWhatKit
6. **`enviar_whatsapp_por_nombre`** - WhatsApp por contacto
- Base de datos CSV de contactos
- Búsqueda exacta sin tolerancia a errores
## 🚀 Arquitectura y Beneficios
### 🔧 Modularización Profesional
- **Separación clara de responsabilidades** - Cada módulo tiene una función específica
- **Configuración centralizada** - Todos los parámetros en `config/settings.py`
- **Interfaces bien definidas** - Comunicación limpia entre componentes
- **Testing independiente** - Cada módulo es testeable por separado
### ⚡ Optimizaciones de Rendimiento
- **ThreadPoolExecutor reutilizable** - Evita creación/destrucción constante
- **Cache de loops asyncio** - Reutilización eficiente de recursos
- **Resource pooling** - Gestión centralizada sin memory leaks
- **Performance monitoring** - Métricas para identificar cuellos de botella
### 📈 Escalabilidad
- **Módulos intercambiables** - Fácil integrar nuevos proveedores de TTS/AI
- **Configuración flexible** - Adaptar comportamiento sin tocar código
- **Gestión inteligente de recursos** - Auto-scaling según necesidades
- **Logging granular** - Debug efectivo y monitoreo detallado
## 🔧 Configuración Avanzada
### 📁 Estructura de Contactos (WhatsApp)
Crea `contacts.csv` en el directorio raíz para WhatsApp por nombre:
```csv
First Name,Phone 1 - Value
Juan,3001234567
Maria,3009876543
Papa,3151234567
```
### 🎛️ Parámetros de Audio (Avanzado)
En `config/settings.py` puedes ajustar:
```python
# Timeouts optimizados para comandos elaborados
LISTEN_TIMEOUT: int = 12 # Tiempo máximo de escucha
PHRASE_TIME_LIMIT: int = 30 # Límite para frases largas
RECOGNITION_TIMEOUT: int = 10 # Timeout de reconocimiento
```
### 🤖 Configuración de IA
```python
# Tokens y timeouts para diferentes tipos de respuesta
STREAMING_MAX_TOKENS: int = 150 # Respuestas elaboradas
FAST_MAX_TOKENS: int = 120 # Respuestas rápidas
TOPIC_TIMEOUT: float = 1.0 # Confirmación ultra-rápida
```
## 🛠️ Desarrollo y Extensión
### Agregar Nuevos Módulos
1. **Gestor especializado** → Crear en `core/`
2. **Configuración** → Agregar a `config/settings.py`
3. **Utilidades** → Crear en `utils/`
4. **Interfaz** → Modificar `ui/interface.py`
5. **Orquestación** → Integrar en `main.py`
### Estructura de Desarrollo
```python
# Ejemplo: Nuevo gestor de traducción
class TranslationManager:
def __init__(self, api_key: str):
self.client = SomeTranslationAPI(api_key)
def translate_text(self, text: str, target_lang: str) -> str:
# Lógica de traducción
pass
def cleanup(self):
# Limpieza de recursos
pass
```
## 🐛 Solución de Problemas
### Errores Comunes
| Problema | Solución |
|----------|----------|
| **Error MCP** | Verificar `mcp_server_voice.py` en directorio |
| **Audio no funciona** | Verificar permisos de micrófono en Windows |
| **API timeouts** | Validar claves API en `.env` |
| **WhatsApp falla** | Verificar formato número (+57XXXXXXXXXX) |
| **Email no envía** | Usar contraseña de aplicación Gmail |
### Performance Issues
- **Revisar métricas** en consola durante ejecución
- **Monitear threads** en TaskManager de Windows
- **Verificar memoria** con `performance_monitor.py`
## 📋 Dependencias Principales
- **`speechrecognition`** - Reconocimiento de voz Google API
- **`openai`** - Cliente OpenAI para GPT-4o-mini
- **`edge-tts`** - Síntesis de voz gratuita Microsoft
- **`flet`** - Interfaz gráfica multiplataforma
- **`tavily-python`** - Búsquedas web inteligentes
- **`googlemaps`** - API Google Maps y Places
- **`pywhatkit`** - Automatización WhatsApp Web
- **`fastmcp`** - Servidor Model Context Protocol
---
**🚀 Orion Voice Assistant**
*Versión*: Modular Profesional 1.0
*Basado en*: Voice Copilot MCP Original
*Arquitectura*: Optimizada para producción
*Licencia*: Proyecto personal de desarrollo
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
Python tool for converting files and office documents to Markdown.
awesome-claude-skills
A curated list of awesome Claude Skills, resources, and tools for...
antigravity-awesome-skills
The Ultimate Collection of 130+ Agentic Skills for Claude...
context-mode
MCP is the protocol for tool access. We're the virtualization layer for context.
claude-context-mode
claude-context-mode plugin reduces MCP context bloat, saving up to 99% of tokens.