La librería PCMFlow722 de Tanaka Masayuki habilita voz HD bidireccional half-duplex sobre ESP-NOW en placas ESP32 con altavoz y micrófono, transformándolas efectivamente en walkie-talkies.
La librería implementa un add-on del códec wideband G.722 sobre PCMFlow, una librería ligera de decodificación de audio y flujo PCM para Arduino que ya soporta PCM sin comprimir, MP3 y FLAC. PCM y FLAC consumen demasiado ancho de banda sobre ESP-NOW, y MP3 no es adecuado para audio en tiempo real, así que el autor eligió el viejo G.722.
¿Por qué importa "HD voice" en ESP-NOW?
La voz bidireccional sobre ESP-NOW se había implementado antes en proyectos como el esp32-walkie-talkie de Atomic14 (hace 5 años) y, más recientemente, el Walkie-Talkie ESP-NOW de Adafruit, pero típicamente con G.711 de menor calidad o audio comprimido.
La librería PCMFlowG722 eleva la vara entregando "audio de 7 kHz a 16 kHz de muestreo usando el mismo presupuesto de 64 kbps de G.711, mismo tamaño de paquete, doble ancho de banda de audio", según explica Tanaka.
Comparativa de códecs: G.711 vs G.722 vs Opus

| Característica | PCMFlowG711 | PCMFlowG722 (esta lib) | PCMFlowOpus |
|---|---|---|---|
| Banda de audio | narrowband (8 kHz / ≤ 3,4 kHz) | wideband (16 kHz / ≤ 7 kHz) | narrow / wide / fullband (8-48 kHz) |
| Bitrate (voz) | 64 kbps fijo | 64 kbps fijo (Modo 1) | 16-32 kbps típico |
| Compresión vs PCM 16-bit | 2× | 4× | 10-15× |
| Flash del códec | < 4 KB | ~10 KB | ~150-180 KB |
| CPU del códec | negligible | bajo | no trivial en MCUs M0/M3 |
| Patente / licencia | ninguna (estándar 1972 expirado) | ninguna (estándar 1988 expirado, núcleo dominio público) | royalty-free, BSD-3-Clause |
| Calidad | telefonía toll-grade | HD voice (telefonía wideband) | wideband / fullband, mucho mejor |
Opus ofrece menor ancho de banda y calidad full-band, pero G.722 es menos complejo y exige menos recursos (CPU y almacenamiento). También calza bien con ESP-NOW, ya que el protocolo lleva payloads de hasta 250 bytes, y un frame de voz de 20 ms en G.722 a 16 kHz produce 160 bytes, lo mismo que G.711, pero con el doble de ancho de banda. PCM crudo mono de 16 kHz a 16 bits requeriría 640 bytes, así que G.722 comprime cuatro veces.

¿Cómo se prueba en una placa propia?
La librería implementa un encoder G.722 que comprime PCM 16 kHz y un decoder que hace el camino inverso. Si querés probarla en tu propia placa, el sketch Arduino EspNowTransceiver.ino es probablemente lo que buscás. Es un transceptor half-duplex HD-voice sobre ESP-NOW, y el mismo firmware actúa como emisor y receptor.
Tanaka la probó en placas M5Stack Core2, con SoC ESP32, 8 MB PSRAM, 16 MB de flash SPI, una pantalla pequeña de 2 pulgadas que muestra el canal ESP-NOW, un altavoz de 1 W (1W-0928) y un micrófono SPM4123. Mientras se mantiene presionado el botón A, el audio se transmite por ESP-NOW a uno o más dispositivos Core2; en cualquier otro caso, los dispositivos quedan como receptores.
Disponibilidad para makers chilenos
Para quienes quieran replicarlo en Chile, el ESP32 y módulos como M5Stack Core2 se consiguen vía distribuidores locales o MercadoLibre con precios entre CLP 25.000 y CLP 60.000 según el formato. El micrófono SPM4123 y altavoces de 1 W están disponibles en tiendas de electrónica como MechatronicStore y similares. La librería es código abierto bajo el repositorio de GitHub de Tanaka y no requiere licencias de pago: el códec G.722 es un estándar de 1988 con patentes expiradas y su núcleo está en dominio público.
Vía Adafruit.




