Repolode
ggerganov

ggerganov/ggwave

Компактная библиотека на C++ для передачи небольших объёмов данных между устройствами с помощью звука; доступна для Python, JavaScript и микроконтроллеров.

Звёзды
7,906
Форки
479
Открытые issues
65
Последний коммит
6 месяцев назад

Что это?

ggwave позволяет устройствам обмениваться небольшими объёмами данных с помощью звука — это полезно, когда у них нет возможности подключиться к сети. Библиотека использует многотоновую FSK-модуляцию с коррекцией ошибок Reed-Solomon и передаёт сигналы как в слышимом, так и в ультразвуковом диапазоне. Заявленная пропускная способность составляет примерно 8–16 байт в секунду и зависит от параметров протокола.

Библиотека только генерирует и анализирует необработанные звуковые сигналы. Воспроизведение и захват звука обеспечивает ваш аудиобэкенд, например PulseAudio, ALSA или Web Audio, используя колбэки для добавления и извлечения аудиосэмплов. Доступны биндинги и пакеты для Python, Node.js и Swift, а примеры включают код для ESP32, Arduino и Raspberry Pi Pico.

В проект также входят приложение Waver для iOS, Android, Linux и macOS и браузерные демо для проверки передачи данных.

Ключевые возможности

  • 01Передаёт небольшие объёмы данных с помощью слышимого или ультразвукового звука.
  • 02Использует FSK-модуляцию с коррекцией ошибок Reed-Solomon.
  • 03Работает с любым аудиобэкендом через колбэки для добавления и извлечения аудиосэмплов.
  • 04Предоставляет биндинги для Python, Node.js и Swift.
  • 05Включает примеры для ESP32, Arduino и Raspberry Pi Pico.

Сценарии использования

  • Передача короткого сообщения или кода сопряжения между находящимися рядом устройствами без подключения к сети.
  • Отправка команд с ПК или телефона на микроконтроллеры с микрофоном или динамиком.
  • Создание функций офлайн-сопряжения устройств или обмена контактами.
  • Разработка прототипов протоколов передачи данных по звуку для IoT-проектов.

Быстрый старт

  1. 1

    Установите пакет Python

    pip install ggwave
  2. 2

    Или соберите библиотеку C++ и CLI с помощью CMake

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

    Запустите инструмент командной строки

    ./bin/ggwave-cli

Что важно знать

  • Пропускная способность очень низкая — примерно 8–16 байт в секунду.
  • Для сборки примеров на основе SDL необходимо отдельно установить SDL2.

Темы

Частые вопросы

Что такое ggwave?
Компактная библиотека на C++ для передачи небольших объёмов данных между устройствами с помощью звука; доступна для Python, JavaScript и микроконтроллеров. ggwave позволяет устройствам обмениваться небольшими объёмами данных с помощью звука — это полезно, когда у них нет возможности подключиться к сети. Библиотека использует многотоновую FSK-модуляцию с коррекцией ошибок Reed-Solomon и передаёт сигналы как в слышимом, так и в ультразвуковом диапазоне. Заявленная пропускная способность составляет примерно 8–16 байт в секунду и зависит от параметров протокола.
ggwave можно использовать бесплатно? Какая у него лицензия?
ggwave распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
ggwave всё ещё поддерживается?
Нет коммитов больше 6 месяцев. Последний коммит в ggwave — 16 апр. 2026 г..
Для чего можно использовать ggwave?
Передача короткого сообщения или кода сопряжения между находящимися рядом устройствами без подключения к сети. Отправка команд с ПК или телефона на микроконтроллеры с микрофоном или динамиком. Создание функций офлайн-сопряжения устройств или обмена контактами. Разработка прототипов протоколов передачи данных по звуку для IoT-проектов.
Как установить ggwave?
Установите пакет Python: pip install ggwave Или соберите библиотеку C++ и CLI с помощью CMake: git clone https://github.com/ggerganov/ggwave --recursive && cd ggwave && mkdir build && cd build && cmake .. && make Запустите инструмент командной строки: ./bin/ggwave-cli
Где скачать ggwave?
Исходный код и инструкции по установке — на GitHub: https://github.com/ggerganov/ggwave

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Sesame — миниатюрный робот-квадрупед с открытым исходным кодом, который можно напечатать на 3D-принтере; он работает на ESP32, оснащён OLED-лицом и ходит с помощью сервоприводов.

4,8 тыс.644CApache-2.0Обновлён 5 дней назад

Открытый набор инструментов для офлайн-распознавания речи и ASR в потоковом режиме, с VAD, расстановкой знаков препинания, метками говорящих и совместимым с OpenAI сервером.

20,8 тыс.2,1 тыс.PythonMITОбновлён позавчера