Volver al inicio

NPU en MCU para voz: STM32N6 y acústica

El artículo describe la implementación de un modelo de reconocimiento de voz acústico en el microcontrolador STM32N6 con NPU. PER logrado 5.3% en dev_clean con consumo de 0.215 W y 52 ms de inferencia. Comparación con modelos grandes, planes para decodificador y aplicación en dispositivos autónomos.

Reconocimiento de voz en microcontrolador: NPU STM32N6 en acción
Advertisement 728x90

Microcontroladores con NPU para Reconocimiento de Voz en Dispositivo: Modelo Acústico en STM32N6

El microcontrolador STM32N6 con NPU integrado permite el modelado acústico en tiempo real para reconocimiento de voz arbitrario. El consumo es de solo 0.215 W, con un PER del 5.3% en dev_clean, e inferencia de 500 ms de audio en apenas 52 ms. El modelo cuantizado a int8 funciona sin conexión a la nube ni internet, ideal para dispositivos compactos.

Arquitectura del Sistema para Reconocimiento de Voz

El sistema se divide en tres componentes para optimizar memoria y precisión:

  • Modelo acústico: Convierte señales de audio crudas en un flujo de fonemas. Esta parte intensiva en recursos se ejecuta en la NPU del STM32N6.
  • Decodificador: Agrupa fonemas en palabras mediante un diccionario y gramática del lenguaje.
  • Reescoring: Refina hipótesis con contexto para mejorar las probabilidades de resultados correctos.

Hemos implementado y probado el modelo acústico, la pieza central. El decodificador y el reescoring están en desarrollo; son menos exigentes en recursos.

Google AdInline article slot

En modo demo, el modelo procesa frases arbitrarias en tiempo real. Un intérprete mapea fonemas a palabras mediante una tabla de búsqueda, mostrando fonemas crudos junto a palabras interpretadas. La configuración actual limita el vocabulario; un decodificador completo con modelado de lenguaje manejará cualquier frase.

Consumo Energético y Especificaciones de Hardware

Durante la inferencia activa, el consumo total es de 0.215 W sin optimizaciones:

| Componente | Consumo |

Google AdInline article slot

|-----------------------------|---------|

| NPU + Cortex-M55 | 160 mW |

| Memoria externa (Flash + PSRAM) | 45 mW |

Google AdInline article slot

| Pines externos del MCU | ~10 mW |

| Total | ~215 mW |

La utilización de la NPU es del 10.4%, con el Cortex-M55 apenas usado para mel-espectrogramas. Se pueden aplicar optimizaciones como modos de sueño del núcleo, limitación de reloj y maximización de carga en la NPU. En escenarios de detección de palabra clave → reconocimiento → sueño, el consumo en segundo plano es insignificante para prolongar la vida de la batería.

Los mel-espectrogramas de LibriSpeech y grabaciones del micrófono integrado preservan patrones de voz incluso en ruido. El filtrado de ruido es el siguiente en la lista.

Métricas de Precisión y Rendimiento

Modelo: 8.5M parámetros, entrenado en LibriSpeech, cuantizado a int8.

| Métrica | Valor |

|-----------------------------|----------|

| PER (dev_clean) | 5.3% |

| PER (dev_other) | 14.4% |

| Pérdida por cuantización (dev_other / dev_clean) | 0.4% / 0.15% |

| Inferencia NPU (500 ms audio) | 52 ms |

| Latencia total | 985 ms |

PER (Tasa de Error de Fonema) mide errores a nivel de fonema. Las métricas se ejecutaron en el dispositivo: conjunto de validación a través de la NPU, resultados vía UART. La latencia incluye una ventana de "look-ahead" de 485 ms para predicciones.

Comparación con Modelos Similares

| Modelo | Tamaño | PER (test_clean) | WER (dev_clean) |

|----------------------------|----------|-------------------|-----------------|

| Acústica STM32N6 | 8.5M | 5.51 | — |

| wav2vec 2.0 Base | 95.04M | 5.74 | 6.43 |

| HuBERT Base | 94.68M | 5.41 | 6.42 |

| QuartzNet 5x5 | 6.7M | — | 5.39 |

El modelo STM32N6 alcanza un 5.51% de PER con 1/11 del tamaño de wav2vec/HuBERT. Funciona en tiempo real en un MCU usando 72 fonemas, un logro notable. WER esperado con decodificador: 16–25% en dev_other con 8–16M parámetros.

Recursos y Escalabilidad

Uso: RAM 18%, NPU 10.4%. Amplio margen para cuadruplicar el tamaño del modelo o agregar tareas paralelas. Ajustes de consumo extenderán aún más la batería.

En desarrollo:

  • Decodificador de fonemas con selección probabilística de palabras.
  • Modelo de lenguaje para correcciones contextuales.
  • Supresión de ruido antes de la entrada a la NPU.

Aplicaciones de MCU con NPU

No para dictados largos (requiere >100 MB), pero supera la detección de palabras clave (KWS): maneja frases arbitrarias.

  • Hogares inteligentes: "Sube la calefacción del salón" → extrae habitación y ajuste.
  • Entrada de datos: "Presión arterial 132" → número + contexto.
  • Industria: "Velocidad 20%" en herramientas de máquina.
  • Salud: "Glucosa postprandial" en monitores.
  • Logística: "Estante B12 — 3 cajas".
  • Transporte: "Dirígete a la base" sin conexión.
  • Juguetes: Voz de niños sin nube.
  • Tecnología asistiva: Control por voz para prótesis.

Conclusiones Clave

  • Modelo acústico STM32N6: 5.3% PER (dev_clean), 0.215 W, en tiempo real.
  • 8.5M parámetros, cuantización int8 con mínima pérdida de precisión.
  • Supera KWS: voz arbitraria, no solo plantillas.
  • Escalable: 18% RAM, 10.4% carga NPU.
  • Punto dulce: comandos offline y entrada de datos.

— Editorial Team

Advertisement 728x90

Leer después