Cependant, l'intégration de la voix a longtemps été considérée comme une tâche ardue en raison de son coût élevé et de sa complexité. Cet article démontre que l'utilisation d'un microcontrôleur PIC® 8 bits avec un modulateur de largeur d'impulsion (PWM) permet d'ajouter facilement et à moindre coût la voix à un système embarqué.

L'une des méthodes de codage de la voix est la modulation par impulsions et codage différentiel adaptatif (ADPCM), une technique qui numérise les signaux analogiques. L'ADPCM exploite la forte corrélation entre les échantillons vocaux consécutifs et code la différence entre un échantillon prédit et l'échantillon vocal réel. Lors de la lecture ou du décodage, il est possible de prédire les échantillons suivants. L'ADPCM offre une compression efficace et une reproduction vocale de haute qualité.


Il existe plusieurs types d'algorithmes ADPCM. L'algorithme IMA (Interactive Multimedia Association) réduit considérablement la complexité mathématique en simplifiant certaines opérations et en utilisant des tables de consultation lorsque cela est pertinent, ce qui en fait un choix judicieux pour les microcontrôleurs 8 bits. La lecture étant l'objectif principal, un logiciel PC sera utilisé pour l'encodage, tandis que le décodage sera géré par le microcontrôleur. 


Pour rendre la lecture interactive, les clips vocaux sont séparés en fichiers individuels et adressables. Par exemple, pour annoncer la température, les nombres de un à neuf, de dix à dix-neuf, de vingt à vingt-neuf, trente, quarante, cinquante, soixante, soixante-dix, quatre-vingts et quatre-vingt-dix sont stockés dans des fichiers distincts. Ainsi, lorsque la température est de 32 degrés, la voix lira deux fichiers successivement : trente et deux. Un système de fichiers simple est utilisé pour stocker et récupérer ces fichiers vocaux.

 

L'intégration de la voix2La quantité de mémoire nécessaire pour stocker les fichiers audio dépend du nombre de bits, de la fréquence d'échantillonnage et du volume de données. Pour un son de qualité conférence, 16 bits sont requis à une fréquence d'échantillonnage de 8 000 échantillons par seconde, ce qui correspond à une bande passante de 4 000 Hz. Par conséquent, une seconde d'enregistrement audio occupe 16 000 octets.
Une fois le fichier audio encodé à l'aide de l'algorithme ADPCM d'IMA, sa taille compressée est réduite à un quart de sa taille d'origine. Selon la quantité d'enregistrements audio requise pour un projet, ceux-ci peuvent être stockés dans la mémoire programme du microcontrôleur ou dans une mémoire flash série externe. Un mégabit (128 Ko) de mémoire flash série peut contenir environ 32 secondes d'enregistrement audio.


Le diagramme de la figure 1 résume les étapes du processus. Premièrement, la voix est enregistrée sur un PC au format WAV. Deuxièmement, à l'aide d'un logiciel de montage audio, le fichier vocal original est ajusté et rééchantillonné à 8 000 Hz, puis enregistré au format mono non signé 16 bits little-endian. Troisièmement, le fichier est encodé à l'aide de l'algorithme ADPCM et enregistré au format binaire. Quatrièmement, tous les fichiers sont compilés dans un système de fichiers. Enfin, les fichiers sont stockés sur un microcontrôleur ou une mémoire externe.

 

L'incorporation de la voix 3La figure 2 présente le matériel de ce système. Le microcontrôleur charge le fichier audio en mémoire et le décode à l'aide du module PWM. Le signal de sortie de ce module est filtré par un filtre passe-bas de 4 000 Hz. Le signal analogique résultant peut être amplifié et diffusé par un haut-parleur.


Avec un minimum d'efforts consacrés à l'enregistrement, à l'encodage au format ADPCM et au stockage en mémoire des voix, un système embarqué peut intégrer une voix naturelle. Mais ce n'est pas tout. Puisqu'il s'agit de simples enregistrements, des carillons, des tonalités ou des bourdonnements peuvent également être ajoutés. La seule limite à l'amélioration de l'expérience utilisateur d'un système embarqué est l'imagination de l'ingénieur.

Remarque : Microchip, PIC et MPLAB sont des marques déposées de Microchip Technology Inc. aux États-Unis et dans d'autres pays. Toutes les autres marques citées appartiennent à leurs propriétaires respectifs.

 

Références :
La note d’application AN643 de Microchip, contenant le code source d’un algorithme ADPCM simplifié, est disponible à l’adresse suivante :
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011118


Pour plus d'informations ou un devis