bub-xiaoai(Bub用 Xiaomi XiaoAi チャンネルプラグイン)
概要
bub-xiaoai は、Bub(会話エージェントフレームワーク)用のチャネルプラグインで、Xiaomi の XiaoAi スピーカーを Bub の入出力チャネルとして扱えるようにします。本プラグインは、スピーカーから送られてくるメッセージを Bub に転送し、Bub が生成した応答を xiaoai.speak API を通じてスピーカーから再生します。設計方針は狭い責務に絞ることで実装を簡潔に保ち、デバイス連携に必要な最小限の機能を提供する軽量プラグインです。README にセットアップ方法や動作例が示されています。
リポジトリの統計情報
- スター数: 6
- フォーク数: 0
- ウォッチャー数: 6
- コミット数: 7
- ファイル数: 6
- メインの言語: Python
主な特徴
- XiaoAi スピーカーからの入力を Bub のチャネルとして受け取り処理できる
- Bub 側の応答を xiaoai.speak 経由でスピーカーから音声出力できる
- 継続会話(コンテキストを維持した会話)をデフォルトでサポート
- 実装は小規模で依存も限定的、Bub プラットフォームへの統合が容易
技術的なポイント
bub-xiaoai の技術的特徴は「チャネルプラグイン」としてのシンプルさにあります。設計は大きく二つのフローに分かれます。1) スピーカー→Bub:XiaoAi スピーカーから受信したメッセージイベントを拾い、Bub のチャネルインターフェースに沿ってメッセージとして注入します。これにより Bub のアシスタント部分が通常の入力と同様に扱えます。2) Bub→スピーカー:Bub が生成した応答はプラグインが提供する xiaoai.speak 呼び出しを通してスピーカーに転送され、TTS として再生されます。プラグインは継続会話モードをデフォルトにすることで、セッションの文脈を保持して自然な対話を実現します。
実装は Python(src 配下のモジュール)で、pyproject.toml を用いたモダンなパッケージ設定を採用している点も注目できます。コードベースは小さく、Bub のチャネルプラグイン API に従った最小限のインターフェース実装に集中しています。外部デバイスとの連携では認証やネットワーク設定が必要になることがあるため、README に記載のセットアップ手順に従ってデバイス情報や必要な権限設定を行う必要があります。拡張性としては、XiaoAi 固有のイベントハンドリングや TTS のパラメータ調整を追加することで、より高度な対話制御やログ収集を行える設計になっています。軽量で用途が限定されているため、ローカルネットワーク内での低遅延応答や組み込み用途に向いています。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .python-version: file
- README.md: file
- pyproject.toml: file
- src: dir
…他 1 ファイル
(src 配下にプラグインの実装コードとエントリポイントが含まれている想定です。pyproject.toml で依存管理やパッケージ設定が行われます。)
まとめ
XiaoAi と Bub を繋ぐシンプルで実用的なチャネルプラグインです。
リポジトリ情報:
- 名前: bub-xiaoai
- 説明: Bub channel plugin for Xiaomi XiaoAi speakers.
- スター数: 6
- 言語: Python
- URL: https://github.com/frostming/bub-xiaoai
- オーナー: frostming
- アバター: https://avatars.githubusercontent.com/u/16336606?v=4
READMEの抜粋:
Bub 🧡 XiaoAi
bub-xiaoai is a Bub channel plugin for Xiaomi XiaoAi speakers.
It is based on the Xiaomi device integration approach from yihong0618/xiaogpt, but the scope here is narrower:
- listen for messages from a XiaoAi speaker
- forward them into Bub as a channel
- expose
xiaoai.speakso the assistant can speak replies back through the speaker - keep the interaction in continuous conversation mode by defa…