Pourquoi utiliser les microcontrôleurs PIC pour la reconnaissance vocale?

Bien que les processeurs haut de gamme et les processeurs de signaux numériques dédiés (PSD) dominent le paysage, les microcontrôleurs PIC offrent un équilibre convaincant entre le coût, l'efficacité énergétique et la facilité de développement pour les applications qui nécessitent une simple reconnaissance de commande plutôt que le traitement du langage naturel. Leur faible prix unitaire (souvent inférieur à 2 dollars en volume) et leur tirage minimal en mode veille les rendent idéaux pour les appareils alimentés par batterie ou toujours sur écoute.

Les avantages des PIC pour la reconnaissance vocale vont au-delà de l'économie. Le vaste écosystème de compilateurs, de programmeurs et de bibliothèques communautaires réduit le temps de développement. De nombreuses variantes PIC incluent des convertisseurs analogiques-numériques intégrés (ADC), des comparateurs et même des op-amps, permettant la connexion directe de capteurs audio avec circuits externes minimaux.

Cependant, les défis demeurent. La limitation de base est le débit de calcul. Un PIC18 typique fonctionnant à 64 MHz peut effectuer environ 16 MIPS, bien moins qu'un ARM Cortex-M4 moderne ou un DSP. Cela limite la complexité des algorithmes de reconnaissance qui peuvent fonctionner en temps réel. De plus, la RAM sur puce est souvent limitée à quelques kilooctets, ce qui limite le nombre et la taille des modèles de voix qui peuvent être stockés. Les concepteurs doivent donc choisir des algorithmes qui sont calculalement légers et utiliser le stockage externe (comme le flash SPI) pour les bases de données de modèles.

Malgré ces contraintes, les microcontrôleurs PIC sont un choix pragmatique pour les systèmes qui reconnaissent moins de 20 commandes distinctes avec une précision acceptable dans des conditions acoustiques contrôlées. Les applications telles que les lampes de bureau à commande vocale, les ventilateurs intelligents et les interfaces de base de la domotique bénéficient de la réponse déterministe du PIC et du réveil rapide du sommeil.

Exigences matérielles pour la reconnaissance vocale sur PIC

Sélection d'un microphone et d'un préamplificateur

Un microphone à condensateur électret de haute qualité (ECM) ou un microphone MEMS convertit les ondes acoustiques en une tension analogique. Pour les systèmes basés sur PIC, un ECM avec une sensibilité de -44 dBV/Pa est typique. Le microphone doit être couplé à un préamplificateur pour amener le niveau de signal à la plage d'entrée de l'ADC (p. ex. 0–3,3 V ou 0–5 V). Un simple circuit à simple ampère-op (p. ex., utilisant le MCP602 ou TS912) avec un gain de 40–60 dB fonctionne bien. Les concepteurs devraient inclure un filtre passe-bande (300 Hz–3,4 kHz) pour éliminer le bruit de hum et de haute fréquence basse fréquence, ce qui améliore la précision de reconnaissance tout en réduisant le taux de données.

Pour les systèmes multicommandes ou les environnements bruyants, envisagez un tableau différentiel de microphone et un préamplificateur avec contrôle automatique des gains (AGC) pour maintenir une amplitude constante.

Considérations relatives à la conversion analogique à numérique

Pour la parole, un débit d'échantillonnage de 8 kHz (8 bits de résolution) est le minimum d'intelligibilité; 16 kHz à 12 bits est recommandé pour une reconnaissance robuste. De nombreux dispositifs PIC supportent les entrées à une seule extrémité et différentielle. L'horloge de conversion ADC devrait être optimisée pour éviter les alias; un minuteur dédié (par exemple, Timer0) peut être utilisé pour déclencher des conversions à intervalles précis. Pour les PIC sans DMA dédié, le CPU doit lire chaque échantillon et le stocker en RAM ou le transférer à l'extérieur. L'utilisation d'un ADC interrompu avec un tampon circulaire est l'approche standard.

Mémoire et stockage

Les modèles de voix nécessitent un stockage persistant. Ceci peut être réalisé avec des commandes SPI externes EEPROM (par exemple 25LC256) ou SPI flash (par exemple W25Q64) programmées avec des commandes préenregistrées pendant une phase d'entraînement. Un module de carte SD est une alternative pour les prototypes. Pour les systèmes avec de nombreuses commandes, un SRAM ou PSRAM externe peut être nécessaire lors de la reconnaissance pour tenir l'expression capturée pour comparaison.

Algorithmes de reconnaissance vocale adaptés aux PIC

Modèle correspondant à la corrélation croisée

L'algorithme le plus simple pour la reconnaissance des mots est la correspondance de gabarits à base d'énergie. Le PIC capture un cadre audio à longueur fixe (par exemple, les 500 premiers ms après la détection de l'activité vocale) et normalise son amplitude. Les modèles pré-stockés sont également normalisés. Ensuite, une corrélation croisée entre le signal capturé et chaque gabarit est calculée. La commande correspondant au coefficient de corrélation le plus élevé est sélectionnée. La corrélation croisée est une opération à forte intensité de mémoire (qui nécessite des opérations O(N^2) par gabarit) mais peut être mise en œuvre avec un total arithmétique et un dérouillage de boucle pour exécuter un PIC18 à 64 MHz en moins de 50 ms pour 10 modèles de 4000 échantillons chacun.

Les limites comprennent la sensibilité aux changements de vitesse de parole et la robustesse limitée du bruit de fond. Le prétraitement comme l'élimination du silence et la normalisation de l'énergie aide. Pour une meilleure précision, l'algorithme peut également utiliser le taux de passage zéro et l'énergie de court-temps comme caractéristiques avant la corrélation.

La variation dynamique du temps (DTW) pour la vitesse variable

DTW est une technique bien connue qui aligne deux séries chronologiques de longueurs différentes pour trouver la meilleure correspondance. Il est calculablement plus lourd que la simple corrélation mais essentiel pour les applications de parole à haut-parleur ou à taux libre. Un calcul de base de la Parcours de Warping pour une expression de 4000 échantillons contre un modèle de 4000 échantillons implique la construction d'une matrice de coûts 4000x4000, qui est peu pratique sur un PIC. Cependant, il existe des variations optimisées : les contraintes de bande Sakoe-Chiba réduisent la matrice à une bande diagonale étroite, et l'utilisation d'une fenêtre fixe (par exemple, facteur de distorsion de 0,2) réduit le calcul.

Analyse de domaine de fréquence utilisant FFT

L'extraction des MFCC nécessite une transformation rapide de Fourier (FFT), qui est difficile pour une PIC. Cependant, une approche simplifiée consiste à utiliser une FFT réelle de 64 ou 128 points pour extraire l'énergie spectrale dans quelques bandes critiques (p. ex. 0–1 kHz, 1–2 kHz, 2–3 kHz). Le multiplicateur matériel de PIC peut être utilisé; des bibliothèques pour FFT sur PIC, comme la bibliothèque d'application de Microchip, existent. Les vecteurs de caractéristiques en résultant sont généralement de 4–8 coefficients, qui peuvent être comparés à la distance Euclidean ou à un classificateur linéaire léger (p. ex., les voisins k-Nearest avec seulement quelques voisins). Cette approche offre une meilleure robustesse sonore que les méthodes de la pratique du temps mais à un coût de calcul plus élevé.

Mise en place d'un système de reconnaissance simple des commandes

Architecture du système

Un système complet comprend le microphone et le préamplificateur connecté à une entrée ADC sur le PIC. Le PIC contrôle une LED d'état, un buzzer pour la rétroaction, et un relais de sortie ou une interface série pour déclencher des actions. Un bouton poussoir entre en mode entraînement. Le firmware exécute une machine d'état : IDLE, ISTENDING, RECONNAISSANCE, RECONNAISSANCE, et RÉPONDANCE. Pendant ISTENDING, le PIC échantillonne en permanence l'énergie audio et calcule. Lorsque l'énergie dépasse un seuil de 100 ms, il commence à enregistrer un tampon annulaire. L'enregistrement se poursuit jusqu'à ce que le silence soit détecté pendant 200 ms ou un délai de 2 secondes.

Phase de formation et phase de reconnaissance

Dans la phase de formation, l'utilisateur dit chaque commande (par exemple, "on", "off", "dim") plusieurs fois. Les déclarations capturées sont enregistrées en mémoire externe avec une étiquette. Pour les systèmes simples, le modèle est la forme d'onde brute entière (après normalisation). Pour les implémentations plus avancées, les fonctions d'extraction PIC (par exemple, les passages à zéro et l'énergie par cadre) et stocke le vecteur de la fonction. L'ensemble de formation peut inclure plusieurs instances par commande pour gérer les variations; le système choisit le modèle moyen ou celui avec la plus petite distance de corrélation entre les instances.

Considérations pratiques

Un seuil d'énergie simple peut être insuffisant dans les environnements bruyants; envisager d'utiliser un algorithme à double seuil avec une estimation du bruit de fond mise à jour pendant les périodes de silence. De plus, le système devrait débonner le bouton d'entraînement et fournir des instructions sonores ou visuelles pendant l'entraînement (p. ex., «dis-commande maintenant» via un WAV préenregistré ou une tonalité). Les tests montrent qu'un système PIC bien mis en œuvre avec un modèle assorti peut atteindre une précision de 80 à 90 % dans des pièces calmes avec un haut-parleur cohérent.

Expansion des capacités avec les processeurs externes et les services Cloud

Utilisation des IC dédiés à la reconnaissance vocale

Lorsque la puissance de traitement PIC est insuffisante, l'intégration d'une puce de reconnaissance vocale dédiée comme le module HM2007 ou Elechouse V3 simplifie le développement. Ces ICs gèrent le prétraitement et la reconnaissance hors ligne, communiquant avec le PIC via une interface série ou parallèle. Le PIC envoie des commandes au module de reconnaissance et reçoit des ID de commande reconnus. Cette approche hybride conserve la faible puissance du PIC pour la logique de contrôle tout en déchargeant un calcul intensif.

Déchargement vers le Cloud via Wi-Fi

L'ajout d'un module Wi-Fi (par exemple ESP8266 ou ESP32) à un PIC ouvre l'accès aux services de langage en nuage tels que Google Speech-to-Text, Amazon Alexa Voice Service ou des paramètres cloud personnalisés. Le PIC capture l'audio et l'envoie sur UART au module ESP, qui le diffuse dans le cloud sur MQTT ou HTTP. Le texte reconnu est retourné au PIC, qui l'analyse pour les commandes. Ce chemin offre un vocabulaire pratiquement illimité et une compréhension du langage naturel. L'inconvénient est la latence (délais de réseau) et la dépendance à la connectivité Internet. Pour les applications critiques en latence (par exemple, l'automatisation domestique), un serveur cloud local sur un Raspberry Pi peut être un compromis.

Approche hybride pour Edge AI

Les avancées récentes dans TinyML permettent aux modèles de réseau neuronal simples (par exemple, entièrement connectés ou Conv1D) de fonctionner sur des microcontrôleurs de classe PIC. En utilisant une chaîne d'outils comme TensorFlow Lite Micro, les développeurs peuvent former un modèle de repérage de mots-clés dans le cloud et le déployer comme bibliothèque C++ compilée vers le PIC. L'inférence ne nécessite que quelques centaines d'octets de RAM et fonctionne en dizaines de millisecondes. Avec un PIC32MX ou PIC32MZ, un réseau à quatre couches avec 10 mots-clés peut s'adapter facilement. Cette approche offre une reconnaissance robuste avec une latence minimale et aucun besoin de connectivité cloud. Microchip MPLAB X[ IDE peut intégrer le code de modèle généré.

Applications et considérations de conception réelles

Smart Home Appareils de contrôle

Un interrupteur à commande vocale utilisant un PIC18 et un gabarit pré-entraînement pour « on » et « off » peut remplacer un interrupteur mural traditionnel. L'appareil peut être alimenté par batterie (en mode veille entre les commandes) et communiquer avec un relais via un transistor. Pour un fonctionnement fiable, il faut envisager l'annulation d'écho acoustique (si le microphone est près des haut-parleurs) et empêcher la reconnaissance des sons accidentels.

Dispositifs d'accessibilité pour les utilisateurs handicapés

Dans ces applications, la sécurité est primordiale; le PIC doit mettre en œuvre une étape de confirmation (répéter le mot ou utiliser un second déclencheur) pour empêcher les faux positifs. Un chronomètre de veille matériel assure la remise à zéro du système si le logiciel est suspendu. Pour plusieurs utilisateurs, des techniques d'adaptation des haut-parleurs peuvent être ajoutées en stockant plusieurs modèles par commande.

Systèmes sans mains automobiles

Pour les modules de voiture après-vente, un PIC24 avec bus CAN intégré peut recevoir des commandes vocales pour contrôler les fenêtres, les lumières ou les divertissements. Le module se connecte à l'alimentation 12 V de la voiture et utilise un préamplificateur de la porte de bruit pour supprimer le bruit du moteur et de la route. Des commandes comme « lumières allumées » ou « radio » sont reconnues, et le PIC envoie les messages CAN appropriés.

Tendances futures : Les réseaux de petites et de petites dimensions et de neurones sur la PIC

L'intégration de l'apprentissage automatique dans les microcontrôleurs à ressources limitées s'accélère. Les entreprises comme Microchip offrent désormais des bibliothèques dédiées à l'intelligence artificielle et aux réseaux neuronaux. Les futures familles PIC peuvent inclure des accélérateurs matériels pour la multiplication de matrices ou la convolution, rendant possible la reconnaissance vocale en temps réel avec un apprentissage profond.

Conclusion

Les microcontrôleurs PIC restent une plateforme pratique et rentable pour intégrer les capacités de reconnaissance vocale de base dans des appareils dédiés. La clé du succès réside dans la complexité algorithmique des ressources du microcontrôleur, l'optimisation du matériel pour une acquisition audio propre, et l'utilisation d'un support externe (IC dédié ou services cloud) lorsque la tâche dépasse les simples ensembles de commandes. En tirant parti de la correspondance de modèles, DTW avec des contraintes, voire des réseaux neuronaux légers, les concepteurs peuvent construire des systèmes de commande vocale réactifs sans recourir à des processeurs haut de gamme.