Open6

Mini-XR: 各社空間音響SDKの比較

okuokuokuoku

VRと言えばオブジェクトオーディオ。ざっくり分けると、

  1. ヘッドホンで聴くことに特化したSDK(Oculus Audio、Resonance Audio など)
  2. Genericな立体音響SDK(Windows Sonic など)

のように分類できる。VRやARにおいてはヘッドホンに特化しても機能的には十分なため、それなりの数がある。

API構造

たぶんオーディオAPIは3層構造くらいにならざるを得なくて、

  1. シンプルなステレオ〜7.1ミキサ + Codec
  2. Coneモデル指向性+減衰モデルな3D audio (= OpenAL程度)
  3. ↑ に Shoeboxリバーブモデル を追加したもの

リバーブ + 吸音モデルに共通項を見い出すのがなかなか難しい。Shoeboxは割とVR特有のもので、 NieR:Automataの例のように VRでないゲームはraycast実装が多い印象。

用語

HRTF 、 HRIR

オーディオをヘッドホン向けに"レンダリング"する際にはエフェクトを掛けて人間の耳が持つ指向性をシミュレートすることで立体音響を錯覚させている。このエフェクト用のパラメタが HRTF(Head Related Transfer Function : 頭部伝達関数)と呼ばれることが多い。

例えば、 PlayStation5では5つのプリセットがあり、設定メニューで選択させている

HRTFは周波数応答の形で表現されることが多いが、それをインパルス応答にエンコードしたHRIRが実際の実装ではよく使用される。

アンビソニック

リスナを取り囲む音波を球面調和関数表現としたもの。重要な特徴:

  1. 通常のステレオ表現(左右のみ)と異なり、上下左右の自由な指向性を持った音源を表現できる。
  2. 次数が高いほど指向性がシャープになる。一般には5次程度が上限で、その場合36chの音声となる。
  3. 多くのSDKでミキシングの中間フォーマットとして使用される。音源1つ1つにHRTFエフェクトを掛けるよりも、一度アンビソニックにエンコードしてから1発でHRTFエフェクトを掛ける方が安いため。

ToDo

  • グローバルフレーミング。というかまずpush型のblocking APIかどうかという点から調査が必要か。。
  • BGMフラグ、配信許可フラグ。
okuokuokuoku

Google Resonance Audio

Googleは残念ながらVRからは撤退状態になってしまっているため、このResonance AudioもApache2.0ライセンスで公開されて放置状態になっている。

GoogleのCardboard SDKに含まれていた他、各社のゲームエンジンやオーディオエンジンにシーン表現とAmbisonicsベースのミキサを提供していた。Youtube AppもVR対応にこれを使用していた。

Web SDKもあるのが特徴。

  • 座標系: OpenGL
  • Ambisonics ミキサを持ち、HRTFエンコードされた2ch出力を行う。エンジンには5.1等サラウンドフォーマットの 入力 をエンコードする機能もある。
  • Shoebox リバーブ、壁毎のReflection coefficientsと全体のLPF付き
  • Mono / Stereo / Ambisonics ソース
  • 距離rolloff
  • 指向性はカージオイド、スプレッドも設定可能
  • 専用のNear-fieldエフェクト(謎) -- GitHubのリポジトリからCiteされているAESのレポートによると、HRTFの測定距離1m以下の距離を指すらしい。

Unity版には embree を使った Reverb probeのbake が可能になっている。リアルタイムでのprobingは行えないようだ。

okuokuokuoku

Oculus Spatializer

PCやAndroidに対応。Oculus自体はPCからは撤退気味なのでQuestでも使えるというのがポイントか。LinuxやMacにも対応。システムソフトウェア側に組込まれているのではなく、配布の.soに全ロジックとリソースがあるようだ。

ネットワーク経由でプロファイラを接続できたり、Raycastベースのゲームジオメトリクエリやジオメトリベースのリバーブを持つなど特徴的な機能が多くある。

  • 座標系: 右手系 、 Y-up (= OpenGL)
  • Ambisonicsを中間フォーマットとして使用し、HRIRによる合成から 1 6 8 12 20 仮想スピーカーによる合成までレンダリング品質を選択可能
  • 反響モデルは StaticShoeBoxDynamicRoomModeling (Raycastコールバック) 、 PropagationSystem (Meshをオーディオエンジンにアップロード) の3種から選択できる。後者2つはあまりドキュメントが無いのでゲームエンジン統合から使うことを想定しているとみられる。
  • モノラルソースの点音源 + スプレッドのみ
  • オクルージョン、ドップラー、指向性音源はサポートされない 。例えば指向性音源は原理的にはゲインでエミュレートできる...が反射とかどうすんのかという問題はある。

Oculusは過去に Near-field音響について発表していたけど 、これとAPIの関わりについては不明。

okuokuokuoku

Apple PHASE

先のWWDCで公開されたAppleの空間音響エンジン。Appleの空間音響は専用ハードウェアが必須だが、ハードウェアのラインナップ自体は増えつつある。

Wwiseのような統合サウンドエンジンに近い。同時に kAudioChannelLabel_HOA_SN3D のようなシンボルが追加されているので、Ambisonicsにも対応するものと見られる。

(TBD)

okuokuokuoku

Windows Sonic

WindowsはXboxOneやHoloLensでも使用できる空間音響APIを提供し、その実装としてWindows Sonicを標準搭載している。他にもDolbyによるDolby AudioやDolby Headphoneもある(有料)。

元々のDolby Atmosが音源に指向性を持たないため、標準のAPIでは指向性を設定できず、専用の ISpatialAudioObjectForHrtf インターフェースによって設定する必要がある。

(多分)ステレオソースやAmbisonicsソースを処理できない。

(TBD)