Voix HD bidirectionnelle sur ESP32 avec la bibliothèque PCMFlow722

ESP-NOW two-way HD audio communication

Selon cnx-software, la bibliothèque PCMFlow722 développée par Tanaka Masayuki permet une communication vocale HD en temps réel grâce à l’utilisation d’ESP-NOW sur les cartes ESP32. Cela transforme ces cartes en véritables talkies-walkies dotés d’un haut-parleur et d’un microphone, permettant ainsi une expérience de communication améliorée.

Codec G.722 à 64 kbps : la voix HD en tête du marché

Cette bibliothèque tire parti d’un codec audio large bande, le G.722, qui se distingue par sa capacité à offrir une qualité audio optimale ce qui facilite l’audio bidirectionnel. Avec un son de 7 kHz à un échantillonnage de 16 kHz utilisé sur la même configuration de 64 kbps que le G.711, G.722 double la bande passante audio tout en conservant une taille de paquet identique, permettant ainsi une utilisation efficace de la bande passante disponible. En comparaison, des projets antérieurs comme le talkie-walkie d’Atomic14 et celui d’Adafruit utilisaient généralement des codecs de qualité inférieure comme le G.711.

La bibliothèque PCMFlowG722 permet ainsi aux utilisateurs de bénéficier d’un son HD, dépassant largement la qualité sonore obtenue avec des codecs moins sophistiqués. Un tableau comparatif fournit des détails sur les performances de plusieurs codecs, montrant que le G.722 offre une bande large et une empreinte faible en termes de ressources.

PCMFlowG711 PCMFlowG722 (cette bibliothèque) PCMFlowOpus
Bande audio bande étroite (8 kHz / ≤ 3,4 kHz) large bande (16 kHz / ≤ 7 kHz) bande étroite / large / pleine bande (8–48 kHz)
Débit (voix) 64 kbps fixe 64 kbps fixe (Mode 1) 16 à 32 Kbit/s typique
Compression vs PCM 16 bits brut 10-15×
Empreinte flash du codec < 4 Ko ~10 Ko ~150-180 Ko
Processeur de codec négligeable faible non trivial sur les MCU de classe M0/M3
Complexité des brevets/licences aucun (norme de 1972, expirée) aucun (norme de 1988, expirée) ; le noyau est du domaine public délivrance de brevet libre de droits, source BSD-3-Clause
Qualité téléphonie payante Voix HD (téléphonie large bande) large bande / pleine bande, bien mieux

Interopérabilité sur ESP-NOW : la solution idéale pour l’audio HD

Le codec G.722 a été conçu pour fonctionner harmonieusement avec le protocole ESP-NOW, qui permet une transmission allant jusqu’à 250 octets de charge utile. Par exemple, une trame vocale de 20 ms à 16 kHz ne produit que 160 octets, tout comme le G.711. Cette capacité de compression permet d’utiliser efficacement la bande passante sans compromettre la qualité audio, contrairement au PCM brut qui exigerait 640 octets. Cela positionne le G.722 comme une solution prisée pour des applications telles que des talkies-walkies modernes.

EspNowÉmetteur-récepteur

La mise en œuvre de la bibliothèque nécessite un encodeur G.722 qui compresse le PCM 16 kHz et un décodeur permettant de réaliser l’inverse. Pour les utilisateurs intéressés par cette technologie, le sketch Arduino nommé EspNowTransceiver.ino sert de point de départ. Ce code transforme la carte en un émetteur-récepteur vocal HD semi-duplex sur ESP-NOW, offrant une solution complète avec un micrologiciel permettant à la fois l’envoi et la réception de données audio.

Des tests ont été effectués avec succès sur des plateformes telles que les cartes M5Stack Core2, qui intègrent un SoC ESP32, 8 Mo de PSRAM ainsi que 16 Mo de flash SPI. Ces dispositifs sont également équipés d’un écran de 2 pouces qui affiche le canal ESP-NOW, d’un haut-parleur de 1W (1W-0928) et d’un microphone SPM4123. Lorsque l’utilisateur maintient le bouton A, l’audio est transmis via ESP-NOW vers un ou plusieurs appareils Core2, tandis que les autres appareils fonctionnent en tant que récepteurs audio.

Via Adafruit