vogo


Namevogo JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/Carlos3451/vogo
SummaryLibrería Python para interfaces multimodales accesibles - Reconocimiento de voz, gestos y comandos
upload_time2025-10-31 03:25:39
maintainerNone
docs_urlNone
authorCarlos3451
requires_python>=3.8
licenseMIT
keywords accessibility voice recognition gesture recognition multimodal nlp ocr speech recognition text processing grammar parsing assistive technology accesibilidad reconocimiento de voz comandos por voz
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ==================== README.md ====================
"""
# 🎙️ vogo

**Librería Python para interfaces multimodales accesibles**

Procesa y analiza texto, voz, gestos e imágenes con reconocimiento de patrones gramaticales. 
Ideal para crear aplicaciones accesibles e inclusivas.

[![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Status](https://img.shields.io/badge/status-alpha-orange.svg)]()

---

## ✨ Características

- 🎤 **Reconocimiento de voz** - Transcribe audio a texto con Google Speech Recognition
- 👁️ **OCR de imágenes** - Extrae texto de imágenes usando Tesseract
- ✋ **Procesamiento de gestos** - Analiza secuencias de gestos como listas
- 📝 **Análisis de texto** - Tokenización y matching con NLTK
- 🔍 **Gramáticas personalizables** - Soporta regex y gramáticas libres de contexto (CFG)
- 🌐 **Multimodal** - Procesa diferentes tipos de entrada con una API única

---

## 📦 Instalación

### Requisitos Previos

#### 1. Python 3.8 o superior

```bash
python --version  # Debe ser >= 3.8
```

#### 2. Tesseract OCR (para procesamiento de imágenes)

**Windows:**
1. Descargar el instalador desde [GitHub](https://github.com/UB-Mannheim/tesseract/wiki)
2. Instalar y agregar al PATH

**Ubuntu/Debian:**
```bash
sudo apt-get update
sudo apt-get install tesseract-ocr
```

**macOS:**
```bash
brew install tesseract
```

**Verificar instalación:**
```bash
tesseract --version
```

### Instalación de vogo

#### Opción 1: Modo desarrollo (recomendado para contribuir)

```bash
# Clonar el repositorio
git clone https://github.com/Carlos3451/vogo.git
cd vogo

# Crear entorno virtual
python -m venv env
source env/bin/activate  # Linux/Mac
env\\Scripts\\activate    # Windows

# Instalar en modo editable
pip install -e .
```

#### Opción 2: Desde PyPI (cuando esté publicado)

```bash
pip install vogo
```

#### Opción 3: Instalación con extras

```bash
# Con herramientas de desarrollo
pip install -e ".[dev]"

# Con documentación
pip install -e ".[docs]"

# Con todo
pip install -e ".[all]"
```

### Verificar Instalación

```bash
# Descarga el script de verificación
python -c "from vogo import Grammar, Processor; print('✅ vogo instalado correctamente')"
```

---

## 🚀 Uso Rápido

### Ejemplo Básico - Procesamiento de Texto

```python
from vogo import Grammar, Processor

# Define reglas gramaticales con regex
grammar = Grammar({
    'email': r'\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b',
    'phone': r'\\b\\d{3}[-.]?\\d{3}[-.]?\\d{4}\\b',
    'saludo': r'\\b(hola|hello|hi)\\b'
})

# Crea el procesador
processor = Processor(grammar)

# Procesa texto
texto = "Hola, mi email es contacto@ejemplo.com y mi teléfono es 555-123-4567"
resultado = processor.process_input(texto, type='text')

# Resultados
print(f"Texto: {resultado['text']}")
print(f"Tokens: {resultado['tokens']}")
print(f"Coincidencias: {resultado['matches']}")
# Output:
# Coincidencias: [
#   {'type': 'saludo', 'matches': ['Hola']},
#   {'type': 'email', 'matches': ['contacto@ejemplo.com']},
#   {'type': 'phone', 'matches': ['555-123-4567']}
# ]
```

### Procesamiento de Voz

```python
from vogo import Grammar, Processor

grammar = Grammar({'comando': r'\\b(abrir|cerrar|iniciar)\\b'})
processor = Processor(grammar)

# Lee archivo de audio
with open('audio.wav', 'rb') as f:
    audio_bytes = f.read()

# Procesa audio
resultado = processor.process_input(audio_bytes, type='voice')
print(f"Transcripción: {resultado['text']}")
print(f"Comandos detectados: {resultado['matches']}")
```

### Procesamiento de Imágenes (OCR)

```python
from vogo import Grammar, Processor

grammar = Grammar({'fecha': r'\\d{2}/\\d{2}/\\d{4}'})
processor = Processor(grammar)

# Lee imagen
with open('documento.jpg', 'rb') as f:
    imagen_bytes = f.read()

# Extrae y analiza texto
resultado = processor.process_input(imagen_bytes, type='image')
print(f"Texto extraído: {resultado['text']}")
print(f"Fechas encontradas: {resultado['matches']}")
```

### Procesamiento de Gestos

```python
from vogo import Grammar, Processor

grammar = Grammar({'direccion': r'\\b(arriba|abajo|izquierda|derecha)\\b'})
processor = Processor(grammar)

# Lista de gestos capturados
gestos = ['arriba', 'arriba', 'derecha', 'abajo']

resultado = processor.process_input(gestos, type='gestures')
print(f"Secuencia: {resultado['tokens']}")
print(f"Direcciones: {resultado['matches']}")
```

---

## 📚 Documentación Completa

### Clase `Grammar`

Define las reglas gramaticales para el análisis.

```python
from vogo import Grammar

# Gramática con regex
grammar_regex = Grammar(
    rules={
        'numero': r'\\d+',
        'palabra': r'\\w+'
    },
    type='regex'  # Por defecto
)

# Gramática libre de contexto (CFG)
grammar_cfg = Grammar(
    rules={
        'expr': 'NUMBER "+" NUMBER',
        'NUMBER': '/\\d+/'
    },
    type='cfg'
)
```

**Parámetros:**
- `rules` (Dict[str, str]): Diccionario con nombre_regla → patrón
- `type` (str): 'regex' o 'cfg'

### Clase `Processor`

Procesador principal para todas las modalidades.

```python
from vogo import Processor

processor = Processor(grammar)

# Procesa diferentes tipos de entrada
resultado = processor.process_input(
    input=data,           # str, List[str], o bytes
    type='text'           # 'text', 'voice', 'gestures', 'image', 'video'
)
```

**Tipos soportados:**
- `text`: Texto plano (str)
- `voice`: Audio en bytes (requiere formato compatible con SpeechRecognition)
- `gestures`: Lista de strings
- `image`: Imagen en bytes (JPG, PNG, etc.)
- `video`: Video en bytes (extrae frames y aplica OCR)

**Resultado:**
```python
{
    'text': str,              # Texto procesado
    'tokens': List[str],      # Lista de tokens/palabras
    'matches': List[Dict],    # Coincidencias gramaticales
    'stats': {
        'token_count': int,   # Total de tokens
        'match_count': int,   # Total de coincidencias
        'unique_tokens': int  # Tokens únicos
    }
}
```

---

## 🎯 Casos de Uso

### 1. Asistente de Voz Accesible

```python
# Comandos para personas con movilidad reducida
grammar = Grammar({
    'accion': r'\\b(encender|apagar|abrir|cerrar)\\b',
    'dispositivo': r'\\b(luz|puerta|ventana|televisor)\\b'
})

processor = Processor(grammar)

# Usuario dice: "encender luz"
audio = grabar_audio()
resultado = processor.process_input(audio, type='voice')

if resultado['matches']:
    ejecutar_comando(resultado['matches'])
```

### 2. Lector de Documentos para Ciegos

```python
# Extrae información de documentos impresos
grammar = Grammar({
    'monto': r'\\$\\d+\\.\\d{2}',
    'fecha': r'\\d{2}/\\d{2}/\\d{4}'
})

processor = Processor(grammar)

# Foto de una factura
with open('factura.jpg', 'rb') as f:
    resultado = processor.process_input(f.read(), type='image')

# Convierte a voz con text-to-speech
hablar(f"Total: {resultado['matches'][0]['matches'][0]}")
```

### 3. Control por Gestos

```python
# Navegación para personas con discapacidad auditiva
grammar = Grammar({'navegacion': r'\\b(menu|atras|siguiente|inicio)\\b'})
processor = Processor(grammar)

gestos_detectados = capturar_gestos_camara()
resultado = processor.process_input(gestos_detectados, type='gestures')

navegar(resultado['matches'])
```

---

## 🧪 Testing

```bash
# Instalar dependencias de desarrollo
pip install -e ".[dev]"

# Ejecutar tests
pytest tests/

# Con cobertura
pytest --cov=vogo tests/

# Tests específicos
pytest tests/test_grammar.py
```

---

## 🛠️ Desarrollo

### Estructura del Proyecto

```
vogo/
├── src/
│   └── vogo/
│       ├── __init__.py
│       ├── grammar.py
│       ├── processor.py
│       ├── base_processor.py
│       ├── text_processor.py
│       ├── voice_processor.py
│       ├── image_processor.py
│       └── utils.py
├── tests/
│   ├── test_vogo_completo.py
├── docs/
├── probar_vogo_rapido.py
├── setup.py
├── README.md
└── LICENSE
```

## 📋 Dependencias

### Obligatorias
- `nltk>=3.8.1` - Tokenización y procesamiento de lenguaje natural
- `lark>=1.1.7` - Parsing de gramáticas CFG
- `Pillow>=10.0.0` - Procesamiento de imágenes
- `pytesseract>=0.3.10` - OCR (extracción de texto de imágenes)
- `SpeechRecognition>=3.10.0` - Reconocimiento de voz

### Sistema
- `Tesseract OCR` - Motor de OCR (instalación externa requerida)

---

## 🤝 Accesibilidad

vogo está diseñado pensando en la inclusión:

- ♿ **Interfaces multimodales** - Múltiples formas de interacción
- 🎤 **Comandos por voz** - Para personas con movilidad reducida
- 👁️ **OCR** - Lee texto impreso para personas con discapacidad visual
- ✋ **Gestos** - Alternativa para personas con discapacidad auditiva
- 📖 **Documentación clara** - Ejemplos paso a paso

---

## 📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para más detalles.

---

## 👤 Autor

**Carlos3451**
- Email: qarlos123@outlook.com
- GitHub: [@Carlos3451](https://github.com/Carlos3451)

---

## ⭐ ¿Te gusta vogo?

Si este proyecto te resulta útil, considera darle una estrella ⭐ en GitHub.

¡Gracias por usar vogo! 🎉
"""

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Carlos3451/vogo",
    "name": "vogo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "accessibility, voice recognition, gesture recognition, multimodal, nlp, ocr, speech recognition, text processing, grammar parsing, assistive technology, accesibilidad, reconocimiento de voz, comandos por voz",
    "author": "Carlos3451",
    "author_email": "qarlos123@outlook.com",
    "download_url": "https://files.pythonhosted.org/packages/33/06/821b4a285f6303e33cfff80181a17896982410a1903c7fc4c4ec9edf5d64/vogo-0.1.0.tar.gz",
    "platform": "any",
    "description": "# ==================== README.md ====================\r\n\"\"\"\r\n# \ud83c\udf99\ufe0f vogo\r\n\r\n**Librer\u00eda Python para interfaces multimodales accesibles**\r\n\r\nProcesa y analiza texto, voz, gestos e im\u00e1genes con reconocimiento de patrones gramaticales. \r\nIdeal para crear aplicaciones accesibles e inclusivas.\r\n\r\n[![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Status](https://img.shields.io/badge/status-alpha-orange.svg)]()\r\n\r\n---\r\n\r\n## \u2728 Caracter\u00edsticas\r\n\r\n- \ud83c\udfa4 **Reconocimiento de voz** - Transcribe audio a texto con Google Speech Recognition\r\n- \ud83d\udc41\ufe0f **OCR de im\u00e1genes** - Extrae texto de im\u00e1genes usando Tesseract\r\n- \u270b **Procesamiento de gestos** - Analiza secuencias de gestos como listas\r\n- \ud83d\udcdd **An\u00e1lisis de texto** - Tokenizaci\u00f3n y matching con NLTK\r\n- \ud83d\udd0d **Gram\u00e1ticas personalizables** - Soporta regex y gram\u00e1ticas libres de contexto (CFG)\r\n- \ud83c\udf10 **Multimodal** - Procesa diferentes tipos de entrada con una API \u00fanica\r\n\r\n---\r\n\r\n## \ud83d\udce6 Instalaci\u00f3n\r\n\r\n### Requisitos Previos\r\n\r\n#### 1. Python 3.8 o superior\r\n\r\n```bash\r\npython --version  # Debe ser >= 3.8\r\n```\r\n\r\n#### 2. Tesseract OCR (para procesamiento de im\u00e1genes)\r\n\r\n**Windows:**\r\n1. Descargar el instalador desde [GitHub](https://github.com/UB-Mannheim/tesseract/wiki)\r\n2. Instalar y agregar al PATH\r\n\r\n**Ubuntu/Debian:**\r\n```bash\r\nsudo apt-get update\r\nsudo apt-get install tesseract-ocr\r\n```\r\n\r\n**macOS:**\r\n```bash\r\nbrew install tesseract\r\n```\r\n\r\n**Verificar instalaci\u00f3n:**\r\n```bash\r\ntesseract --version\r\n```\r\n\r\n### Instalaci\u00f3n de vogo\r\n\r\n#### Opci\u00f3n 1: Modo desarrollo (recomendado para contribuir)\r\n\r\n```bash\r\n# Clonar el repositorio\r\ngit clone https://github.com/Carlos3451/vogo.git\r\ncd vogo\r\n\r\n# Crear entorno virtual\r\npython -m venv env\r\nsource env/bin/activate  # Linux/Mac\r\nenv\\\\Scripts\\\\activate    # Windows\r\n\r\n# Instalar en modo editable\r\npip install -e .\r\n```\r\n\r\n#### Opci\u00f3n 2: Desde PyPI (cuando est\u00e9 publicado)\r\n\r\n```bash\r\npip install vogo\r\n```\r\n\r\n#### Opci\u00f3n 3: Instalaci\u00f3n con extras\r\n\r\n```bash\r\n# Con herramientas de desarrollo\r\npip install -e \".[dev]\"\r\n\r\n# Con documentaci\u00f3n\r\npip install -e \".[docs]\"\r\n\r\n# Con todo\r\npip install -e \".[all]\"\r\n```\r\n\r\n### Verificar Instalaci\u00f3n\r\n\r\n```bash\r\n# Descarga el script de verificaci\u00f3n\r\npython -c \"from vogo import Grammar, Processor; print('\u2705 vogo instalado correctamente')\"\r\n```\r\n\r\n---\r\n\r\n## \ud83d\ude80 Uso R\u00e1pido\r\n\r\n### Ejemplo B\u00e1sico - Procesamiento de Texto\r\n\r\n```python\r\nfrom vogo import Grammar, Processor\r\n\r\n# Define reglas gramaticales con regex\r\ngrammar = Grammar({\r\n    'email': r'\\\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Z|a-z]{2,}\\\\b',\r\n    'phone': r'\\\\b\\\\d{3}[-.]?\\\\d{3}[-.]?\\\\d{4}\\\\b',\r\n    'saludo': r'\\\\b(hola|hello|hi)\\\\b'\r\n})\r\n\r\n# Crea el procesador\r\nprocessor = Processor(grammar)\r\n\r\n# Procesa texto\r\ntexto = \"Hola, mi email es contacto@ejemplo.com y mi tel\u00e9fono es 555-123-4567\"\r\nresultado = processor.process_input(texto, type='text')\r\n\r\n# Resultados\r\nprint(f\"Texto: {resultado['text']}\")\r\nprint(f\"Tokens: {resultado['tokens']}\")\r\nprint(f\"Coincidencias: {resultado['matches']}\")\r\n# Output:\r\n# Coincidencias: [\r\n#   {'type': 'saludo', 'matches': ['Hola']},\r\n#   {'type': 'email', 'matches': ['contacto@ejemplo.com']},\r\n#   {'type': 'phone', 'matches': ['555-123-4567']}\r\n# ]\r\n```\r\n\r\n### Procesamiento de Voz\r\n\r\n```python\r\nfrom vogo import Grammar, Processor\r\n\r\ngrammar = Grammar({'comando': r'\\\\b(abrir|cerrar|iniciar)\\\\b'})\r\nprocessor = Processor(grammar)\r\n\r\n# Lee archivo de audio\r\nwith open('audio.wav', 'rb') as f:\r\n    audio_bytes = f.read()\r\n\r\n# Procesa audio\r\nresultado = processor.process_input(audio_bytes, type='voice')\r\nprint(f\"Transcripci\u00f3n: {resultado['text']}\")\r\nprint(f\"Comandos detectados: {resultado['matches']}\")\r\n```\r\n\r\n### Procesamiento de Im\u00e1genes (OCR)\r\n\r\n```python\r\nfrom vogo import Grammar, Processor\r\n\r\ngrammar = Grammar({'fecha': r'\\\\d{2}/\\\\d{2}/\\\\d{4}'})\r\nprocessor = Processor(grammar)\r\n\r\n# Lee imagen\r\nwith open('documento.jpg', 'rb') as f:\r\n    imagen_bytes = f.read()\r\n\r\n# Extrae y analiza texto\r\nresultado = processor.process_input(imagen_bytes, type='image')\r\nprint(f\"Texto extra\u00eddo: {resultado['text']}\")\r\nprint(f\"Fechas encontradas: {resultado['matches']}\")\r\n```\r\n\r\n### Procesamiento de Gestos\r\n\r\n```python\r\nfrom vogo import Grammar, Processor\r\n\r\ngrammar = Grammar({'direccion': r'\\\\b(arriba|abajo|izquierda|derecha)\\\\b'})\r\nprocessor = Processor(grammar)\r\n\r\n# Lista de gestos capturados\r\ngestos = ['arriba', 'arriba', 'derecha', 'abajo']\r\n\r\nresultado = processor.process_input(gestos, type='gestures')\r\nprint(f\"Secuencia: {resultado['tokens']}\")\r\nprint(f\"Direcciones: {resultado['matches']}\")\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udcda Documentaci\u00f3n Completa\r\n\r\n### Clase `Grammar`\r\n\r\nDefine las reglas gramaticales para el an\u00e1lisis.\r\n\r\n```python\r\nfrom vogo import Grammar\r\n\r\n# Gram\u00e1tica con regex\r\ngrammar_regex = Grammar(\r\n    rules={\r\n        'numero': r'\\\\d+',\r\n        'palabra': r'\\\\w+'\r\n    },\r\n    type='regex'  # Por defecto\r\n)\r\n\r\n# Gram\u00e1tica libre de contexto (CFG)\r\ngrammar_cfg = Grammar(\r\n    rules={\r\n        'expr': 'NUMBER \"+\" NUMBER',\r\n        'NUMBER': '/\\\\d+/'\r\n    },\r\n    type='cfg'\r\n)\r\n```\r\n\r\n**Par\u00e1metros:**\r\n- `rules` (Dict[str, str]): Diccionario con nombre_regla \u2192 patr\u00f3n\r\n- `type` (str): 'regex' o 'cfg'\r\n\r\n### Clase `Processor`\r\n\r\nProcesador principal para todas las modalidades.\r\n\r\n```python\r\nfrom vogo import Processor\r\n\r\nprocessor = Processor(grammar)\r\n\r\n# Procesa diferentes tipos de entrada\r\nresultado = processor.process_input(\r\n    input=data,           # str, List[str], o bytes\r\n    type='text'           # 'text', 'voice', 'gestures', 'image', 'video'\r\n)\r\n```\r\n\r\n**Tipos soportados:**\r\n- `text`: Texto plano (str)\r\n- `voice`: Audio en bytes (requiere formato compatible con SpeechRecognition)\r\n- `gestures`: Lista de strings\r\n- `image`: Imagen en bytes (JPG, PNG, etc.)\r\n- `video`: Video en bytes (extrae frames y aplica OCR)\r\n\r\n**Resultado:**\r\n```python\r\n{\r\n    'text': str,              # Texto procesado\r\n    'tokens': List[str],      # Lista de tokens/palabras\r\n    'matches': List[Dict],    # Coincidencias gramaticales\r\n    'stats': {\r\n        'token_count': int,   # Total de tokens\r\n        'match_count': int,   # Total de coincidencias\r\n        'unique_tokens': int  # Tokens \u00fanicos\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## \ud83c\udfaf Casos de Uso\r\n\r\n### 1. Asistente de Voz Accesible\r\n\r\n```python\r\n# Comandos para personas con movilidad reducida\r\ngrammar = Grammar({\r\n    'accion': r'\\\\b(encender|apagar|abrir|cerrar)\\\\b',\r\n    'dispositivo': r'\\\\b(luz|puerta|ventana|televisor)\\\\b'\r\n})\r\n\r\nprocessor = Processor(grammar)\r\n\r\n# Usuario dice: \"encender luz\"\r\naudio = grabar_audio()\r\nresultado = processor.process_input(audio, type='voice')\r\n\r\nif resultado['matches']:\r\n    ejecutar_comando(resultado['matches'])\r\n```\r\n\r\n### 2. Lector de Documentos para Ciegos\r\n\r\n```python\r\n# Extrae informaci\u00f3n de documentos impresos\r\ngrammar = Grammar({\r\n    'monto': r'\\\\$\\\\d+\\\\.\\\\d{2}',\r\n    'fecha': r'\\\\d{2}/\\\\d{2}/\\\\d{4}'\r\n})\r\n\r\nprocessor = Processor(grammar)\r\n\r\n# Foto de una factura\r\nwith open('factura.jpg', 'rb') as f:\r\n    resultado = processor.process_input(f.read(), type='image')\r\n\r\n# Convierte a voz con text-to-speech\r\nhablar(f\"Total: {resultado['matches'][0]['matches'][0]}\")\r\n```\r\n\r\n### 3. Control por Gestos\r\n\r\n```python\r\n# Navegaci\u00f3n para personas con discapacidad auditiva\r\ngrammar = Grammar({'navegacion': r'\\\\b(menu|atras|siguiente|inicio)\\\\b'})\r\nprocessor = Processor(grammar)\r\n\r\ngestos_detectados = capturar_gestos_camara()\r\nresultado = processor.process_input(gestos_detectados, type='gestures')\r\n\r\nnavegar(resultado['matches'])\r\n```\r\n\r\n---\r\n\r\n## \ud83e\uddea Testing\r\n\r\n```bash\r\n# Instalar dependencias de desarrollo\r\npip install -e \".[dev]\"\r\n\r\n# Ejecutar tests\r\npytest tests/\r\n\r\n# Con cobertura\r\npytest --cov=vogo tests/\r\n\r\n# Tests espec\u00edficos\r\npytest tests/test_grammar.py\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udee0\ufe0f Desarrollo\r\n\r\n### Estructura del Proyecto\r\n\r\n```\r\nvogo/\r\n\u251c\u2500\u2500 src/\r\n\u2502   \u2514\u2500\u2500 vogo/\r\n\u2502       \u251c\u2500\u2500 __init__.py\r\n\u2502       \u251c\u2500\u2500 grammar.py\r\n\u2502       \u251c\u2500\u2500 processor.py\r\n\u2502       \u251c\u2500\u2500 base_processor.py\r\n\u2502       \u251c\u2500\u2500 text_processor.py\r\n\u2502       \u251c\u2500\u2500 voice_processor.py\r\n\u2502       \u251c\u2500\u2500 image_processor.py\r\n\u2502       \u2514\u2500\u2500 utils.py\r\n\u251c\u2500\u2500 tests/\r\n\u2502   \u251c\u2500\u2500 test_vogo_completo.py\r\n\u251c\u2500\u2500 docs/\r\n\u251c\u2500\u2500 probar_vogo_rapido.py\r\n\u251c\u2500\u2500 setup.py\r\n\u251c\u2500\u2500 README.md\r\n\u2514\u2500\u2500 LICENSE\r\n```\r\n\r\n## \ud83d\udccb Dependencias\r\n\r\n### Obligatorias\r\n- `nltk>=3.8.1` - Tokenizaci\u00f3n y procesamiento de lenguaje natural\r\n- `lark>=1.1.7` - Parsing de gram\u00e1ticas CFG\r\n- `Pillow>=10.0.0` - Procesamiento de im\u00e1genes\r\n- `pytesseract>=0.3.10` - OCR (extracci\u00f3n de texto de im\u00e1genes)\r\n- `SpeechRecognition>=3.10.0` - Reconocimiento de voz\r\n\r\n### Sistema\r\n- `Tesseract OCR` - Motor de OCR (instalaci\u00f3n externa requerida)\r\n\r\n---\r\n\r\n## \ud83e\udd1d Accesibilidad\r\n\r\nvogo est\u00e1 dise\u00f1ado pensando en la inclusi\u00f3n:\r\n\r\n- \u267f **Interfaces multimodales** - M\u00faltiples formas de interacci\u00f3n\r\n- \ud83c\udfa4 **Comandos por voz** - Para personas con movilidad reducida\r\n- \ud83d\udc41\ufe0f **OCR** - Lee texto impreso para personas con discapacidad visual\r\n- \u270b **Gestos** - Alternativa para personas con discapacidad auditiva\r\n- \ud83d\udcd6 **Documentaci\u00f3n clara** - Ejemplos paso a paso\r\n\r\n---\r\n\r\n## \ud83d\udcc4 Licencia\r\n\r\nEste proyecto est\u00e1 bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para m\u00e1s detalles.\r\n\r\n---\r\n\r\n## \ud83d\udc64 Autor\r\n\r\n**Carlos3451**\r\n- Email: qarlos123@outlook.com\r\n- GitHub: [@Carlos3451](https://github.com/Carlos3451)\r\n\r\n---\r\n\r\n## \u2b50 \u00bfTe gusta vogo?\r\n\r\nSi este proyecto te resulta \u00fatil, considera darle una estrella \u2b50 en GitHub.\r\n\r\n\u00a1Gracias por usar vogo! \ud83c\udf89\r\n\"\"\"\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Librer\u00eda Python para interfaces multimodales accesibles - Reconocimiento de voz, gestos y comandos",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/Carlos3451/vogo#readme",
        "Homepage": "https://github.com/Carlos3451/vogo",
        "Source": "https://github.com/Carlos3451/vogo"
    },
    "split_keywords": [
        "accessibility",
        " voice recognition",
        " gesture recognition",
        " multimodal",
        " nlp",
        " ocr",
        " speech recognition",
        " text processing",
        " grammar parsing",
        " assistive technology",
        " accesibilidad",
        " reconocimiento de voz",
        " comandos por voz"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "47501c0320a67b9d3363d15ab32f2e28c654196654e1f535ca677bcb5c3dfda8",
                "md5": "69aa262eba49989826da57f5a4be10ef",
                "sha256": "866e073dd2834d99a714686ee8ec9016d92a80041f7ff6e368e074ec6b22b30c"
            },
            "downloads": -1,
            "filename": "vogo-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "69aa262eba49989826da57f5a4be10ef",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 17488,
            "upload_time": "2025-10-31T03:25:38",
            "upload_time_iso_8601": "2025-10-31T03:25:38.097907Z",
            "url": "https://files.pythonhosted.org/packages/47/50/1c0320a67b9d3363d15ab32f2e28c654196654e1f535ca677bcb5c3dfda8/vogo-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3306821b4a285f6303e33cfff80181a17896982410a1903c7fc4c4ec9edf5d64",
                "md5": "09db9384c75cdca0aec34ad8c0c1f0c1",
                "sha256": "75d445f99cf73e0cee2489bf3a19d08641e0434b5b17fbd5a5b679a7b1009dd8"
            },
            "downloads": -1,
            "filename": "vogo-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "09db9384c75cdca0aec34ad8c0c1f0c1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 20017,
            "upload_time": "2025-10-31T03:25:39",
            "upload_time_iso_8601": "2025-10-31T03:25:39.576622Z",
            "url": "https://files.pythonhosted.org/packages/33/06/821b4a285f6303e33cfff80181a17896982410a1903c7fc4c4ec9edf5d64/vogo-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-31 03:25:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Carlos3451",
    "github_project": "vogo",
    "github_not_found": true,
    "lcname": "vogo"
}
        
Elapsed time: 1.39800s