Clasificación de audio con SpeechCommands
Objetivo
Clasificar comandos hablados desde waveform y log-mel spectrograms.
Dataset público real
- Dataset:
speechcommands_v0.02 - Fuente: Torchaudio / Google Speech Commands
- Licencia/condiciones: Creative Commons BY 4.0
- Entrada: audio mono de un segundo a 16 kHz
- Datos sintéticos: no se usan.
Los datos se descargan desde el proveedor oficial mediante los adaptadores del repositorio. Los archivos grandes no se incluyen en Git.
Modelo y fundamento
- Modelo:
audio-cnn - Teoría: Waveform, espectrograma log-mel, convolución 2D y robustez ante ruido.
- Línea base: MFCC + regresión logística
Protocolo
- Crear particiones con
split_seedo conservar los splits oficiales. - Entrenar y seleccionar exclusivamente con
trainyvalidation. - Guardar
best_model.pty escribirexperiment.lock.json. - Abrir
testuna sola vez después del congelamiento. - Registrar métricas, configuración, procedencia y limitaciones.
Ejecución
neural-labs train-advanced --track 27_audio_speechcommands --quick
neural-labs train-advanced --track 27_audio_speechcommands --split-seed 42 --training-seed 43
Métricas
accuracy, macro_f1, confusion_matrix, noise_robustness.
Cuadernos
notebook.ipynb: recorrido completo.notebook_student.ipynb: actividades sin resolver.notebook_solution.ipynb: referencia docente.
Limitación principal
Acentos, micrófonos y ambientes no están representados uniformemente.
🧠 Teoría
Teoría — Clasificación de audio con SpeechCommands
Waveform, espectrograma log-mel, convolución 2D y robustez ante ruido.
Fundamento matemático
El audio crudo es una forma de onda (waveform): una señal x[t] de amplitud muestreada en el tiempo, aquí a 16 kHz durante un segundo (≈16 000 muestras por clip). Clasificar directamente sobre esa secuencia larga y unidimensional es difícil, porque la información fonética relevante vive en el contenido frecuencial que varía a lo largo del tiempo. Por eso se transforma la señal a una representación tiempo-frecuencia mediante la transformada de Fourier de corto tiempo (STFT): se divide la onda en ventanas solapadas y se calcula el espectro de cada una,
X(m, k) = Σ_(n) x[n] · w[n − m] · e^(−j·2π·k·n / N),
donde w es una ventana (p. ej. Hann), m indexa el tiempo y k la frecuencia. El espectrograma es la magnitud al cuadrado |X(m, k)|²: una "imagen" 2D donde un eje es tiempo y el otro frecuencia, y la intensidad es la energía.
Sobre ese espectrograma se aplican dos transformaciones inspiradas en la percepción auditiva humana. Primero, la escala mel comprime el eje de frecuencia con un banco de filtros triangulares espaciados según mel(f) = 2595 · log₁₀(1 + f/700), que da más resolución a las frecuencias bajas —donde el oído distingue mejor— y agrupa las altas. Segundo, se toma el logaritmo de la energía, log(mel-energía + ε), imitando que percibimos la intensidad de forma aproximadamente logarítmica y comprimiendo el enorme rango dinámico; ε > 0 evita log(0). El resultado es el espectrograma log-mel, la entrada del modelo. Los MFCC (coeficientes cepstrales en frecuencias mel) van un paso más allá aplicando una transformada coseno discreta que decorrelaciona los canales mel; se usan en la línea base MFCC + regresión logística.
Como el log-mel es una imagen 2D, el modelo natural es una CNN 2D. Cada capa convolucional desliza filtros aprendidos K sobre la entrada, (X * K)(i, j) = Σ_(a,b) X(i+a, j+b) · K(a, b), detectando patrones locales tiempo-frecuencia (formantes, transiciones, ráfagas de energía) con pesos compartidos; el apilamiento con submuestreo construye representaciones cada vez más abstractas hasta una capa densa con softmax que produce p(clase | audio). El entrenamiento minimiza la entropía cruzada ℒ = −Σ_c y_c · log ŷ_c, y esta idea de tratar el audio como imagen espectral es la que Hershey et al. escalaron a clasificación de audio a gran escala.
La robustez ante ruido es central: en uso real el micrófono capta fondo, reverberación y solapamientos. Se evalúa perturbando la entrada, por ejemplo x̃ = x + n con ruido n de una relación señal-ruido dada (SNR = 10·log₁₀(P_señal / P_ruido) dB), y midiendo cuánto cae la accuracy. Un modelo que aprende rasgos fonéticos estables degrada poco; uno que memoriza artefactos del set limpio colapsa. Esto también motiva aumentaciones (desplazamiento temporal, ruido, enmascarado de bandas) durante el entrenamiento.
Visualización específica
Waveform, espectrograma, errores por palabra y ruido. Contrastar la onda cruda con su espectrograma log-mel muestra por qué la representación 2D facilita la clasificación; el desglose de errores por palabra revela confusiones entre comandos fonéticamente parecidos, y las pruebas con ruido cuantifican la robustez.
Riesgo de interpretación
Acentos, micrófonos y ambientes no están representados uniformemente. Una accuracy alta en el set limpio no garantiza desempeño con hablantes, dispositivos o entornos distintos a los del corpus, y la robustez debe verificarse explícitamente con ruido antes de confiar en el modelo.
🔗 Referencias
Las referencias apuntan a las obras; no se reproduce su contenido, la redacción es original.
- Warden (2018), Speech Commands: A Dataset for Limited-Vocabulary Speech Recognition, arXiv — describe el corpus y el protocolo de evaluación de comandos hablados.
- Hershey et al. (2017), CNN Architectures for Large-Scale Audio Classification, ICASSP — muestra que arquitecturas convolucionales sobre espectrogramas escalan a la clasificación de audio.
🔬 Experimentos
Experimentos — Clasificación de audio con SpeechCommands
Hipótesis principal
Comparar señal limpia, ruido añadido y SpecAugment usando los splits oficiales.
Variables controladas
- Dataset y partición.
- Presupuesto de épocas o actualizaciones.
- Semillas de entrenamiento.
- Política de acceso a test.
Reporte mínimo
Media, desviación estándar, costo de entrenamiento, latencia y análisis de errores.
📝 Evaluación
Evaluación
| Criterio | Puntos |
|---|---|
| Procedencia y auditoría del dataset | 15 |
| Protocolo sin fuga de test | 20 |
| Implementación del modelo | 20 |
| Métricas y comparación con baseline | 20 |
| Análisis de errores y riesgos | 15 |
| Reproducibilidad y documentación | 10 |
Total: 100 puntos.