mcpField
S
spatial-audio

spatial-audio

github.com/alphaonedev開発46 回インストール
リポジトリ

spatial-audio について

spatial-audioは、AR/VRアプリ向けの空間音響スキルです。HRTFで3D音声をリアルタイムにレンダリングし、音源位置の変更、遮蔽、残響にも対応します。

主な機能

  1. 01HRTFによる3D音声のリアルタイムレンダリング
  2. 02音源位置の動的な更新
  3. 03遮蔽と残響への対応
  4. 04減衰モデルと周波数範囲の設定
  5. 05複数音源の同時処理

活用シーン

  1. 01ARシーンのオブジェクトに空間音響を追加
  2. 02VRシミュレーションで移動する音源を更新
  3. 03方向感と距離感のあるゲーム音声を作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill spatial-audio

インストール後、Claude Code で/spatial-audioを入力して読み込まれたか確認します。

詳細

目的

このスキルは、頭部伝達関数(HRTF)などの技術を用いて空間音源をリアルタイムで再現し、AR/VR アプリケーション向けの 3D オーディオの定位とレンダリングを実現します。

使用するタイミング

バーチャルツアー、ゲーム環境、シミュレーションなど、音の方向や距離によってユーザーの没入感を高めるリアルなオーディオが必要な AR/VR 体験の構築に使用してください。空間オーディオを必要としないアプリケーションでは処理負荷が増えるため、2D オーディオの用途には使用しないでください。

主な機能

  • 正確な 3D 定位を実現する、HRTF に基づくリアルタイムオーディオレンダリング。
  • 遮蔽や残響効果を含む、動的な音源の更新に対応。
  • デバイス固有のオーディオ出力(ヘッドフォンや空間スピーカーなど)に対応する AR/VR フレームワークとの統合。
  • 音の減衰モデル(逆距離または対数)や周波数範囲(20Hz-20kHz)などのパラメーターを設定可能。
  • 1 セッションあたり最大 32 の同時オーディオソースをサポートする、複数音源の処理。

使用パターン

まずオーディオコンテキストを初期化し、その後、位置を指定して音源を設定してください。リアルタイムアプリケーションでは、更新にループを使用します。CLI ではオーディオファイルをツールにパイプし、API ではエンドポイントを順に呼び出します。手順は、ライブラリのインポート > オーディオコンテキストの作成 > 音源の追加 > レンダリングと更新です。リソースを解放するため、終了時にクリーンアップしてください。

主なコマンド/API

手早くプロトタイプを作成するには OpenClaw CLI を、プログラムから制御するには REST API を使用してください。認証には、環境変数として $SPATIAL_AUDIO_API_KEY を設定する必要があります。

  • CLI コマンド:定位を指定してオーディオをレンダリングする
    spatial-audio render --input audio.wav --position 1.5 2.0 3.0 --hrtf default --output rendered.wav
    指定した 3D 座標でオーディオファイルを処理します。

  • API エンドポイント:音源を作成する
    https://api.openclaw.ai/spatial-audio/sources に JSON 本文を指定して POST します:
    { "sourceId": "src1", "position": [0, 0, 5], "audioUrl": "s3://bucket/audio.mp3" }
    レスポンスには、更新に使用する音源ハンドルが含まれます。

  • コードスニペット(Python):オーディオを初期化して位置を指定する

    import openclaw.spatial_audio as sa  
    context = sa.init(hrtf='default')  
    source = sa.add_source(context, position=[1, 2, 3])  
    sa.update_position(source, [4, 5, 6])  
    
  • 設定形式:API 設定には JSON を使用します。例:
    { "hrtfProfile": "custom", "attenuation": "inverse", "maxSources": 16 }
    CLI で読み込みます:spatial-audio config load --file config.json。

統合に関する注意事項

依存関係として OpenClaw SDK を追加して統合します(例:pip install openclaw-sdk または JavaScript 用の npm 経由)。実行前に $SPATIAL_AUDIO_API_KEY を設定してください。AR/VR フレームワークでは、Unity の AudioListener または WebXR の AudioContext でラップします。たとえば Unity では、SpatialAudio コンポーネントをメインカメラにアタッチします。オーディオデバイスに互換性があることを確認し、ブラウザーで Web Audio API がサポートされているか確認してください。マルチプラットフォーム対応には、ウェブベースの AR で Three.js などの抽象化レイヤーを使用します。

エラー処理

エラーがないか、必ず戻りコードまたは例外を確認してください。よくある問題:無効な位置(NaN 値など)ではエラーコード 400 が返され、オーディオデバイスが使用できない場合は "DEVICE_NOT_FOUND" が発生します。try-except ブロックで処理します:

try:  
    sa.render(context)  
except sa.AudioError as e:  
    if e.code == 400:  
        print("Invalid position; correct coordinates.")  

CLI では、stderr の出力(例:「Error: HRTF not loaded—use --hrtf flag」)を解析してください。ネットワーク障害などの一時的なエラーは、指数バックオフで再試行します。

例 1:AR アプリでの基本的な空間オーディオ設定

AR オブジェクト用に 3D オーディオを設定するには:

  1. コンテキストを初期化します:sa.init(hrtf='builtin')
  2. 音源を追加します:source = sa.add_source(context, position=[0, 1, 2], audioUrl='object_sound.mp3')
  3. メインループで、ユーザーの位置に基づいて更新します:sa.update_position(source, user_coords)
  4. レンダリングします:sa.render(context)
    これにより、AR シーン内でユーザーに対して相対的に移動する音が作成されます。

例 2:VR シミュレーションでの動的なオーディオ

移動する音源を含む VR ゲームの場合:

  1. プロトタイプの作成には CLI を使用します:spatial-audio render --input explosion.wav --position 10 0 0 --hrtf custom
  2. コード内(例:JavaScript):
    const context = await sa.init();  
    const source = await sa.addSource(context, { position: [5, 0, 0] });  
    setInterval(() => sa.updateSource(source, [Math.random()*10, 0, 0]), 1000);  
    
  3. 没入感のある効果を得るため、VR フレームワークと統合し、ヘッドトラッキングと同期させます。

グラフの関係性

  • 関連クラスター:ar-vr(例:「ar-rendering」スキルと依存関係を共有します)。
  • インバウンドリンク:基本的な音声処理には「audio-processing」に依存します。
  • アウトバウンドリンク:空間フィードバックを提供することで「vr-interaction」を強化します。
  • スキル間連携:同期された音声と映像の体験を実現するため、「3d-visualization」と連携します。

コメント