Repolode
ggerganov

ggerganov/ggwave

Una pequeña biblioteca de C++ para enviar pequeñas cantidades de datos entre dispositivos mediante sonido, utilizable desde Python, JavaScript y microcontroladores.

Estrellas
7,906
Forks
479
Issues abiertos
65
Último commit
hace 6 meses

¿Qué es?

ggwave permite que los dispositivos intercambien pequeñas cantidades de datos mediante sonido, lo que resulta útil cuando no pueden usar una conexión de red. Utiliza un esquema de modulación FSK multifrecuencia con corrección de errores Reed-Solomon y puede transmitir señales audibles y ultrasónicas. El ancho de banda indicado es de aproximadamente 8 a 16 bytes por segundo, según los parámetros del protocolo.

La biblioteca solo genera y analiza formas de onda sin procesar. Tu propio backend de audio, como PulseAudio, ALSA o Web Audio, se encarga de la reproducción y la captura mediante callbacks para poner y retirar muestras de la cola. Hay bindings y paquetes disponibles para Python, Node.js y Swift, y los ejemplos incluyen código para ESP32, Arduino y Raspberry Pi Pico.

El proyecto también incluye la aplicación Waver para iOS, Android, Linux y macOS, además de demos web para probar las transmisiones.

Funciones clave

  • 01Transmite pequeñas cargas de datos mediante sonido audible o ultrasónico.
  • 02Utiliza modulación FSK con corrección de errores Reed-Solomon.
  • 03Funciona con cualquier backend de audio mediante callbacks para gestionar colas de muestras.
  • 04Ofrece bindings para Python, Node.js y Swift.
  • 05Incluye ejemplos para ESP32, Arduino y Raspberry Pi Pico.

Casos de uso

  • Compartir un mensaje breve o un código de vinculación entre dispositivos cercanos sin conexión de red.
  • Enviar comandos desde una PC o un teléfono a microcontroladores con micrófono o altavoz.
  • Crear funciones de vinculación de dispositivos o intercambio de contactos sin conexión.
  • Prototipar protocolos de transmisión de datos mediante sonido para proyectos de IoT.

Inicio rápido

  1. 1

    Instala el paquete de Python

    pip install ggwave
  2. 2

    O compila la biblioteca C++ y la CLI con CMake

    git clone https://github.com/ggerganov/ggwave --recursive && cd ggwave && mkdir build && cd build && cmake .. && make
  3. 3

    Ejecuta la herramienta de línea de comandos

    ./bin/ggwave-cli

Antes de usarlo

  • El rendimiento es muy bajo, aproximadamente de 8 a 16 bytes por segundo.
  • Para compilar los ejemplos basados en SDL, es necesario instalar SDL2 por separado.

Temas

Preguntas frecuentes

¿Qué es ggwave?
Una pequeña biblioteca de C++ para enviar pequeñas cantidades de datos entre dispositivos mediante sonido, utilizable desde Python, JavaScript y microcontroladores. ggwave permite que los dispositivos intercambien pequeñas cantidades de datos mediante sonido, lo que resulta útil cuando no pueden usar una conexión de red. Utiliza un esquema de modulación FSK multifrecuencia con corrección de errores Reed-Solomon y puede transmitir señales audibles y ultrasónicas. El ancho de banda indicado es de aproximadamente 8 a 16 bytes por segundo, según los parámetros del protocolo.
¿ggwave es gratuito? ¿Qué licencia tiene?
ggwave es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿ggwave sigue mantenido?
Sin commits en más de 6 meses. El último commit de ggwave fue el 16 abr 2026.
¿Para qué puedo usar ggwave?
Compartir un mensaje breve o un código de vinculación entre dispositivos cercanos sin conexión de red. Enviar comandos desde una PC o un teléfono a microcontroladores con micrófono o altavoz. Crear funciones de vinculación de dispositivos o intercambio de contactos sin conexión. Prototipar protocolos de transmisión de datos mediante sonido para proyectos de IoT.
¿Cómo se instala ggwave?
Instala el paquete de Python: pip install ggwave O compila la biblioteca C++ y la CLI con CMake: git clone https://github.com/ggerganov/ggwave --recursive && cd ggwave && mkdir build && cd build && cmake .. && make Ejecuta la herramienta de línea de comandos: ./bin/ggwave-cli
¿Dónde consigo ggwave?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ggerganov/ggwave

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados