React/ブラウザ向けの音声操作UIコンポーネント。OpenAI Realtimeを土台にして、アプリ側が定義した狭い範囲のツールを音声から呼び出させる設計になっている。汎用のエージェントオーケストレーション枠ではなく、音声で動かしたいUIの制御に焦点を絞っている点が特徴。
主な構成要素
defineVoiceTool(): Zod定義のアクションをRealtime function toolに変換
createVoiceControlController(): セッション・トランスポート・ツール実行・トランスクリプト組み立て・接続ライフサイクルを管理
useVoiceControl(): Reactと外部/内部コントローラーを接続
VoiceControlWidget: ランチャーUI
useGhostCursor() / GhostCursorOverlay: 視覚的な実行確認の補助
推奨フロー
ブラウザのSDPとセッション設定をアプリの /session エンドポイント経由でプロキシし、1つのアプリ操作に対応した狭いツールを1つ登録する。UIに変化が起きたら現在の状態をセッションに送り直して、モデルを画面と同期させる。
ターン検出
デフォルトは Realtime の server_vad。テキストとツールのみのセッションでは interrupt_response: false にしてあり、新しい発話で実行中のツール呼び出しが中断されない。
Apache-2.0、npm未公開のreference実装。demo/ にtheme切り替え、マルチステップフォーム、共有状態のチェスといった学習向けサンプルが入っている。