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 | 2× | 4× | 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.

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
