基于 ESP32 的开源低成本迷你四足机器人,可 3D 打印,带 OLED 表情屏。
ggerganov/ggwave
一个轻量的 C++ 库,通过声音在设备之间传输少量数据,可用于 Python、JavaScript 和单片机。
- Star
- 7,906
- Fork
- 479
- 未关闭 Issue
- 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 的示例。
适用场景
- 在没有网络的情况下,在附近设备之间分享短消息或配对码。
- 让手机或电脑通过声音向带麦克风或扬声器的单片机发送指令。
- 实现离线设备配对或联系人交换功能。
- 为物联网项目原型化基于声音的数据传输协议。
快速上手
- 1
安装 Python 包
pip install ggwave - 2
或使用 CMake 构建 C++ 库和命令行工具
git clone https://github.com/ggerganov/ggwave --recursive && cd ggwave && mkdir build && cd build && cmake .. && make - 3
运行命令行工具
./bin/ggwave-cli
使用前须知
- 数据传输速率很低,约为每秒 8-16 字节。
- 构建基于 SDL 的示例需要另外安装 SDL2。
标签
常见问题
- ggwave 是什么?
- 一个轻量的 C++ 库,通过声音在设备之间传输少量数据,可用于 Python、JavaScript 和单片机。 ggwave 让设备之间通过声音交换少量数据,适用于无法联网的场景。它采用多频率 FSK 调制,并使用 Reed-Solomon 纠错码,既可以发送可闻声音,也支持超声波。按协议参数不同,带宽约为每秒 8 到 16 字节。
- ggwave 可以免费使用吗?用的什么许可证?
- ggwave 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- ggwave 还在维护吗?
- 超过半年未提交。ggwave 最近一次提交是在 2026年4月16日。
- ggwave 适合用来做什么?
- 在没有网络的情况下,在附近设备之间分享短消息或配对码。 让手机或电脑通过声音向带麦克风或扬声器的单片机发送指令。 实现离线设备配对或联系人交换功能。 为物联网项目原型化基于声音的数据传输协议。
- ggwave 怎么安装和运行?
- 安装 Python 包: pip install ggwave 或使用 CMake 构建 C++ 库和命令行工具: 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
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
4756644CApache-2.0更新于 5天前
基于树莓派 Zero 的小巧口袋数码相机,外壳可 3D 打印,电子元件均为常见现成件。
88535PythonOther更新于 前天
基于 C++20 与 Qt6 的原生桌面金融研究终端,内嵌 Python 分析与 AI 智能体,支持 100 多种数据源。
3.3万4660C++Other更新于 7天前
可在本地运行的开源音乐生成模型,可根据文本提示生成完整歌曲,并支持编辑、翻唱和 LoRA 训练。
1.4万1816PythonMIT更新于 9天前
开源 Rust 工具链,用于记录、可视化、查询并流式输出随时间变化的多模态机器人与传感器数据。
1.2万876RustApache-2.0更新于 15小时前
Kokoro-82M 文字转语音模型的 Python 推理库,模型参数量为 8200 万。
94741054JavaScriptApache-2.0更新于 去年