ALS Speech Biomarkers
ICASSP 2027
Paper en revisión · SBiND @ ICASSP 2027
Año
2026
Tipo
Ciencia y neuro
Estado
Stack
Python, Praat / Parselmouth, Signal Processing
¿Qué medidas del habla ya difieren en pacientes con ELA cuyo habla el neurólogo califica como normal? Un pipeline acústico reproducible sobre la base pública VOC-ALS que busca la señal antes de que el oído clínico la detecte.
La esclerosis lateral amiotrófica (ELA) afecta el habla, pero cuando el neurólogo ya escucha la disartria, la enfermedad lleva tiempo avanzando. La pregunta del paper es qué cambia antes: en los pacientes con habla clínicamente normal, ¿hay alguna medida acústica interpretable que ya los separe de los controles sanos?
El pipeline extrae 39 medidas interpretables de fonación, articulación y soporte respiratorio con Praat/Parselmouth, las valida contra las columnas acústicas publicadas con VOC-ALS (Spearman 0.95–0.99) y las somete a control de falsos descubrimientos, validación cruzada repetida, nulos por permutación y pruebas de robustez del pitch tracker (Praat vs. REAPER de Google).
El hallazgo: de las 39 medidas, solo una sobrevive al control FDR — la dispersión en semitonos de la F0 entre núcleos silábicos en las tareas /pa/, /ta/, /ka/ (AUC 0.70). Una inestabilidad laríngea entre sílabas que aparece antes de que el habla suene alterada. Cada número del paper se genera desde el código, así que el resultado es trazable de punta a punta.
Qué construí
- 01Extracción de 39 medidas acústicas interpretables (F0, jitter, shimmer, HNR, CPPS, formantes, DDK, respiración).
- 02Análisis subclínico con AUC bootstrap, BH-FDR, ajuste por edad/sexo y 20×5-fold CV estratificada.
- 03Descomposición por escalas temporales del contorno de F0 y dinámica de re-inicio de voz.
- 04Correlaciones parciales motoneurona superior vs. inferior (PUMNS vs. MRC) y progresión.
- 05Generación automática de tablas y números del paper en LaTeX desde los CSV.
En números
python src/extract_features.py --data data/raw --xlsx data/raw/VOC-ALS.xlsx \
--out results/features.csv --jobs 2
python src/analyze_subclinical.py --features results/features.csv \
--out results/analysis --repeats 20 --boot 2000
python src/analyze_ablation.py --features results/features.csv --perms 200
python src/make_paper_tables.py --features results/features.csv --out paper
cd paper && latexmk -pdf main.tex