- Python 100%
El roadmap deja explicito el cuello de botella: sin datos propios no hay ningun numero que se pueda defender en la presentacion. Las fases 0 (dataset) y 2 (modelo) pueden avanzar en paralelo a la 1. Se agrega una tabla de resultados ya medidos, que no son tareas sino cosas que van al informe: el rango de 46,7 % a 99,6 % segun el reparto, los 11 grupos que pasaron a 20.262, el 71,6 % del atajo del volumen. Se marcan como hechos: la decision de bajar los negativos dificiles ahora, el fallback del bloqueo de YouTube y el salteo de videos muertos. Los items de bajo valor (los 35 clips sin etiqueta, los 314 con recorte) quedan marcados como tales para que no se pierdan pero no consuman tiempo. |
||
|---|---|---|
| Carpeta de Campo | ||
| ml | ||
| .gitignore | ||
| Código.zip | ||
| Informe Proyecto Final _SAPH_ (1) (1).odt | ||
| Informe Proyecto Final _SAPH_ (1).odt | ||
| Informe Proyecto Final _SAPH_.docx | ||
| Informe Proyecto Final _SAPH_.odt | ||
| Informe Proyecto Final _SAPH_.pdf | ||
| Online Gantt 20260512.gantt | ||
| PFF.odt | ||
| README.md | ||
| TODO.md | ||
SAPH — Sistema de Accesibilidad para Personas Hipoacúsicas
Proyecto final — EEST N.°5 "Amancio Williams", Tecnicatura en Electrónica.
Autores: Tisera Matías y Rodríguez Mauro. Docentes: Lucas Martín Treser y Juan Manuel Mercadín. Lugar y fecha: Mar del Plata, 2026.
Qué es el proyecto
Un dispositivo para conductores hipoacúsicos que detecta sirenas de emergencia con micrófonos, decide si hay una sirena, y avisa con LEDs de qué lado viene. El procesamiento corre en el dispositivo (ESP32-S3), sin internet y sin nube.
Mic Izq ─┐
├─► captura de audio ─► modelo de IA ─┐
Mic Der ─┘ ├─► LEDs de dirección
└─► comparación de amplitud ──────────┘
Estructura del repositorio
| Carpeta | Qué contiene | ¿En el repo? |
|---|---|---|
ml/ |
Pipeline de Machine Learning: dataset → features → entrenamiento → modelo para el ESP32 | ✅ |
Código.zip |
Firmware ESP-IDF (versión oficial) + versión Arduino archivada | ✅ |
Informe Proyecto Final _SAPH_.* |
Informe en ODT, DOCX y PDF | ✅ |
Online Gantt 20260512.gantt |
Diagrama de Gantt | ✅ |
Carpeta de Campo/ |
Enlaces y material de campo | ✅ |
Para_OpenCloud/ |
Dataset de audio: 5093 clips | ❌ ver abajo |
Kicad/ |
Esquemáticos | ❌ ver abajo |
Lo que NO está en el repositorio
1. El dataset de audio (Para_OpenCloud/, 406 MB)
No se publica por una razón de licencias: los 5093 clips se extrajeron de videos de YouTube de terceros. Redistribuir ese audio no es "open source", es redistribuir contenido con copyright ajeno.
Es el mismo criterio que usa AudioSet — el dataset de sonidos más usado del mundo, y con el que está entrenado YAMNet —, que no distribuye el audio: distribuye los identificadores de YouTube y un script para descargarlo.
Los 11 videos de origen, los parámetros de extracción y el procedimiento
completo para reconstruirlo están en ml/DATASET.md.
Así el dataset es reproducible sin redistribuirlo.
El dataset completo sí está versionado localmente en la rama
dataset-local, como respaldo. Ver la sección "Dataset" más abajo.
2. Los esquemáticos (Kicad/ y *.kicad_*)
Se versionan aparte, por decisión del equipo.
3. Los resultados del pipeline (ml/out/)
Pesan ~160 MB y se regeneran en ~3 minutos corriendo los pasos.
Dataset
El dataset completo está versionado en tu copia local del repo, en la
rama dataset-local, pero no se sube al remoto público:
origin/main código + documentación + informes (20 MB, público)
dataset-local todo lo anterior + los 5093 clips (370 MB, local)
Por qué separado: así git push nunca sube el audio por accidente, y
main se mantiene idéntico al repositorio público.
# Ver el dataset versionado (vuelve a main al terminar)
git checkout dataset-local
ls Para_OpenCloud/
git checkout main
# Ver el historial del dataset
git log dataset-local --oneline
Cómo regenerar los resultados de Machine Learning
cd ml
uv venv --python 3.11
uv pip install -r requirements.txt
.venv/bin/python -m saph.paso1_indexar # índice canónico (~2 min)
.venv/bin/python -m saph.paso2_auditar # auditoría (~10 s)
.venv/bin/python -m saph.paso3_split # splits (~15 s)
.venv/bin/python -m saph.paso4_features # features (~20 s)
Ver ml/README.md para la explicación completa de cada paso, los
hallazgos sobre el dataset y el glosario.
Estado
| Componente | Estado |
|---|---|
| Dataset (5093 clips, 11 grabaciones) | ✅ auditado y deduplicado |
| Pipeline de ML (pasos 1–4) | ✅ funcionando |
| Entrenamiento del modelo (paso 5) | ⬜ pendiente |
| Exportación a INT8 para el ESP32 (paso 6) | ⬜ pendiente |
| Firmware ESP-IDF | 🔶 estructura lista, modelo sin integrar |
| Esquemático para ESP32-S3 | ⬜ pendiente de rediseño |
Limitación conocida del dataset
Las 11 grabaciones son videos de YouTube, con otros micrófonos y sin el ruido propio de un auto en marcha. Ninguna métrica de este dataset responde la pregunta "¿funciona arriba del auto?". La validación real requiere grabar audio con el dispositivo final.