Skip to content

jrehbein33/codifica-chile

Repository files navigation

Codifica### 🔊 Síntesis de Voz Inteligente

  • Lectura de código con entonación apropiada para sintaxis
  • Voz en español chileno optimizada para programación
  • Anuncio automático de errores y estructura del código
  • Control granular de velocidad, tono y volumen
  • 🎵 NUEVO: Síntesis musical con variaciones melódicas contextuales

🎤 Reconocimiento de Voz para Programar (NUEVA CARACTERÍSTICA REVOLUCIONARIA)

  • Programación por voz: Dicta código directamente y se convierte automáticamente
  • Comandos de voz inteligentes: "función saludar", "variable nombre igual juan", "si condición entonces"
  • Conversión de lenguaje natural: Convierte frases como "imprimir hola mundo" a print("hola mundo")
  • Soporte multilenguaje: Reconoce comandos en español y los convierte a Python/JavaScript
  • Control total por voz: Abre archivos, guarda, navega - todo usando tu voz
  • Integración musical: Los comandos de voz generan patrones musicales únicos

🎶 Experiencia Musical Única

  • Escalas musicales dinámicas: Pentatónica, mayor, blues y electrónica
  • Código como música: Diferentes elementos del código suenan como notas musicales
  • Efectos sonoros contextuales: Sonidos únicos para acciones (guardar, abrir, errores)
  • Panel de control musical: Personaliza escalas, tempo y temas sonoros
  • Navegación melódica: Los errores y funciones tienen patrones musicales distintivosr de Código Accesible

Editor de programación especialmente diseñado para personas no videntes en Chile

CodificaChile es una aplicación de escritorio que permite a personas con discapacidad visual programar de manera eficiente y autónoma, con funciones de síntesis de voz en español chileno, navegación semántica por código y terminal integrado accesible.

CodificaChile Logo

🌟 Características Principales

🔊 Síntesis de Voz Inteligente

  • Lectura de código con entonación apropiada para sintaxis
  • Voz en español chileno optimizada para programación
  • Anuncio automático de errores y estructura del código
  • Control granular de velocidad, tono y volumen
  • 🎵 NUEVO: Síntesis musical con variaciones melódicas contextuales

🎶 Experiencia Musical Única

  • Escalas musicales dinámicas: Pentatónica, mayor, blues y electrónica
  • Código como música: Diferentes elementos del código suenan como notas musicales
  • Efectos sonoros contextuales: Sonidos únicos para acciones (guardar, abrir, errores)
  • Panel de control musical: Personaliza escalas, tempo y temas sonoros
  • Navegación melódica: Los errores y funciones tienen patrones musicales distintivos

⌨️ Navegación Accesible

  • Navegación semántica por funciones, clases y variables
  • Atajos de teclado intuitivos para todas las funciones
  • Indentación audible para comprender estructura
  • Salto rápido a errores y elementos específicos

🔧 Editor Potente

  • Soporte múltiples lenguajes: Python, JavaScript, y más
  • Autocompletado accesible con anuncios de voz
  • Detección automática de errores con explicaciones claras
  • Comentado/descomentado automático de líneas

💻 Terminal Integrado

  • Terminal accesible con output de voz
  • Historial de comandos navegable
  • Autocompletado de comandos básicos
  • Calculadora integrada para operaciones rápidas

🇨🇱 Localización para Chile

  • Interfaz completamente en español
  • Terminología técnica adaptada al contexto chileno
  • Configuraciones regionales preestablecidas
  • Recursos educativos locales

📋 Requisitos del Sistema

  • Sistema Operativo: macOS 10.14+, Windows 10+, o Linux Ubuntu 18.04+
  • RAM: Mínimo 4GB, recomendado 8GB
  • Espacio en disco: 500MB disponibles
  • Lector de pantalla: Compatible con NVDA, JAWS, VoiceOver, y Orca

🚀 Instalación

Paso 1: Instalar Node.js

En macOS (recomendado: Homebrew):

# Instalar Homebrew si no lo tienes
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Instalar Node.js
brew install node

En macOS (alternativo: Descarga directa):

  1. Visita nodejs.org
  2. Descarga el instalador LTS para macOS
  3. Ejecuta el instalador y sigue las instrucciones

En Windows:

  1. Visita nodejs.org
  2. Descarga el instalador LTS para Windows
  3. Ejecuta el instalador y sigue las instrucciones

En Linux (Ubuntu/Debian):

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Paso 2: Verificar Instalación

node --version
npm --version

Deberías ver las versiones instaladas de Node.js y npm.

Paso 3: Instalar Dependencias del Proyecto

cd /Users/jrehbein/Documents/app_amistosa
npm install

Paso 4: Ejecutar la Aplicación

Modo desarrollo (con recarga automática):

npm start

Modo Electron (aplicación de escritorio):

# En una terminal
npm start

# En otra terminal (esperar a que cargue completamente)
npm run electron-dev

Paso 5: Compilar para Distribución

# Construir aplicación
npm run build

# Crear ejecutable para tu plataforma
npm run electron-pack

Los ejecutables se crearán en la carpeta dist/.

🎯 Primeros Pasos

1. Configurar Voz

  • Al abrir la aplicación, CodificaChile configurará automáticamente la mejor voz disponible en español
  • Usa Ctrl/Cmd + Shift + R para activar/desactivar la síntesis de voz
  • Las configuraciones de voz se encuentran en el menú "Accesibilidad"

2. Crear tu Primer Archivo

  • Presiona Ctrl/Cmd + N para crear un nuevo archivo Python
  • Comienza escribiendo código - la aplicación anunciará automáticamente la estructura
  • Usa las flechas ↑/↓ para navegar línea por línea con lectura automática

3. Explorar Funciones

  • Presiona Ctrl/Cmd + Shift + F para ver la lista de funciones en tu archivo
  • Usa F8 para saltar al siguiente error
  • Presiona Ctrl/Cmd + G para ir a una línea específica

4. Terminal Integrado

  • Haz clic en el botón "Terminal" en la parte inferior
  • Escribe help para ver comandos disponibles
  • Usa ↑/↓ para navegar por el historial de comandos

⌨️ Atajos de Teclado Esenciales

Navegación

  • Ctrl/Cmd + N - Nuevo archivo
  • Ctrl/Cmd + O - Abrir archivo
  • Ctrl/Cmd + S - Guardar archivo
  • Ctrl/Cmd + G - Ir a línea específica
  • Ctrl/Cmd + Shift + F - Buscar funciones
  • F8 - Siguiente error

Edición

  • Ctrl/Cmd + / - Comentar/descomentar línea
  • Ctrl/Cmd + D - Duplicar línea actual
  • Tab - Indentar selección
  • Shift + Tab - Desindentar selección
  • Enter - Nueva línea con auto-indentación

Accesibilidad

  • Ctrl/Cmd + Shift + R - Activar/desactivar síntesis de voz
  • Ctrl/Cmd + L - Leer línea actual
  • Alt + ? - Mostrar todos los atajos
  • Escape - Cancelar síntesis de voz actual
  • ↑/↓ - Navegar líneas con lectura automática

🎵 Funciones Musicales (NUEVO)

  • Ctrl/Cmd + M - Abrir/cerrar panel de control musical
  • Ctrl/Cmd + Shift + M - Alternar modo musical completo
  • Ctrl/Cmd + 1-4 - Cambiar escalas musicales rápidamente
    • 1 - Escala pentatónica (código simple)
    • 2 - Escala mayor (proyectos optimistas)
    • 3 - Escala blues (debugging)
    • 4 - Escala electrónica (APIs modernas)
  • Ctrl/Cmd + +/- - Ajustar tempo musical
  • Ctrl/Cmd + Shift + T - Cambiar tema sonoro

🎤 Reconocimiento de Voz (REVOLUCIONARIO - NUEVO)

  • Ctrl/Cmd + Shift + V - Abrir panel de control de voz
  • Ctrl/Cmd + Espacio - Activar/desactivar reconocimiento rápido
  • Comandos de navegación por voz:
    • "nuevo archivo" - Crear archivo nuevo
    • "abrir archivo" - Abrir archivo existente
    • "guardar archivo" - Guardar archivo actual
    • "ir a línea [número]" - Navegar a línea específica
  • Comandos de código Python por voz:
    • "función [nombre]" → def nombre():
    • "clase [nombre]" → class Nombre:
    • "imprimir [texto]" → print("texto")
    • "variable [nombre] igual [valor]" → nombre = valor
    • "si [condición]" → if condición:
    • "para [variable] en [lista]" → for variable in lista:
  • Comandos musicales por voz:
    • "cambiar escala [tipo]" - Cambiar escala musical
    • "activar música" / "desactivar música"

🎤 Programación por Voz - Ejemplos Prácticos

Creando una función completa solo con la voz:

Di: "función calcular área" Resultado:

def calcular_area():
    pass

Di: "variable radio igual cinco" Resultado:

radio = 5

Di: "variable área igual pi por radio por radio" Resultado:

area = pi * radio * radio

Di: "imprimir el área es área" Resultado:

print("el área es", area)

Creando estructuras de control:

Di: "si edad mayor que dieciocho" Resultado:

if edad > 18:
    

Di: "para número en rango diez" Resultado:

for numero in range(10):
    

Navegación y control por voz:

  • "ir a línea veinte" - Salta directamente a la línea 20
  • "buscar función main" - Busca la función main en el código
  • "comentar línea" - Comenta/descomenta la línea actual
  • "guardar archivo" - Guarda el archivo actual
  • "nuevo archivo" - Crea un nuevo archivo

Integración musical con voz:

Cada comando de voz no solo ejecuta la acción, sino que también:

  • 🎵 Produce patrones musicales únicos según el tipo de comando
  • 🎶 Cambiar escalas musicales para diferentes estados de ánimo
  • 🎼 Sincroniza audio y voz para una experiencia inmersiva completa

🛠️ Desarrollo y Contribución

Estructura del Proyecto

app_amistosa/
├── src/
│   ├── components/          # Componentes React
│   │   ├── AccessibleEditor.tsx
│   │   ├── AccessibleTerminal.tsx
│   │   ├── FileExplorer.tsx
│   │   └── ...
│   ├── services/           # Servicios (VoiceService, etc.)
│   ├── hooks/              # Hooks personalizados
│   └── App.tsx            # Componente principal
├── public/
│   ├── electron.js        # Proceso principal de Electron
│   └── index.html         # HTML base
├── package.json           # Dependencias y scripts
└── README.md             # Este archivo

Comandos de Desarrollo

# Instalar dependencias
npm install

# Desarrollo web (navegador)
npm start

# Desarrollo Electron
npm run electron-dev

# Ejecutar tests
npm test

# Construir para producción
npm run build

# Crear ejecutable
npm run electron-pack

Tecnologías Utilizadas

  • Frontend: React 18 + TypeScript
  • Desktop: Electron 22
  • Editor: Monaco Editor (modificado para accesibilidad)
  • Síntesis de Voz: Web Speech API
  • Análisis de Código: Tree-sitter
  • Estilos: CSS personalizado con enfoque en accesibilidad

🔧 Solución de Problemas

Problema: "npm no se reconoce"

Solución: Node.js no está instalado o no está en el PATH.

  • Reinstala Node.js desde nodejs.org
  • Reinicia tu terminal/VS Code

Problema: Errores de compilación TypeScript

Solución:

# Limpiar caché y reinstalar
rm -rf node_modules package-lock.json
npm install

Problema: La síntesis de voz no funciona

Solución:

  • Verifica que tu navegador soporte Web Speech API
  • Asegúrate de tener voces en español instaladas en tu sistema
  • En Windows: Panel de Control > Voz > Configuración de voz

Problema: Electron no inicia

Solución:

# Asegúrate de que React esté ejecutándose primero
npm start
# Luego en otra terminal:
npm run electron-dev

Problema: Permisos en macOS

Solución:

# Dar permisos de ejecución
chmod +x node_modules/.bin/electron

🤝 Contribuir al Proyecto

Reportar Problemas

  1. Verifica que el problema no haya sido reportado antes
  2. Incluye pasos detallados para reproducir el problema
  3. Especifica tu sistema operativo y versión de Node.js
  4. Incluye capturas de pantalla si son relevantes

Proponer Mejoras

  1. Describe claramente la funcionalidad propuesta
  2. Explica cómo beneficiaría a los usuarios
  3. Considera las implicaciones de accesibilidad

Contribuir Código

  1. Fork el proyecto
  2. Crea una rama para tu función: git checkout -b nueva-funcion
  3. Realiza tus cambios siguiendo las convenciones del proyecto
  4. Asegúrate de que el código sea accesible
  5. Ejecuta las pruebas: npm test
  6. Commit tus cambios: git commit -m "Agregar nueva función"
  7. Push a la rama: git push origin nueva-funcion
  8. Abre un Pull Request

📚 Recursos Adicionales

Para Usuarios

Para Desarrolladores

Comunidad

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

🙏 Agradecimientos

  • Comunidad de desarrolladores ciegos y con baja visión por su valiosa retroalimentación
  • NVDA y JAWS por sus herramientas de accesibilidad
  • Microsoft por las APIs de accesibilidad
  • Comunidad React y Electron por las excelentes herramientas

📞 Contacto y Soporte


CodificaChile - Democratizando la programación para todos los chilenos 🇨🇱

"La tecnología debe ser accesible para todos, sin excepción."

About

🎵 Editor de código accesible con reconocimiento de voz para personas no videntes - Accessible code editor with voice recognition for blind people

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors