Laboratorio

Reconocimiento de palabras · Speech Commands

Voz

Di «up», «down», «left» o «right» y mueve una serpiente con la voz. Espectrograma en vivo, confianza en el tiempo y una prueba de acento que no sale de tu navegador.

Se ejecuta en tu navegador
Usa el micrófono
—latencia—inferencias/s—modelo—carga—

Los modelos no se descargan hasta que lo pides: así nadie gasta datos solo por leer la página.

Ficha del modelo

Datos
Speech Commands v0.02CC BY 4.0 · Pete Warden, Google, 2018
FSDnoisy18kCC BY 4.0 (clips CC0 / CC BY 3.0) · Fonseca et al., 2019
Modelo
CNN separable en profundidad sobre log-mel (entrenada desde cero)MIT
Entrenamiento
24 épocas · CPU · 79 minParticiones oficiales de Speech Commands v0.02 (validation_list / testing_list, sin hablantes compartidos). Test: 4888 clips (396–425 por orden; «desconocida» y «silencio» submuestreadas al tamaño medio de una orden). Entrenamiento con desplazamientos de ±100 ms, ganancia aleatoria, ruido a SNR aleatoria de 0–20 dB y SpecAugment; se elige la mejor época por la media de precisión limpia y con ruido en validación. «accuracyNoisy»: test mezclado a 10 dB con ruido reservado (clips de FSDnoisy18k y tramos de _background_noise_ nunca usados al entrenar), semilla fija. El ruido de FSDnoisy18k sale de su partición de test (947 clips; el train completo pesa 9,2 GB). Línea base (regresión logística sobre medias del log-mel): 54.9 %.
Acierto en test
96.2 %
Acierto con ruido
94.2 %
Parámetros
73.004
Tamaño
346 KB
Matriz de confusión en test (% por fila)
Real ↓ / predicho →silenciodesconocidasínoarribaabajoizquierdaderechaencenderapagarparaadelante
silencio99
desconocida91221
sí99
no98
arriba96
abajo12941
izquierda98
derecha396
encender943
apagar394
para100
adelante1295

Dónde falla

  • Solo reconoce 10 palabras en inglés (yes, no, up, down, left, right, on, off, stop, go). Cualquier otra palabra debería salir como «desconocida», pero palabras parecidas («dog» por «down», «three» por «tree»…) o en español pueden confundirlo.
  • Escucha ventanas de exactamente 1 s a 16 kHz: si la palabra queda cortada entre dos ventanas, se dice muy rápido o muy despacio, o hay varias palabras seguidas, la predicción empeora.
  • Las grabaciones proceden de voluntarios que grabaron desde el navegador con su propio micrófono. Acentos poco representados, voces infantiles, micrófonos distintos o salas con eco pueden rendir peor que en el test.
  • Con ruido ambiente baja: 96.2 % en test limpio frente a 94.2 % con ruidos reales no vistos en el entrenamiento (FSDnoisy18k y ruido de fondo de Speech Commands) mezclados a 10 dB de SNR.
  • La clase más difícil es «desconocida» (91 % de acierto), que se confunde sobre todo con «izquierda». La probabilidad mostrada no está calibrada.

Ficha generada por el pipeline de entrenamiento el 2026-10-18.

Cómo escucha

El micrófono entrega audio a 16 kHz. Cada 10 ms se calcula una columna del espectrograma mel —la misma representación con la que se entrenó— y cada pocos fotogramas el modelo mira el último segundo y decide qué palabra suena, si suena alguna.

Que el navegador calcule exactamente lo mismo que Python es la parte delicada: una ventana distinta o un banco de filtros con otra normalización y el modelo se vuelve sordo sin dar ningún error. Por eso el banco de filtros y la ventana se exportan desde el entrenamiento y un test compara ambos cálculos.

Ruido de verdad

Speech Commands, de Google, son grabaciones de un segundo hechas por miles de personas. Para que el modelo no se hunda fuera de un sitio silencioso, durante el entrenamiento mezclé las palabras con ruido real de FSDnoisy18k a distintas intensidades. La ficha enseña el acierto con y sin ruido.

Límites

Solo entiende esas diez palabras y solo en inglés, porque es lo que trae el dataset. Micrófonos y acentos muy distintos de los de las grabaciones bajan el acierto: la prueba de acento te deja medirlo con tu propia voz.

¿Tu negocio necesita un modelo como estos, o basta con una regla bien puesta? Lo vemos en el diagnóstico gratuito.

Pedir diagnóstico