Microcontrôleurs avec NPU pour reconnaissance vocale embarquée : Modèle acoustique sur STM32N6
Le microcontrôleur STM32N6 doté d’un NPU intégré permet la modélisation acoustique en temps réel pour une reconnaissance vocale arbitraire. La consommation est de seulement 0,215 W, avec un PER de 5,3 % sur dev_clean, et l’inférence sur 500 ms d’audio ne prend que 52 ms. Le modèle quantifié en int8 fonctionne hors ligne, sans cloud ni internet, idéal pour les appareils compacts.
Architecture système pour la reconnaissance vocale
Le système se décompose en trois composants pour optimiser mémoire et précision :
- Modèle acoustique : Convertit les signaux audio bruts en flux de phonèmes. Cette partie gourmande en ressources s’exécute sur le NPU du STM32N6.
- Décodeur : Regroupe les phonèmes en mots à l’aide d’un dictionnaire et d’une grammaire linguistique.
- Re-scoring : Affine les hypothèses avec du contexte pour augmenter les chances de résultats corrects.
Nous avons implémenté et testé le modèle acoustique, pièce maîtresse du système. Le décodeur et le re-scoring sont en cours ; ils sont moins exigeants en ressources.
En mode démo, le modèle traite des phrases arbitraires en temps réel. Un interpréteur mappe les phonèmes vers des mots via une table de consultation, affichant les phonèmes bruts à côté des mots interprétés. La configuration actuelle limite le vocabulaire ; un décodeur complet avec modélisation linguistique gérera n’importe quelle phrase.
Consommation énergétique et spécifications matérielles
Pendant l’inférence active, la puissance totale est de 0,215 W sans optimisation :
| Composant | Consommation |
|----------------------------|--------------|
| NPU + Cortex-M55 | 160 mW |
| Mémoire externe (Flash + PSRAM) | 45 mW |
| Broches MCU externes | ~10 mW |
| Total | ~215 mW |
L’utilisation du NPU est de 10,4 %, le Cortex-M55 étant peu sollicité pour les mél-spectrogrammes. Des optimisations comme les modes veille du cœur, la réduction d’horloge et la charge maximale du NPU sont possibles. Dans des scénarios mot-réveil → reconnaissance → veille, la consommation de fond est négligeable pour une autonomie prolongée.
Les mél-spectrogrammes issus de LibriSpeech et d’enregistrements micro embarqué préservent les motifs vocaux même dans le bruit. Le filtrage du bruit est à l’ordre du jour.
Métriques de précision et performances
Modèle : 8,5 M de paramètres, entraîné sur LibriSpeech, quantifié en int8.
| Métrique | Valeur |
|-----------------------|-----------|
| PER (dev_clean) | 5,3 % |
| PER (dev_other) | 14,4 % |
| Perte de quantification (dev_other / dev_clean) | 0,4 % / 0,15 % |
| Inférence NPU (500 ms audio) | 52 ms |
| Latence totale | 985 ms |
Le PER (Phone Error Rate, taux d’erreur phonétique) mesure les erreurs au niveau phonème. Les métriques ont été exécutées sur appareil : jeu de validation via NPU, résultats via UART. La latence inclut une fenêtre de « look-ahead » de 485 ms pour les prédictions.
Comparaison avec les concurrents
| Modèle | Taille | PER (test_clean) | WER (dev_clean) |
|-------------------------|-----------|------------------|-----------------|
| Acoustique STM32N6 | 8,5 M | 5,51 | — |
| wav2vec 2.0 Base | 95,04 M | 5,74 | 6,43 |
| HuBERT Base | 94,68 M | 5,41 | 6,42 |
| QuartzNet 5x5 | 6,7 M | — | 5,39 |
Le modèle STM32N6 atteint 5,51 % de PER avec 1/11e de la taille de wav2vec/HuBERT. Il fonctionne en temps réel sur un MCU avec 72 phonèmes — un défi relevé. WER attendu avec décodeur : 16–25 % sur dev_other pour 8–16 M de paramètres.
Ressources et évolutivité
Utilisation : RAM 18 %, NPU 10,4 %. Largement de marge pour quadrupler la taille du modèle ou ajouter des tâches parallèles. Les ajustements de puissance prolongeront encore l’autonomie.
En cours :
- Décodeur phonétique avec sélection probabiliste de mots.
- Modèle linguistique pour corrections contextuelles.
- Suppression du bruit avant entrée NPU.
Applications des MCU avec NPU
Pas pour dictées longues (>100 Mo), mais supérieur au spotting de mots-clés (KWS) : gère des phrases arbitraires.
- Maisons intelligentes : « Rends le salon plus chaud » → extrait pièce et réglage.
- Saisie de données : « Tension artérielle 132 » → nombre + contexte.
- Industrie : « Vitesse 20 % » sur machines-outils.
- Santé : « Glycémie post-repas » sur moniteurs.
- Logistique : « Rayon B12 — 3 cartons ».
- Transport : « Retour à la base » hors ligne.
- Jouets : Parole des enfants sans cloud.
- Aide technique : Contrôle vocal pour prothèses.
Points clés
- Modèle acoustique STM32N6 : 5,3 % PER (dev_clean), 0,215 W, temps réel.
- 8,5 M paramètres, quantification int8 avec perte minime de précision.
- Surpasse le KWS : parole arbitraire, pas seulement des templates.
- Évolutif : 18 % RAM, 10,4 % charge NPU.
- Idéal : Commandes hors ligne et saisie de données.
— Editorial Team
Aucun commentaire pour le moment.