Repolode
ggerganov

ggerganov/ggwave

音声でデバイス間に少量のデータを送れる、Python、JavaScript、マイコンから利用可能な小型C++ライブラリ。

スター
7,906
フォーク
479
未解決の Issue
65
最終コミット
6 か月前

これは何?

ggwaveを使うと、ネットワーク接続を利用できないデバイス間でも、音声を介して少量のデータをやり取りできます。Reed-Solomon誤り訂正を備えた多周波FSK変調方式を採用し、可聴音と超音波の両方を送信できます。帯域幅はプロトコルのパラメーターに応じて、毎秒およそ8〜16バイトです。

このライブラリが生成・解析するのはraw waveformのみです。再生と録音は、PulseAudio、ALSA、Web Audioなどのオーディオバックエンドが担い、サンプルのキューイングと取り出しにはコールバックを使います。Python、Node.js、Swift向けのバインディングやパッケージが用意されており、ESP32、Arduino、Raspberry Pi Pico用のサンプルコードも含まれています。

iOS、Android、Linux、macOS向けのWaverアプリに加え、送信をテストするためのブラウザデモも含まれています。

主な機能

  • 01可聴音または超音波を使って、少量のデータを送信します。
  • 02Reed-Solomon誤り訂正を備えたFSK変調を使用します。
  • 03サンプルキューのコールバックを介して、任意のオーディオバックエンドと連携できます。
  • 04Python、Node.js、Swift向けのバインディングを提供します。
  • 05ESP32、Arduino、Raspberry Pi Pico向けのサンプルを収録しています。

ユースケース

  • ネットワークを使わずに、近くにあるデバイス間で短いメッセージやペアリングコードを共有する。
  • マイクまたはスピーカーを備えたマイコンに、PCやスマートフォンからコマンドを送る。
  • オフラインでのデバイスのペアリングや連絡先交換機能を構築する。
  • IoTプロジェクトで、音声データ通信プロトコルのプロトタイプを作る。

トピック

よくある質問

ggwave とは?
音声でデバイス間に少量のデータを送れる、Python、JavaScript、マイコンから利用可能な小型C++ライブラリ。 ggwaveを使うと、ネットワーク接続を利用できないデバイス間でも、音声を介して少量のデータをやり取りできます。Reed-Solomon誤り訂正を備えた多周波FSK変調方式を採用し、可聴音と超音波の両方を送信できます。帯域幅はプロトコルのパラメーターに応じて、毎秒およそ8〜16バイトです。
ggwave は無料で使えますか?ライセンスは?
ggwave は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ggwave は今もメンテナンスされていますか?
半年以上コミットなし。ggwave の最終コミットは 2026年4月16日 です。
ggwave は何に使えますか?
ネットワークを使わずに、近くにあるデバイス間で短いメッセージやペアリングコードを共有する。 マイクまたはスピーカーを備えたマイコンに、PCやスマートフォンからコマンドを送る。 オフラインでのデバイスのペアリングや連絡先交換機能を構築する。 IoTプロジェクトで、音声データ通信プロトコルのプロトタイプを作る。
ggwave はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/ggerganov/ggwave

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト